/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./node_modules/@harmoniclabs/bigint-utils/dist/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bigint-utils/dist/index.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bigintToBuffer = exports.bigintFromBuffer = exports.bigintFromBufferLE = exports.log2 = exports.min = exports.max = exports.random = exports.abs = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/bigint-utils/dist/utils/assert.js\");\n/**\n * same as ```Math.abs``` but for bigints\n */\nfunction abs(n) {\n    return n < BigInt(0) ? -n : n;\n}\nexports.abs = abs;\n/**\n * @returns {bigint} a ```bigint``` between ```0``` and ```Number.MAX_SAFE_INTEGER``` so that is safe to convert to Number for whatever reason\n */\nfunction random() {\n    return BigInt(Math.round(Math.random() * Number.MAX_SAFE_INTEGER));\n}\nexports.random = random;\nfunction max() {\n    var nums = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nums[_i] = arguments[_i];\n    }\n    return nums.reduce(function (a, b) { return a > b ? a : b; });\n}\nexports.max = max;\nfunction min() {\n    var nums = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        nums[_i] = arguments[_i];\n    }\n    return nums.reduce(function (a, b) { return a < b ? a : b; });\n}\nexports.min = min;\nfunction log2(num) {\n    if (num === BigInt(0))\n        return BigInt(0);\n    if (num < BigInt(0))\n        return -log2(abs(num));\n    var n = BigInt(num);\n    var result = BigInt(0);\n    while (n >>= BigInt(1))\n        result++;\n    return result;\n}\nexports.log2 = log2;\n/**\n * uses the bytes of the buffer to construct a BigInteger\n * > **IMPORTANT** the bytes are considered in Little Endian order; use ```bigintFromBuffer``` for Big Endian\n */\nfunction bigintFromBufferLE(buffer) {\n    return bigintFromBuffer(\n    // need to copy so that it doesn't reverses the original buffer\n    Uint8Array.from(buffer)\n        .reverse());\n}\nexports.bigintFromBufferLE = bigintFromBufferLE;\n/**\n * converts a Uint8Array to a ```bigint```\n * Big-Endian default\n */\nfunction bigintFromBuffer(buffer) {\n    (0, assert_1.assert)((0, uint8array_utils_1.isUint8Array)(buffer), \"expected buffer as input, while constructing a bigint instance using bigintFromBufferBE\");\n    var hexBuff = (0, uint8array_utils_1.toHex)(buffer);\n    if (hexBuff.length === 0) {\n        return BigInt(0);\n    }\n    return BigInt(\"0x\".concat(hexBuff));\n}\nexports.bigintFromBuffer = bigintFromBuffer;\n/**\n * converts a ```bigint``` to a ```Uint8Array``` of length ```nBytes``` given as second argument\n *\n * if ```nBytes``` is not specified the Uint8Array takes only the bytes needed\n * @param bigint\n * @param nBytes\n * @returns\n */\nfunction bigintToBuffer(bigint, nBytes) {\n    if (nBytes === void 0) { nBytes = undefined; }\n    (0, assert_1.assert)(bigint >= BigInt(0), \"cannot convert negative bigint to buffer\");\n    if (bigint == BigInt(0)) {\n        if (nBytes === undefined) {\n            return Uint8Array.from([]);\n        }\n        return new Uint8Array(nBytes);\n    }\n    var buffHexString = bigint.toString(16);\n    buffHexString = buffHexString.length % 2 === 0 ? buffHexString : '0' + buffHexString;\n    if (nBytes !== undefined) {\n        (0, assert_1.assert)(Math.round(Math.abs(nBytes)) === nBytes, \"cannot construct a buffer of length \" + nBytes + \", while using bigintToBufferOfNBytesBE\");\n        // pads with zeroes so that the final length is of nBytes*2 (2 hex digits per byte)\n        // String.prototype.padStart docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\n        buffHexString = buffHexString.padStart(nBytes * 2, \"00\");\n        if (buffHexString.length > nBytes * 2) {\n            console.warn(\"required buffer size is smaller than the one used effectively by the given bigint, truncating the initial bytes as overflow\");\n            buffHexString = buffHexString.slice(buffHexString.length - (nBytes * 2));\n        }\n    }\n    return (0, uint8array_utils_1.fromHex)(buffHexString);\n}\nexports.bigintToBuffer = bigintToBuffer;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bigint-utils/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bigint-utils/dist/utils/assert.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bigint-utils/dist/utils/assert.js ***!
  \**********************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bigint-utils/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/biguint/dist/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/@harmoniclabs/biguint/dist/index.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.unsafeForceUInt = exports.forceBigUInt = exports.canBeUInteger = void 0;\nfunction canBeUInteger(something) {\n    return ((typeof something === \"bigint\" && something >= BigInt(0)) ||\n        (typeof something === \"number\" && something === Math.round(Math.abs(something))));\n}\nexports.canBeUInteger = canBeUInteger;\nfunction forceBigUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return BigInt(toForce);\n}\nexports.forceBigUInt = forceBigUInt;\n;\nfunction unsafeForceUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return Number(toForce);\n}\nexports.unsafeForceUInt = unsafeForceUInt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/biguint/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/BitStream.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/BitStream.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BitStreamIterator = exports.BitStream = exports.forceInByteOffset = exports.isInByteOffset = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar stuff_1 = __webpack_require__(/*! ./utils/stuff.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/stuff.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js\");\nvar BigIntUtils_1 = __importDefault(__webpack_require__(/*! ./utils/BigIntUtils.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/BigIntUtils.js\"));\nvar isBinary_1 = __webpack_require__(/*! ./utils/isBinary.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/isBinary.js\");\nfunction isInByteOffset(offset) {\n    return (offset === 0 ||\n        offset === 1 ||\n        offset === 2 ||\n        offset === 3 ||\n        offset === 4 ||\n        offset === 5 ||\n        offset === 6 ||\n        offset === 7);\n}\nexports.isInByteOffset = isInByteOffset;\nfunction forceInByteOffset(offset) {\n    return (Math.round(Math.abs(offset)) % 8);\n}\nexports.forceInByteOffset = forceInByteOffset;\nvar BitStream = /** @class */ (function () {\n    function BitStream(bytes, nInitialZeroes) {\n        if (nInitialZeroes === void 0) { nInitialZeroes = 0; }\n        var _this = this;\n        /**\n         * allows to use ```BitStream```s in ```for..of``` loops\n         *\n         * e.g.:\n         * ```ts\n         * for( let bit of bitStream )\n         * {\n         *    // ```bit``` si an object of type ```Bit```\n         * }\n         * ```\n         */\n        this[_a] = function () { return new BitStreamIterator(_this); };\n        // case empty BitStream\n        // aka. new BitStream() || new BitStream( undefined )\n        if (bytes === undefined) {\n            this._bits = BigInt(-1);\n            this._nInitialZeroes = 0;\n            return;\n        }\n        // nInitialZeroes has to be an integer\n        (0, assert_1.assert)(Math.round(Math.abs(nInitialZeroes)) === nInitialZeroes, \"invalid numebr of nInitialZeroes passed, expected non-negative integer, got: \" + nInitialZeroes.toString());\n        // construct form bigint\n        if (typeof bytes == \"bigint\") {\n            this._nInitialZeroes = nInitialZeroes;\n            // silently adapts the input if negative in produciton\n            this._bits = BigIntUtils_1.default.abs(bytes);\n            return;\n        }\n        // construct form Uint8Array\n        // assert got Uint8Array instance as input\n        (0, assert_1.assert)((0, uint8array_utils_1.isUint8Array)(bytes), \"expected a Uint8Array instance\", {\n            got: bytes,\n            nativeType: typeof bytes\n        });\n        if (bytes.length === 0) {\n            this._bits = BigInt(-1);\n            this._nInitialZeroes = 0;\n            return;\n        }\n        var nZeroesAsEndPadding = forceInByteOffset(nInitialZeroes);\n        var firstNonZeroByte = 0;\n        var allZeroesBytes = 0;\n        while (allZeroesBytes < bytes.length) {\n            firstNonZeroByte = (0, uint8array_utils_1.readUint8)(bytes, allZeroesBytes);\n            if (firstNonZeroByte > 0)\n                break;\n            allZeroesBytes++;\n        }\n        if (allZeroesBytes === bytes.length) {\n            this._bits = BigInt(-1);\n            this._nInitialZeroes = 8 * allZeroesBytes;\n            return;\n        }\n        this._nInitialZeroes = (8 * allZeroesBytes) + (8 - (0, stuff_1.getNOfUsedBits)(BigInt(firstNonZeroByte)));\n        (0, assert_1.assert)(this._nInitialZeroes >= 0, \"this._nInitialZeroes was setted badly in a BitStream creation using a Uint8Array as input.\");\n        this._bits = BigIntUtils_1.default.fromBuffer(bytes);\n        if (nZeroesAsEndPadding !== 0) {\n            this._bits = this.bits << BigInt(nZeroesAsEndPadding);\n        }\n    }\n    BitStream.isStrictInstance = function (value) {\n        return Object.getPrototypeOf(value) === BitStream.prototype;\n    };\n    Object.defineProperty(BitStream.prototype, \"bits\", {\n        /**\n         * **IMPORTANT**\n         *\n         * this property returns the raw bigint stored in the instance\n         *\n         * this means that if the instance represents an empty ```BitStream``` ,\n         * or one composed by an undefinite series of zeroes, you'll likely get an different result than the expected one\n         *\n         * for a more appropriate result you should use the ```asBigInt``` method\n         *\n         * example:\n         * ```ts\n         * const myBitStream = new BitStream();\n         *\n         * myBitStream.bits // -> -1n\n         * myBitStream.asBigInt().bigint // -> 0n\n         *\n         * ```\n         *\n         */\n        get: function () {\n            return this._bits;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BitStream.prototype, \"nInitialZeroes\", {\n        get: function () {\n            return this._nInitialZeroes;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BitStream.prototype, \"length\", {\n        get: function () {\n            if (this.isEmpty())\n                return 0;\n            return this._nInitialZeroes + (0, stuff_1.getNOfUsedBits)(this._bits);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(BitStream.prototype, \"lengthInBytes\", {\n        get: function () {\n            return BitStream.getMinBytesForLength(this.length);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    BitStream.prototype.isEmpty = function () {\n        return this._bits < BigInt(0) && this.nInitialZeroes <= 0;\n    };\n    BitStream.prototype.isAllZeroes = function () {\n        return this._bits <= BigInt(0) && this.nInitialZeroes >= 0;\n    };\n    BitStream.fromBinStr = function (binStr) {\n        (0, assert_1.assert)((0, isBinary_1.isBinary)(binStr), \"expected an instance of the 'BinsryString' class; got: \" + binStr.toString());\n        var firstOneAt = binStr.indexOf('1');\n        if (firstOneAt < 0) // case all zeroes\n         {\n            return new BitStream(BigInt(0), binStr.length);\n        }\n        return new BitStream(BigInt(\"0b\".concat(binStr.slice(firstOneAt))), firstOneAt);\n    };\n    BitStream.prototype.toBinStr = function () {\n        var _b = this.asBigInt(), bigint = _b.bigint, nInitialZeroes = _b.nInitialZeroes;\n        return \"0\".repeat(nInitialZeroes) + bigint.toString(2);\n    };\n    BitStream.getMinBytesForLength = function (length) {\n        length = Math.round(Math.abs(length));\n        // even one bit requires a new byte,\n        // that's why ceil\n        return Math.ceil(length / 8);\n    };\n    BitStream.prototype.getNBitsMissingToByte = function () {\n        var lengthMod8 = this.length % 8;\n        if (lengthMod8 === 0)\n            return 0; // would have returned 8 (8 - 0) otherwise\n        return (8 - lengthMod8);\n    };\n    BitStream.prototype.at = function (index) {\n        if (index >= this.length || index < 0)\n            throw RangeError(\"cannot access bit at index \" + index.toString());\n        if (index < this.nInitialZeroes)\n            return 0;\n        index = Math.round(index);\n        return (Boolean(this.bits & BigInt(1 << (this.length - index - 1)))) ? 1 : 0;\n    };\n    /**\n     *\n     * @returns {object}\n     *      with a @property {Uint8Array} bigint containing the bigint\n     *      and a @property {InByteOffset} nInitialZeroes\n     *      containing a non-negative integer\n     *      indicating how many (non-tracked in the bigint) zeroes are present in the ```BitStream```\n     */\n    BitStream.prototype.asBigInt = function () {\n        if (this.isEmpty())\n            return {\n                bigint: BigInt(0),\n                nInitialZeroes: 0\n            };\n        if (this.isAllZeroes())\n            return {\n                bigint: BigInt(0),\n                nInitialZeroes: this.nInitialZeroes\n            };\n        return {\n            bigint: this.bits,\n            nInitialZeroes: this.nInitialZeroes\n        };\n    };\n    /**\n     *\n     * @returns {object}\n     *      with a @property {Uint8Array} buffer containing the buffer\n     *      and a @property {InByteOffset} nZeroesAsEndPadding\n     *      containing a number between 7 and 1 both included,\n     *      indicating how many of the end bits should be ignored\n     */\n    BitStream.prototype.toBuffer = function () {\n        if (this.isEmpty())\n            return {\n                buffer: Uint8Array.from([]),\n                nZeroesAsEndPadding: 0\n            };\n        if (this.isAllZeroes())\n            return {\n                buffer: this.nInitialZeroes <= 0 ? Uint8Array.from([]) : (0, uint8array_utils_1.fromHex)(\"00\".repeat(Math.ceil(this.nInitialZeroes / 8))),\n                nZeroesAsEndPadding: this._nInitialZeroes % 8 === 0 ?\n                    0 :\n                    (8 - forceInByteOffset(this._nInitialZeroes))\n            };\n        // we don't want to modify our own bits\n        var bits = this.bits;\n        // Array is provided with usefull operation\n        // unshift\n        // push\n        // at the moment doesnt contain any initial zero\n        var bitsArr = Array.from(BigIntUtils_1.default.toBuffer(bits));\n        var firstNonZeroByte = bitsArr[0];\n        // add whole bytes of zeroes at the beginning if needed\n        if (this.nInitialZeroes >= 8) {\n            bitsArr.unshift.apply(bitsArr, __spreadArray([], __read(Array(\n            // number of whole bytes as zeroes\n            Math.floor(this.nInitialZeroes / 8)).fill(0)), false));\n        }\n        if (firstNonZeroByte === undefined) {\n            console.error(firstNonZeroByte);\n            console.log(\"toBuffer called on: \", this);\n            console.log(\"this.isEmpty(): \".concat(this.isEmpty()), \"this.isAllZeroes(): \".concat(this.isAllZeroes()));\n        }\n        // remaining zeroes bits\n        var supposedInByteInitialZeroes = (this.nInitialZeroes % 8);\n        var effectiveInByteInitialZeroes = (8 - (0, stuff_1.getNOfUsedBits)(BigInt(firstNonZeroByte !== null && firstNonZeroByte !== void 0 ? firstNonZeroByte : 0)));\n        (0, assert_1.assert)((effectiveInByteInitialZeroes >= 0 && effectiveInByteInitialZeroes <= 7) &&\n            Math.round(effectiveInByteInitialZeroes) == effectiveInByteInitialZeroes, \"unexpected numebr of effectiveInByteInitialZeroes; should be 'InByteOffset'; got: \" + effectiveInByteInitialZeroes.toString());\n        if (\n        // no bits (whole bytes only)\n        // supposedInByteInitialZeroes === 0  ||\n        // supposedInByteInitialZeroes already tracked\n        supposedInByteInitialZeroes === effectiveInByteInitialZeroes) {\n            return {\n                buffer: Uint8Array.from(bitsArr),\n                nZeroesAsEndPadding: 0\n            };\n        }\n        /*\n        \n        example:\n        if( 5 < 7 ) means\n        the first (non-zero) byte is like `0b0000_0111`\n        whereas it should be              `0b0000_0001`\n\n        if that's the case we shift right by 2 ( 7 - 5 )\n        */\n        if (effectiveInByteInitialZeroes < supposedInByteInitialZeroes) {\n            // shiftr carrying the bits\n            var shiftBy_1 = supposedInByteInitialZeroes - effectiveInByteInitialZeroes;\n            var lostBits = 0;\n            var prevLostBits = 0;\n            for (var i = \n            //skip the bytes manually setted to zero before (line 245)\n            Math.floor(this.nInitialZeroes / 8); i < bitsArr.length; i++) {\n                prevLostBits = Number((0, stuff_1.getNLastBits)(BigInt(bitsArr[i]), BigInt(shiftBy_1)));\n                bitsArr[i] = (bitsArr[i] >>> shiftBy_1) | lostBits;\n                lostBits = prevLostBits\n                    // prepares lostBits to be used in the biwise or\n                    << (8 - shiftBy_1);\n            }\n            // add one final byte containing bits tha would have be lost\n            bitsArr.push(lostBits);\n            return {\n                buffer: Uint8Array.from(bitsArr),\n                nZeroesAsEndPadding: (8 - shiftBy_1)\n            };\n        }\n        /*\n        otherwhise it means\n        effectiveInByteInitialZeroes > supposedInByteInitialZeroes\n\n        so the situation is like:\n\n        first (non-zero) byte `0b0000_0001`\n        whereas it should be  `0b0000_0111`\n\n        so we are supposed to shif left by \"effectiveInByteInitialZeroes - supposedInByteInitialZeroes\" (in this case 2)\n        */\n        var shiftBy = effectiveInByteInitialZeroes - supposedInByteInitialZeroes;\n        /**\n         * this is quick and dirty, we are basically re-doin what did before\n         * @fixme should be moved above to remove code duplication\n         */\n        var shiftedlBitsArr = Array.from(\n        // let bigint do the dirty work\n        BigIntUtils_1.default.toBuffer(bits << BigInt(shiftBy)));\n        // add whole bytes of zeroes at the beginning if needed\n        if (this.nInitialZeroes >= 8) {\n            shiftedlBitsArr.unshift.apply(shiftedlBitsArr, __spreadArray([], __read(Array(\n            // number of whole bytes as zeroes\n            Math.floor(this.nInitialZeroes / 8)).fill(0)), false));\n        }\n        return {\n            buffer: Uint8Array.from(shiftedlBitsArr),\n            nZeroesAsEndPadding: shiftBy\n        };\n    };\n    /**\n     * @param byOffset number of bits to move to\n     * @returns {bigint} lost bits as big integer\n     */\n    BitStream.prototype.shiftr = function (byOffset) {\n        var lostBits = (0, stuff_1.getNLastBits)(this._bits, byOffset);\n        this._bits = this.bits >> byOffset;\n        return lostBits;\n    };\n    BitStream.prototype.shiftl = function (byOffset) {\n        this._bits = this.bits << byOffset;\n    };\n    BitStream.prototype.append = function (other) {\n        if (other.isEmpty()) {\n            return;\n        }\n        if (this.isEmpty()) {\n            this._bits = other.bits;\n            this._nInitialZeroes = other.nInitialZeroes;\n            return;\n        }\n        if (this.isAllZeroes()) {\n            this._bits = other.bits;\n            this._nInitialZeroes = this._nInitialZeroes + other.nInitialZeroes;\n            return;\n        }\n        if (other.isAllZeroes()) {\n            this._bits = this._bits << BigInt(other.nInitialZeroes);\n            return;\n        }\n        // make some space\n        this._bits = this.bits << BigInt(other.length);\n        // other.length keeps track also of possible initial zeroes\n        // so those have been added when shifting\n        this._bits = this.bits | other.bits;\n    };\n    BitStream.prototype.clone = function () {\n        if (this.isEmpty())\n            return new BitStream();\n        return new BitStream(this.bits, this.nInitialZeroes);\n    };\n    BitStream.concat = function (a, b) {\n        var bitStream = a.clone();\n        // .append's argument is readonly\n        bitStream.append(b);\n        return bitStream;\n    };\n    // -------------------------------------------------------------------------------------------------------------------------- //\n    // ------------------------------------------------------- Operations ------------------------------------------------------- //\n    // -------------------------------------------------------------------------------------------------------------------------- //\n    BitStream.eq = function (a, b) {\n        // if same object (same reference) return true\n        // Ω(1) // Omega(1)\n        if (a === b)\n            return true;\n        return (a.nInitialZeroes === b.nInitialZeroes &&\n            a.bits === b.bits);\n    };\n    return BitStream;\n}());\nexports.BitStream = BitStream;\n_a = Symbol.iterator;\nvar BitStreamIterator = /** @class */ (function () {\n    function BitStreamIterator(bitStream) {\n        if (bitStream.length === 0) {\n            this._bitStreamBuff = Uint8Array.from([]);\n            this._nZeroesAsPadding = 0;\n            this._currByteIndex = 0;\n            this._currByte = 0;\n            this._currBitIndex = 0;\n            this._isDone = function () { return true; };\n            return;\n        }\n        var _b = bitStream.toBuffer(), buffer = _b.buffer, nZeroesAsEndPadding = _b.nZeroesAsEndPadding;\n        this._bitStreamBuff = buffer;\n        this._nZeroesAsPadding = nZeroesAsEndPadding;\n        this._currByteIndex = 0;\n        this._currByte = (0, uint8array_utils_1.readUint8)(this._bitStreamBuff, this._currByteIndex);\n        this._currBitIndex = 0;\n        this._updateByte = this._updateByte.bind(this);\n        this._isDone = this._isDone.bind(this);\n    }\n    BitStreamIterator.prototype.next = function () {\n        if (this._isDone())\n            return { done: true, value: 0 };\n        /*\n        Debug.ignore.log(\n            `currByte: ${this._currByte.toString(2).padStart( 8 , '0' )}`,\n            `\\nmask    : ${( 0b1 << ( 7 - this._currBitIndex ) ).toString(2).padStart( 8 , '0' )}`,\n            `\\nresult  : ${(\n                this._currByte &\n                ( 0b1 << ( 7 - this._currBitIndex ) )\n            ).toString(2).padStart( 8 , '0' )}`\n        )\n        //*/\n        // get value\n        var value = Boolean(this._currByte &\n            (1 << (7 - this._currBitIndex))) ? 1 : 0;\n        // perform update for next call\n        this._currBitIndex++;\n        if (this._currBitIndex >= 8) {\n            this._currBitIndex = 0;\n            this._updateByte();\n        }\n        // yeilds value\n        return {\n            value: value,\n            done: false\n        };\n    };\n    BitStreamIterator.prototype._updateByte = function () {\n        this._currByteIndex++;\n        if (this._currByteIndex < this._bitStreamBuff.length) {\n            this._currByte = (0, uint8array_utils_1.readUint8)(this._bitStreamBuff, this._currByteIndex);\n        }\n    };\n    BitStreamIterator.prototype._isDone = function () {\n        return ((this._currByteIndex >= this._bitStreamBuff.length) ||\n            ((this._currByteIndex === this._bitStreamBuff.length - 1) &&\n                (this._currBitIndex === (8 - this._nZeroesAsPadding))));\n    };\n    return BitStreamIterator;\n}());\nexports.BitStreamIterator = BitStreamIterator;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/BitStream.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/index.js ***!
  \************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./BitStream.js */ \"./node_modules/@harmoniclabs/bitstream/dist/BitStream.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/utils/BigIntUtils.js":
/*!************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/utils/BigIntUtils.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ./assert.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js\");\n/**\n * @static\n */\nvar BigIntUtils = /** @class */ (function () {\n    function BigIntUtils() {\n    }\n    ;\n    /**\n     * same as ```Math.abs``` but for bigints\n     */\n    BigIntUtils.abs = function (n) {\n        return n < BigInt(0) ? -n : n;\n    };\n    /**\n     * @returns {bigint} a ```bigint``` between ```0``` and ```Number.MAX_SAFE_INTEGER``` so that is safe to convert to Number for whatever reason\n     */\n    BigIntUtils.random = function () {\n        return BigInt(Math.round(Math.random() * Number.MAX_SAFE_INTEGER));\n    };\n    BigIntUtils.max = function () {\n        var nums = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            nums[_i] = arguments[_i];\n        }\n        return nums.reduce(function (a, b) { return a > b ? a : b; });\n    };\n    BigIntUtils.min = function () {\n        var nums = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            nums[_i] = arguments[_i];\n        }\n        return nums.reduce(function (a, b) { return a < b ? a : b; });\n    };\n    BigIntUtils.log2 = function (num) {\n        if (num === BigInt(0))\n            return BigInt(0);\n        if (num < BigInt(0))\n            return -BigIntUtils.log2(BigIntUtils.abs(num));\n        var n = BigInt(num);\n        var result = BigInt(0);\n        while (n >>= BigInt(1))\n            result++;\n        return result;\n    };\n    /**\n     * uses the bytes of the buffer to construct a BigInteger\n     * > **IMPORTANT** the bytes are considered in Little Endian order; use ```BigIntUtils.fromBuffer``` for Big Endian\n     */\n    BigIntUtils.fromBufferLE = function (buffer) {\n        return BigIntUtils.fromBuffer(\n        // need to copy so that it doesn't reverses the original buffer\n        Uint8Array.from(buffer)\n            .reverse());\n    };\n    /**\n     * converts a Uint8Array to a ```bigint```\n     * Big-Endian default\n     */\n    BigIntUtils.fromBuffer = function (buffer) {\n        (0, assert_1.assert)((0, uint8array_utils_1.isUint8Array)(buffer), \"expected buffer as input, while constructing a bigint instance using BigIntUtils.fromBufferBE\");\n        var hexBuff = (0, uint8array_utils_1.toHex)(buffer);\n        if (hexBuff.length === 0) {\n            return BigInt(0);\n        }\n        return BigInt(\"0x\".concat(hexBuff));\n    };\n    /**\n     * converts a ```bigint``` to a ```Uint8Array``` of length ```nBytes``` given as second argument\n     *\n     * if ```nBytes``` is not specified the Uint8Array takes only the bytes needed\n     * @param bigint\n     * @param nBytes\n     * @returns\n     */\n    BigIntUtils.toBuffer = function (bigint, nBytes) {\n        if (nBytes === void 0) { nBytes = undefined; }\n        (0, assert_1.assert)(bigint >= BigInt(0), \"cannot convert negative bigint to buffer\");\n        if (bigint == BigInt(0)) {\n            if (nBytes === undefined) {\n                return Uint8Array.from([]);\n            }\n            return new Uint8Array(nBytes);\n        }\n        var buffHexString = bigint.toString(16);\n        buffHexString = buffHexString.length % 2 === 0 ? buffHexString : '0' + buffHexString;\n        if (nBytes !== undefined) {\n            (0, assert_1.assert)(Math.round(Math.abs(nBytes)) === nBytes, \"cannot construct a buffer of length \" + nBytes + \", while using BigIntUtils.toBufferOfNBytesBE\");\n            // pads with zeroes so that the final length is of nBytes*2 (2 hex digits per byte)\n            // String.prototype.padStart docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\n            buffHexString = buffHexString.padStart(nBytes * 2, \"00\");\n            if (buffHexString.length > nBytes * 2) {\n                console.warn(\"required buffer size is smaller than the one used effectively by the given bigint, truncating the initial bytes as overflow\");\n                buffHexString = buffHexString.slice(buffHexString.length - (nBytes * 2));\n            }\n        }\n        return (0, uint8array_utils_1.fromHex)(buffHexString);\n    };\n    return BigIntUtils;\n}());\nexports[\"default\"] = BigIntUtils;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/utils/BigIntUtils.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/utils/isBinary.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/utils/isBinary.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isBinary = void 0;\nfunction isBinary(str) {\n    if (typeof str !== \"string\")\n        return false;\n    for (var i = 0; i < str.length; i++) {\n        var ch = str[i];\n        if (!(ch === \"0\" || ch === \"1\"))\n            return false;\n    }\n    return true;\n}\nexports.isBinary = isBinary;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/utils/isBinary.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bitstream/dist/utils/stuff.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bitstream/dist/utils/stuff.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.minBytesRequired = exports.getNOfUsedBits = exports.getNLastBits = exports.getNLastBitsInt = exports.andMaskOfLength = exports.andMaskOfLengthInt = exports.getFirstByte = void 0;\nvar assert_1 = __webpack_require__(/*! ./assert.js */ \"./node_modules/@harmoniclabs/bitstream/dist/utils/assert.js\");\n/**\n * @deprecated not sure it has ever made sense to have it\n * @returns a number in range ```[ 0 , 255 ]``` ( ```[ 0b0000_0000, 0b1111_1111 ]``` ) based on the first byte\n */\nfunction getFirstByte(bits) {\n    return Number(\"0x\".concat(bits.toString(16).slice(0, 2)));\n}\nexports.getFirstByte = getFirstByte;\n/**\n * @deprecated use ```andMaskOfLength``` instead\n */\nfunction andMaskOfLengthInt(n) {\n    n = Math.round(Math.abs(n));\n    // operatons used are valid on singed number\n    if (n >= 30) {\n        return andMaskOfLength(BigInt(n));\n    }\n    return BigInt((1 << n) - 1);\n}\nexports.andMaskOfLengthInt = andMaskOfLengthInt;\n/**\n * returns a ```bigint``` of that as the last ```n``` bits setted to ones;\n *\n * example\n * ```ts\n * getMaskOfLength( 7 ) === Bigint( 0b0111_1111 ); // true\n * ```\n */\nfunction andMaskOfLength(n) {\n    return BigInt((BigInt(1)\n        << n)\n        - BigInt(1));\n}\nexports.andMaskOfLength = andMaskOfLength;\n/**\n * @deprecated use ```getNLastBits``` instead\n */\nfunction getNLastBitsInt(fromNuber, nBits) {\n    (0, assert_1.assert)(typeof fromNuber === \"number\" && typeof nBits === \"number\", \"can use getNLastBitsInt on number instances only\");\n    return Number(BigInt(fromNuber)\n        &\n            andMaskOfLength(BigInt(nBits)));\n}\nexports.getNLastBitsInt = getNLastBitsInt;\nfunction getNLastBits(fromNuber, nBits) {\n    return (fromNuber & andMaskOfLength(nBits));\n}\nexports.getNLastBits = getNLastBits;\n/**\n * @returns the number of bits from the first setted to ```1``` on the left up until the end\n */\nfunction getNOfUsedBits(bits) {\n    if (bits === BigInt(0))\n        return 0;\n    return bits.toString(2).length;\n}\nexports.getNOfUsedBits = getNOfUsedBits;\nfunction minBytesRequired(bigint) {\n    if (bigint < BigInt(0))\n        throw new Error(\"minBytesRequired works for positives integers only\");\n    var fullByteOnes = BigInt(255);\n    var mask = fullByteOnes;\n    var bytesRequired = 1;\n    while (bigint !== (bigint & mask)) {\n        mask = (mask << BigInt(8)) | fullByteOnes;\n        bytesRequired++;\n    }\n    return bytesRequired;\n}\nexports.minBytesRequired = minBytesRequired;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bitstream/dist/utils/stuff.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/bytestring/dist/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/bytestring/dist/index.js ***!
  \*************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ByteString = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nfunction isHex(anyString) {\n    // always think in javasript\n    if (typeof anyString !== \"string\")\n        return false;\n    var str = anyString.toLowerCase();\n    var validHex = \"987654321abcdef0\";\n    for (var i = 0; i < str.length; i++) {\n        if (!validHex.includes(str[i]))\n            return false;\n    }\n    // if false has not been returned yet, then it must be a valid hex\n    return true;\n}\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nvar ByteString = /** @class */ (function () {\n    function ByteString(bs) {\n        if (typeof bs === \"string\") {\n            // remove spaces\n            bs = bs.trim().split(\" \").join(\"\");\n            assert(isHex(bs), \"invalid hex input while constructing a ByteString: \" + bs);\n            // even length\n            bs = (0, uint8array_utils_1.fromHex)((bs.length % 2) === 1 ? \"0\" + bs : bs);\n        }\n        if (!(bs instanceof Uint8Array))\n            bs = bs.toBuffer();\n        assert((0, uint8array_utils_1.isUint8Array)(bs), \"invalid Uint8Array input while constructing a ByteString\");\n        this._bytes = bs;\n    }\n    ByteString.isStrictInstance = function (bs) {\n        return Object.getPrototypeOf(bs) === ByteString.prototype;\n    };\n    Object.defineProperty(ByteString.prototype, \"asString\", {\n        /**\n         * @deprecated use `toString()` instead\n         */\n        get: function () {\n            return (0, uint8array_utils_1.toHex)(this._bytes);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ByteString.prototype.toString = function () {\n        return (0, uint8array_utils_1.toHex)(this._bytes);\n    };\n    Object.defineProperty(ByteString.prototype, \"asBytes\", {\n        /**\n         * @deprecated use `toBuffer()` instead\n         */\n        get: function () {\n            return this._bytes.slice();\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ByteString.prototype.toBuffer = function () {\n        return this._bytes.slice();\n    };\n    ByteString.prototype.clone = function () {\n        return new ByteString(this._bytes.slice());\n    };\n    ByteString.fromAscii = function (asciiStr) {\n        return new ByteString((0, uint8array_utils_1.fromAscii)(asciiStr));\n    };\n    ByteString.toAscii = function (bStr) {\n        return (0, uint8array_utils_1.toAscii)(bStr.toBuffer());\n    };\n    ByteString.isValidHexValue = function (str) {\n        return (isHex(str) &&\n            str.length % 2 === 0);\n    };\n    return ByteString;\n}());\nexports.ByteString = ByteString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/bytestring/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CanBeCborString.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CanBeCborString.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.forceCborString = void 0;\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar CborString_1 = __webpack_require__(/*! ./CborString/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborString/index.js\");\nfunction forceCborString(cStr) {\n    return new CborString_1.CborString(cStr instanceof bytestring_1.ByteString ? cStr.toBuffer() : cStr);\n}\nexports.forceCborString = forceCborString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CanBeCborString.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/Cbor/Constants/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/Cbor/Constants/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborConstants = exports.isUInt8MajorType = exports.UInt8MajorType = exports.isMajorTypeTag = exports.MajorType = void 0;\nvar MajorType;\n(function (MajorType) {\n    MajorType[MajorType[\"unsigned\"] = 0] = \"unsigned\";\n    MajorType[MajorType[\"negative\"] = 1] = \"negative\";\n    MajorType[MajorType[\"bytes\"] = 2] = \"bytes\";\n    MajorType[MajorType[\"text\"] = 3] = \"text\";\n    MajorType[MajorType[\"array\"] = 4] = \"array\";\n    MajorType[MajorType[\"map\"] = 5] = \"map\";\n    MajorType[MajorType[\"tag\"] = 6] = \"tag\";\n    MajorType[MajorType[\"float_or_simple\"] = 7] = \"float_or_simple\"; // 111x_xxxx // \n})(MajorType = exports.MajorType || (exports.MajorType = {}));\n;\nObject.freeze(MajorType);\nfunction isMajorTypeTag(majorTag) {\n    return (majorTag >= 0 && majorTag <= 7 &&\n        majorTag === Math.round(majorTag));\n}\nexports.isMajorTypeTag = isMajorTypeTag;\nvar UInt8MajorType;\n(function (UInt8MajorType) {\n    UInt8MajorType[UInt8MajorType[\"unsigned\"] = 0] = \"unsigned\";\n    UInt8MajorType[UInt8MajorType[\"negative\"] = 32] = \"negative\";\n    UInt8MajorType[UInt8MajorType[\"bytes\"] = 64] = \"bytes\";\n    UInt8MajorType[UInt8MajorType[\"text\"] = 96] = \"text\";\n    UInt8MajorType[UInt8MajorType[\"array\"] = 128] = \"array\";\n    UInt8MajorType[UInt8MajorType[\"map\"] = 160] = \"map\";\n    UInt8MajorType[UInt8MajorType[\"tag\"] = 192] = \"tag\";\n    UInt8MajorType[UInt8MajorType[\"float_or_simple\"] = 224] = \"float_or_simple\";\n})(UInt8MajorType = exports.UInt8MajorType || (exports.UInt8MajorType = {}));\nObject.freeze(UInt8MajorType);\nfunction isUInt8MajorType(byte) {\n    return ((byte & 224) === byte &&\n        isMajorTypeTag(byte >> 5));\n}\nexports.isUInt8MajorType = isUInt8MajorType;\n/**\n * @static\n */\nvar AddInfos = /** @class */ (function () {\n    function AddInfos() {\n    }\n    AddInfos.Length = Object.freeze({\n        expect_uint8: 24,\n        expect_uint16: 25,\n        expect_uint32: 26,\n        expect_uint64: 27,\n        make_infinite: 31\n    });\n    AddInfos.Tag = {\n        utf8_string: 0 | 0,\n        epoch_datetime: 1 | 0,\n        positive_bignum: 2 | 0,\n        negative_bignum: 3 | 0,\n        decimal_frac_array: 4 | 0,\n        bigfloat: 5 | 0,\n        expect_base64_url: 21 | 0,\n        expect_base64: 22 | 0,\n        expect_base16: 23 | 0,\n        sub_cbor: 24 | 0,\n        uri: 32 | 0,\n        base64_url: 33 | 0,\n        base64: 34 | 0,\n        regexp: 35 | 0,\n        MIME: 36 | 0,\n        self_cbor: 55799 | 0\n    };\n    AddInfos.Major7 = Object.freeze({\n        false: 20,\n        true: 21,\n        null: 22,\n        undefined: 23,\n        simple_byte: 24,\n        float_half: 25,\n        float_single: 26,\n        float_double: 27,\n        infinite_break: 31\n    });\n    return AddInfos;\n}());\n/**\n * @static\n */\nvar CborConstants = /** @class */ (function () {\n    function CborConstants() {\n    }\n    ;\n    CborConstants.MajorTypeMask = 224;\n    CborConstants.AdditionalInfosMask = 31;\n    CborConstants.AddInfos = AddInfos;\n    CborConstants.MajorType = Object.freeze({\n        unsigned: 0,\n        negative: 1,\n        bytes: 2,\n        text: 3,\n        array: 4,\n        map: 5,\n        tag: 6,\n        float_or_simple: 7 // 111x_xxxx // \n    });\n    CborConstants.UInt8MajorType = Object.freeze({\n        unsigned: 0,\n        negative: 32,\n        bytes: 64,\n        text: 96,\n        array: 128,\n        map: 160,\n        tag: 192,\n        float_or_simple: 224\n    });\n    CborConstants.infinite_break = 255; // 0xff // 255\n    return CborConstants;\n}());\nexports.CborConstants = CborConstants;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/Cbor/Constants/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/Cbor/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/Cbor/index.js ***!
  \************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Cbor = void 0;\nvar CborString_1 = __webpack_require__(/*! ../CborString/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborString/index.js\");\nvar CborObj_1 = __webpack_require__(/*! ../CborObj/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js\");\nvar Constants_1 = __webpack_require__(/*! ./Constants/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/Cbor/Constants/index.js\");\nvar CborBytes_1 = __webpack_require__(/*! ../CborObj/CborBytes.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js\");\nvar CborText_1 = __webpack_require__(/*! ../CborObj/CborText.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js\");\nvar CborArray_1 = __webpack_require__(/*! ../CborObj/CborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js\");\nvar CborMap_1 = __webpack_require__(/*! ../CborObj/CborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js\");\nvar CborTag_1 = __webpack_require__(/*! ../CborObj/CborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js\");\nvar CborSimple_1 = __webpack_require__(/*! ../CborObj/CborSimple.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js\");\nvar CborUInt_1 = __webpack_require__(/*! ../CborObj/CborUInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js\");\nvar CborNegInt_1 = __webpack_require__(/*! ../CborObj/CborNegInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar BaseCborError_1 = __webpack_require__(/*! ../errors/BaseCborError/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nvar LazyCborArray_1 = __webpack_require__(/*! ../LazyCborObj/LazyCborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js\");\nvar LazyCborMap_1 = __webpack_require__(/*! ../LazyCborObj/LazyCborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js\");\nvar LazyCborTag_1 = __webpack_require__(/*! ../LazyCborObj/LazyCborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborTag.js\");\nvar errors_1 = __webpack_require__(/*! ../errors/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/index.js\");\n/** Lowest value that can be encoded directly as (negative) integer */\nvar minBigInt = BigInt(\"-18446744073709551616\"); // -(2n ** 64n)\n/** Highest value that can be encoded directly as (positive) integer */\nvar maxBigInt = BigInt(\"18446744073709551615\"); // (2n ** 64n) - 1n\n/**\n * @private to the module; not needed elsewhere\n */\nvar CborEncoding = /** @class */ (function () {\n    function CborEncoding() {\n        this._buff = new Uint8Array(256); // (1 << 8) bytes, 1/4 kB\n        this._len = 0;\n    }\n    Object.defineProperty(CborEncoding.prototype, \"bytes\", {\n        get: function () {\n            return this._buff.slice(0, this._len);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    CborEncoding.prototype._prepareAppendOfByteLength = function (l) {\n        var requiredLen = this._len + l;\n        var newBuffLen = this._buff.byteLength;\n        // expand the Uint8Array if needed\n        while (newBuffLen < requiredLen) {\n            newBuffLen = newBuffLen << 1; // old length * 2\n        }\n        // copies the old Uint8Array if expanded\n        if (newBuffLen !== this._buff.byteLength) {\n            var newBuff = new Uint8Array(newBuffLen);\n            for (var i = 0; i < this._len; i++) {\n                (0, uint8array_utils_1.writeUInt8)(newBuff, (0, uint8array_utils_1.readUInt8)(this._buff, i), i);\n            }\n            this._buff = newBuff;\n        }\n    };\n    CborEncoding.prototype._commitAppendOfByteLength = function (l) {\n        this._len += l;\n    };\n    CborEncoding.prototype.appendUInt8 = function (uint8) {\n        (0, assert_1.assert)(uint8 >= 0 && uint8 <= 255 &&\n            uint8 === Math.round(uint8), \"expected a byte; got: \" + uint8);\n        this._prepareAppendOfByteLength(1);\n        (0, uint8array_utils_1.writeUInt8)(this._buff, uint8, this._len);\n        this._commitAppendOfByteLength(1);\n    };\n    CborEncoding.prototype.appendUInt16 = function (uint16) {\n        (0, assert_1.assert)(uint16 >= 0 && uint16 <= 65535 &&\n            uint16 === Math.round(uint16), \"expected two bytes; got: \" + uint16);\n        this._prepareAppendOfByteLength(2);\n        (0, uint8array_utils_1.writeUInt16BE)(this._buff, uint16, this._len);\n        this._commitAppendOfByteLength(2);\n    };\n    CborEncoding.prototype.appendUInt32 = function (uint32) {\n        (0, assert_1.assert)(uint32 >= 0 && uint32 <= 4294967295 &&\n            uint32 === Math.round(uint32), \"expected 4 bytes; got: \" + uint32);\n        this._prepareAppendOfByteLength(4);\n        (0, uint8array_utils_1.writeUInt32BE)(this._buff, uint32, this._len);\n        this._commitAppendOfByteLength(4);\n    };\n    CborEncoding.prototype.appendUInt64 = function (uint64) {\n        (0, assert_1.assert)(typeof uint64 === \"bigint\" &&\n            uint64 >= BigInt(0) && uint64 <= BigInt(\"0b\" + \"11111111\".repeat(8)), \"expected 8 bytes; got: \" + uint64);\n        this._prepareAppendOfByteLength(8);\n        (0, uint8array_utils_1.writeBigUInt64BE)(this._buff, uint64, this._len);\n        this._commitAppendOfByteLength(8);\n    };\n    CborEncoding.prototype.appendFloat64 = function (float64) {\n        (0, assert_1.assert)(typeof float64 === \"number\", \"expected 8 bytes; got: \" + float64);\n        this._prepareAppendOfByteLength(8);\n        (0, uint8array_utils_1.writeFloat64BE)(this._buff, float64, this._len);\n        this._commitAppendOfByteLength(8);\n    };\n    CborEncoding.prototype.appendRawBytes = function (bytes) {\n        (0, assert_1.assert)((0, uint8array_utils_1.isUint8Array)(bytes), \"invalid bytes passed\");\n        this._prepareAppendOfByteLength(bytes.length);\n        for (var i = 0; i < bytes.length; i++) {\n            (0, uint8array_utils_1.writeUInt8)(this._buff, (0, uint8array_utils_1.readUInt8)(bytes, i), this._len + i);\n        }\n        this._commitAppendOfByteLength(bytes.length);\n    };\n    CborEncoding.prototype.appendTypeAndLength = function (cborType, length) {\n        (0, assert_1.assert)((0, Constants_1.isMajorTypeTag)(cborType), \"passed tag is not a valid major cbor type\");\n        (0, assert_1.assert)((typeof length === \"number\" || typeof length === \"bigint\") &&\n            length >= 0, \"invalid length\");\n        if (length > 4294967295) {\n            if (typeof length === \"number\")\n                length = BigInt(length);\n            this.appendUInt8((cborType << 5) | 27 /*expect_uint64*/);\n            this.appendUInt64(length);\n            return;\n        }\n        if (typeof length === \"bigint\")\n            length = Number(length);\n        if (length < 24) {\n            this.appendUInt8((cborType << 5) | length);\n        }\n        else if (length < 0x100) {\n            this.appendUInt8((cborType << 5) | 24);\n            this.appendUInt8(length);\n        }\n        else if (length < 0x10000) {\n            this.appendUInt8((cborType << 5) | 25);\n            this.appendUInt16(length);\n        }\n        else /* if (length < 0x100000000) */ {\n            this.appendUInt8((cborType << 5) | 26);\n            this.appendUInt32(length);\n        }\n    };\n    CborEncoding.prototype.appendCborObjEncoding = function (cObj) {\n        (0, assert_1.assert)((0, CborObj_1.isCborObj)(cObj), \"expected 'CborObj' strict instance; got: \" + cObj);\n        if (cObj instanceof CborUInt_1.CborUInt) {\n            (0, assert_1.assert)(cObj.num >= BigInt(0), \"encoding invalid unsigned integer as CBOR\");\n            var n = cObj.num;\n            // https://www.rfc-editor.org/rfc/rfc8949.html#name-bignums\n            if (n > maxBigInt) {\n                var hex = n.toString(16);\n                if ((hex.length % 2) === 1)\n                    hex = \"0\" + hex;\n                this.appendCborObjEncoding(new CborTag_1.CborTag(2, new CborBytes_1.CborBytes((0, uint8array_utils_1.fromHex)(hex))));\n                return;\n            }\n            // else\n            this.appendTypeAndLength(Constants_1.MajorType.unsigned, cObj.num);\n            return;\n        }\n        if (cObj instanceof CborNegInt_1.CborNegInt) {\n            (0, assert_1.assert)(cObj.num < BigInt(0), \"encoding invalid negative integer as CBOR\");\n            var n = cObj.num;\n            // https://www.rfc-editor.org/rfc/rfc8949.html#name-bignums\n            if (n < minBigInt) {\n                n = BigInt(-1) - n;\n                var hex = n.toString(16);\n                if ((hex.length % 2) === 1)\n                    hex = \"0\" + hex;\n                this.appendCborObjEncoding(new CborTag_1.CborTag(3, new CborBytes_1.CborBytes((0, uint8array_utils_1.fromHex)(hex))));\n                return;\n            }\n            // else\n            this.appendTypeAndLength(Constants_1.MajorType.negative, -(n + BigInt(1)));\n            return;\n        }\n        if (cObj instanceof CborBytes_1.CborBytes) {\n            if (cObj.isDefiniteLength) {\n                var bs = cObj.bytes;\n                this.appendTypeAndLength(Constants_1.MajorType.bytes, bs.length);\n                this.appendRawBytes(bs);\n                return;\n            }\n            else {\n                var chunks = cObj.chunks;\n                var nChunks = chunks.length;\n                this.appendUInt8((Constants_1.MajorType.bytes << 5) | 31);\n                var bs = void 0;\n                for (var i = 0; i < nChunks; i++) {\n                    bs = chunks[i];\n                    this.appendTypeAndLength(Constants_1.MajorType.bytes, bs.length);\n                    this.appendRawBytes(bs);\n                }\n                this.appendUInt8(255); // break\n                return;\n            }\n        }\n        if (cObj instanceof CborText_1.CborText) {\n            var bs = (0, uint8array_utils_1.fromUtf8)(cObj.text);\n            this.appendTypeAndLength(Constants_1.MajorType.text, bs.length);\n            this.appendRawBytes(bs);\n            return;\n        }\n        if (cObj instanceof CborArray_1.CborArray) {\n            var arr = cObj.array;\n            var arrLen = arr.length;\n            if (cObj.indefinite)\n                this.appendUInt8(0x9f);\n            else\n                this.appendTypeAndLength(Constants_1.MajorType.array, arrLen);\n            for (var i = 0; i < arrLen; i++) {\n                this.appendCborObjEncoding(arr[i]);\n            }\n            if (cObj.indefinite)\n                this.appendUInt8(0xff);\n            return;\n        }\n        if (cObj instanceof CborMap_1.CborMap) {\n            var map = cObj.map;\n            if (cObj.indefinite)\n                this.appendUInt8(0xbf);\n            else\n                this.appendTypeAndLength(Constants_1.MajorType.map, map.length);\n            for (var i = 0; i < map.length; i++) {\n                this.appendCborObjEncoding(map[i].k);\n                this.appendCborObjEncoding(map[i].v);\n            }\n            if (cObj.indefinite)\n                this.appendUInt8(0xff);\n            return;\n        }\n        if (cObj instanceof CborTag_1.CborTag) {\n            this.appendTypeAndLength(Constants_1.MajorType.tag, cObj.tag);\n            this.appendCborObjEncoding(cObj.data);\n            return;\n        }\n        if (cObj instanceof CborSimple_1.CborSimple) {\n            var simpValue = cObj.simple;\n            if (simpValue === false)\n                return this.appendUInt8(0xf4); // major type 6 (tag) | 20\n            if (simpValue === true)\n                return this.appendUInt8(0xf5); // major type 6 (tag) | 21\n            if (simpValue === null)\n                return this.appendUInt8(0xf6); // major type 6 (tag) | 22\n            if (simpValue === undefined)\n                return this.appendUInt8(0xf7); // major type 6 (tag) | 23\n            if (cObj.numAs === \"simple\" &&\n                simpValue >= 0 && simpValue <= 255 &&\n                simpValue === Math.round(simpValue)) {\n                this.appendTypeAndLength(Constants_1.MajorType.float_or_simple, simpValue);\n                return;\n            }\n            this.appendUInt8(0xfb); // (MajorType.float_or_simple << 5) | 27 (double precidison float)\n            this.appendFloat64(simpValue);\n            return;\n        }\n        throw new BaseCborError_1.BaseCborError(\"'CborEncoding.appendCborObjEncoding' did not match any possible 'CborObj'\");\n    };\n    return CborEncoding;\n}());\n/**\n * static class that allows CBOR encoding and decoding\n *\n * >**_NOTE:_** some tags that are not defined in the proper CBOR specification are automaticaly treated as PlutusData\n */\nvar Cbor = /** @class */ (function () {\n    function Cbor() {\n    }\n    ; // static class, working as namespace\n    Cbor.encode = function (cborObj) {\n        var encoded = new CborEncoding();\n        encoded.appendCborObjEncoding(cborObj);\n        return new CborString_1.CborString(encoded.bytes);\n    };\n    Cbor.parse = function (cbor) {\n        return Cbor.parseWithOffset(cbor).parsed;\n    };\n    Cbor.parseWithOffset = function (cbor) {\n        if (typeof cbor === \"string\")\n            cbor = (0, uint8array_utils_1.fromHex)(cbor);\n        (0, assert_1.assert)((cbor instanceof Uint8Array) || CborString_1.CborString.isStrictInstance(cbor), \"in 'Cbor.parse' expected an instance of 'CborString' or a 'Uint8Array' as input; got: \" + cbor);\n        var bytes = cbor instanceof CborString_1.CborString ?\n            cbor.toBuffer() :\n            cbor;\n        /**\n         * number of bytes red\n         * */\n        var offset = 0;\n        function incrementOffsetBy(l) {\n            offset += l;\n        }\n        function getBytesOfLength(l) {\n            if (bytes.length < offset + l)\n                throw new errors_1.CborParseError(\"not enoug bytes; missing at least \" +\n                    ((offset + l) - bytes.length) + \" bytes\");\n            incrementOffsetBy(l);\n            return bytes.slice(offset - l, // offset has been incremented prior reading\n            offset);\n        }\n        function getUInt8() {\n            incrementOffsetBy(1);\n            return (0, uint8array_utils_1.readUInt8)(bytes, offset - 1 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt16() {\n            incrementOffsetBy(2);\n            return (0, uint8array_utils_1.readUInt16BE)(bytes, offset - 2 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt32() {\n            incrementOffsetBy(4);\n            return (0, uint8array_utils_1.readUInt32BE)(bytes, offset - 4 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt64() {\n            incrementOffsetBy(8);\n            return (0, uint8array_utils_1.readBigUInt64BE)(bytes, offset - 8 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getFloat16() {\n            // increments the offset here\n            var floatBits = getUInt16();\n            var tempArrayBuffer = new ArrayBuffer(4);\n            var tempDataView = new DataView(tempArrayBuffer);\n            var sign = floatBits & 32768;\n            var exponent = floatBits & 31744;\n            var fraction = floatBits & 1023;\n            if (exponent === 0x7c00)\n                exponent = 0xff << 10;\n            else if (exponent !== 0)\n                exponent += (127 - 15) << 10;\n            else if (fraction !== 0)\n                return new CborSimple_1.CborSimple((sign !== 0 ? -1 : 1) * fraction * 5.960464477539063e-8, \"float\");\n            tempDataView.setUint32(0, sign << 16 | exponent << 13 | fraction << 13);\n            return new CborSimple_1.CborSimple(tempDataView.getFloat32(0), \"float\");\n        }\n        function getFloat32() {\n            incrementOffsetBy(4);\n            return new CborSimple_1.CborSimple((0, uint8array_utils_1.readFloat32BE)(bytes, offset - 4 // offset has been incremented prior reading\n            ), \"float\");\n        }\n        function getFloat64() {\n            incrementOffsetBy(8);\n            return new CborSimple_1.CborSimple((0, uint8array_utils_1.readFloat64BE)(bytes, offset - 8 // offset has been incremented prior reading\n            ), \"float\");\n        }\n        function incrementIfBreak() {\n            if ((0, uint8array_utils_1.readUInt8)(bytes, offset) !== 0xff)\n                return false;\n            incrementOffsetBy(1);\n            return true;\n        }\n        function getLength(addInfos) {\n            if (addInfos < 24)\n                return BigInt(addInfos);\n            if (addInfos === 24)\n                return BigInt(getUInt8());\n            if (addInfos === 25)\n                return BigInt(getUInt16());\n            if (addInfos === 26)\n                return BigInt(getUInt32());\n            if (addInfos === 27)\n                return getUInt64();\n            if (addInfos === 31)\n                return BigInt(-1); // indefinite length element follows\n            throw new BaseCborError_1.BaseCborError(\"Invalid length encoding while parsing CBOR\");\n        }\n        function getIndefiniteElemLengthOfType(majorType) {\n            var headerByte = getUInt8();\n            if (headerByte === 0xff) // break indefinite\n                return BigInt(-1);\n            var elemLength = getLength(headerByte & 31);\n            if (elemLength < 0 || (headerByte >> 5 !== majorType))\n                throw new BaseCborError_1.BaseCborError(\"unexpected nested indefinite length element\");\n            return elemLength;\n        }\n        function getTextOfLength(l) {\n            // increments offset while getting the bytes\n            return (0, uint8array_utils_1.toUtf8)(getBytesOfLength(l));\n        }\n        function parseCborObj() {\n            var headerByte = getUInt8();\n            var major = headerByte >> 5;\n            var addInfos = headerByte & 31;\n            if (major === Constants_1.MajorType.float_or_simple) {\n                if (addInfos === 25)\n                    return getFloat16();\n                if (addInfos === 26)\n                    return getFloat32();\n                if (addInfos === 27)\n                    return getFloat64();\n            }\n            var length = getLength(addInfos);\n            if (length < 0 &&\n                (major < 2 || major > 6)) {\n                throw new BaseCborError_1.BaseCborError(\"unexpected indefinite length element while parsing CBOR\");\n            }\n            switch (major) {\n                case Constants_1.MajorType.unsigned: return new CborUInt_1.CborUInt(length);\n                case Constants_1.MajorType.negative: return new CborNegInt_1.CborNegInt(-BigInt(1) - length);\n                case Constants_1.MajorType.bytes:\n                    if (length < 0) // data in UPLC v1.*.* serializes as indefinite length\n                     {\n                        var chunks = [];\n                        var elementLength = void 0;\n                        while ((elementLength = getIndefiniteElemLengthOfType(major)) >= 0) {\n                            chunks.push(getBytesOfLength(// increments offset\n                            Number(elementLength)));\n                        }\n                        if (chunks.length === 0)\n                            return new CborBytes_1.CborBytes(new Uint8Array([]), []); // empty indefinite length\n                        var _a = __read(chunks), fst = _a[0], rest = _a.slice(1);\n                        return new CborBytes_1.CborBytes(fst, rest); // indefinte length\n                    }\n                    // definite length\n                    return new CborBytes_1.CborBytes(getBytesOfLength(Number(length)));\n                case Constants_1.MajorType.text:\n                    if (length < 0) // indefinite length\n                     {\n                        var str = \"\";\n                        var l = 0;\n                        while ((l = Number(getIndefiniteElemLengthOfType(Constants_1.MajorType.text))) >= 0) {\n                            str += getTextOfLength(l);\n                        }\n                        return new CborText_1.CborText(str);\n                    }\n                    return new CborText_1.CborText(getTextOfLength(Number(length)));\n                case Constants_1.MajorType.array:\n                    var arrOfCbors = [];\n                    if (length < 0) {\n                        while (!incrementIfBreak()) {\n                            arrOfCbors.push(parseCborObj());\n                        }\n                    }\n                    else {\n                        for (var i = 0; i < length; i++) {\n                            arrOfCbors.push(parseCborObj());\n                        }\n                    }\n                    return new CborArray_1.CborArray(arrOfCbors, { indefinite: length < 0 });\n                case Constants_1.MajorType.map:\n                    var entries = [];\n                    if (length < 0) {\n                        while (!incrementIfBreak()) {\n                            entries.push({\n                                k: parseCborObj(),\n                                v: parseCborObj()\n                            });\n                        }\n                    }\n                    else {\n                        for (var i = 0; i < length; i++) {\n                            entries.push({\n                                k: parseCborObj(),\n                                v: parseCborObj()\n                            });\n                        }\n                    }\n                    return new CborMap_1.CborMap(entries, { indefinite: length < 0 });\n                case Constants_1.MajorType.tag: {\n                    var l = Number(length);\n                    var data = parseCborObj();\n                    // https://www.rfc-editor.org/rfc/rfc8949.html#name-bignums\n                    if (l === 2 && data instanceof CborBytes_1.CborBytes) {\n                        return new CborUInt_1.CborUInt(BigInt(\"0x\" +\n                            (0, uint8array_utils_1.toHex)(data.bytes)));\n                    }\n                    // https://www.rfc-editor.org/rfc/rfc8949.html#name-bignums\n                    else if (l === 3 && data instanceof CborBytes_1.CborBytes) {\n                        return new CborNegInt_1.CborNegInt(-(BigInt(\"0x\" +\n                            (0, uint8array_utils_1.toHex)(data.bytes)) + BigInt(1)));\n                    }\n                    // else just tag\n                    return new CborTag_1.CborTag(l, data);\n                }\n                case Constants_1.MajorType.float_or_simple:\n                    var nLen = Number(length);\n                    if (nLen === 20)\n                        return new CborSimple_1.CborSimple(false); // 0xf4\n                    if (nLen === 21)\n                        return new CborSimple_1.CborSimple(true); // 0xf5\n                    if (nLen === 22)\n                        return new CborSimple_1.CborSimple(null); // 0xf6\n                    if (nLen === 23)\n                        return new CborSimple_1.CborSimple(undefined); // 0xf7\n                    // flaots handled at the beginning of the function\n                    // since length isn't required\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized simple value\");\n                default:\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized majorType: \" + major);\n            }\n        }\n        return { parsed: parseCborObj(), offset: offset };\n    };\n    Cbor.parseLazy = function (cbor) {\n        return Cbor.parseLazyWithOffset(cbor).parsed;\n    };\n    Cbor.parseLazyWithOffset = function (cbor) {\n        if (typeof cbor === \"string\")\n            cbor = (0, uint8array_utils_1.fromHex)(cbor);\n        (0, assert_1.assert)((cbor instanceof Uint8Array) || CborString_1.CborString.isStrictInstance(cbor), \"in 'Cbor.parse' expected an instance of 'CborString' or a 'Uint8Array' as input; got: \" + cbor);\n        var bytes = cbor instanceof CborString_1.CborString ?\n            cbor.toBuffer() :\n            cbor;\n        /**\n         * number of bytes red\n         * */\n        var offset = 0;\n        function incrementOffsetBy(l) {\n            offset += l;\n        }\n        function getBytesOfLength(l) {\n            if (bytes.length < offset + l)\n                throw new errors_1.CborParseError(\"not enoug bytes; missing at least \" +\n                    ((offset + l) - bytes.length) + \" bytes\");\n            incrementOffsetBy(l);\n            return bytes.slice(offset - l, // offset has been incremented prior reading\n            offset);\n        }\n        function getUInt8() {\n            incrementOffsetBy(1);\n            return (0, uint8array_utils_1.readUInt8)(bytes, offset - 1 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt16() {\n            incrementOffsetBy(2);\n            return (0, uint8array_utils_1.readUInt16BE)(bytes, offset - 2 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt32() {\n            incrementOffsetBy(4);\n            return (0, uint8array_utils_1.readUInt32BE)(bytes, offset - 4 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getUInt64() {\n            incrementOffsetBy(8);\n            return (0, uint8array_utils_1.readBigUInt64BE)(bytes, offset - 8 // offset has been incremented prior reading\n            );\n        }\n        ;\n        function getFloat16() {\n            // increments the offset here\n            var floatBits = getUInt16();\n            var tempArrayBuffer = new ArrayBuffer(4);\n            var tempDataView = new DataView(tempArrayBuffer);\n            var sign = floatBits & 32768;\n            var exponent = floatBits & 31744;\n            var fraction = floatBits & 1023;\n            if (exponent === 0x7c00)\n                exponent = 0xff << 10;\n            else if (exponent !== 0)\n                exponent += (127 - 15) << 10;\n            else if (fraction !== 0)\n                return new CborSimple_1.CborSimple((sign !== 0 ? -1 : 1) * fraction * 5.960464477539063e-8, \"float\");\n            tempDataView.setUint32(0, sign << 16 | exponent << 13 | fraction << 13);\n            return new CborSimple_1.CborSimple(tempDataView.getFloat32(0), \"float\");\n        }\n        function getFloat32() {\n            incrementOffsetBy(4);\n            return new CborSimple_1.CborSimple((0, uint8array_utils_1.readFloat32BE)(bytes, offset - 4 // offset has been incremented prior reading\n            ), \"float\");\n        }\n        function getFloat64() {\n            incrementOffsetBy(8);\n            return new CborSimple_1.CborSimple((0, uint8array_utils_1.readFloat64BE)(bytes, offset - 8 // offset has been incremented prior reading\n            ), \"float\");\n        }\n        function incrementIfBreak() {\n            if ((0, uint8array_utils_1.readUInt8)(bytes, offset) !== 0xff)\n                return false;\n            incrementOffsetBy(1);\n            return true;\n        }\n        function getLength(addInfos) {\n            if (addInfos < 24)\n                return BigInt(addInfos);\n            if (addInfos === 24)\n                return BigInt(getUInt8());\n            if (addInfos === 25)\n                return BigInt(getUInt16());\n            if (addInfos === 26)\n                return BigInt(getUInt32());\n            if (addInfos === 27)\n                return getUInt64();\n            if (addInfos === 31)\n                return BigInt(-1); // indefinite length element follows\n            throw new BaseCborError_1.BaseCborError(\"Invalid length encoding while parsing CBOR\");\n        }\n        function getIndefiniteElemLengthOfType(majorType) {\n            var headerByte = getUInt8();\n            if (headerByte === 0xff) // break indefinite\n                return BigInt(-1);\n            var elemLength = getLength(headerByte & 31);\n            if (elemLength < 0 || (headerByte >> 5 !== majorType))\n                throw new BaseCborError_1.BaseCborError(\"unexpected nested indefinite length element\");\n            return elemLength;\n        }\n        function getTextOfLength(l) {\n            // increments offset while getting the bytes\n            return (0, uint8array_utils_1.toUtf8)(getBytesOfLength(l));\n        }\n        function getNextElemBytes() {\n            var elemStart = offset;\n            var headerByte = getUInt8();\n            var major = headerByte >> 5;\n            var addInfos = headerByte & 31;\n            if (major === Constants_1.MajorType.float_or_simple) {\n                if (addInfos === 25)\n                    return bytes.slice(elemStart, elemStart + 2);\n                if (addInfos === 26)\n                    return bytes.slice(elemStart, elemStart + 3);\n                if (addInfos === 27)\n                    return bytes.slice(elemStart, elemStart + 5);\n            }\n            var preLenOffset = offset;\n            var length = getLength(addInfos);\n            var postLenOffset = offset;\n            if (length < 0 &&\n                (major < 2 || major > 6)) {\n                throw new BaseCborError_1.BaseCborError(\"unexpected indefinite length element while parsing CBOR\");\n            }\n            switch (major) {\n                case Constants_1.MajorType.unsigned: return bytes.slice(elemStart, postLenOffset);\n                case Constants_1.MajorType.negative: return bytes.slice(elemStart, postLenOffset);\n                case Constants_1.MajorType.bytes:\n                    if (length < 0) // data in UPLC v1.*.* serializes as indefinite length\n                     {\n                        var elementLength = void 0;\n                        while ((elementLength = getIndefiniteElemLengthOfType(major)) >= 0) {\n                            // this operation is done when calling\n                            // `getBytesOfLength( Number( elementLength )`\n                            /// in the non-lazy verision\n                            incrementOffsetBy(Number(elementLength));\n                        }\n                        return bytes.slice(elemStart, offset);\n                    }\n                    // definite length\n                    // void getBytesOfLength( Number( length ) )\n                    incrementOffsetBy(Number(length)); // this is the only part we need of the above function\n                    return bytes.slice(elemStart, offset);\n                case Constants_1.MajorType.text:\n                    if (length < 0) // indefinite length\n                     {\n                        var str = \"\";\n                        var l = 0;\n                        while ((l = Number(getIndefiniteElemLengthOfType(Constants_1.MajorType.text))) >= 0) {\n                            // str += getTextOfLength( l );\n                            incrementOffsetBy(l);\n                        }\n                        return bytes.slice(elemStart, offset);\n                    }\n                    // void getTextOfLength( Number( length ) );\n                    incrementOffsetBy(Number(length)); // this is the only part we need of the above function\n                    return bytes.slice(elemStart, offset);\n                case Constants_1.MajorType.array:\n                    if (length < 0) {\n                        while (!incrementIfBreak()) {\n                            void getNextElemBytes();\n                        }\n                    }\n                    else {\n                        for (var i = 0; i < length; i++) {\n                            void getNextElemBytes();\n                        }\n                    }\n                    return bytes.slice(elemStart, offset);\n                case Constants_1.MajorType.map:\n                    if (length < 0) {\n                        while (!incrementIfBreak()) {\n                            void getNextElemBytes();\n                            void getNextElemBytes();\n                        }\n                    }\n                    else {\n                        for (var i = 0; i < length; i++) {\n                            void getNextElemBytes();\n                            void getNextElemBytes();\n                        }\n                    }\n                    return bytes.slice(elemStart, offset);\n                case Constants_1.MajorType.tag:\n                    void getNextElemBytes();\n                    return bytes.slice(elemStart, offset);\n                case Constants_1.MajorType.float_or_simple:\n                    var nLen = Number(length);\n                    if (nLen === 20)\n                        return bytes.slice(elemStart, offset); // 0xf4\n                    if (nLen === 21)\n                        return bytes.slice(elemStart, offset); // 0xf5\n                    if (nLen === 22)\n                        return bytes.slice(elemStart, offset); // 0xf6\n                    if (nLen === 23)\n                        return bytes.slice(elemStart, offset); // 0xf7\n                    // flaots handled at the beginning of the function\n                    // since length isn't required\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized simple value\");\n                default:\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized majorType: \" + major);\n            }\n        }\n        function parseCborObj() {\n            var headerByte = getUInt8();\n            var major = headerByte >> 5;\n            var addInfos = headerByte & 31;\n            if (major === Constants_1.MajorType.float_or_simple) {\n                if (addInfos === 25)\n                    return getFloat16();\n                if (addInfos === 26)\n                    return getFloat32();\n                if (addInfos === 27)\n                    return getFloat64();\n            }\n            var length = getLength(addInfos);\n            if (length < 0 &&\n                (major < 2 || major > 6)) {\n                throw new BaseCborError_1.BaseCborError(\"unexpected indefinite length element while parsing CBOR\");\n            }\n            switch (major) {\n                case Constants_1.MajorType.unsigned: return new CborUInt_1.CborUInt(length);\n                case Constants_1.MajorType.negative: return new CborNegInt_1.CborNegInt(-BigInt(1) - length);\n                case Constants_1.MajorType.bytes:\n                    if (length < 0) // data in UPLC v1.*.* serializes as indefinite length\n                     {\n                        var chunks = [];\n                        var fullUint8ArrayLength = 0;\n                        var elementLength = void 0;\n                        while ((elementLength = getIndefiniteElemLengthOfType(major)) >= 0) {\n                            fullUint8ArrayLength += Number(elementLength);\n                            chunks.push(getBytesOfLength(// increments offset\n                            Number(elementLength)));\n                        }\n                        var fullUint8Array = new Uint8Array(fullUint8ArrayLength);\n                        var fullUint8ArrayOffset = 0;\n                        for (var i = 0; i < chunks.length; ++i) {\n                            fullUint8Array.set(chunks[i], fullUint8ArrayOffset);\n                            fullUint8ArrayOffset += chunks[i].length;\n                        }\n                        return new CborBytes_1.CborBytes(Uint8Array.from(fullUint8Array));\n                    }\n                    // definite length\n                    return new CborBytes_1.CborBytes(getBytesOfLength(Number(length)));\n                case Constants_1.MajorType.text:\n                    if (length < 0) // indefinite length\n                     {\n                        var str = \"\";\n                        var l = 0;\n                        while ((l = Number(getIndefiniteElemLengthOfType(Constants_1.MajorType.text))) >= 0) {\n                            str += getTextOfLength(l);\n                        }\n                        return new CborText_1.CborText(str);\n                    }\n                    return new CborText_1.CborText(getTextOfLength(Number(length)));\n                case Constants_1.MajorType.array:\n                    if (length < 0) {\n                        var arr = [];\n                        while (!incrementIfBreak()) {\n                            arr.push(getNextElemBytes());\n                        }\n                        return new LazyCborArray_1.LazyCborArray(arr, { indefinite: true });\n                    }\n                    else {\n                        var arr = new Array(Number(length));\n                        for (var i = 0; i < length; i++) {\n                            arr[i] = getNextElemBytes();\n                        }\n                        return new LazyCborArray_1.LazyCborArray(arr, { indefinite: false });\n                    }\n                case Constants_1.MajorType.map:\n                    if (length < 0) {\n                        var entries = [];\n                        while (!incrementIfBreak()) {\n                            entries.push({\n                                k: getNextElemBytes(),\n                                v: getNextElemBytes()\n                            });\n                        }\n                        return new LazyCborMap_1.LazyCborMap(entries, { indefinite: true });\n                    }\n                    else {\n                        var entries = new Array(Number(length));\n                        for (var i = 0; i < length; i++) {\n                            entries[i] = {\n                                k: getNextElemBytes(),\n                                v: getNextElemBytes()\n                            };\n                        }\n                        return new LazyCborMap_1.LazyCborMap(entries, { indefinite: true });\n                    }\n                case Constants_1.MajorType.tag:\n                    return new LazyCborTag_1.LazyCborTag(Number(length), parseCborObj());\n                case Constants_1.MajorType.float_or_simple:\n                    var nLen = Number(length);\n                    if (nLen === 20)\n                        return new CborSimple_1.CborSimple(false); // 0xf4\n                    if (nLen === 21)\n                        return new CborSimple_1.CborSimple(true); // 0xf5\n                    if (nLen === 22)\n                        return new CborSimple_1.CborSimple(null); // 0xf6\n                    if (nLen === 23)\n                        return new CborSimple_1.CborSimple(undefined); // 0xf7\n                    // flaots handled at the beginning of the function\n                    // since length isn't required\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized simple value\");\n                default:\n                    throw new BaseCborError_1.BaseCborError(\"unrecognized majorType: \" + major);\n            }\n        }\n        return { parsed: parseCborObj(), offset: offset };\n    };\n    return Cbor;\n}());\nexports.Cbor = Cbor;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/Cbor/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborArray = exports.isRawCborArray = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar CborObj_1 = __webpack_require__(/*! ./CborObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isRawCborArray(arr) {\n    if (typeof arr !== \"object\")\n        return false;\n    var keys = Object.keys(arr);\n    return (keys.includes(\"array\") &&\n        Array.isArray(arr.array) &&\n        arr.array.every(CborObj_1.isRawCborObj));\n}\nexports.isRawCborArray = isRawCborArray;\nvar defaultOpts = Object.freeze({\n    indefinite: false\n});\nvar CborArray = /** @class */ (function () {\n    function CborArray(array, options) {\n        (0, assert_1.assert)(Array.isArray(array) &&\n            array.every(CborObj_1.isCborObj), \"in 'CborArray' constructor: invalid input; got: \" + array);\n        var indefinite = (options === null || options === void 0 ? void 0 : options.indefinite) === true ? true : defaultOpts.indefinite;\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"array\", array);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"indefinite\", indefinite === true);\n    }\n    CborArray.prototype.toRawObj = function () {\n        return {\n            array: this.array.map(function (cborObj) { return cborObj.toRawObj(); }),\n            options: this.indefinite === true ? {\n                indefinite: this.indefinite\n            } : undefined\n        };\n    };\n    CborArray.prototype.clone = function () {\n        return new CborArray(this.array, { indefinite: this.indefinite });\n    };\n    return CborArray;\n}());\nexports.CborArray = CborArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborBytes = exports.isRawCborBytes = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isRawCborBytes(b) {\n    if (typeof b !== \"object\" || b === null)\n        return false;\n    var keys = Object.keys(b);\n    return (keys.includes(\"bytes\") &&\n        (0, uint8array_utils_1.isUint8Array)(b.bytes));\n}\nexports.isRawCborBytes = isRawCborBytes;\nvar CborBytes = /** @class */ (function () {\n    function CborBytes(bytes, restChunks) {\n        if (restChunks === void 0) { restChunks = undefined; }\n        (0, assert_1.assert)((0, uint8array_utils_1.isUint8Array)(bytes), \"invalid buffer in CborBytes\");\n        var _originalRestWasEmptyArray = Array.isArray(restChunks) && restChunks.length === 0;\n        restChunks = Array.isArray(restChunks) ? restChunks.slice() : [];\n        restChunks = restChunks.filter(function (chunk) { return chunk instanceof Uint8Array; });\n        var _isDefiniteLength = (!_originalRestWasEmptyArray) && restChunks.length === 0;\n        Object.defineProperties(this, {\n            bytes: {\n                get: _isDefiniteLength ? function () { return bytes; } : function () { return concatBytes(bytes, (restChunks !== null && restChunks !== void 0 ? restChunks : [])); },\n                set: function () { },\n                enumerable: true,\n                configurable: false\n            },\n            chunks: {\n                value: Object.freeze(_isDefiniteLength ? [bytes] : __spreadArray([bytes], __read((restChunks !== null && restChunks !== void 0 ? restChunks : [])), false)),\n                writable: false,\n                enumerable: true,\n                configurable: false\n            },\n            isDefiniteLength: {\n                value: _isDefiniteLength,\n                writable: false,\n                enumerable: true,\n                configurable: false\n            }\n        });\n    }\n    Object.defineProperty(CborBytes.prototype, \"buffer\", {\n        /** @deprecated use `bytes` instead */\n        get: function () { return this.bytes; },\n        enumerable: false,\n        configurable: true\n    });\n    CborBytes.prototype.toRawObj = function () {\n        return {\n            bytes: Uint8Array.prototype.slice.call(this.bytes)\n        };\n    };\n    CborBytes.prototype.clone = function () {\n        if (this.isDefiniteLength)\n            return new CborBytes(Uint8Array.prototype.slice.call(this.bytes));\n        var _a = __read(this.chunks), bytes = _a[0], rest = _a.slice(1);\n        return new CborBytes(Uint8Array.prototype.slice.call(bytes), rest.map(function (chunk) { return Uint8Array.prototype.slice.call(chunk); }));\n    };\n    return CborBytes;\n}());\nexports.CborBytes = CborBytes;\nfunction concatBytes(fst, rest) {\n    // pre allocate resulting byte\n    var result = new Uint8Array(rest.reduce(function (a, b) { return a + b.length; }, fst.length));\n    var offset = fst.length;\n    result.set(fst, 0); // copy first\n    var elem;\n    for (var i = 0; i < rest.length; i++) {\n        elem = rest[i];\n        result.set(elem, offset); // copy ith\n        offset += elem.length;\n    }\n    return result;\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborMap = exports.isRawCborMap = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar _1 = __webpack_require__(/*! ./index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js\");\nvar defaultOpts = Object.freeze({\n    indefinite: false\n});\nfunction isRawCborMap(m) {\n    if (typeof m !== \"object\" || m === null)\n        return false;\n    var keys = Object.keys(m);\n    return (keys.includes(\"map\") &&\n        Array.isArray(m.map) &&\n        m.map.every(function (entry) {\n            if (typeof entry !== \"object\" || entry === null)\n                return false;\n            var entryKeys = Object.keys(entry);\n            return (entryKeys.includes(\"k\") &&\n                (0, _1.isRawCborObj)(entry.k) &&\n                entryKeys.includes(\"v\") &&\n                (0, _1.isRawCborObj)(entry.v));\n        }));\n}\nexports.isRawCborMap = isRawCborMap;\nvar CborMap = /** @class */ (function () {\n    function CborMap(map, options) {\n        var indefinite = (options === null || options === void 0 ? void 0 : options.indefinite) === true ? true : defaultOpts.indefinite;\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"map\", map);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"indefinite\", Boolean(indefinite));\n    }\n    CborMap.prototype.toRawObj = function () {\n        return {\n            map: this.map.map(function (entry) {\n                return {\n                    k: entry.k.toRawObj(),\n                    v: entry.v.toRawObj()\n                };\n            }),\n            options: {\n                indefinite: this.indefinite\n            }\n        };\n    };\n    CborMap.prototype.clone = function () {\n        return new CborMap(this.map.map(function (entry) { return ({\n            k: entry.k.clone(),\n            v: entry.v.clone()\n        }); }), { indefinite: this.indefinite });\n    };\n    return CborMap;\n}());\nexports.CborMap = CborMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborNegInt = exports.isRawCborNegative = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isRawCborNegative(neg) {\n    if (typeof neg !== \"object\" || neg === null)\n        return false;\n    var keys = Object.keys(neg);\n    return (keys.includes(\"neg\") &&\n        typeof neg.neg === \"bigint\" &&\n        neg.neg < 0);\n}\nexports.isRawCborNegative = isRawCborNegative;\nvar CborNegInt = /** @class */ (function () {\n    function CborNegInt(neg) {\n        if (typeof neg === \"number\")\n            neg = BigInt(neg);\n        (0, assert_1.assert)(typeof neg === \"bigint\" &&\n            neg < BigInt(0), \"neg CBOR numbers must be less than 0; got: \" + neg);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"num\", neg);\n    }\n    CborNegInt.prototype.toRawObj = function () {\n        return {\n            neg: this.num\n        };\n    };\n    CborNegInt.prototype.clone = function () {\n        return new CborNegInt(this.num);\n    };\n    return CborNegInt;\n}());\nexports.CborNegInt = CborNegInt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n/*\nIntermediate data type that allows an easier conversion from (and to) CBOR to (and from) JSON serializables objects\n*/\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.cborObjFromRaw = exports.isRawCborObj = exports.isCborObj = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar CborArray_1 = __webpack_require__(/*! ./CborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js\");\nvar CborBytes_1 = __webpack_require__(/*! ./CborBytes.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js\");\nvar CborMap_1 = __webpack_require__(/*! ./CborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js\");\nvar CborNegInt_1 = __webpack_require__(/*! ./CborNegInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js\");\nvar CborSimple_1 = __webpack_require__(/*! ./CborSimple.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js\");\nvar CborTag_1 = __webpack_require__(/*! ./CborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js\");\nvar CborText_1 = __webpack_require__(/*! ./CborText.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js\");\nvar CborUInt_1 = __webpack_require__(/*! ./CborUInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js\");\nvar errors_1 = __webpack_require__(/*! ../errors/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isCborObj(cborObj) {\n    var proto = Object.getPrototypeOf(cborObj);\n    // only strict instances\n    return (proto === CborNegInt_1.CborNegInt.prototype ||\n        proto === CborUInt_1.CborUInt.prototype ||\n        proto === CborBytes_1.CborBytes.prototype ||\n        proto === CborText_1.CborText.prototype ||\n        proto === CborArray_1.CborArray.prototype ||\n        proto === CborMap_1.CborMap.prototype ||\n        proto === CborTag_1.CborTag.prototype ||\n        proto === CborSimple_1.CborSimple.prototype);\n}\nexports.isCborObj = isCborObj;\nfunction isRawCborObj(rawCborObj) {\n    if (typeof rawCborObj !== \"object\" || rawCborObj === null || Array.isArray(rawCborObj))\n        return false;\n    var keys = Object.keys(rawCborObj);\n    if (keys.length <= 0)\n        return false;\n    if (keys.includes(\"array\")) {\n        return Array.isArray(rawCborObj.array) &&\n            rawCborObj.array.every(isRawCborObj);\n    }\n    if (keys.includes(\"map\")) {\n        return Array.isArray(rawCborObj.map) &&\n            rawCborObj.map.every(function (entry) { return isRawCborObj(entry.k) && isRawCborObj(entry.v); });\n    }\n    if (keys.includes(\"tag\")) {\n        return keys.includes(\"data\") &&\n            isRawCborObj(rawCborObj.data);\n    }\n    var includes = function (k) { return keys.includes(k); };\n    return ((includes(\"neg\") &&\n        typeof rawCborObj.neg === \"bigint\" &&\n        rawCborObj.neg < 0) ||\n        (includes(\"uint\") &&\n            typeof rawCborObj.uint === \"bigint\" &&\n            rawCborObj.uint >= 0) ||\n        (includes(\"bytes\") && (0, uint8array_utils_1.isUint8Array)(rawCborObj.bytes)) ||\n        (includes(\"text\") && typeof rawCborObj.text === \"string\") ||\n        (includes(\"simple\") && (0, CborSimple_1.isSimpleCborValue)(rawCborObj.simple)));\n}\nexports.isRawCborObj = isRawCborObj;\nfunction cborObjFromRaw(_rawCborObj) {\n    (0, assert_1.assert)(isRawCborObj(_rawCborObj), \"expected a vaild 'RawCborObj' as input; got: \" + Object.keys(_rawCborObj));\n    function _cborObjFromRaw(rawCborObj) {\n        if ((0, CborNegInt_1.isRawCborNegative)(rawCborObj))\n            return new CborNegInt_1.CborNegInt(rawCborObj.neg);\n        if ((0, CborUInt_1.isRawCborUnsigned)(rawCborObj))\n            return new CborUInt_1.CborUInt(rawCborObj.uint);\n        if ((0, CborBytes_1.isRawCborBytes)(rawCborObj))\n            return new CborBytes_1.CborBytes(rawCborObj.bytes);\n        if ((0, CborText_1.isRawCborText)(rawCborObj))\n            return new CborText_1.CborText(rawCborObj.text);\n        if ((0, CborArray_1.isRawCborArray)(rawCborObj))\n            return new CborArray_1.CborArray(rawCborObj.array\n                .map(_cborObjFromRaw), rawCborObj.options);\n        if ((0, CborMap_1.isRawCborMap)(rawCborObj))\n            return new CborMap_1.CborMap(rawCborObj.map\n                .map(function (entry) {\n                return {\n                    k: _cborObjFromRaw(entry.k),\n                    v: _cborObjFromRaw(entry.v)\n                };\n            }), rawCborObj.options);\n        if ((0, CborTag_1.isRawCborTag)(rawCborObj))\n            return new CborTag_1.CborTag(rawCborObj.tag, _cborObjFromRaw(rawCborObj.data));\n        if ((0, CborSimple_1.isRawCborSimple)(rawCborObj))\n            return new CborSimple_1.CborSimple(rawCborObj.simple);\n        throw new errors_1.BaseCborError(\"'cborObjFromRaw' did not match any possible 'RawCborObj'\");\n    }\n    return _cborObjFromRaw(_rawCborObj);\n}\nexports.cborObjFromRaw = cborObjFromRaw;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborSimple = exports.isRawCborSimple = exports.isSimpleCborValue = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isSimpleCborValue(v) {\n    var t = typeof v;\n    return (v === null ||\n        t === \"boolean\" ||\n        t === \"undefined\" ||\n        t === \"number\");\n}\nexports.isSimpleCborValue = isSimpleCborValue;\nfunction isRawCborSimple(s) {\n    if (typeof s !== \"object\" || s === null)\n        return false;\n    var keys = Object.keys(s);\n    return (keys.includes(\"simple\") &&\n        isSimpleCborValue(s.simple));\n}\nexports.isRawCborSimple = isRawCborSimple;\nvar CborSimple = /** @class */ (function () {\n    function CborSimple(simple, interpretNumAs) {\n        if (interpretNumAs === undefined &&\n            typeof simple === \"number\" &&\n            simple >= 0 && simple <= 255 &&\n            simple === Math.round(simple))\n            interpretNumAs = \"simple\";\n        if (interpretNumAs === undefined)\n            interpretNumAs = \"float\";\n        if (interpretNumAs === \"simple\") {\n            (0, assert_1.assert)(typeof simple === \"number\" &&\n                simple >= 0 && simple <= 255 &&\n                simple === Math.round(simple), \"invalid simple value\");\n        }\n        (0, assert_1.assert)(isSimpleCborValue(simple), \"invalid cbor simple value; received: \" + simple);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"simple\", simple);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"numAs\", interpretNumAs);\n    }\n    CborSimple.prototype.toRawObj = function () {\n        return {\n            simple: this.simple\n        };\n    };\n    CborSimple.prototype.clone = function () {\n        return new CborSimple(this.simple, this.numAs);\n    };\n    Object.defineProperty(CborSimple, \"null\", {\n        get: function () {\n            return new CborSimple(null);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(CborSimple, \"true\", {\n        get: function () {\n            return new CborSimple(true);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(CborSimple, \"false\", {\n        get: function () {\n            return new CborSimple(false);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(CborSimple, \"undefined\", {\n        get: function () {\n            return new CborSimple(undefined);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    CborSimple.simpleNumber = function (n) {\n        if (typeof n !== \"number\")\n            n = 0;\n        return new CborSimple(n, \"simple\");\n    };\n    CborSimple.float = function (n) {\n        if (typeof n !== \"number\")\n            n = 0;\n        return new CborSimple(n, \"float\");\n    };\n    return CborSimple;\n}());\nexports.CborSimple = CborSimple;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborTag = exports.isRawCborTag = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nvar ints_1 = __webpack_require__(/*! ../utils/ints.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/ints.js\");\nvar CborObj_1 = __webpack_require__(/*! ./CborObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js\");\nfunction isRawCborTag(t) {\n    if (typeof t !== \"object\" || t === null)\n        return false;\n    var keys = Object.keys(t);\n    return (keys.includes(\"tag\") &&\n        keys.includes(\"data\") &&\n        (0, ints_1.canBeUInteger)(t.tag) &&\n        (0, CborObj_1.isRawCborObj)(t.data));\n}\nexports.isRawCborTag = isRawCborTag;\nvar CborTag = /** @class */ (function () {\n    function CborTag(tag, data) {\n        if (typeof tag === \"number\")\n            tag = BigInt(tag);\n        (0, assert_1.assert)(typeof tag === \"bigint\" &&\n            (0, CborObj_1.isCborObj)(data), \"using direct value constructor; either 'tag' is not a number or 'data' is missing\");\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"tag\", tag);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"data\", data);\n    }\n    CborTag.prototype.toRawObj = function () {\n        return {\n            tag: this.tag,\n            data: this.data.toRawObj(),\n        };\n    };\n    CborTag.prototype.clone = function () {\n        return new CborTag(this.tag, this.data.clone());\n    };\n    return CborTag;\n}());\nexports.CborTag = CborTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborText = exports.isRawCborText = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isRawCborText(t) {\n    if (typeof t !== \"object\" || t === null)\n        return false;\n    var keys = Object.keys(t);\n    return (keys.includes(\"text\") &&\n        typeof t.text === \"string\");\n}\nexports.isRawCborText = isRawCborText;\nvar CborText = /** @class */ (function () {\n    function CborText(text) {\n        (0, assert_1.assert)(typeof text === \"string\", \"invalid text in 'CborText' passed\");\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"text\", text);\n    }\n    CborText.prototype.toRawObj = function () {\n        return {\n            text: this.text\n        };\n    };\n    CborText.prototype.clone = function () {\n        return new CborText(this.text);\n    };\n    return CborText;\n}());\nexports.CborText = CborText;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborUInt = exports.isRawCborUnsigned = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nfunction isRawCborUnsigned(unsign) {\n    if (typeof unsign !== \"object\" || unsign === null)\n        return false;\n    var keys = Object.keys(unsign);\n    return (keys.includes(\"uint\") &&\n        typeof unsign.uint === \"bigint\" &&\n        unsign.uint >= 0);\n}\nexports.isRawCborUnsigned = isRawCborUnsigned;\nvar CborUInt = /** @class */ (function () {\n    function CborUInt(uint) {\n        if (typeof uint === \"number\") {\n            uint = BigInt(uint);\n        }\n        (0, assert_1.assert)(typeof uint === \"bigint\" &&\n            uint >= BigInt(0), \"uint CBOR numbers must be greater or equal 0; got: \" + uint);\n        (0, obj_utils_1.defineReadOnlyProperty)(this, \"num\", uint);\n    }\n    CborUInt.prototype.toRawObj = function () {\n        return {\n            uint: this.num\n        };\n    };\n    CborUInt.prototype.clone = function () {\n        return new CborUInt(this.num);\n    };\n    return CborUInt;\n}());\nexports.CborUInt = CborUInt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js ***!
  \***************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./CborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborBytes.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborBytes.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborMap.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborNegInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborNegInt.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborSimple.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborSimple.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborText.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborText.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborUInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js\"), exports);\n__exportStar(__webpack_require__(/*! ./interfaces/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborObj.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/ToRawObj.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/ToRawObj.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/ToRawObj.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/index.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/index.js ***!
  \**************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./ToRawObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/ToRawObj.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborObj/interfaces/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/CborString/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/CborString/index.js ***!
  \******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborString = void 0;\nvar Cbor_1 = __webpack_require__(/*! ../Cbor/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/Cbor/index.js\");\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar CborString = /** @class */ (function (_super) {\n    __extends(CborString, _super);\n    function CborString(cbor) {\n        if (typeof cbor === \"string\") {\n            cbor = cbor.split(\" \").join(\"\");\n            // hex string length has to be even\n            cbor = (cbor.length % 2) ? \"0\" + cbor : cbor;\n        }\n        return _super.call(this, cbor) || this;\n    }\n    CborString.isStrictInstance = function (cborStr) {\n        return (cborStr !== undefined && cborStr !== null) && Object.getPrototypeOf(cborStr) === CborString.prototype;\n    };\n    CborString.fromCborObj = function (jsonCbor) {\n        return Cbor_1.Cbor.encode(jsonCbor);\n    };\n    CborString.prototype.toCborObj = function () {\n        return Cbor_1.Cbor.parse(this);\n    };\n    return CborString;\n}(bytestring_1.ByteString));\nexports.CborString = CborString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/CborString/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js ***!
  \***************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LazyCborArray = void 0;\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nvar defaultOpts = Object.freeze({\n    indefinite: false\n});\nvar LazyCborArray = /** @class */ (function () {\n    function LazyCborArray(array, options) {\n        (0, assert_1.assert)(Array.isArray(array) &&\n            array.every(function (elem) { return elem instanceof Uint8Array; }), \"in 'LazyCborArray' constructor: invalid input; got: \" + array);\n        var indefinite = __assign(__assign({}, defaultOpts), options).indefinite;\n        var _array = array;\n        Object.defineProperties(this, {\n            array: {\n                get: function () { return _array; },\n                set: function (arr) {\n                    if (Array.isArray(arr) &&\n                        arr.every(function (elem) { return elem instanceof Uint8Array; })) {\n                        _array = arr;\n                    }\n                },\n                enumerable: true,\n                configurable: false\n            },\n            indefinite: {\n                value: indefinite,\n                writable: false,\n                enumerable: true,\n                configurable: false\n            }\n        });\n    }\n    LazyCborArray.prototype.clone = function () {\n        return new LazyCborArray(this.array.map(function (elem) { return Uint8Array.prototype.slice.call(elem); }), { indefinite: this.indefinite });\n    };\n    return LazyCborArray;\n}());\nexports.LazyCborArray = LazyCborArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js ***!
  \*************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LazyCborMap = exports.isLazyCborMapEntry = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nvar defaultOpts = Object.freeze({\n    indefinite: false\n});\nfunction isLazyCborMapEntry(thing) {\n    return (0, obj_utils_1.isObject)(thing) && ((0, obj_utils_1.hasOwn)(thing, \"k\") && thing.k instanceof Uint8Array &&\n        (0, obj_utils_1.hasOwn)(thing, \"v\") && thing.v instanceof Uint8Array);\n}\nexports.isLazyCborMapEntry = isLazyCborMapEntry;\nvar LazyCborMap = /** @class */ (function () {\n    function LazyCborMap(map, options) {\n        (0, assert_1.assert)(Array.isArray(map) &&\n            map.every(isLazyCborMapEntry), \"in 'LazyCborMap' constructor: invalid input; got: \" + map);\n        var indefinite = __assign(__assign({}, defaultOpts), options).indefinite;\n        var _map = map;\n        Object.defineProperties(this, {\n            array: {\n                get: function () { return _map; },\n                set: function (newMap) {\n                    if (Array.isArray(newMap) &&\n                        newMap.every(isLazyCborMapEntry)) {\n                        _map = newMap;\n                    }\n                },\n                enumerable: true,\n                configurable: false\n            },\n            indefinite: {\n                value: indefinite,\n                writable: false,\n                enumerable: true,\n                configurable: false\n            }\n        });\n    }\n    LazyCborMap.prototype.clone = function () {\n        return new LazyCborMap(this.map.map(function (_a) {\n            var k = _a.k, v = _a.v;\n            return ({\n                k: Uint8Array.prototype.slice.call(k),\n                v: Uint8Array.prototype.slice.call(v),\n            });\n        }), { indefinite: this.indefinite });\n    };\n    return LazyCborMap;\n}());\nexports.LazyCborMap = LazyCborMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborObj.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborObj.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isLazyCborObj = void 0;\nvar CborObj_1 = __webpack_require__(/*! ../CborObj/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js\");\nvar LazyCborArray_1 = __webpack_require__(/*! ./LazyCborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js\");\nvar LazyCborMap_1 = __webpack_require__(/*! ./LazyCborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js\");\nvar LazyCborTag_1 = __webpack_require__(/*! ./LazyCborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborTag.js\");\nfunction isLazyCborObj(cborObj) {\n    var proto = Object.getPrototypeOf(cborObj);\n    // only strict instances\n    return (proto === CborObj_1.CborNegInt.prototype ||\n        proto === CborObj_1.CborUInt.prototype ||\n        proto === CborObj_1.CborBytes.prototype ||\n        proto === CborObj_1.CborText.prototype ||\n        proto === LazyCborArray_1.LazyCborArray.prototype ||\n        proto === LazyCborMap_1.LazyCborMap.prototype ||\n        proto === LazyCborTag_1.LazyCborTag.prototype ||\n        proto === CborObj_1.CborSimple.prototype);\n}\nexports.isLazyCborObj = isLazyCborObj;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborObj.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborTag.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborTag.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.LazyCborTag = void 0;\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/assert.js\");\nvar LazyCborObj_1 = __webpack_require__(/*! ./LazyCborObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborObj.js\");\nvar LazyCborTag = /** @class */ (function () {\n    function LazyCborTag(tag, data) {\n        if (typeof tag === \"number\") {\n            tag = BigInt(tag);\n        }\n        (0, assert_1.assert)(typeof tag === \"bigint\" &&\n            (0, LazyCborObj_1.isLazyCborObj)(data), \"using direct value constructor; either 'tag' is not a number or 'data' is not 'LazyCborObj'\");\n        var _tag = tag;\n        var _data = data;\n        Object.defineProperties(this, {\n            tag: {\n                get: function () { return _tag; },\n                set: function (val) {\n                    if (typeof tag === \"number\")\n                        tag = BigInt(tag);\n                    if (typeof tag === \"bigint\") {\n                        _tag = tag;\n                    }\n                },\n                enumerable: true,\n                configurable: false\n            },\n            data: {\n                get: function () { return _data; },\n                set: function (val) {\n                    if ((0, LazyCborObj_1.isLazyCborObj)(val)) {\n                        _data = val;\n                    }\n                },\n                enumerable: true,\n                configurable: false\n            }\n        });\n    }\n    LazyCborTag.prototype.clone = function () {\n        return new LazyCborTag(this.tag, this.data.clone());\n    };\n    return LazyCborTag;\n}());\nexports.LazyCborTag = LazyCborTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborTag.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/index.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./LazyCborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborArray.js\"), exports);\n__exportStar(__webpack_require__(/*! ./LazyCborMap.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborMap.js\"), exports);\n__exportStar(__webpack_require__(/*! ./LazyCborObj.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/LazyCborObj.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/CborParseError.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/CborParseError.js ***!
  \*************************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborParseError = void 0;\nvar _1 = __webpack_require__(/*! ./index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js\");\nvar CborParseError = /** @class */ (function (_super) {\n    __extends(CborParseError, _super);\n    function CborParseError() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return CborParseError;\n}(_1.BaseCborError));\nexports.CborParseError = CborParseError;\n;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/CborParseError.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js":
/*!****************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js ***!
  \****************************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.BaseCborError = void 0;\nvar BaseCborError = /** @class */ (function (_super) {\n    __extends(BaseCborError, _super);\n    function BaseCborError() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    return BaseCborError;\n}(Error));\nexports.BaseCborError = BaseCborError;\n;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/errors/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/errors/index.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./BaseCborError/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./BaseCborError/CborParseError.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/BaseCborError/CborParseError.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/errors/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/extra/CborRational.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/extra/CborRational.js ***!
  \********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.CborPositiveRational = void 0;\nvar obj_utils_1 = __webpack_require__(/*! @harmoniclabs/obj-utils */ \"./node_modules/@harmoniclabs/obj-utils/dist/index.js\");\nvar CborArray_1 = __webpack_require__(/*! ../CborObj/CborArray.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborArray.js\");\nvar CborTag_1 = __webpack_require__(/*! ../CborObj/CborTag.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborTag.js\");\nvar CborUInt_1 = __webpack_require__(/*! ../CborObj/CborUInt.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/CborUInt.js\");\nvar ints_1 = __webpack_require__(/*! ../utils/ints.js */ \"./node_modules/@harmoniclabs/cbor/dist/utils/ints.js\");\nvar CborPositiveRational = /** @class */ (function (_super) {\n    __extends(CborPositiveRational, _super);\n    function CborPositiveRational(num, den) {\n        var _this = this;\n        var _num = (0, ints_1.forceBigUInt)(num);\n        var _den = (0, ints_1.forceBigUInt)(den);\n        _this = _super.call(this, 30, new CborArray_1.CborArray([\n            new CborUInt_1.CborUInt(_num),\n            new CborUInt_1.CborUInt(_den)\n        ])) || this;\n        (0, obj_utils_1.defineReadOnlyProperty)(_this, \"num\", _num);\n        (0, obj_utils_1.defineReadOnlyProperty)(_this, \"den\", _den);\n        return _this;\n    }\n    CborPositiveRational.fromCborObjOrUndef = function (cObj) {\n        return ((cObj instanceof CborTag_1.CborTag &&\n            cObj.data instanceof CborArray_1.CborArray &&\n            cObj.data.array[0] instanceof CborUInt_1.CborUInt &&\n            cObj.data.array[1] instanceof CborUInt_1.CborUInt) ?\n            new CborPositiveRational(cObj.data.array[0].num, cObj.data.array[1].num)\n            : undefined);\n    };\n    CborPositiveRational.fromNumber = function (n) {\n        var _a = __read(n.toString().split(\".\"), 2), a = _a[0], b = _a[1];\n        /**\n         * b might be undefinded (eg. whole numbers)\n         * @since patch 1.1.2\n        **/\n        if (!(typeof b === \"string\")) {\n            return new CborPositiveRational(Number(a), 1);\n        }\n        return new CborPositiveRational(\n        // `a + b` is string concatenation\n        Number(a + b), Number(\"1e\".concat(b.length)));\n    };\n    CborPositiveRational.prototype.toNumber = function () {\n        return Number(this.num) / Number(this.den);\n    };\n    CborPositiveRational.prototype.valueOf = function () {\n        return this.toNumber();\n    };\n    return CborPositiveRational;\n}(CborTag_1.CborTag));\nexports.CborPositiveRational = CborPositiveRational;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/extra/CborRational.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/extra/index.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/extra/index.js ***!
  \*************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./CborRational.js */ \"./node_modules/@harmoniclabs/cbor/dist/extra/CborRational.js\"), exports);\n__exportStar(__webpack_require__(/*! ./readCborTypeAndLength.js */ \"./node_modules/@harmoniclabs/cbor/dist/extra/readCborTypeAndLength.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/extra/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/extra/readCborTypeAndLength.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/extra/readCborTypeAndLength.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.readCborTypeAndLength = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar Constants_1 = __webpack_require__(/*! ../Cbor/Constants/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/Cbor/Constants/index.js\");\nfunction readCborTypeAndLength(bytes) {\n    if (bytes.length < 1)\n        return undefined;\n    var headerByte = bytes[0];\n    var major = headerByte >> 5;\n    var addInfos = headerByte & 31;\n    if (major === Constants_1.MajorType.float_or_simple) {\n        if (addInfos === 25) {\n            var float = getFloat16(bytes);\n            if (float === undefined)\n                return undefined;\n            return {\n                type: major,\n                length: float\n            };\n        }\n        if (addInfos === 26) {\n            var float = getFloat32(bytes);\n            if (float === undefined)\n                return undefined;\n            return {\n                type: major,\n                length: float\n            };\n        }\n        if (addInfos === 27) {\n            var float = getFloat64(bytes);\n            if (float === undefined)\n                return undefined;\n            return {\n                type: major,\n                length: float\n            };\n        }\n        return {\n            type: major,\n            length: addInfos\n        };\n    }\n    var length = getLength(addInfos, bytes);\n    if (typeof length !== \"bigint\")\n        return undefined;\n    if (length < 0)\n        return {\n            type: major,\n            length: undefined // indefinite length\n        };\n    else\n        return {\n            type: major,\n            length: length\n        };\n    // if( length < 0 &&\n    //     ( major < 2 || major > 6 )\n    // )\n    // {\n    //     throw new BaseCborError( \"unexpected indefinite length element while parsing CBOR\" );\n    // }\n}\nexports.readCborTypeAndLength = readCborTypeAndLength;\nfunction getLength(addInfos, bytes) {\n    if (addInfos < 24)\n        return BigInt(addInfos);\n    if (addInfos === 24) {\n        if (bytes.length < 2)\n            return undefined;\n        return BigInt((0, uint8array_utils_1.readUint8)(bytes, 1));\n    }\n    if (addInfos === 25) {\n        if (bytes.length < 3)\n            return undefined;\n        return BigInt((0, uint8array_utils_1.readUint16BE)(bytes, 1));\n    }\n    if (addInfos === 26) {\n        if (bytes.length < 5)\n            return undefined;\n        return BigInt((0, uint8array_utils_1.readUint32BE)(bytes, 1));\n    }\n    if (addInfos === 27) {\n        if (bytes.length < 9)\n            return undefined;\n        return BigInt((0, uint8array_utils_1.readBigUInt64BE)(bytes, 1));\n    }\n    if (addInfos === 31)\n        return BigInt(-1); // indefinite length element follows\n    // throw new BaseCborError( \"Invalid length encoding while parsing CBOR\" );\n    return undefined;\n}\nfunction getFloat16(bytes) {\n    if (bytes.length < 3)\n        return undefined;\n    // increments the offset here\n    var floatBits = (0, uint8array_utils_1.readUint16BE)(bytes, 1);\n    var tempArrayBuffer = new ArrayBuffer(4);\n    var tempDataView = new DataView(tempArrayBuffer);\n    var sign = floatBits & 32768;\n    var exponent = floatBits & 31744;\n    var fraction = floatBits & 1023;\n    if (exponent === 0x7c00)\n        exponent = 0xff << 10;\n    else if (exponent !== 0)\n        exponent += (127 - 15) << 10;\n    else if (fraction !== 0)\n        return (sign !== 0 ? -1 : 1) * fraction * 5.960464477539063e-8;\n    tempDataView.setUint32(0, sign << 16 | exponent << 13 | fraction << 13);\n    return tempDataView.getFloat32(0);\n}\nfunction getFloat32(bytes) {\n    if (bytes.length < 5)\n        return undefined;\n    return (0, uint8array_utils_1.readFloat32BE)(bytes, 1);\n}\nfunction getFloat64(bytes) {\n    if (bytes.length < 9)\n        return undefined;\n    return (0, uint8array_utils_1.readFloat64BE)(bytes, 1);\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/extra/readCborTypeAndLength.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/index.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Cbor/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/Cbor/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CanBeCborString.js */ \"./node_modules/@harmoniclabs/cbor/dist/CanBeCborString.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborObj/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborObj/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./LazyCborObj/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/LazyCborObj/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./CborString/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/CborString/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./errors/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/errors/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./extra/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/extra/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./interfaces/index.js */ \"./node_modules/@harmoniclabs/cbor/dist/interfaces/index.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/interfaces/CBORSerializable.js":
/*!*****************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/interfaces/CBORSerializable.js ***!
  \*****************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/interfaces/CBORSerializable.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/interfaces/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/interfaces/index.js ***!
  \******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./CBORSerializable.js */ \"./node_modules/@harmoniclabs/cbor/dist/interfaces/CBORSerializable.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/interfaces/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/utils/assert.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/utils/assert.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/cbor/dist/utils/ints.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/cbor/dist/utils/ints.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.unsafeForceUInt = exports.forceBigUInt = exports.canBeUInteger = void 0;\nfunction canBeUInteger(something) {\n    return ((typeof something === \"bigint\" && something >= BigInt(0)) ||\n        (typeof something === \"number\" && something === Math.round(Math.abs(something))));\n}\nexports.canBeUInteger = canBeUInteger;\nfunction forceBigUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return BigInt(toForce);\n}\nexports.forceBigUInt = forceBigUInt;\n;\nfunction unsafeForceUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return Number(toForce);\n}\nexports.unsafeForceUInt = unsafeForceUInt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/cbor/dist/utils/ints.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/bech32.js":
/*!**********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/bech32.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.decodeBech32 = exports.isBech32 = exports.encodeBech32 = exports.getBech32Checksum = exports.getBech32Polymod = exports.expandBech32HumanReadablePart = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar types_1 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar base32_1 = __webpack_require__(/*! ./utils/base32.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/base32.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\n/**\n * Expand human readable prefix of the bech32 encoding so it can be used in the checkSum\n */\nfunction expandBech32HumanReadablePart(hrp) {\n    var e_1, _a, e_2, _b;\n    var bytes = [];\n    try {\n        for (var hrp_1 = __values(hrp), hrp_1_1 = hrp_1.next(); !hrp_1_1.done; hrp_1_1 = hrp_1.next()) {\n            var c = hrp_1_1.value;\n            bytes.push(c.charCodeAt(0) >> 5);\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (hrp_1_1 && !hrp_1_1.done && (_a = hrp_1.return)) _a.call(hrp_1);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    bytes.push(0);\n    try {\n        for (var hrp_2 = __values(hrp), hrp_2_1 = hrp_2.next(); !hrp_2_1.done; hrp_2_1 = hrp_2.next()) {\n            var c = hrp_2_1.value;\n            bytes.push(c.charCodeAt(0) & 31);\n        }\n    }\n    catch (e_2_1) { e_2 = { error: e_2_1 }; }\n    finally {\n        try {\n            if (hrp_2_1 && !hrp_2_1.done && (_b = hrp_2.return)) _b.call(hrp_2);\n        }\n        finally { if (e_2) throw e_2.error; }\n    }\n    return bytes;\n}\nexports.expandBech32HumanReadablePart = expandBech32HumanReadablePart;\nvar BECH32_POLYMOD_GEN = Object.freeze([0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3]);\n/**\n * Used as part of the bech32 checksum.\n */\nfunction getBech32Polymod(bytes) {\n    var e_3, _a;\n    var checksum = 1;\n    try {\n        for (var bytes_1 = __values(bytes), bytes_1_1 = bytes_1.next(); !bytes_1_1.done; bytes_1_1 = bytes_1.next()) {\n            var byte_1 = bytes_1_1.value;\n            var c = (checksum >> 25);\n            checksum = (checksum & 0x1fffffff) << 5 ^ byte_1;\n            for (var i = 0; i < 5; i++) {\n                if (((c >> i) & 1) != 0) {\n                    checksum ^= BECH32_POLYMOD_GEN[i];\n                }\n            }\n        }\n    }\n    catch (e_3_1) { e_3 = { error: e_3_1 }; }\n    finally {\n        try {\n            if (bytes_1_1 && !bytes_1_1.done && (_a = bytes_1.return)) _a.call(bytes_1);\n        }\n        finally { if (e_3) throw e_3.error; }\n    }\n    return checksum;\n}\nexports.getBech32Polymod = getBech32Polymod;\n/**\n * Generate the bech32 checksum\n */\nfunction getBech32Checksum(humanReadablePart, data) {\n    var checksum = getBech32Polymod(expandBech32HumanReadablePart(humanReadablePart)\n        .concat(data)\n        .concat([0, 0, 0, 0, 0, 0])) ^ 1;\n    var chkSum = [];\n    for (var i = 0; i < 6; i++) {\n        chkSum.push((checksum >> 5 * (5 - i)) & 31);\n    }\n    return chkSum;\n}\nexports.getBech32Checksum = getBech32Checksum;\n/**\n * Creates a bech32 checksummed string (used to represent Cardano addresses)\n * @example\n * encodeBech32(\"foo\", textToBytes(\"foobar\")) => \"foo1vehk7cnpwgry9h96\"\n * @example\n * encodeBech32(\"addr_test\", hexToBytes(\"70a9508f015cfbcffc3d88ac4c1c934b5b82d2bb281d464672f6c49539\")) => \"addr_test1wz54prcptnaullpa3zkyc8ynfddc954m9qw5v3nj7mzf2wggs2uld\"\n * @param {byte[]} data - uint8 0 - 256\n */\nfunction encodeBech32(humanReadablePart, data) {\n    (0, assert_1.assert)(humanReadablePart.length > 0, \"human-readable-part must have non-zero length\");\n    var _data = (0, types_1.buffToUint5Arr)((0, uint8array_utils_1.isUint8Array)(data) ? data : new Uint8Array(data));\n    return humanReadablePart + \"1\" +\n        _data.concat(getBech32Checksum(humanReadablePart, _data)).map(function (val) { return base32_1.BECH32_BASE32_ALPHABET[val]; }).join(\"\");\n}\nexports.encodeBech32 = encodeBech32;\n/**\n * Verify a bech32 checksum\n * @example\n * isBech32(\"foo1vehk7cnpwgry9h96\") => true\n * @example\n * isBech32(\"foo1vehk7cnpwgry9h97\") => false\n * @example\n * isBech32(\"a12uel5l\") => true\n * @example\n * isBech32(\"mm1crxm3i\") => false\n * @example\n * isBech32(\"A1G7SGD8\") => false\n * @example\n * isBech32(\"abcdef1qpzry9x8gf2tvdw0s3jn54khce6mua7lmqqqxw\") => true\n * @example\n * isBech32(\"?1ezyfcl\") => true\n * @example\n * isBech32(\"addr_test1wz54prcptnaullpa3zkyc8ynfddc954m9qw5v3nj7mzf2wggs2uld\") => true\n * @param {string} addr\n * @returns {boolean}\n */\nfunction isBech32(addr) {\n    var e_4, _a;\n    var i = addr.indexOf(\"1\");\n    if (i == -1 || i == 0) {\n        return false;\n    }\n    var hrp = addr.slice(0, i);\n    addr = addr.slice(i + 1);\n    var data = [];\n    try {\n        for (var addr_1 = __values(addr), addr_1_1 = addr_1.next(); !addr_1_1.done; addr_1_1 = addr_1.next()) {\n            var ch = addr_1_1.value;\n            var j = base32_1.BECH32_BASE32_ALPHABET.indexOf(ch);\n            if (j == -1) {\n                return false;\n            }\n            data.push(j);\n        }\n    }\n    catch (e_4_1) { e_4 = { error: e_4_1 }; }\n    finally {\n        try {\n            if (addr_1_1 && !addr_1_1.done && (_a = addr_1.return)) _a.call(addr_1);\n        }\n        finally { if (e_4) throw e_4.error; }\n    }\n    var chkSumA = data.slice(data.length - 6);\n    var chkSumB = getBech32Checksum(hrp, data.slice(0, data.length - 6));\n    for (var i_1 = 0; i_1 < 6; i_1++) {\n        if (chkSumA[i_1] != chkSumB[i_1]) {\n            return false;\n        }\n    }\n    return true;\n}\nexports.isBech32 = isBech32;\n/**\n * Decomposes a bech32 checksummed string (i.e. Cardano address), and returns the human readable part and the original bytes\n * Throws an error if checksum is invalid.\n * @example\n * bytesToHex(decodeBech32(\"addr_test1wz54prcptnaullpa3zkyc8ynfddc954m9qw5v3nj7mzf2wggs2uld\")[1]) => \"70a9508f015cfbcffc3d88ac4c1c934b5b82d2bb281d464672f6c49539\"\n * @param {string} addr\n * @returns {[humanReadablePart: string, bytes: byte[]]}\n */\nfunction decodeBech32(addr) {\n    (0, assert_1.assert)(isBech32(addr), \"invalid bech32 addr\");\n    var i = addr.indexOf(\"1\");\n    (0, assert_1.assert)(i != -1, \"bech32 address missing the '1' separator\");\n    var hrp = addr.slice(0, i);\n    addr = addr.slice(i + 1);\n    var data = (0, base32_1.decodeBase32Bech32)(addr.slice(0, addr.length - 6));\n    return [hrp, Array.from(data)];\n}\nexports.decodeBech32 = decodeBech32;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/bech32.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/blake2b.js":
/*!***********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/blake2b.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.blake2b_512 = exports.blake2b_256 = exports.blake2b_224 = exports.blake2b_128 = exports.blake2b = void 0;\n/**\n * 64-bit unsigned addition\n * Sets v[a,a+1] += v[b,b+1]\n * v should be a Uint32Array\n */\nfunction ADD64AA(v, a, b) {\n    var o0 = v[a] + v[b];\n    var o1 = v[a + 1] + v[b + 1];\n    if (o0 >= 0x100000000) {\n        o1++;\n    }\n    v[a] = o0;\n    v[a + 1] = o1;\n}\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC(v, a, b0, b1) {\n    var o0 = v[a] + b0;\n    if (b0 < 0) {\n        o0 += 0x100000000;\n    }\n    var o1 = v[a + 1] + b1;\n    if (o0 >= 0x100000000) {\n        o1++;\n    }\n    v[a] = o0;\n    v[a + 1] = o1;\n}\n// Little-endian byte access\nfunction B2B_GET32(arr, i) {\n    return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24);\n}\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G(a, b, c, d, ix, iy) {\n    var x0 = m[ix];\n    var x1 = m[ix + 1];\n    var y0 = m[iy];\n    var y1 = m[iy + 1];\n    ADD64AA(v, a, b); // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n    ADD64AC(v, a, x0, x1); // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n    // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n    var xor0 = v[d] ^ v[a];\n    var xor1 = v[d + 1] ^ v[a + 1];\n    v[d] = xor1;\n    v[d + 1] = xor0;\n    ADD64AA(v, c, d);\n    // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n    xor0 = v[b] ^ v[c];\n    xor1 = v[b + 1] ^ v[c + 1];\n    v[b] = (xor0 >>> 24) ^ (xor1 << 8);\n    v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8);\n    ADD64AA(v, a, b);\n    ADD64AC(v, a, y0, y1);\n    // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n    xor0 = v[d] ^ v[a];\n    xor1 = v[d + 1] ^ v[a + 1];\n    v[d] = (xor0 >>> 16) ^ (xor1 << 16);\n    v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16);\n    ADD64AA(v, c, d);\n    // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n    xor0 = v[b] ^ v[c];\n    xor1 = v[b + 1] ^ v[c + 1];\n    v[b] = (xor1 >>> 31) ^ (xor0 << 1);\n    v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1);\n}\n// Initialization Vector\nvar BLAKE2B_IV32 = new Uint32Array([\n    0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372,\n    0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c,\n    0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n]);\nvar SIGMA8 = [\n    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13,\n    6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1,\n    9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4,\n    10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5,\n    15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7,\n    14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2,\n    13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0,\n    1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6,\n    1, 12, 0, 2, 11, 7, 5, 3\n];\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nvar SIGMA82 = new Uint8Array(SIGMA8.map(function (x) {\n    return x * 2;\n}));\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nvar v = new Uint32Array(32);\nvar m = new Uint32Array(32);\nfunction blake2bCompress(ctx, last) {\n    var i = 0;\n    // init work variables\n    for (i = 0; i < 16; i++) {\n        v[i] = ctx.h[i];\n        v[i + 16] = BLAKE2B_IV32[i];\n    }\n    // low 64 bits of offset\n    v[24] = v[24] ^ ctx.t;\n    v[25] = v[25] ^ (ctx.t / 0x100000000);\n    // high 64 bits not supported, offset may not be higher than 2**53-1\n    // last block flag set ?\n    if (last) {\n        v[28] = ~v[28];\n        v[29] = ~v[29];\n    }\n    // get little-endian words\n    for (i = 0; i < 32; i++) {\n        m[i] = B2B_GET32(ctx.b, 4 * i);\n    }\n    // twelve rounds of mixing\n    // uncomment the DebugPrint calls to log the computation\n    // and match the RFC sample documentation\n    // util.debugPrint('          m[16]', m, 64)\n    for (i = 0; i < 12; i++) {\n        // util.debugPrint('   (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n        B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1]);\n        B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3]);\n        B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5]);\n        B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7]);\n        B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9]);\n        B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11]);\n        B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13]);\n        B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15]);\n    }\n    // util.debugPrint('   (i=12) v[16]', v, 64)\n    for (i = 0; i < 16; i++) {\n        ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16];\n    }\n    // util.debugPrint('h[8]', ctx.h, 64)\n}\n/** reusable parameterBlock */\nvar parameterBlock = new Uint8Array(64).fill(0);\nfunction blake2bInit(digestSize) {\n    // state, 'param block'\n    var ctx = {\n        b: new Uint8Array(128),\n        h: new Uint32Array(16),\n        t: 0,\n        c: 0,\n        digestSize: digestSize // output length in bytes\n    };\n    // initialize parameterBlock before usage\n    parameterBlock.fill(0);\n    parameterBlock[0] = digestSize;\n    parameterBlock[2] = 1; // fanout\n    parameterBlock[3] = 1; // depth\n    // initialize hash state\n    for (var i = 0; i < 16; i++) {\n        ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4);\n    }\n    return ctx;\n}\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate(ctx, input) {\n    for (var i = 0; i < input.length; i++) {\n        if (ctx.c === 128) {\n            // buffer full ?\n            ctx.t += ctx.c; // add counters\n            blake2bCompress(ctx, false); // compress (not last)\n            ctx.c = 0; // counter to zero\n        }\n        ctx.b[ctx.c++] = input[i];\n    }\n}\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal(ctx) {\n    ctx.t += ctx.c; // mark last block offset\n    while (ctx.c < 128) {\n        // fill up with zeros\n        ctx.b[ctx.c++] = 0;\n    }\n    blake2bCompress(ctx, true); // final block flag = 1\n    // little endian convert and store\n    var out = new Uint8Array(ctx.digestSize);\n    for (var i = 0; i < ctx.digestSize; i++) {\n        out[i] = ctx.h[i >> 2] >> (8 * (i & 3));\n    }\n    return out;\n}\nfunction blake2b(data, digestSize) {\n    if (digestSize === void 0) { digestSize = 32; }\n    data = new Uint8Array(data);\n    var ctx = blake2bInit(digestSize);\n    blake2bUpdate(ctx, data);\n    return blake2bFinal(ctx);\n}\nexports.blake2b = blake2b;\nfunction blake2b_128(data) {\n    return blake2b(data, 16);\n}\nexports.blake2b_128 = blake2b_128;\nfunction blake2b_224(data) {\n    return blake2b(data, 28);\n}\nexports.blake2b_224 = blake2b_224;\nfunction blake2b_256(data) {\n    return blake2b(data, 32);\n}\nexports.blake2b_256 = blake2b_256;\nfunction blake2b_512(data) {\n    return blake2b(data, 64);\n}\nexports.blake2b_512 = blake2b_512;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/blake2b.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/bls12_318.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/bls12_318.js ***!
  \*************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isFp6 = exports.isBlsResult = exports.bls12_381_finalVerify = exports.bls12_381_eqMlResult = exports.bls12_381_mulMlResult = exports.bls12_381_millerLoop = exports.bls12_381_G2_uncompress = exports.bls12_381_G2_compress = exports.bls12_381_G2_hashToGroup = exports.bls12_381_G2_equal = exports.bls12_381_G2_scalarMul = exports.bls12_381_G2_neg = exports.bls12_381_G2_add = exports.bls12_381_G1_uncompress = exports.bls12_381_G1_compress = exports.bls12_381_G1_hashToGroup = exports.bls12_381_G1_equal = exports.bls12_381_G1_scalarMul = exports.bls12_381_G1_neg = exports.bls12_381_G1_add = exports.isFp2 = exports.isBlsG2 = exports.isBlsG1 = exports.BlsG2 = exports.BlsG1 = void 0;\nvar noble_1 = __webpack_require__(/*! ./noble/index.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/index.js\");\nvar hash_to_curve_1 = __webpack_require__(/*! ./noble/abstract/hash-to-curve.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js\");\nvar utils_1 = __webpack_require__(/*! ./noble/abstract/utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\nvar sha256_1 = __webpack_require__(/*! ./noble/sha256.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js\");\nexports.BlsG1 = noble_1.bls12_381.G1.ProjectivePoint;\nexports.BlsG2 = noble_1.bls12_381.G2.ProjectivePoint;\nfunction isBlsG1(stuff) {\n    return stuff instanceof exports.BlsG1 && (typeof stuff.px === \"bigint\" &&\n        typeof stuff.py === \"bigint\" &&\n        typeof stuff.pz === \"bigint\");\n}\nexports.isBlsG1 = isBlsG1;\nfunction isBlsG2(stuff) {\n    return stuff instanceof exports.BlsG2 && (isFp2(stuff.px) &&\n        isFp2(stuff.py) &&\n        isFp2(stuff.pz));\n}\nexports.isBlsG2 = isBlsG2;\nfunction isFp2(stuff) {\n    return typeof stuff === \"object\" && (stuff !== null && !Array.isArray(stuff) &&\n        typeof stuff.c0 === \"bigint\" &&\n        typeof stuff.c1 === \"bigint\");\n}\nexports.isFp2 = isFp2;\nvar curveOrder = BigInt(\"52435875175126190479447740508185965837690552500527637822603658699938581184513\");\nvar htfDefaults = Object.freeze({\n    // DST: a domain separation tag\n    // defined in section 2.2.5\n    // Use utils.getDSTLabel(), utils.setDSTLabel(value)\n    DST: \"\",\n    encodeDST: \"\",\n    // p: the characteristic of F\n    //    where F is a finite field of characteristic p and order q = p^m\n    p: noble_1.Fp.ORDER,\n    // m: the extension degree of F, m >= 1\n    //     where F is a finite field of characteristic p and order q = p^m\n    m: 2,\n    // k: the target security level for the suite in bits\n    // defined in section 5.1\n    k: 128,\n    // option to use a message that has already been processed by\n    // expand_message_xmd\n    expand: 'xmd',\n    // Hash functions for: expand_message_xmd is appropriate for use with a\n    // wide range of hash functions, including SHA-2, SHA-3, BLAKE2, and others.\n    // BBS+ uses blake2: https://github.com/hyperledger/aries-framework-go/issues/2247\n    hash: sha256_1.sha256,\n});\nvar G2_Hasher = (0, hash_to_curve_1.createHasher)(exports.BlsG2, noble_1.G2_mapToCurve, __assign({}, htfDefaults));\nvar G1_Hasher = (0, hash_to_curve_1.createHasher)(exports.BlsG1, noble_1.G1_mapToCurve, __assign(__assign({}, htfDefaults), { m: 1, DST: 'BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_' }));\nfunction bls12_381_G1_add(a, b) {\n    // if( bls12_381_G1_equal( a, BlsG1.ZERO ) ) return b;\n    // if( bls12_381_G1_equal( b, BlsG1.ZERO ) ) return a;\n    return a.add(b);\n}\nexports.bls12_381_G1_add = bls12_381_G1_add;\nfunction bls12_381_G1_neg(elem) {\n    return elem.negate();\n}\nexports.bls12_381_G1_neg = bls12_381_G1_neg;\nfunction bls12_381_G1_scalarMul(n, g1) {\n    if (n < 0)\n        return bls12_381_G1_scalarMul(-n, bls12_381_G1_neg(g1));\n    n = BigInt(n);\n    if (n >= curveOrder)\n        n = n % curveOrder;\n    if (n === BigInt(0))\n        return exports.BlsG1.ZERO;\n    return g1.multiply(n);\n}\nexports.bls12_381_G1_scalarMul = bls12_381_G1_scalarMul;\nfunction bls12_381_G1_equal(a, b) {\n    return a.equals(b);\n}\nexports.bls12_381_G1_equal = bls12_381_G1_equal;\nfunction bls12_381_G1_hashToGroup(a, b) {\n    // noble-curves can handle that but the plutus-machine doesn't\n    // so we artificially throw an error here\n    if (b.length > 255)\n        throw new Error(\"DST length can not be greater than 255\");\n    return exports.BlsG1.fromAffine(G1_Hasher.hashToCurve(a, { DST: b })\n        .toAffine());\n}\nexports.bls12_381_G1_hashToGroup = bls12_381_G1_hashToGroup;\nfunction bls12_381_G1_compress(elem) {\n    return elem.toRawBytes();\n}\nexports.bls12_381_G1_compress = bls12_381_G1_compress;\nfunction bls12_381_G1_uncompress(compressed) {\n    var _a = (0, noble_1.parseMask)(compressed), compressed_bit = _a.compressed, infinity = _a.infinity, sort = _a.sort, value = _a.value;\n    // point zero edge case\n    if (compressed_bit &&\n        infinity &&\n        sort &&\n        value.every(function (n) { return n === 0; }))\n        throw new Error(\"sign bit set on pont ZERO, we don't like it\");\n    // not compressed bytes would be totally fine for the library but we artificially fail here\n    // https://github.com/IntersectMBO/plutus/blob/master/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G1_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc\n    if (!compressed_bit)\n        throw new Error(\"uncompress only works with compressed byets\");\n    return exports.BlsG1.fromHex(compressed);\n}\nexports.bls12_381_G1_uncompress = bls12_381_G1_uncompress;\nfunction bls12_381_G2_add(a, b) {\n    // if( bls12_381_G2_equal( a, BlsG2.ZERO ) ) return b;\n    // if( bls12_381_G2_equal( b, BlsG2.ZERO ) ) return a;\n    return a.add(b);\n}\nexports.bls12_381_G2_add = bls12_381_G2_add;\nfunction bls12_381_G2_neg(elem) {\n    return elem.negate();\n}\nexports.bls12_381_G2_neg = bls12_381_G2_neg;\nfunction bls12_381_G2_scalarMul(n, g2) {\n    if (n < 0)\n        return bls12_381_G2_scalarMul(-n, bls12_381_G2_neg(g2));\n    n = BigInt(n);\n    if (n >= curveOrder)\n        n = n % curveOrder;\n    if (n === BigInt(0))\n        return exports.BlsG2.ZERO;\n    return g2.multiply(BigInt(n));\n}\nexports.bls12_381_G2_scalarMul = bls12_381_G2_scalarMul;\nfunction bls12_381_G2_equal(a, b) {\n    return a.equals(b);\n}\nexports.bls12_381_G2_equal = bls12_381_G2_equal;\nfunction bls12_381_G2_hashToGroup(a, b) {\n    // noble-curves can handle that but the plutus-machine doesn't\n    // so we artificially throw an error here\n    if (b.length > 255)\n        throw new Error(\"DST length can not be greater than 255\");\n    return exports.BlsG2.fromAffine(G2_Hasher.hashToCurve(a, { DST: b })\n        .toAffine());\n}\nexports.bls12_381_G2_hashToGroup = bls12_381_G2_hashToGroup;\nfunction bls12_381_G2_compress(elem) {\n    return elem.toRawBytes();\n}\nexports.bls12_381_G2_compress = bls12_381_G2_compress;\nfunction bls12_381_G2_uncompress(compressed) {\n    var compressed_bit = (0, noble_1.parseMask)(compressed).compressed;\n    // not compressed bytes would be totally fine for the library but we artificially fail here\n    // https://github.com/IntersectMBO/plutus/blob/master/plutus-conformance/test-cases/uplc/evaluation/builtin/semantics/bls12_381_G2_uncompress/on-curve-serialised-not-compressed/on-curve-serialised-not-compressed.uplc\n    if (!compressed_bit)\n        throw new Error(\"uncompress only works with compressed byets\");\n    return exports.BlsG2.fromHex(compressed);\n}\nexports.bls12_381_G2_uncompress = bls12_381_G2_uncompress;\nfunction bls12_381_millerLoop(g1, g2) {\n    var _a = g1.toAffine(), x = _a.x, y = _a.y;\n    return millerLoop(pairingPrecomputes(g2), [x, y]);\n}\nexports.bls12_381_millerLoop = bls12_381_millerLoop;\nfunction bls12_381_mulMlResult(a, b) {\n    return (0, noble_1.Fp12Multiply)(a, b);\n}\nexports.bls12_381_mulMlResult = bls12_381_mulMlResult;\nexports.bls12_381_eqMlResult = noble_1.Fp12_eql;\nfunction bls12_381_finalVerify(a, b) {\n    // blst implementation https://github.com/supranational/blst/blob/0d46eefa45fc1e57aceb42bba0e84eab3a7a9725/src/aggregate.c#L506\n    var GT = (0, noble_1.Fp12_conjugate)(a);\n    GT = (0, noble_1.Fp12Multiply)(GT, b);\n    GT = (0, noble_1.Fp12_finalExponentiate)(GT);\n    return (0, noble_1.Fp12_eql)(GT, noble_1.Fp12_ONE);\n}\nexports.bls12_381_finalVerify = bls12_381_finalVerify;\n// The BLS parameter x for BLS12-381\nvar BLS_X = BigInt('0xd201000000010000');\nvar BLS_X_LEN = (0, utils_1.bitLen)(BLS_X);\nvar _2n = BigInt(2), _3n = BigInt(3);\n// Pre-compute coefficients for sparse multiplication\n// Point addition and point double calculations is reused for coefficients\nfunction calcPairingPrecomputes(p) {\n    var x = p.x, y = p.y;\n    // prettier-ignore\n    var Qx = x, Qy = y, Qz = noble_1.Fp2.ONE;\n    // prettier-ignore\n    var Rx = Qx, Ry = Qy, Rz = Qz;\n    var ell_coeff = [];\n    for (var i = BLS_X_LEN - 2; i >= 0; i--) {\n        // Double\n        var t0 = noble_1.Fp2.sqr(Ry); // Ry²\n        var t1 = noble_1.Fp2.sqr(Rz); // Rz²\n        var t2 = noble_1.Fp2.multiplyByB(noble_1.Fp2.mul(t1, _3n)); // 3 * T1 * B\n        var t3 = noble_1.Fp2.mul(t2, _3n); // 3 * T2\n        var t4 = noble_1.Fp2.sub(noble_1.Fp2.sub(noble_1.Fp2.sqr(noble_1.Fp2.add(Ry, Rz)), t1), t0); // (Ry + Rz)² - T1 - T0\n        ell_coeff.push([\n            noble_1.Fp2.sub(t2, t0),\n            noble_1.Fp2.mul(noble_1.Fp2.sqr(Rx), _3n),\n            noble_1.Fp2.neg(t4), // -T4\n        ]);\n        Rx = noble_1.Fp2.div(noble_1.Fp2.mul(noble_1.Fp2.mul(noble_1.Fp2.sub(t0, t3), Rx), Ry), _2n); // ((T0 - T3) * Rx * Ry) / 2\n        Ry = noble_1.Fp2.sub(noble_1.Fp2.sqr(noble_1.Fp2.div(noble_1.Fp2.add(t0, t3), _2n)), noble_1.Fp2.mul(noble_1.Fp2.sqr(t2), _3n)); // ((T0 + T3) / 2)² - 3 * T2²\n        Rz = noble_1.Fp2.mul(t0, t4); // T0 * T4\n        if ((0, utils_1.bitGet)(BLS_X /*CURVE.params.x*/, i)) {\n            // Addition\n            var t0_1 = noble_1.Fp2.sub(Ry, noble_1.Fp2.mul(Qy, Rz)); // Ry - Qy * Rz\n            var t1_1 = noble_1.Fp2.sub(Rx, noble_1.Fp2.mul(Qx, Rz)); // Rx - Qx * Rz\n            ell_coeff.push([\n                noble_1.Fp2.sub(noble_1.Fp2.mul(t0_1, Qx), noble_1.Fp2.mul(t1_1, Qy)),\n                noble_1.Fp2.neg(t0_1),\n                t1_1, // T1\n            ]);\n            var t2_1 = noble_1.Fp2.sqr(t1_1); // T1²\n            var t3_1 = noble_1.Fp2.mul(t2_1, t1_1); // T2 * T1\n            var t4_1 = noble_1.Fp2.mul(t2_1, Rx); // T2 * Rx\n            var t5 = noble_1.Fp2.add(noble_1.Fp2.sub(t3_1, noble_1.Fp2.mul(t4_1, _2n)), noble_1.Fp2.mul(noble_1.Fp2.sqr(t0_1), Rz)); // T3 - 2 * T4 + T0² * Rz\n            Rx = noble_1.Fp2.mul(t1_1, t5); // T1 * T5\n            Ry = noble_1.Fp2.sub(noble_1.Fp2.mul(noble_1.Fp2.sub(t4_1, t5), t0_1), noble_1.Fp2.mul(t3_1, Ry)); // (T4 - T5) * T0 - T3 * Ry\n            Rz = noble_1.Fp2.mul(Rz, t3_1); // Rz * T3\n        }\n    }\n    return ell_coeff;\n}\nfunction pairingPrecomputes(point) {\n    var p = point;\n    if (p._PPRECOMPUTES)\n        return p._PPRECOMPUTES;\n    p._PPRECOMPUTES = calcPairingPrecomputes(point.toAffine());\n    return p._PPRECOMPUTES;\n}\nfunction millerLoop(ell, g1) {\n    var x = BLS_X;\n    var Px = g1[0];\n    var Py = g1[1];\n    var f12 = noble_1.Fp12.ONE;\n    for (var j = 0, i = BLS_X_LEN - 2; i >= 0; i--, j++) {\n        var E = ell[j];\n        f12 = noble_1.Fp12.multiplyBy014(f12, E[0], noble_1.Fp2.mul(E[1], Px), noble_1.Fp2.mul(E[2], Py));\n        if ((0, utils_1.bitGet)(x, i)) {\n            j += 1;\n            var F = ell[j];\n            f12 = noble_1.Fp12.multiplyBy014(f12, F[0], noble_1.Fp2.mul(F[1], Px), noble_1.Fp2.mul(F[2], Py));\n        }\n        if (i !== 0)\n            f12 = noble_1.Fp12.sqr(f12);\n    }\n    return noble_1.Fp12.conjugate(f12);\n}\nfunction isBlsResult(stuff) {\n    return typeof stuff === \"object\" && (stuff !== null && !Array.isArray(stuff) &&\n        isFp6(stuff.c0) &&\n        isFp6(stuff.c1));\n}\nexports.isBlsResult = isBlsResult;\nfunction isFp6(stuff) {\n    return typeof stuff === \"object\" && (stuff !== null && !Array.isArray(stuff) &&\n        isFp2(stuff.c0) &&\n        isFp2(stuff.c1) &&\n        isFp2(stuff.c2));\n}\nexports.isFp6 = isFp6;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/bls12_318.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/ed25519.js":
/*!***********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/ed25519.js ***!
  \***********************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ed25519bigint = exports.verifyEd25519Signature = exports.getEd25519Signature = exports.signExtendedEd25519 = exports.signEd25519 = exports.extendedToPublic = exports.deriveEd25519PublicKey = exports.extendEd25519PrivateKey = exports.scalarMultBase = exports.scalarFromBytes = exports.pointFromBytes = exports.bigpointToUint8Array = exports.encodeInt = exports.scalarMul = exports.addPointsEdwards = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar sha2_512_1 = __webpack_require__(/*! ./sha2_512.js */ \"./node_modules/@harmoniclabs/crypto/dist/sha2_512.js\");\nvar types_1 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar positiveMod_1 = __webpack_require__(/*! ./utils/positiveMod.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/positiveMod.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\nvar bigintToBuffer_1 = __webpack_require__(/*! ./utils/bigintToBuffer.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/bigintToBuffer.js\");\nvar Q = BigInt(\"57896044618658097711785492504343953926634992332820282019728792003956564819949\"); // ipowi(255) - 19\nvar Q38 = BigInt(\"7237005577332262213973186563042994240829374041602535252466099000494570602494\"); // (Q + 3)/8\nvar CURVE_ORDER = BigInt(\"7237005577332262213973186563042994240857116359379907606001950938285454250989\"); // ipow2(252) + 27742317777372353535851937790883648493;\nvar D = -BigInt(\"4513249062541557337682894930092624173785641285191125241628941591882900924598840740\"); // -121665 * invert(121666);\nvar I = BigInt(\"19681161376707505956807079304988542015446066515923890162744021073123829784752\"); // expMod(BigInt( 2 ), (Q - BigInt( 1 ))/4, Q);\nvar BASE = Object.freeze([\n    BigInt(\"15112221349535400772501151409588531511454012693041857206046113283949847762202\"),\n    BigInt(\"46316835694926478169428394003475163141307993866256225615783033603165251855960\") // (4*invert(5)) % Q\n]);\n/**\n *\n * @param {bigint} b\n * @param {bigint} e\n * @param {bigint} m\n * @returns {bigint}\n */\nfunction expMod(b, e, m) {\n    if (e == BigInt(0)) {\n        return BigInt(1);\n    }\n    else {\n        var t = expMod(b, e / BigInt(2), m);\n        t = (t * t) % m;\n        if ((e % BigInt(2)) != BigInt(0)) {\n            t = (0, positiveMod_1.positiveMod)(t * b, m);\n        }\n        return t;\n    }\n}\nfunction invert(n) {\n    var a = (0, positiveMod_1.positiveMod)(n, Q);\n    var b = Q;\n    var x = BigInt(0);\n    var y = BigInt(1);\n    var u = BigInt(1);\n    var v = BigInt(0);\n    while (a !== BigInt(0)) {\n        var q = b / a;\n        var r = b % a;\n        var m = x - u * q;\n        var n_1 = y - v * q;\n        b = a;\n        a = r;\n        x = u;\n        y = v;\n        u = m;\n        v = n_1;\n    }\n    return (0, positiveMod_1.positiveMod)(x, Q);\n}\n/**\n * @param {bigint} y\n * @returns {bigint}\n */\nfunction recoverX(y) {\n    var yy = y * y;\n    var xx = (yy - BigInt(1)) * invert(D * yy + BigInt(1));\n    var x = expMod(xx, Q38, Q);\n    if (((x * x - xx) % Q) !== BigInt(0)) {\n        x = (x * I) % Q;\n    }\n    if ((x % BigInt(2)) !== BigInt(0)) {\n        x = Q - x;\n    }\n    return x;\n}\n/**\n * Curve point 'addition'\n * Note: this is probably the bottleneck of this Ed25519 implementation\n */\nfunction addPointsEdwards(a, b) {\n    var x1 = a[0];\n    var y1 = a[1];\n    var x2 = b[0];\n    var y2 = b[1];\n    var dxxyy = D * x1 * x2 * y1 * y2;\n    var x3 = (x1 * y2 + x2 * y1) * invert(BigInt(1) + dxxyy);\n    var y3 = (y1 * y2 + x1 * x2) * invert(BigInt(1) - dxxyy);\n    return [(0, positiveMod_1.positiveMod)(x3, Q), (0, positiveMod_1.positiveMod)(y3, Q)];\n}\nexports.addPointsEdwards = addPointsEdwards;\nfunction scalarMul(point, n) {\n    if (n === BigInt(0)) {\n        return [BigInt(0), BigInt(1)];\n    }\n    else {\n        var sum = scalarMul(point, n / BigInt(2));\n        sum = addPointsEdwards(sum, sum);\n        if ((n % BigInt(2)) !== BigInt(0)) {\n            sum = addPointsEdwards(sum, point);\n        }\n        return sum;\n    }\n}\nexports.scalarMul = scalarMul;\n/**\n * Curve point 'multiplication'\n */\nfunction encodeInt(y) {\n    var bytes = Array.from((0, bigintToBuffer_1.bigintToBuffer)(y)).reverse();\n    while (bytes.length < 32) {\n        bytes.push(0);\n    }\n    return bytes;\n}\nexports.encodeInt = encodeInt;\nfunction decodeInt(s) {\n    return BigInt(\"0x\" + (0, types_1.byteArrToHex)(s.reverse()));\n}\nfunction bigpointToByteArray(point) {\n    var _a = __read(point, 2), x = _a[0], y = _a[1];\n    var bytes = encodeInt(y);\n    // last bit is determined by x\n    bytes[31] = ((bytes[31] & 255) | (Number(x & BigInt(1)) * 128));\n    return bytes;\n}\nfunction bigpointToUint8Array(point) {\n    return new Uint8Array(bigpointToByteArray(point));\n}\nexports.bigpointToUint8Array = bigpointToUint8Array;\nfunction getBit(bytes, i) {\n    return ((bytes[Math.floor(i / 8)] >> i % 8) & 1);\n}\nfunction isOnCurve(point) {\n    var x = point[0];\n    var y = point[1];\n    var xx = x * x;\n    var yy = y * y;\n    return (-xx + yy - BigInt(1) - D * xx * yy) % Q == BigInt(0);\n}\nfunction pointFromBytes(s) {\n    if (s instanceof Uint8Array)\n        s = asBytes(s);\n    (0, assert_1.assert)(s.length == 32, \"point must have length of 32\");\n    var bytes = s.slice();\n    bytes[31] = (bytes[31] & 127);\n    var y = decodeInt(bytes);\n    var x = recoverX(y);\n    if (Number(x & BigInt(1)) != getBit(s, 255)) {\n        x = Q - x;\n    }\n    var point = [x, y];\n    if (!isOnCurve(point)) {\n        throw new Error(\"point isn't on curve\");\n    }\n    return point;\n}\nexports.pointFromBytes = pointFromBytes;\nvar ipow2_253 = BigInt(\"28948022309329048855892746252171976963317496166410141009864396001978282409984\"); // ipow2(253)\nfunction scalarFromBytes(h) {\n    var bytes = h.slice(0, 32);\n    bytes[0] = (bytes[0] & 248);\n    bytes[31] = (bytes[31] & 63);\n    return ipow2_253 + BigInt(\"0x\" + (0, types_1.byteArrToHex)(bytes.reverse()));\n}\nexports.scalarFromBytes = scalarFromBytes;\nfunction ihash(m) {\n    return decodeInt((0, sha2_512_1.sha2_512)(m));\n}\nfunction forceUint8Array(stuff) {\n    if (typeof stuff === \"string\")\n        return (0, uint8array_utils_1.fromHex)(stuff);\n    return (0, uint8array_utils_1.isUint8Array)(stuff) ? stuff : new Uint8Array(stuff);\n}\nfunction scalarMultBase(scalar) {\n    return scalarMul(BASE, scalar);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction extendEd25519PrivateKey(privateKey) {\n    var extended = (0, sha2_512_1.sha2_512)(privateKey);\n    var extension = extended.slice(32, 64);\n    var a = scalarFromBytes(extended.slice(0, 32));\n    return [a, extension];\n}\nexports.extendEd25519PrivateKey = extendEd25519PrivateKey;\nfunction deriveEd25519PublicKey(privateKey) {\n    var extended = (0, sha2_512_1.sha2_512)(privateKey);\n    var a = scalarFromBytes(extended);\n    var A = scalarMul(BASE, a);\n    return bigpointToByteArray(A);\n}\nexports.deriveEd25519PublicKey = deriveEd25519PublicKey;\nfunction extendedToPublic(extended) {\n    if (extended instanceof Uint8Array)\n        extended = Array.from(extended);\n    var a = scalarFromBytes(extended);\n    var A = scalarMul(BASE, a);\n    return new Uint8Array(bigpointToByteArray(A));\n}\nexports.extendedToPublic = extendedToPublic;\nfunction asBytes(stuff) {\n    if (typeof stuff === \"string\")\n        return asBytes((0, uint8array_utils_1.fromHex)(stuff));\n    return Array.from(stuff);\n}\nfunction signEd25519(message, privateKey) {\n    message = forceUint8Array(message);\n    privateKey = forceUint8Array(privateKey);\n    return signExtendedEd25519(message, (0, sha2_512_1.sha2_512)(asBytes(privateKey)));\n}\nexports.signEd25519 = signEd25519;\nfunction signExtendedEd25519(message, extendedKey) {\n    var _a;\n    message = forceUint8Array(message);\n    extendedKey = forceUint8Array(extendedKey);\n    if (extendedKey.length !== 64)\n        throw new Error('signExtendedEd25519:: extended key must have length 64');\n    var privateKeyHash = asBytes(extendedKey);\n    var a = scalarFromBytes(privateKeyHash);\n    // for convenience getulate publicKey here:\n    var publicKey = bigpointToByteArray(scalarMul(BASE, a));\n    var r = ihash(privateKeyHash.slice(32, 64).concat(asBytes(message)));\n    var R = scalarMul(BASE, r);\n    var S = (0, positiveMod_1.positiveMod)(r + ihash(bigpointToByteArray(R).concat(publicKey).concat(asBytes(message))) * a, CURVE_ORDER);\n    var pubKey = new Uint8Array(publicKey);\n    var signature = new Uint8Array(bigpointToByteArray(R).concat(encodeInt(S)));\n    return _a = {\n            0: pubKey,\n            1: signature,\n            length: 2\n        },\n        _a[Symbol.iterator] = function () {\n            return __generator(this, function (_a) {\n                switch (_a.label) {\n                    case 0: return [4 /*yield*/, pubKey];\n                    case 1:\n                        _a.sent();\n                        return [4 /*yield*/, signature];\n                    case 2:\n                        _a.sent();\n                        return [2 /*return*/];\n                }\n            });\n        },\n        _a.pubKey = pubKey,\n        _a.signature = signature,\n        _a;\n}\nexports.signExtendedEd25519 = signExtendedEd25519;\nfunction getEd25519Signature(message, privateKey) {\n    return signEd25519(message, privateKey).signature;\n}\nexports.getEd25519Signature = getEd25519Signature;\nfunction verifyEd25519Signature(signature, message, publicKey) {\n    if (signature.length !== 64 || publicKey.length != 32) {\n        throw new Error(\"unexpected signature length \".concat(signature.length));\n    }\n    if ((0, uint8array_utils_1.isUint8Array)(signature)) {\n        signature = (0, types_1.buffToByteArr)(signature);\n    }\n    if ((0, uint8array_utils_1.isUint8Array)(message)) {\n        message = (0, types_1.buffToByteArr)(message);\n    }\n    if ((0, uint8array_utils_1.isUint8Array)(publicKey)) {\n        publicKey = (0, types_1.buffToByteArr)(publicKey);\n    }\n    var R = pointFromBytes(asBytes(signature).slice(0, 32));\n    var A = pointFromBytes(asBytes(publicKey));\n    var S = decodeInt(asBytes(signature).slice(32, 64));\n    var h = ihash(asBytes(signature).slice(0, 32).concat(asBytes(publicKey)).concat(asBytes(message)));\n    var left = scalarMul(BASE, S);\n    var right = addPointsEdwards(R, scalarMul(A, h));\n    return (left[0] == right[0]) && (left[1] == right[1]);\n}\nexports.verifyEd25519Signature = verifyEd25519Signature;\nvar _0n = BigInt(0);\nvar ED25519_ORDER = BigInt('57896044618658097711785492504343953926634992332820282019728792003956564819949');\nfunction mod(a, b) {\n    var result = a % b;\n    return result >= _0n ? result : b + result;\n}\nfunction ed25519bigint(n) {\n    return mod(n, ED25519_ORDER);\n}\nexports.ed25519bigint = ed25519bigint;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/ed25519.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/hmacSHA512.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/hmacSHA512.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.hmacSHA512 = void 0;\nvar hmac_1 = __webpack_require__(/*! ./noble/hmac.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/hmac.js\");\nvar sha512_1 = __webpack_require__(/*! ./noble/sha512.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/sha512.js\");\nfunction hmacSHA512(key, data) {\n    return new Uint8Array((0, hmac_1.hmac)(sha512_1.sha512, key, data));\n}\nexports.hmacSHA512 = hmacSHA512;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/hmacSHA512.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/index.js ***!
  \*********************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./bech32.js */ \"./node_modules/@harmoniclabs/crypto/dist/bech32.js\"), exports);\n__exportStar(__webpack_require__(/*! ./blake2b.js */ \"./node_modules/@harmoniclabs/crypto/dist/blake2b.js\"), exports);\n__exportStar(__webpack_require__(/*! ./bls12_318.js */ \"./node_modules/@harmoniclabs/crypto/dist/bls12_318.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ed25519.js */ \"./node_modules/@harmoniclabs/crypto/dist/ed25519.js\"), exports);\n__exportStar(__webpack_require__(/*! ./hmacSHA512.js */ \"./node_modules/@harmoniclabs/crypto/dist/hmacSHA512.js\"), exports);\n__exportStar(__webpack_require__(/*! ./keccak.js */ \"./node_modules/@harmoniclabs/crypto/dist/keccak.js\"), exports);\n__exportStar(__webpack_require__(/*! ./secp256k1.js */ \"./node_modules/@harmoniclabs/crypto/dist/secp256k1.js\"), exports);\n__exportStar(__webpack_require__(/*! ./sha2_256.js */ \"./node_modules/@harmoniclabs/crypto/dist/sha2_256.js\"), exports);\n__exportStar(__webpack_require__(/*! ./sha2_512.js */ \"./node_modules/@harmoniclabs/crypto/dist/sha2_512.js\"), exports);\n__exportStar(__webpack_require__(/*! ./sha3.js */ \"./node_modules/@harmoniclabs/crypto/dist/sha3.js\"), exports);\n__exportStar(__webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\"), exports);\n__exportStar(__webpack_require__(/*! ./utils/index.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./vrf.js */ \"./node_modules/@harmoniclabs/crypto/dist/vrf.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ripemd_160.js */ \"./node_modules/@harmoniclabs/crypto/dist/ripemd_160.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/keccak.js":
/*!**********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/keccak.js ***!
  \**********************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.keccak_512 = exports.keccak_384 = exports.keccak_224 = exports.keccak_256 = void 0;\nvar noble = __importStar(__webpack_require__(/*! ./noble/keccak.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/keccak.js\"));\nfunction keccak_256(msg) {\n    return noble.keccak_256(msg);\n}\nexports.keccak_256 = keccak_256;\nfunction keccak_224(msg) {\n    return noble.keccak_224(msg);\n}\nexports.keccak_224 = keccak_224;\nfunction keccak_384(msg) {\n    return noble.keccak_384(msg);\n}\nexports.keccak_384 = keccak_384;\nfunction keccak_512(msg) {\n    return noble.keccak_512(msg);\n}\nexports.keccak_512 = keccak_512;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/keccak.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/_assert.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/_assert.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.output = exports.exists = exports.hash = exports.bytes = exports.bool = exports.number = exports.isBytes = void 0;\nfunction number(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error(\"positive integer expected, not \".concat(n));\n}\nexports.number = number;\nfunction bool(b) {\n    if (typeof b !== 'boolean')\n        throw new Error(\"boolean expected, not \".concat(b));\n}\nexports.bool = bool;\n// copied from utils\nfunction isBytes(a) {\n    return (a instanceof Uint8Array ||\n        (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nexports.isBytes = isBytes;\nfunction bytes(b) {\n    var lengths = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        lengths[_i - 1] = arguments[_i];\n    }\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error(\"Uint8Array expected of length \".concat(lengths, \", not of length=\").concat(b.length));\n}\nexports.bytes = bytes;\nfunction hash(hash) {\n    if (typeof hash !== 'function' || typeof hash.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.wrapConstructor');\n    number(hash.outputLen);\n    number(hash.blockLen);\n}\nexports.hash = hash;\nfunction exists(instance, checkFinished) {\n    if (checkFinished === void 0) { checkFinished = true; }\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\nexports.exists = exists;\nfunction output(out, instance) {\n    bytes(out);\n    var min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error(\"digestInto() expects output buffer of length at least \".concat(min));\n    }\n}\nexports.output = output;\nvar assert = { number: number, bool: bool, bytes: bytes, hash: hash, exists: exists, output: output };\nexports[\"default\"] = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/_assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/_md.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/_md.js ***!
  \*************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HashMD = exports.Maj = exports.Chi = void 0;\nvar _assert_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_assert.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    var _32n = BigInt(32);\n    var _u32_max = BigInt(0xffffffff);\n    var wh = Number((value >> _32n) & _u32_max);\n    var wl = Number(value & _u32_max);\n    var h = isLE ? 4 : 0;\n    var l = isLE ? 0 : 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\n// Choice: a ? b : c\nvar Chi = function (a, b, c) { return (a & b) ^ (~a & c); };\nexports.Chi = Chi;\n// Majority function, true if any two inpust is true\nvar Maj = function (a, b, c) { return (a & b) ^ (a & c) ^ (b & c); };\nexports.Maj = Maj;\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nvar HashMD = /** @class */ (function (_super) {\n    __extends(HashMD, _super);\n    function HashMD(blockLen, outputLen, padOffset, isLE) {\n        var _this = _super.call(this) || this;\n        _this.blockLen = blockLen;\n        _this.outputLen = outputLen;\n        _this.padOffset = padOffset;\n        _this.isLE = isLE;\n        _this.finished = false;\n        _this.length = 0;\n        _this.pos = 0;\n        _this.destroyed = false;\n        _this.buffer = new Uint8Array(blockLen);\n        _this.view = (0, utils_1.createView)(_this.buffer);\n        return _this;\n    }\n    HashMD.prototype.update = function (data) {\n        (0, _assert_1.exists)(this);\n        var _a = this, view = _a.view, buffer = _a.buffer, blockLen = _a.blockLen;\n        data = (0, utils_1.toBytes)(data);\n        var len = data.length;\n        for (var pos = 0; pos < len;) {\n            var take = Math.min(blockLen - this.pos, len - pos);\n            // Fast path: we have at least one block in input, cast it to view and process\n            if (take === blockLen) {\n                var dataView = (0, utils_1.createView)(data);\n                for (; blockLen <= len - pos; pos += blockLen)\n                    this.process(dataView, pos);\n                continue;\n            }\n            buffer.set(data.subarray(pos, pos + take), this.pos);\n            this.pos += take;\n            pos += take;\n            if (this.pos === blockLen) {\n                this.process(view, 0);\n                this.pos = 0;\n            }\n        }\n        this.length += data.length;\n        this.roundClean();\n        return this;\n    };\n    HashMD.prototype.digestInto = function (out) {\n        (0, _assert_1.exists)(this);\n        (0, _assert_1.output)(out, this);\n        this.finished = true;\n        // Padding\n        // We can avoid allocation of buffer for padding completely if it\n        // was previously not allocated here. But it won't change performance.\n        var _a = this, buffer = _a.buffer, view = _a.view, blockLen = _a.blockLen, isLE = _a.isLE;\n        var pos = this.pos;\n        // append the bit '1' to the message\n        buffer[pos++] = 128;\n        this.buffer.subarray(pos).fill(0);\n        // we have less than padOffset left in buffer, so we cannot put length in\n        // current block, need process it and pad again\n        if (this.padOffset > blockLen - pos) {\n            this.process(view, 0);\n            pos = 0;\n        }\n        // Pad until full block byte with zeros\n        for (var i = pos; i < blockLen; i++)\n            buffer[i] = 0;\n        // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n        // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n        // So we just write lowest 64 bits of that value.\n        setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n        this.process(view, 0);\n        var oview = (0, utils_1.createView)(out);\n        var len = this.outputLen;\n        // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n        if (len % 4)\n            throw new Error('_sha2: outputLen should be aligned to 32bit');\n        var outLen = len / 4;\n        var state = this.get();\n        if (outLen > state.length)\n            throw new Error('_sha2: outputLen bigger than state');\n        for (var i = 0; i < outLen; i++)\n            oview.setUint32(4 * i, state[i], isLE);\n    };\n    HashMD.prototype.digest = function () {\n        var _a = this, buffer = _a.buffer, outputLen = _a.outputLen;\n        this.digestInto(buffer);\n        var res = Uint8Array.prototype.slice.call(buffer, 0, outputLen);\n        this.destroy();\n        return res;\n    };\n    HashMD.prototype._cloneInto = function (to) {\n        to || (to = new this.constructor());\n        to.set.apply(to, __spreadArray([], __read(this.get()), false));\n        var _a = this, blockLen = _a.blockLen, buffer = _a.buffer, length = _a.length, finished = _a.finished, destroyed = _a.destroyed, pos = _a.pos;\n        to.length = length;\n        to.pos = pos;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        if (length % blockLen)\n            to.buffer.set(buffer);\n        return to;\n    };\n    return HashMD;\n}(utils_1.Hash));\nexports.HashMD = HashMD;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/_md.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/_shortw_utils.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/_shortw_utils.js ***!
  \***********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createCurve = exports.getHash = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nvar hmac_1 = __webpack_require__(/*! ./hmac.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/hmac.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\nvar weierstrass_1 = __webpack_require__(/*! ./abstract/weierstrass.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js\");\n// connects noble-curves to noble-hashes\nfunction getHash(hash) {\n    return {\n        hash: hash,\n        hmac: function (key) {\n            var msgs = [];\n            for (var _i = 1; _i < arguments.length; _i++) {\n                msgs[_i - 1] = arguments[_i];\n            }\n            return (0, hmac_1.hmac)(hash, key, utils_1.concatBytes.apply(void 0, __spreadArray([], __read(msgs), false)));\n        },\n        randomBytes: utils_1.randomBytes,\n    };\n}\nexports.getHash = getHash;\nfunction createCurve(curveDef, defHash) {\n    var create = function (hash) { return (0, weierstrass_1.weierstrass)(__assign(__assign({}, curveDef), getHash(hash))); };\n    return Object.freeze(__assign(__assign({}, create(defHash)), { create: create }));\n}\nexports.createCurve = createCurve;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/_shortw_utils.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/_u64.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/_u64.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.add5H = exports.add5L = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.add = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = exports.split = exports.fromBig = void 0;\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-hashes/blob/6ae82e75d4c354d53a488e95b1bfe9cba90bd6ff/src/_u64.ts#L1\n\nit was modified and adapted to this repository to re-use already defined stuff\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar U32_MASK64 = /* @__PURE__ */ BigInt(Math.pow(2, 32) - 1);\nvar _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le) {\n    if (le === void 0) { le = false; }\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexports.fromBig = fromBig;\nfunction split(lst, le) {\n    var _a;\n    if (le === void 0) { le = false; }\n    var Ah = new Uint32Array(lst.length);\n    var Al = new Uint32Array(lst.length);\n    for (var i = 0; i < lst.length; i++) {\n        var _b = fromBig(lst[i], le), h = _b.h, l = _b.l;\n        _a = __read([h, l], 2), Ah[i] = _a[0], Al[i] = _a[1];\n    }\n    return [Ah, Al];\n}\nexports.split = split;\nvar toBig = function (h, l) { return (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0); };\nexports.toBig = toBig;\n// for Shift in [0, 32)\nvar shrSH = function (h, _l, s) { return h >>> s; };\nexports.shrSH = shrSH;\nvar shrSL = function (h, l, s) { return (h << (32 - s)) | (l >>> s); };\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nvar rotrSH = function (h, l, s) { return (h >>> s) | (l << (32 - s)); };\nexports.rotrSH = rotrSH;\nvar rotrSL = function (h, l, s) { return (h << (32 - s)) | (l >>> s); };\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nvar rotrBH = function (h, l, s) { return (h << (64 - s)) | (l >>> (s - 32)); };\nexports.rotrBH = rotrBH;\nvar rotrBL = function (h, l, s) { return (h >>> (s - 32)) | (l << (64 - s)); };\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nvar rotr32H = function (_h, l) { return l; };\nexports.rotr32H = rotr32H;\nvar rotr32L = function (h, _l) { return h; };\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nvar rotlSH = function (h, l, s) { return (h << s) | (l >>> (32 - s)); };\nexports.rotlSH = rotlSH;\nvar rotlSL = function (h, l, s) { return (l << s) | (h >>> (32 - s)); };\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nvar rotlBH = function (h, l, s) { return (l << (s - 32)) | (h >>> (64 - s)); };\nexports.rotlBH = rotlBH;\nvar rotlBL = function (h, l, s) { return (h << (s - 32)) | (l >>> (64 - s)); };\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n    var l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / Math.pow(2, 32)) | 0)) | 0, l: l | 0 };\n}\nexports.add = add;\n// Addition with more than 2 elements\nvar add3L = function (Al, Bl, Cl) { return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); };\nexports.add3L = add3L;\nvar add3H = function (low, Ah, Bh, Ch) {\n    return (Ah + Bh + Ch + ((low / Math.pow(2, 32)) | 0)) | 0;\n};\nexports.add3H = add3H;\nvar add4L = function (Al, Bl, Cl, Dl) {\n    return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\n};\nexports.add4L = add4L;\nvar add4H = function (low, Ah, Bh, Ch, Dh) {\n    return (Ah + Bh + Ch + Dh + ((low / Math.pow(2, 32)) | 0)) | 0;\n};\nexports.add4H = add4H;\nvar add5L = function (Al, Bl, Cl, Dl, El) {\n    return (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\n};\nexports.add5L = add5L;\nvar add5H = function (low, Ah, Bh, Ch, Dh, Eh) {\n    return (Ah + Bh + Ch + Dh + Eh + ((low / Math.pow(2, 32)) | 0)) | 0;\n};\nexports.add5H = add5H;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/_u64.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/bls.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/bls.js ***!
  \**********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/bls.ts#\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bls = void 0;\nvar modular_1 = __webpack_require__(/*! ./modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\n// prettier-ignore\nvar hash_to_curve_1 = __webpack_require__(/*! ./hash-to-curve.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js\");\nvar weierstrass_1 = __webpack_require__(/*! ./weierstrass.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js\");\n// prettier-ignore\nvar _2n = BigInt(2), _3n = BigInt(3);\nfunction bls(CURVE) {\n    // Fields are specific for curve, so for now we'll need to pass them with opts\n    var _a = CURVE.fields, Fp = _a.Fp, Fr = _a.Fr, Fp2 = _a.Fp2, Fp6 = _a.Fp6, Fp12 = _a.Fp12;\n    var BLS_X_LEN = (0, utils_1.bitLen)(CURVE.params.x);\n    // Pre-compute coefficients for sparse multiplication\n    // Point addition and point double calculations is reused for coefficients\n    function calcPairingPrecomputes(p) {\n        var x = p.x, y = p.y;\n        // prettier-ignore\n        var Qx = x, Qy = y, Qz = Fp2.ONE;\n        // prettier-ignore\n        var Rx = Qx, Ry = Qy, Rz = Qz;\n        var ell_coeff = [];\n        for (var i = BLS_X_LEN - 2; i >= 0; i--) {\n            // Double\n            var t0 = Fp2.sqr(Ry); // Ry²\n            var t1 = Fp2.sqr(Rz); // Rz²\n            var t2 = Fp2.multiplyByB(Fp2.mul(t1, _3n)); // 3 * T1 * B\n            var t3 = Fp2.mul(t2, _3n); // 3 * T2\n            var t4 = Fp2.sub(Fp2.sub(Fp2.sqr(Fp2.add(Ry, Rz)), t1), t0); // (Ry + Rz)² - T1 - T0\n            ell_coeff.push([\n                Fp2.sub(t2, t0),\n                Fp2.mul(Fp2.sqr(Rx), _3n),\n                Fp2.neg(t4), // -T4\n            ]);\n            Rx = Fp2.div(Fp2.mul(Fp2.mul(Fp2.sub(t0, t3), Rx), Ry), _2n); // ((T0 - T3) * Rx * Ry) / 2\n            Ry = Fp2.sub(Fp2.sqr(Fp2.div(Fp2.add(t0, t3), _2n)), Fp2.mul(Fp2.sqr(t2), _3n)); // ((T0 + T3) / 2)² - 3 * T2²\n            Rz = Fp2.mul(t0, t4); // T0 * T4\n            if ((0, utils_1.bitGet)(CURVE.params.x, i)) {\n                // Addition\n                var t0_1 = Fp2.sub(Ry, Fp2.mul(Qy, Rz)); // Ry - Qy * Rz\n                var t1_1 = Fp2.sub(Rx, Fp2.mul(Qx, Rz)); // Rx - Qx * Rz\n                ell_coeff.push([\n                    Fp2.sub(Fp2.mul(t0_1, Qx), Fp2.mul(t1_1, Qy)),\n                    Fp2.neg(t0_1),\n                    t1_1, // T1\n                ]);\n                var t2_1 = Fp2.sqr(t1_1); // T1²\n                var t3_1 = Fp2.mul(t2_1, t1_1); // T2 * T1\n                var t4_1 = Fp2.mul(t2_1, Rx); // T2 * Rx\n                var t5 = Fp2.add(Fp2.sub(t3_1, Fp2.mul(t4_1, _2n)), Fp2.mul(Fp2.sqr(t0_1), Rz)); // T3 - 2 * T4 + T0² * Rz\n                Rx = Fp2.mul(t1_1, t5); // T1 * T5\n                Ry = Fp2.sub(Fp2.mul(Fp2.sub(t4_1, t5), t0_1), Fp2.mul(t3_1, Ry)); // (T4 - T5) * T0 - T3 * Ry\n                Rz = Fp2.mul(Rz, t3_1); // Rz * T3\n            }\n        }\n        return ell_coeff;\n    }\n    function millerLoop(ell, g1) {\n        var x = CURVE.params.x;\n        var Px = g1[0];\n        var Py = g1[1];\n        var f12 = Fp12.ONE;\n        for (var j = 0, i = BLS_X_LEN - 2; i >= 0; i--, j++) {\n            var E = ell[j];\n            f12 = Fp12.multiplyBy014(f12, E[0], Fp2.mul(E[1], Px), Fp2.mul(E[2], Py));\n            if ((0, utils_1.bitGet)(x, i)) {\n                j += 1;\n                var F = ell[j];\n                f12 = Fp12.multiplyBy014(f12, F[0], Fp2.mul(F[1], Px), Fp2.mul(F[2], Py));\n            }\n            if (i !== 0)\n                f12 = Fp12.sqr(f12);\n        }\n        return Fp12.conjugate(f12);\n    }\n    var utils = {\n        randomPrivateKey: function () {\n            var length = (0, modular_1.getMinHashLength)(Fr.ORDER);\n            return (0, modular_1.mapHashToField)(CURVE.randomBytes(length), Fr.ORDER);\n        },\n        calcPairingPrecomputes: calcPairingPrecomputes,\n    };\n    // Point on G1 curve: (x, y)\n    var G1_ = (0, weierstrass_1.weierstrassPoints)(__assign({ n: Fr.ORDER }, CURVE.G1));\n    var G1 = Object.assign(G1_, (0, hash_to_curve_1.createHasher)(G1_.ProjectivePoint, CURVE.G1.mapToCurve, __assign(__assign({}, CURVE.htfDefaults), CURVE.G1.htfDefaults)));\n    function pairingPrecomputes(point) {\n        var p = point;\n        if (p._PPRECOMPUTES)\n            return p._PPRECOMPUTES;\n        p._PPRECOMPUTES = calcPairingPrecomputes(point.toAffine());\n        return p._PPRECOMPUTES;\n    }\n    // TODO: export\n    // function clearPairingPrecomputes(point: G2) {\n    //   const p = point as G2 & withPairingPrecomputes;\n    //   p._PPRECOMPUTES = undefined;\n    // }\n    // Point on G2 curve (complex numbers): (x₁, x₂+i), (y₁, y₂+i)\n    var G2_ = (0, weierstrass_1.weierstrassPoints)(__assign({ n: Fr.ORDER }, CURVE.G2));\n    var G2 = Object.assign(G2_, (0, hash_to_curve_1.createHasher)(G2_.ProjectivePoint, CURVE.G2.mapToCurve, __assign(__assign({}, CURVE.htfDefaults), CURVE.G2.htfDefaults)));\n    var ShortSignature = CURVE.G1.ShortSignature;\n    var Signature = CURVE.G2.Signature;\n    // Calculates bilinear pairing\n    function pairing(Q, P, withFinalExponent) {\n        if (withFinalExponent === void 0) { withFinalExponent = true; }\n        if (Q.equals(G1.ProjectivePoint.ZERO) || P.equals(G2.ProjectivePoint.ZERO))\n            throw new Error('pairing is not available for ZERO point');\n        Q.assertValidity();\n        P.assertValidity();\n        // Performance: 9ms for millerLoop and ~14ms for exp.\n        var Qa = Q.toAffine();\n        var looped = millerLoop(pairingPrecomputes(P), [Qa.x, Qa.y]);\n        return withFinalExponent ? Fp12.finalExponentiate(looped) : looped;\n    }\n    function normP1(point) {\n        return point instanceof G1.ProjectivePoint ? point : G1.ProjectivePoint.fromHex(point);\n    }\n    function normP1Hash(point, htfOpts) {\n        return point instanceof G1.ProjectivePoint\n            ? point\n            : G1.hashToCurve((0, utils_1.ensureBytes)('point', point), htfOpts);\n    }\n    function normP2(point) {\n        return point instanceof G2.ProjectivePoint ? point : Signature.fromHex(point);\n    }\n    function normP2Hash(point, htfOpts) {\n        return point instanceof G2.ProjectivePoint\n            ? point\n            : G2.hashToCurve((0, utils_1.ensureBytes)('point', point), htfOpts);\n    }\n    // Multiplies generator (G1) by private key.\n    // P = pk x G\n    function getPublicKey(privateKey) {\n        return G1.ProjectivePoint.fromPrivateKey(privateKey).toRawBytes(true);\n    }\n    // Multiplies generator (G2) by private key.\n    // P = pk x G\n    function getPublicKeyForShortSignatures(privateKey) {\n        return G2.ProjectivePoint.fromPrivateKey(privateKey).toRawBytes(true);\n    }\n    function sign(message, privateKey, htfOpts) {\n        var msgPoint = normP2Hash(message, htfOpts);\n        msgPoint.assertValidity();\n        var sigPoint = msgPoint.multiply(G1.normPrivateKeyToScalar(privateKey));\n        if (message instanceof G2.ProjectivePoint)\n            return sigPoint;\n        return Signature.toRawBytes(sigPoint);\n    }\n    function signShortSignature(message, privateKey, htfOpts) {\n        var msgPoint = normP1Hash(message, htfOpts);\n        msgPoint.assertValidity();\n        var sigPoint = msgPoint.multiply(G1.normPrivateKeyToScalar(privateKey));\n        if (message instanceof G1.ProjectivePoint)\n            return sigPoint;\n        return ShortSignature.toRawBytes(sigPoint);\n    }\n    // Checks if pairing of public key & hash is equal to pairing of generator & signature.\n    // e(P, H(m)) == e(G, S)\n    function verify(signature, message, publicKey, htfOpts) {\n        var P = normP1(publicKey);\n        var Hm = normP2Hash(message, htfOpts);\n        var G = G1.ProjectivePoint.BASE;\n        var S = normP2(signature);\n        // Instead of doing 2 exponentiations, we use property of billinear maps\n        // and do one exp after multiplying 2 points.\n        var ePHm = pairing(P.negate(), Hm, false);\n        var eGS = pairing(G, S, false);\n        var exp = Fp12.finalExponentiate(Fp12.mul(eGS, ePHm));\n        return Fp12.eql(exp, Fp12.ONE);\n    }\n    // Checks if pairing of public key & hash is equal to pairing of generator & signature.\n    // e(S, G) == e(H(m), P)\n    function verifyShortSignature(signature, message, publicKey, htfOpts) {\n        var P = normP2(publicKey);\n        var Hm = normP1Hash(message, htfOpts);\n        var G = G2.ProjectivePoint.BASE;\n        var S = normP1(signature);\n        // Instead of doing 2 exponentiations, we use property of billinear maps\n        // and do one exp after multiplying 2 points.\n        var eHmP = pairing(Hm, P, false);\n        var eSG = pairing(S, G.negate(), false);\n        var exp = Fp12.finalExponentiate(Fp12.mul(eSG, eHmP));\n        return Fp12.eql(exp, Fp12.ONE);\n    }\n    function aggregatePublicKeys(publicKeys) {\n        if (!publicKeys.length)\n            throw new Error('Expected non-empty array');\n        var agg = publicKeys.map(normP1).reduce(function (sum, p) { return sum.add(p); }, G1.ProjectivePoint.ZERO);\n        var aggAffine = agg; //.toAffine();\n        if (publicKeys[0] instanceof G1.ProjectivePoint) {\n            aggAffine.assertValidity();\n            return aggAffine;\n        }\n        // toRawBytes ensures point validity\n        return aggAffine.toRawBytes(true);\n    }\n    function aggregateSignatures(signatures) {\n        if (!signatures.length)\n            throw new Error('Expected non-empty array');\n        var agg = signatures.map(normP2).reduce(function (sum, s) { return sum.add(s); }, G2.ProjectivePoint.ZERO);\n        var aggAffine = agg; //.toAffine();\n        if (signatures[0] instanceof G2.ProjectivePoint) {\n            aggAffine.assertValidity();\n            return aggAffine;\n        }\n        return Signature.toRawBytes(aggAffine);\n    }\n    function aggregateShortSignatures(signatures) {\n        if (!signatures.length)\n            throw new Error('Expected non-empty array');\n        var agg = signatures.map(normP1).reduce(function (sum, s) { return sum.add(s); }, G1.ProjectivePoint.ZERO);\n        var aggAffine = agg; //.toAffine();\n        if (signatures[0] instanceof G1.ProjectivePoint) {\n            aggAffine.assertValidity();\n            return aggAffine;\n        }\n        return ShortSignature.toRawBytes(aggAffine);\n    }\n    // https://ethresear.ch/t/fast-verification-of-multiple-bls-signatures/5407\n    // e(G, S) = e(G, SUM(n)(Si)) = MUL(n)(e(G, Si))\n    function verifyBatch(signature, messages, publicKeys, htfOpts) {\n        // @ts-ignore\n        // console.log('verifyBatch', bytesToHex(signature as any), messages, publicKeys.map(bytesToHex));\n        var e_1, _a;\n        if (!messages.length)\n            throw new Error('Expected non-empty messages array');\n        if (publicKeys.length !== messages.length)\n            throw new Error('Pubkey count should equal msg count');\n        var sig = normP2(signature);\n        var nMessages = messages.map(function (i) { return normP2Hash(i, htfOpts); });\n        var nPublicKeys = publicKeys.map(normP1);\n        try {\n            var paired = [];\n            var _loop_1 = function (message) {\n                var groupPublicKey = nMessages.reduce(function (groupPublicKey, subMessage, i) {\n                    return subMessage === message ? groupPublicKey.add(nPublicKeys[i]) : groupPublicKey;\n                }, G1.ProjectivePoint.ZERO);\n                // const msg = message instanceof PointG2 ? message : await PointG2.hashToCurve(message);\n                // Possible to batch pairing for same msg with different groupPublicKey here\n                paired.push(pairing(groupPublicKey, message, false));\n            };\n            try {\n                for (var _b = __values(new Set(nMessages)), _c = _b.next(); !_c.done; _c = _b.next()) {\n                    var message = _c.value;\n                    _loop_1(message);\n                }\n            }\n            catch (e_1_1) { e_1 = { error: e_1_1 }; }\n            finally {\n                try {\n                    if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n                }\n                finally { if (e_1) throw e_1.error; }\n            }\n            paired.push(pairing(G1.ProjectivePoint.BASE.negate(), sig, false));\n            var product = paired.reduce(function (a, b) { return Fp12.mul(a, b); }, Fp12.ONE);\n            var exp = Fp12.finalExponentiate(product);\n            return Fp12.eql(exp, Fp12.ONE);\n        }\n        catch (_d) {\n            return false;\n        }\n    }\n    G1.ProjectivePoint.BASE._setWindowSize(4);\n    return {\n        getPublicKey: getPublicKey,\n        getPublicKeyForShortSignatures: getPublicKeyForShortSignatures,\n        sign: sign,\n        signShortSignature: signShortSignature,\n        verify: verify,\n        verifyBatch: verifyBatch,\n        verifyShortSignature: verifyShortSignature,\n        aggregatePublicKeys: aggregatePublicKeys,\n        aggregateSignatures: aggregateSignatures,\n        aggregateShortSignatures: aggregateShortSignatures,\n        millerLoop: millerLoop,\n        pairing: pairing,\n        G1: G1,\n        G2: G2,\n        Signature: Signature,\n        ShortSignature: ShortSignature,\n        fields: {\n            Fr: Fr,\n            Fp: Fp,\n            Fp2: Fp2,\n            Fp6: Fp6,\n            Fp12: Fp12,\n        },\n        params: {\n            x: CURVE.params.x,\n            r: CURVE.params.r,\n            G1b: CURVE.G1.b,\n            G2b: CURVE.G2.b,\n        },\n        utils: utils,\n    };\n}\nexports.bls = bls;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/bls.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/curve.js":
/*!************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/curve.js ***!
  \************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/curve.ts\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateBasic = exports.wNAF = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Abelian group utilities\nvar modular_1 = __webpack_require__(/*! ./modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\nvar _0n = BigInt(0);\nvar _1n = BigInt(1);\n// Elliptic curve multiplication of Point by scalar. Fragile.\n// Scalars should always be less than curve order: this should be checked inside of a curve itself.\n// Creates precomputation tables for fast multiplication:\n// - private scalar is split by fixed size windows of W bits\n// - every window point is collected from window's table & added to accumulator\n// - since windows are different, same point inside tables won't be accessed more than once per calc\n// - each multiplication is 'Math.ceil(CURVE_ORDER / 𝑊) + 1' point additions (fixed for any scalar)\n// - +1 window is neccessary for wNAF\n// - wNAF reduces table size: 2x less memory + 2x faster generation, but 10% slower multiplication\n// TODO: Research returning 2d JS array of windows, instead of a single window. This would allow\n// windows to be in different memory locations\nfunction wNAF(c, bits) {\n    var constTimeNegate = function (condition, item) {\n        var neg = item.negate();\n        return condition ? neg : item;\n    };\n    var opts = function (W) {\n        var windows = Math.ceil(bits / W) + 1; // +1, because\n        var windowSize = Math.pow(2, (W - 1)); // -1 because we skip zero\n        return { windows: windows, windowSize: windowSize };\n    };\n    return {\n        constTimeNegate: constTimeNegate,\n        // non-const time multiplication ladder\n        unsafeLadder: function (elm, n) {\n            var p = c.ZERO;\n            var d = elm;\n            while (n > _0n) {\n                if (n & _1n)\n                    p = p.add(d);\n                d = d.double();\n                n >>= _1n;\n            }\n            return p;\n        },\n        /**\n         * Creates a wNAF precomputation window. Used for caching.\n         * Default window size is set by `utils.precompute()` and is equal to 8.\n         * Number of precomputed points depends on the curve size:\n         * 2^(𝑊−1) * (Math.ceil(𝑛 / 𝑊) + 1), where:\n         * - 𝑊 is the window size\n         * - 𝑛 is the bitlength of the curve order.\n         * For a 256-bit curve and window size 8, the number of precomputed points is 128 * 33 = 4224.\n         * @returns precomputed point tables flattened to a single array\n         */\n        precomputeWindow: function (elm, W) {\n            var _a = opts(W), windows = _a.windows, windowSize = _a.windowSize;\n            var points = [];\n            var p = elm;\n            var base = p;\n            for (var window_1 = 0; window_1 < windows; window_1++) {\n                base = p;\n                points.push(base);\n                // =1, because we skip zero\n                for (var i = 1; i < windowSize; i++) {\n                    base = base.add(p);\n                    points.push(base);\n                }\n                p = base.double();\n            }\n            return points;\n        },\n        /**\n         * Implements ec multiplication using precomputed tables and w-ary non-adjacent form.\n         * @param W window size\n         * @param precomputes precomputed tables\n         * @param n scalar (we don't check here, but should be less than curve order)\n         * @returns real and fake (for const-time) points\n         */\n        wNAF: function (W, precomputes, n) {\n            // TODO: maybe check that scalar is less than group order? wNAF behavious is undefined otherwise\n            // But need to carefully remove other checks before wNAF. ORDER == bits here\n            var _a = opts(W), windows = _a.windows, windowSize = _a.windowSize;\n            var p = c.ZERO;\n            var f = c.BASE;\n            var mask = BigInt(Math.pow(2, W) - 1); // Create mask with W ones: 0b1111 for W=4 etc.\n            var maxNumber = Math.pow(2, W);\n            var shiftBy = BigInt(W);\n            for (var window_2 = 0; window_2 < windows; window_2++) {\n                var offset = window_2 * windowSize;\n                // Extract W bits.\n                var wbits = Number(n & mask);\n                // Shift number by W bits.\n                n >>= shiftBy;\n                // If the bits are bigger than max size, we'll split those.\n                // +224 => 256 - 32\n                if (wbits > windowSize) {\n                    wbits -= maxNumber;\n                    n += _1n;\n                }\n                // This code was first written with assumption that 'f' and 'p' will never be infinity point:\n                // since each addition is multiplied by 2 ** W, it cannot cancel each other. However,\n                // there is negate now: it is possible that negated element from low value\n                // would be the same as high element, which will create carry into next window.\n                // It's not obvious how this can fail, but still worth investigating later.\n                // Check if we're onto Zero point.\n                // Add random point inside current window to f.\n                var offset1 = offset;\n                var offset2 = offset + Math.abs(wbits) - 1; // -1 because we skip zero\n                var cond1 = window_2 % 2 !== 0;\n                var cond2 = wbits < 0;\n                if (wbits === 0) {\n                    // The most important part for const-time getPublicKey\n                    f = f.add(constTimeNegate(cond1, precomputes[offset1]));\n                }\n                else {\n                    p = p.add(constTimeNegate(cond2, precomputes[offset2]));\n                }\n            }\n            // JIT-compiler should not eliminate f here, since it will later be used in normalizeZ()\n            // Even if the variable is still unused, there are some checks which will\n            // throw an exception, so compiler needs to prove they won't happen, which is hard.\n            // At this point there is a way to F be infinity-point even if p is not,\n            // which makes it less const-time: around 1 bigint multiply.\n            return { p: p, f: f };\n        },\n        wNAFCached: function (P, precomputesMap, n, transform) {\n            // @ts-ignore\n            var W = P._WINDOW_SIZE || 1;\n            // Calculate precomputes on a first run, reuse them after\n            var comp = precomputesMap.get(P);\n            if (!comp) {\n                comp = this.precomputeWindow(P, W);\n                if (W !== 1) {\n                    precomputesMap.set(P, transform(comp));\n                }\n            }\n            return this.wNAF(W, comp, n);\n        },\n    };\n}\nexports.wNAF = wNAF;\nfunction validateBasic(curve) {\n    (0, modular_1.validateField)(curve.Fp);\n    (0, utils_1.validateObject)(curve, {\n        n: 'bigint',\n        h: 'bigint',\n        Gx: 'field',\n        Gy: 'field',\n    }, {\n        nBitLength: 'isSafeInteger',\n        nByteLength: 'isSafeInteger',\n    });\n    // Set defaults\n    return Object.freeze(__assign(__assign(__assign({}, (0, modular_1.nLength)(curve.n, curve.nBitLength)), curve), { p: curve.Fp.ORDER }));\n}\nexports.validateBasic = validateBasic;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/curve.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js":
/*!********************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js ***!
  \********************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/hash-to-curve.ts\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.createHasher = exports.isogenyMap = exports.hash_to_field = exports.expand_message_xof = exports.expand_message_xmd = void 0;\nvar modular_1 = __webpack_require__(/*! ./modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\n// Octet Stream to Integer. \"spec\" implementation of os2ip is 2.5x slower vs bytesToNumberBE.\nvar os2ip = utils_1.bytesToNumberBE;\n// Integer to Octet Stream (numberToBytesBE)\nfunction i2osp(value, length) {\n    if (value < 0 || value >= 1 << (8 * length)) {\n        throw new Error(\"bad I2OSP call: value=\".concat(value, \" length=\").concat(length));\n    }\n    var res = Array.from({ length: length }).fill(0);\n    for (var i = length - 1; i >= 0; i--) {\n        res[i] = value & 0xff;\n        value >>>= 8;\n    }\n    return new Uint8Array(res);\n}\nfunction strxor(a, b) {\n    var arr = new Uint8Array(a.length);\n    for (var i = 0; i < a.length; i++) {\n        arr[i] = a[i] ^ b[i];\n    }\n    return arr;\n}\nfunction anum(item) {\n    if (!Number.isSafeInteger(item))\n        throw new Error('number expected');\n}\n// Produces a uniformly random byte string using a cryptographic hash function H that outputs b bits\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.1\nfunction expand_message_xmd(msg, DST, lenInBytes, H) {\n    (0, utils_1.abytes)(msg);\n    (0, utils_1.abytes)(DST);\n    anum(lenInBytes);\n    // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n    if (DST.length > 255)\n        DST = H((0, utils_1.concatBytes)((0, utils_1.utf8ToBytes)('H2C-OVERSIZE-DST-'), DST));\n    var b_in_bytes = H.outputLen, r_in_bytes = H.blockLen;\n    var ell = Math.ceil(lenInBytes / b_in_bytes);\n    if (ell > 255)\n        throw new Error('Invalid xmd length');\n    var DST_prime = (0, utils_1.concatBytes)(DST, i2osp(DST.length, 1));\n    var Z_pad = i2osp(0, r_in_bytes);\n    var l_i_b_str = i2osp(lenInBytes, 2); // len_in_bytes_str\n    var b = new Array(ell);\n    var b_0 = H((0, utils_1.concatBytes)(Z_pad, msg, l_i_b_str, i2osp(0, 1), DST_prime));\n    b[0] = H((0, utils_1.concatBytes)(b_0, i2osp(1, 1), DST_prime));\n    for (var i = 1; i <= ell; i++) {\n        var args = [strxor(b_0, b[i - 1]), i2osp(i + 1, 1), DST_prime];\n        b[i] = H(utils_1.concatBytes.apply(void 0, __spreadArray([], __read(args), false)));\n    }\n    var pseudo_random_bytes = utils_1.concatBytes.apply(void 0, __spreadArray([], __read(b), false));\n    return pseudo_random_bytes.slice(0, lenInBytes);\n}\nexports.expand_message_xmd = expand_message_xmd;\n// Produces a uniformly random byte string using an extendable-output function (XOF) H.\n// 1. The collision resistance of H MUST be at least k bits.\n// 2. H MUST be an XOF that has been proved indifferentiable from\n//    a random oracle under a reasonable cryptographic assumption.\n// https://www.rfc-editor.org/rfc/rfc9380#section-5.3.2\nfunction expand_message_xof(msg, DST, lenInBytes, k, H) {\n    (0, utils_1.abytes)(msg);\n    (0, utils_1.abytes)(DST);\n    anum(lenInBytes);\n    // https://www.rfc-editor.org/rfc/rfc9380#section-5.3.3\n    // DST = H('H2C-OVERSIZE-DST-' || a_very_long_DST, Math.ceil((lenInBytes * k) / 8));\n    if (DST.length > 255) {\n        var dkLen = Math.ceil((2 * k) / 8);\n        DST = H.create({ dkLen: dkLen }).update((0, utils_1.utf8ToBytes)('H2C-OVERSIZE-DST-')).update(DST).digest();\n    }\n    if (lenInBytes > 65535 || DST.length > 255)\n        throw new Error('expand_message_xof: invalid lenInBytes');\n    return (H.create({ dkLen: lenInBytes })\n        .update(msg)\n        .update(i2osp(lenInBytes, 2))\n        // 2. DST_prime = DST || I2OSP(len(DST), 1)\n        .update(DST)\n        .update(i2osp(DST.length, 1))\n        .digest());\n}\nexports.expand_message_xof = expand_message_xof;\n/**\n * Hashes arbitrary-length byte strings to a list of one or more elements of a finite field F\n * https://www.rfc-editor.org/rfc/rfc9380#section-5.2\n * @param msg a byte string containing the message to hash\n * @param count the number of elements of F to output\n * @param options `{DST: string, p: bigint, m: number, k: number, expand: 'xmd' | 'xof', hash: H}`, see above\n * @returns [u_0, ..., u_(count - 1)], a list of field elements.\n */\nfunction hash_to_field(msg, count, options) {\n    (0, utils_1.validateObject)(options, {\n        DST: 'stringOrUint8Array',\n        p: 'bigint',\n        m: 'isSafeInteger',\n        k: 'isSafeInteger',\n        hash: 'hash',\n    });\n    var p = options.p, k = options.k, m = options.m, hash = options.hash, expand = options.expand, _DST = options.DST;\n    (0, utils_1.abytes)(msg);\n    anum(count);\n    var DST = typeof _DST === 'string' ? (0, utils_1.utf8ToBytes)(_DST) : _DST;\n    var log2p = p.toString(2).length;\n    var L = Math.ceil((log2p + k) / 8); // section 5.1 of ietf draft link above\n    var len_in_bytes = count * m * L;\n    var prb; // pseudo_random_bytes\n    if (expand === 'xmd') {\n        prb = expand_message_xmd(msg, DST, len_in_bytes, hash);\n    }\n    else if (expand === 'xof') {\n        prb = expand_message_xof(msg, DST, len_in_bytes, k, hash);\n    }\n    else if (expand === '_internal_pass') {\n        // for internal tests only\n        prb = msg;\n    }\n    else {\n        throw new Error('expand must be \"xmd\" or \"xof\"');\n    }\n    var u = new Array(count);\n    for (var i = 0; i < count; i++) {\n        var e = new Array(m);\n        for (var j = 0; j < m; j++) {\n            var elm_offset = L * (j + i * m);\n            var tv = prb.subarray(elm_offset, elm_offset + L);\n            e[j] = (0, modular_1.mod)(os2ip(tv), p);\n        }\n        u[i] = e;\n    }\n    return u;\n}\nexports.hash_to_field = hash_to_field;\nfunction isogenyMap(field, map) {\n    // Make same order as in spec\n    var COEFF = map.map(function (i) { return Array.from(i).reverse(); });\n    return function (x, y) {\n        var _a = __read(COEFF.map(function (val) {\n            return val.reduce(function (acc, i) { return field.add(field.mul(acc, x), i); });\n        }), 4), xNum = _a[0], xDen = _a[1], yNum = _a[2], yDen = _a[3];\n        x = field.div(xNum, xDen); // xNum / xDen\n        y = field.mul(y, field.div(yNum, yDen)); // y * (yNum / yDev)\n        return { x: x, y: y };\n    };\n}\nexports.isogenyMap = isogenyMap;\nfunction createHasher(Point, mapToCurve, def) {\n    if (typeof mapToCurve !== 'function')\n        throw new Error('mapToCurve() must be defined');\n    return {\n        // Encodes byte string to elliptic curve.\n        // hash_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n        hashToCurve: function (msg, options) {\n            var u = hash_to_field(msg, 2, __assign(__assign(__assign({}, def), { DST: def.DST }), options));\n            var u0 = Point.fromAffine(mapToCurve(u[0]));\n            var u1 = Point.fromAffine(mapToCurve(u[1]));\n            var P = u0.add(u1).clearCofactor();\n            P.assertValidity();\n            return P;\n        },\n        // Encodes byte string to elliptic curve.\n        // encode_to_curve from https://www.rfc-editor.org/rfc/rfc9380#section-3\n        encodeToCurve: function (msg, options) {\n            var u = hash_to_field(msg, 1, __assign(__assign(__assign({}, def), { DST: def.encodeDST }), options));\n            var P = Point.fromAffine(mapToCurve(u[0])).clearCofactor();\n            P.assertValidity();\n            return P;\n        },\n    };\n}\nexports.createHasher = createHasher;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/modular.ts\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.mapHashToField = exports.getMinHashLength = exports.getFieldBytesLength = exports.hashToPrivateScalar = exports.FpSqrtEven = exports.FpSqrtOdd = exports.Field = exports.nLength = exports.FpIsSquare = exports.FpDiv = exports.FpInvertBatch = exports.FpPow = exports.validateField = exports.isNegativeLE = exports.FpSqrt = exports.tonelliShanks = exports.invert = exports.pow2 = exports.pow = exports.mod = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Utilities for modular arithmetics and finite fields\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\n// prettier-ignore\nvar _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3);\n// prettier-ignore\nvar _4n = BigInt(4), _5n = BigInt(5), _8n = BigInt(8);\n// prettier-ignore\nvar _9n = BigInt(9), _16n = BigInt(16);\n// Calculates a modulo b\nfunction mod(a, b) {\n    var result = a % b;\n    return result >= _0n ? result : b + result;\n}\nexports.mod = mod;\n/**\n * Efficiently raise num to power and do modular division.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n * @example\n * pow(2n, 6n, 11n) // 64n % 11n == 9n\n */\n// TODO: use field version && remove\nfunction pow(num, power, modulo) {\n    if (modulo <= _0n || power < _0n)\n        throw new Error('Expected power/modulo > 0');\n    if (modulo === _1n)\n        return _0n;\n    var res = _1n;\n    while (power > _0n) {\n        if (power & _1n)\n            res = (res * num) % modulo;\n        num = (num * num) % modulo;\n        power >>= _1n;\n    }\n    return res;\n}\nexports.pow = pow;\n// Does x ^ (2 ^ power) mod p. pow2(30, 4) == 30 ^ (2 ^ 4)\nfunction pow2(x, power, modulo) {\n    var res = x;\n    while (power-- > _0n) {\n        res *= res;\n        res %= modulo;\n    }\n    return res;\n}\nexports.pow2 = pow2;\n// Inverses number over modulo\nfunction invert(number, modulo) {\n    if (number === _0n || modulo <= _0n) {\n        throw new Error(\"invert: expected positive integers, got n=\".concat(number, \" mod=\").concat(modulo));\n    }\n    // Euclidean GCD https://brilliant.org/wiki/extended-euclidean-algorithm/\n    // Fermat's little theorem \"CT-like\" version inv(n) = n^(m-2) mod m is 30x slower.\n    var a = mod(number, modulo);\n    var b = modulo;\n    // prettier-ignore\n    var x = _0n, y = _1n, u = _1n, v = _0n;\n    while (a !== _0n) {\n        // JIT applies optimization if those two lines follow each other\n        var q = b / a;\n        var r = b % a;\n        var m = x - u * q;\n        var n = y - v * q;\n        // prettier-ignore\n        b = a, a = r, x = u, y = v, u = m, v = n;\n    }\n    var gcd = b;\n    if (gcd !== _1n)\n        throw new Error('invert: does not exist');\n    return mod(x, modulo);\n}\nexports.invert = invert;\n/**\n * Tonelli-Shanks square root search algorithm.\n * 1. https://eprint.iacr.org/2012/685.pdf (page 12)\n * 2. Square Roots from 1; 24, 51, 10 to Dan Shanks\n * Will start an infinite loop if field order P is not prime.\n * @param P field order\n * @returns function that takes field Fp (created from P) and number n\n */\nfunction tonelliShanks(P) {\n    // Legendre constant: used to calculate Legendre symbol (a | p),\n    // which denotes the value of a^((p-1)/2) (mod p).\n    // (a | p) ≡ 1    if a is a square (mod p)\n    // (a | p) ≡ -1   if a is not a square (mod p)\n    // (a | p) ≡ 0    if a ≡ 0 (mod p)\n    var legendreC = (P - _1n) / _2n;\n    var Q, S, Z;\n    // Step 1: By factoring out powers of 2 from p - 1,\n    // find q and s such that p - 1 = q*(2^s) with q odd\n    for (Q = P - _1n, S = 0; Q % _2n === _0n; Q /= _2n, S++)\n        ;\n    // Step 2: Select a non-square z such that (z | p) ≡ -1 and set c ≡ zq\n    for (Z = _2n; Z < P && pow(Z, legendreC, P) !== P - _1n; Z++)\n        ;\n    // Fast-path\n    if (S === 1) {\n        var p1div4_1 = (P + _1n) / _4n;\n        return function tonelliFast(Fp, n) {\n            var root = Fp.pow(n, p1div4_1);\n            if (!Fp.eql(Fp.sqr(root), n))\n                throw new Error('Cannot find square root');\n            return root;\n        };\n    }\n    // Slow-path\n    var Q1div2 = (Q + _1n) / _2n;\n    return function tonelliSlow(Fp, n) {\n        // Step 0: Check that n is indeed a square: (n | p) should not be ≡ -1\n        if (Fp.pow(n, legendreC) === Fp.neg(Fp.ONE))\n            throw new Error('Cannot find square root');\n        var r = S;\n        // TODO: will fail at Fp2/etc\n        var g = Fp.pow(Fp.mul(Fp.ONE, Z), Q); // will update both x and b\n        var x = Fp.pow(n, Q1div2); // first guess at the square root\n        var b = Fp.pow(n, Q); // first guess at the fudge factor\n        while (!Fp.eql(b, Fp.ONE)) {\n            if (Fp.eql(b, Fp.ZERO))\n                return Fp.ZERO; // https://en.wikipedia.org/wiki/Tonelli%E2%80%93Shanks_algorithm (4. If t = 0, return r = 0)\n            // Find m such b^(2^m)==1\n            var m = 1;\n            for (var t2 = Fp.sqr(b); m < r; m++) {\n                if (Fp.eql(t2, Fp.ONE))\n                    break;\n                t2 = Fp.sqr(t2); // t2 *= t2\n            }\n            // NOTE: r-m-1 can be bigger than 32, need to convert to bigint before shift, otherwise there will be overflow\n            var ge = Fp.pow(g, _1n << BigInt(r - m - 1)); // ge = 2^(r-m-1)\n            g = Fp.sqr(ge); // g = ge * ge\n            x = Fp.mul(x, ge); // x *= ge\n            b = Fp.mul(b, g); // b *= g\n            r = m;\n        }\n        return x;\n    };\n}\nexports.tonelliShanks = tonelliShanks;\nfunction FpSqrt(P) {\n    // NOTE: different algorithms can give different roots, it is up to user to decide which one they want.\n    // For example there is FpSqrtOdd/FpSqrtEven to choice root based on oddness (used for hash-to-curve).\n    // P ≡ 3 (mod 4)\n    // √n = n^((P+1)/4)\n    if (P % _4n === _3n) {\n        // Not all roots possible!\n        // const ORDER =\n        //   0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaabn;\n        // const NUM = 72057594037927816n;\n        var p1div4_2 = (P + _1n) / _4n;\n        return function sqrt3mod4(Fp, n) {\n            var root = Fp.pow(n, p1div4_2);\n            // Throw if root**2 != n\n            if (!Fp.eql(Fp.sqr(root), n))\n                throw new Error('Cannot find square root');\n            return root;\n        };\n    }\n    // Atkin algorithm for q ≡ 5 (mod 8), https://eprint.iacr.org/2012/685.pdf (page 10)\n    if (P % _8n === _5n) {\n        var c1_1 = (P - _5n) / _8n;\n        return function sqrt5mod8(Fp, n) {\n            var n2 = Fp.mul(n, _2n);\n            var v = Fp.pow(n2, c1_1);\n            var nv = Fp.mul(n, v);\n            var i = Fp.mul(Fp.mul(nv, _2n), v);\n            var root = Fp.mul(nv, Fp.sub(i, Fp.ONE));\n            if (!Fp.eql(Fp.sqr(root), n))\n                throw new Error('Cannot find square root');\n            return root;\n        };\n    }\n    // P ≡ 9 (mod 16)\n    if (P % _16n === _9n) {\n        // NOTE: tonelli is too slow for bls-Fp2 calculations even on start\n        // Means we cannot use sqrt for constants at all!\n        //\n        // const c1 = Fp.sqrt(Fp.negate(Fp.ONE)); //  1. c1 = sqrt(-1) in F, i.e., (c1^2) == -1 in F\n        // const c2 = Fp.sqrt(c1);                //  2. c2 = sqrt(c1) in F, i.e., (c2^2) == c1 in F\n        // const c3 = Fp.sqrt(Fp.negate(c1));     //  3. c3 = sqrt(-c1) in F, i.e., (c3^2) == -c1 in F\n        // const c4 = (P + _7n) / _16n;           //  4. c4 = (q + 7) / 16        # Integer arithmetic\n        // sqrt = (x) => {\n        //   let tv1 = Fp.pow(x, c4);             //  1. tv1 = x^c4\n        //   let tv2 = Fp.mul(c1, tv1);           //  2. tv2 = c1 * tv1\n        //   const tv3 = Fp.mul(c2, tv1);         //  3. tv3 = c2 * tv1\n        //   let tv4 = Fp.mul(c3, tv1);           //  4. tv4 = c3 * tv1\n        //   const e1 = Fp.equals(Fp.square(tv2), x); //  5.  e1 = (tv2^2) == x\n        //   const e2 = Fp.equals(Fp.square(tv3), x); //  6.  e2 = (tv3^2) == x\n        //   tv1 = Fp.cmov(tv1, tv2, e1); //  7. tv1 = CMOV(tv1, tv2, e1)  # Select tv2 if (tv2^2) == x\n        //   tv2 = Fp.cmov(tv4, tv3, e2); //  8. tv2 = CMOV(tv4, tv3, e2)  # Select tv3 if (tv3^2) == x\n        //   const e3 = Fp.equals(Fp.square(tv2), x); //  9.  e3 = (tv2^2) == x\n        //   return Fp.cmov(tv1, tv2, e3); //  10.  z = CMOV(tv1, tv2, e3)  # Select the sqrt from tv1 and tv2\n        // }\n    }\n    // Other cases: Tonelli-Shanks algorithm\n    return tonelliShanks(P);\n}\nexports.FpSqrt = FpSqrt;\n// Little-endian check for first LE bit (last BE bit);\nvar isNegativeLE = function (num, modulo) { return (mod(num, modulo) & _1n) === _1n; };\nexports.isNegativeLE = isNegativeLE;\n// prettier-ignore\nvar FIELD_FIELDS = [\n    'create', 'isValid', 'is0', 'neg', 'inv', 'sqrt', 'sqr',\n    'eql', 'add', 'sub', 'mul', 'pow', 'div',\n    'addN', 'subN', 'mulN', 'sqrN'\n];\nfunction validateField(field) {\n    var initial = {\n        ORDER: 'bigint',\n        MASK: 'bigint',\n        BYTES: 'isSafeInteger',\n        BITS: 'isSafeInteger',\n    };\n    var opts = FIELD_FIELDS.reduce(function (map, val) {\n        map[val] = 'function';\n        return map;\n    }, initial);\n    return (0, utils_1.validateObject)(field, opts);\n}\nexports.validateField = validateField;\n// Generic field functions\n/**\n * Same as `pow` but for Fp: non-constant-time.\n * Unsafe in some contexts: uses ladder, so can expose bigint bits.\n */\nfunction FpPow(f, num, power) {\n    // Should have same speed as pow for bigints\n    // TODO: benchmark!\n    if (power < _0n)\n        throw new Error('Expected power > 0');\n    if (power === _0n)\n        return f.ONE;\n    if (power === _1n)\n        return num;\n    var p = f.ONE;\n    var d = num;\n    while (power > _0n) {\n        if (power & _1n)\n            p = f.mul(p, d);\n        d = f.sqr(d);\n        power >>= _1n;\n    }\n    return p;\n}\nexports.FpPow = FpPow;\n/**\n * Efficiently invert an array of Field elements.\n * `inv(0)` will return `undefined` here: make sure to throw an error.\n */\nfunction FpInvertBatch(f, nums) {\n    var tmp = new Array(nums.length);\n    // Walk from first to last, multiply them by each other MOD p\n    var lastMultiplied = nums.reduce(function (acc, num, i) {\n        if (f.is0(num))\n            return acc;\n        tmp[i] = acc;\n        return f.mul(acc, num);\n    }, f.ONE);\n    // Invert last element\n    var inverted = f.inv(lastMultiplied);\n    // Walk from last to first, multiply them by inverted each other MOD p\n    nums.reduceRight(function (acc, num, i) {\n        if (f.is0(num))\n            return acc;\n        tmp[i] = f.mul(acc, tmp[i]);\n        return f.mul(acc, num);\n    }, inverted);\n    return tmp;\n}\nexports.FpInvertBatch = FpInvertBatch;\nfunction FpDiv(f, lhs, rhs) {\n    return f.mul(lhs, typeof rhs === 'bigint' ? invert(rhs, f.ORDER) : f.inv(rhs));\n}\nexports.FpDiv = FpDiv;\n// This function returns True whenever the value x is a square in the field F.\nfunction FpIsSquare(f) {\n    var legendreConst = (f.ORDER - _1n) / _2n; // Integer arithmetic\n    return function (x) {\n        var p = f.pow(x, legendreConst);\n        return f.eql(p, f.ZERO) || f.eql(p, f.ONE);\n    };\n}\nexports.FpIsSquare = FpIsSquare;\n// CURVE.n lengths\nfunction nLength(n, nBitLength) {\n    // Bit size, byte size of CURVE.n\n    var _nBitLength = nBitLength !== undefined ? nBitLength : n.toString(2).length;\n    var nByteLength = Math.ceil(_nBitLength / 8);\n    return { nBitLength: _nBitLength, nByteLength: nByteLength };\n}\nexports.nLength = nLength;\n/**\n * Initializes a finite field over prime. **Non-primes are not supported.**\n * Do not init in loop: slow. Very fragile: always run a benchmark on a change.\n * Major performance optimizations:\n * * a) denormalized operations like mulN instead of mul\n * * b) same object shape: never add or remove keys\n * * c) Object.freeze\n * @param ORDER prime positive bigint\n * @param bitLen how many bits the field consumes\n * @param isLE (def: false) if encoding / decoding should be in little-endian\n * @param redef optional faster redefinitions of sqrt and other methods\n */\nfunction Field(ORDER, bitLen, isLE, redef) {\n    if (isLE === void 0) { isLE = false; }\n    if (redef === void 0) { redef = {}; }\n    if (ORDER <= _0n)\n        throw new Error(\"Expected Field ORDER > 0, got \".concat(ORDER));\n    var _a = nLength(ORDER, bitLen), BITS = _a.nBitLength, BYTES = _a.nByteLength;\n    if (BYTES > 2048)\n        throw new Error('Field lengths over 2048 bytes are not supported');\n    var sqrtP = FpSqrt(ORDER);\n    var f = Object.freeze({\n        ORDER: ORDER,\n        BITS: BITS,\n        BYTES: BYTES,\n        MASK: (0, utils_1.bitMask)(BITS),\n        ZERO: _0n,\n        ONE: _1n,\n        create: function (num) { return mod(num, ORDER); },\n        isValid: function (num) {\n            if (typeof num !== 'bigint')\n                throw new Error(\"Invalid field element: expected bigint, got \".concat(typeof num));\n            return _0n <= num && num < ORDER; // 0 is valid element, but it's not invertible\n        },\n        is0: function (num) { return num === _0n; },\n        isOdd: function (num) { return (num & _1n) === _1n; },\n        neg: function (num) { return mod(-num, ORDER); },\n        eql: function (lhs, rhs) { return lhs === rhs; },\n        sqr: function (num) { return mod(num * num, ORDER); },\n        add: function (lhs, rhs) { return mod(lhs + rhs, ORDER); },\n        sub: function (lhs, rhs) { return mod(lhs - rhs, ORDER); },\n        mul: function (lhs, rhs) { return mod(lhs * rhs, ORDER); },\n        pow: function (num, power) { return FpPow(f, num, power); },\n        div: function (lhs, rhs) { return mod(lhs * invert(rhs, ORDER), ORDER); },\n        // Same as above, but doesn't normalize\n        sqrN: function (num) { return num * num; },\n        addN: function (lhs, rhs) { return lhs + rhs; },\n        subN: function (lhs, rhs) { return lhs - rhs; },\n        mulN: function (lhs, rhs) { return lhs * rhs; },\n        inv: function (num) { return invert(num, ORDER); },\n        sqrt: redef.sqrt || (function (n) { return sqrtP(f, n); }),\n        invertBatch: function (lst) { return FpInvertBatch(f, lst); },\n        // TODO: do we really need constant cmov?\n        // We don't have const-time bigints anyway, so probably will be not very useful\n        cmov: function (a, b, c) { return (c ? b : a); },\n        toBytes: function (num) { return (isLE ? (0, utils_1.numberToBytesLE)(num, BYTES) : (0, utils_1.numberToBytesBE)(num, BYTES)); },\n        fromBytes: function (bytes) {\n            if (bytes.length !== BYTES)\n                throw new Error(\"Fp.fromBytes: expected \".concat(BYTES, \", got \").concat(bytes.length));\n            return isLE ? (0, utils_1.bytesToNumberLE)(bytes) : (0, utils_1.bytesToNumberBE)(bytes);\n        },\n    });\n    return Object.freeze(f);\n}\nexports.Field = Field;\nfunction FpSqrtOdd(Fp, elm) {\n    if (!Fp.isOdd)\n        throw new Error(\"Field doesn't have isOdd\");\n    var root = Fp.sqrt(elm);\n    return Fp.isOdd(root) ? root : Fp.neg(root);\n}\nexports.FpSqrtOdd = FpSqrtOdd;\nfunction FpSqrtEven(Fp, elm) {\n    if (!Fp.isOdd)\n        throw new Error(\"Field doesn't have isOdd\");\n    var root = Fp.sqrt(elm);\n    return Fp.isOdd(root) ? Fp.neg(root) : root;\n}\nexports.FpSqrtEven = FpSqrtEven;\n/**\n * \"Constant-time\" private key generation utility.\n * Same as mapKeyToField, but accepts less bytes (40 instead of 48 for 32-byte field).\n * Which makes it slightly more biased, less secure.\n * @deprecated use mapKeyToField instead\n */\nfunction hashToPrivateScalar(hash, groupOrder, isLE) {\n    if (isLE === void 0) { isLE = false; }\n    hash = (0, utils_1.ensureBytes)('privateHash', hash);\n    var hashLen = hash.length;\n    var minLen = nLength(groupOrder).nByteLength + 8;\n    if (minLen < 24 || hashLen < minLen || hashLen > 1024)\n        throw new Error(\"hashToPrivateScalar: expected \".concat(minLen, \"-1024 bytes of input, got \").concat(hashLen));\n    var num = isLE ? (0, utils_1.bytesToNumberLE)(hash) : (0, utils_1.bytesToNumberBE)(hash);\n    return mod(num, groupOrder - _1n) + _1n;\n}\nexports.hashToPrivateScalar = hashToPrivateScalar;\n/**\n * Returns total number of bytes consumed by the field element.\n * For example, 32 bytes for usual 256-bit weierstrass curve.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of field\n */\nfunction getFieldBytesLength(fieldOrder) {\n    if (typeof fieldOrder !== 'bigint')\n        throw new Error('field order must be bigint');\n    var bitLength = fieldOrder.toString(2).length;\n    return Math.ceil(bitLength / 8);\n}\nexports.getFieldBytesLength = getFieldBytesLength;\n/**\n * Returns minimal amount of bytes that can be safely reduced\n * by field order.\n * Should be 2^-128 for 128-bit curve such as P256.\n * @param fieldOrder number of field elements, usually CURVE.n\n * @returns byte length of target hash\n */\nfunction getMinHashLength(fieldOrder) {\n    var length = getFieldBytesLength(fieldOrder);\n    return length + Math.ceil(length / 2);\n}\nexports.getMinHashLength = getMinHashLength;\n/**\n * \"Constant-time\" private key generation utility.\n * Can take (n + n/2) or more bytes of uniform input e.g. from CSPRNG or KDF\n * and convert them into private scalar, with the modulo bias being negligible.\n * Needs at least 48 bytes of input for 32-byte private key.\n * https://research.kudelskisecurity.com/2020/07/28/the-definitive-guide-to-modulo-bias-and-how-to-avoid-it/\n * FIPS 186-5, A.2 https://csrc.nist.gov/publications/detail/fips/186/5/final\n * RFC 9380, https://www.rfc-editor.org/rfc/rfc9380#section-5\n * @param hash hash output from SHA3 or a similar function\n * @param groupOrder size of subgroup - (e.g. secp256k1.CURVE.n)\n * @param isLE interpret hash bytes as LE num\n * @returns valid private scalar\n */\nfunction mapHashToField(key, fieldOrder, isLE) {\n    if (isLE === void 0) { isLE = false; }\n    var len = key.length;\n    var fieldLen = getFieldBytesLength(fieldOrder);\n    var minLen = getMinHashLength(fieldOrder);\n    // No small numbers: need to understand bias story. No huge numbers: easier to detect JS timings.\n    if (len < 16 || len < minLen || len > 1024)\n        throw new Error(\"expected \".concat(minLen, \"-1024 bytes of input, got \").concat(len));\n    var num = isLE ? (0, utils_1.bytesToNumberBE)(key) : (0, utils_1.bytesToNumberLE)(key);\n    // `mod(x, 11)` can sometimes produce 0. `mod(x, 10) + 1` is the same, but no 0\n    var reduced = mod(num, fieldOrder - _1n) + _1n;\n    return isLE ? (0, utils_1.numberToBytesLE)(reduced, fieldLen) : (0, utils_1.numberToBytesBE)(reduced, fieldLen);\n}\nexports.mapHashToField = mapHashToField;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js":
/*!************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js ***!
  \************************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/utils.ts\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.validateObject = exports.createHmacDrbg = exports.bitMask = exports.bitSet = exports.bitGet = exports.bitLen = exports.utf8ToBytes = exports.equalBytes = exports.concatBytes = exports.ensureBytes = exports.numberToVarBytesBE = exports.numberToBytesLE = exports.numberToBytesBE = exports.bytesToNumberLE = exports.bytesToNumberBE = exports.hexToBytes = exports.hexToNumber = exports.numberToHexUnpadded = exports.bytesToHex = exports.abytes = exports.isBytes = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// 100 lines of code in the file are duplicated from noble-hashes (utils).\n// This is OK: `abstract` directory does not use noble-hashes.\n// User may opt-in into using different hashing library. This way, noble-hashes\n// won't be included into their bundle.\nvar _0n = BigInt(0);\nvar _1n = BigInt(1);\nvar _2n = BigInt(2);\nfunction isBytes(a) {\n    return (a instanceof Uint8Array ||\n        (a != null && typeof a === 'object' && a.constructor.name === 'Uint8Array'));\n}\nexports.isBytes = isBytes;\nfunction abytes(item) {\n    if (!isBytes(item))\n        throw new Error('Uint8Array expected');\n}\nexports.abytes = abytes;\n// Array where index 0xf0 (240) is mapped to string 'f0'\nvar hexes = /* @__PURE__ */ Array.from({ length: 256 }, function (_, i) {\n    return i.toString(16).padStart(2, '0');\n});\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n    abytes(bytes);\n    // pre-caching improves the speed 6x\n    var hex = '';\n    for (var i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\nexports.bytesToHex = bytesToHex;\nfunction numberToHexUnpadded(num) {\n    var hex = num.toString(16);\n    return hex.length & 1 ? \"0\".concat(hex) : hex;\n}\nexports.numberToHexUnpadded = numberToHexUnpadded;\nfunction hexToNumber(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    // Big Endian\n    return BigInt(hex === '' ? '0' : \"0x\".concat(hex));\n}\nexports.hexToNumber = hexToNumber;\n// We use optimized technique to convert hex string to byte array\nvar asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n    if (char >= asciis._0 && char <= asciis._9)\n        return char - asciis._0;\n    if (char >= asciis._A && char <= asciis._F)\n        return char - (asciis._A - 10);\n    if (char >= asciis._a && char <= asciis._f)\n        return char - (asciis._a - 10);\n    return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    var hl = hex.length;\n    var al = hl / 2;\n    if (hl % 2)\n        throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n    var array = new Uint8Array(al);\n    for (var ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        var n1 = asciiToBase16(hex.charCodeAt(hi));\n        var n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            var char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2;\n    }\n    return array;\n}\nexports.hexToBytes = hexToBytes;\n// BE: Big Endian, LE: Little Endian\nfunction bytesToNumberBE(bytes) {\n    return hexToNumber(bytesToHex(bytes));\n}\nexports.bytesToNumberBE = bytesToNumberBE;\nfunction bytesToNumberLE(bytes) {\n    abytes(bytes);\n    return hexToNumber(bytesToHex(Uint8Array.from(bytes).reverse()));\n}\nexports.bytesToNumberLE = bytesToNumberLE;\nfunction numberToBytesBE(n, len) {\n    return hexToBytes(n.toString(16).padStart(len * 2, '0'));\n}\nexports.numberToBytesBE = numberToBytesBE;\nfunction numberToBytesLE(n, len) {\n    return numberToBytesBE(n, len).reverse();\n}\nexports.numberToBytesLE = numberToBytesLE;\n// Unpadded, rarely used\nfunction numberToVarBytesBE(n) {\n    return hexToBytes(numberToHexUnpadded(n));\n}\nexports.numberToVarBytesBE = numberToVarBytesBE;\n/**\n * Takes hex string or Uint8Array, converts to Uint8Array.\n * Validates output length.\n * Will throw error for other types.\n * @param title descriptive title for an error e.g. 'private key'\n * @param hex hex string or Uint8Array\n * @param expectedLength optional, will compare to result array's length\n * @returns\n */\nfunction ensureBytes(title, hex, expectedLength) {\n    var res;\n    if (typeof hex === 'string') {\n        try {\n            res = hexToBytes(hex);\n        }\n        catch (e) {\n            throw new Error(\"\".concat(title, \" must be valid hex string, got \\\"\").concat(hex, \"\\\". Cause: \").concat(e));\n        }\n    }\n    else if (isBytes(hex)) {\n        // Uint8Array.from() instead of hash.slice() because node Buffer\n        // is instance of Uint8Array, and its slice() creates **mutable** copy\n        res = Uint8Array.from(hex);\n    }\n    else {\n        throw new Error(\"\".concat(title, \" must be hex string or Uint8Array\"));\n    }\n    var len = res.length;\n    if (typeof expectedLength === 'number' && len !== expectedLength)\n        throw new Error(\"\".concat(title, \" expected \").concat(expectedLength, \" bytes, got \").concat(len));\n    return res;\n}\nexports.ensureBytes = ensureBytes;\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes() {\n    var arrays = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        arrays[_i] = arguments[_i];\n    }\n    var sum = 0;\n    for (var i = 0; i < arrays.length; i++) {\n        var a = arrays[i];\n        abytes(a);\n        sum += a.length;\n    }\n    var res = new Uint8Array(sum);\n    for (var i = 0, pad = 0; i < arrays.length; i++) {\n        var a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\nexports.concatBytes = concatBytes;\n// Compares 2 u8a-s in kinda constant time\nfunction equalBytes(a, b) {\n    if (a.length !== b.length)\n        return false;\n    var diff = 0;\n    for (var i = 0; i < a.length; i++)\n        diff |= a[i] ^ b[i];\n    return diff === 0;\n}\nexports.equalBytes = equalBytes;\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error(\"utf8ToBytes expected string, got \".concat(typeof str));\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\nexports.utf8ToBytes = utf8ToBytes;\n// Bit operations\n/**\n * Calculates amount of bits in a bigint.\n * Same as `n.toString(2).length`\n */\nfunction bitLen(n) {\n    var len;\n    for (len = 0; n > _0n; n >>= _1n, len += 1)\n        ;\n    return len;\n}\nexports.bitLen = bitLen;\n/**\n * Gets single bit at position.\n * NOTE: first bit position is 0 (same as arrays)\n * Same as `!!+Array.from(n.toString(2)).reverse()[pos]`\n */\nfunction bitGet(n, pos) {\n    return (n >> BigInt(pos)) & _1n;\n}\nexports.bitGet = bitGet;\n/**\n * Sets single bit at position.\n */\nfunction bitSet(n, pos, value) {\n    return n | ((value ? _1n : _0n) << BigInt(pos));\n}\nexports.bitSet = bitSet;\n/**\n * Calculate mask for N bits. Not using ** operator with bigints because of old engines.\n * Same as BigInt(`0b${Array(i).fill('1').join('')}`)\n */\nvar bitMask = function (n) { return (_2n << BigInt(n - 1)) - _1n; };\nexports.bitMask = bitMask;\n// DRBG\nvar u8n = function (data) { return new Uint8Array(data); }; // creates Uint8Array\nvar u8fr = function (arr) { return Uint8Array.from(arr); }; // another shortcut\n/**\n * Minimal HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n * @returns function that will call DRBG until 2nd arg returns something meaningful\n * @example\n *   const drbg = createHmacDRBG<Key>(32, 32, hmac);\n *   drbg(seed, bytesToKey); // bytesToKey must return Key or undefined\n */\nfunction createHmacDrbg(hashLen, qByteLen, hmacFn) {\n    if (typeof hashLen !== 'number' || hashLen < 2)\n        throw new Error('hashLen must be a number');\n    if (typeof qByteLen !== 'number' || qByteLen < 2)\n        throw new Error('qByteLen must be a number');\n    if (typeof hmacFn !== 'function')\n        throw new Error('hmacFn must be a function');\n    // Step B, Step C: set hashLen to 8*ceil(hlen/8)\n    var v = u8n(hashLen); // Minimal non-full-spec HMAC-DRBG from NIST 800-90 for RFC6979 sigs.\n    var k = u8n(hashLen); // Steps B and C of RFC6979 3.2: set hashLen, in our case always same\n    var i = 0; // Iterations counter, will throw when over 1000\n    var reset = function () {\n        v.fill(1);\n        k.fill(0);\n        i = 0;\n    };\n    var h = function () {\n        var b = [];\n        for (var _i = 0; _i < arguments.length; _i++) {\n            b[_i] = arguments[_i];\n        }\n        return hmacFn.apply(void 0, __spreadArray([k, v], __read(b), false));\n    }; // hmac(k)(v, ...values)\n    var reseed = function (seed) {\n        if (seed === void 0) { seed = u8n(); }\n        // HMAC-DRBG reseed() function. Steps D-G\n        k = h(u8fr([0x00]), seed); // k = hmac(k || v || 0x00 || seed)\n        v = h(); // v = hmac(k || v)\n        if (seed.length === 0)\n            return;\n        k = h(u8fr([0x01]), seed); // k = hmac(k || v || 0x01 || seed)\n        v = h(); // v = hmac(k || v)\n    };\n    var gen = function () {\n        // HMAC-DRBG generate() function\n        if (i++ >= 1000)\n            throw new Error('drbg: tried 1000 values');\n        var len = 0;\n        var out = [];\n        while (len < qByteLen) {\n            v = h();\n            var sl = v.slice();\n            out.push(sl);\n            len += v.length;\n        }\n        return concatBytes.apply(void 0, __spreadArray([], __read(out), false));\n    };\n    var genUntil = function (seed, pred) {\n        reset();\n        reseed(seed); // Steps D-G\n        var res = undefined; // Step H: grind until k is in [1..n-1]\n        while (!(res = pred(gen())))\n            reseed();\n        reset();\n        return res;\n    };\n    return genUntil;\n}\nexports.createHmacDrbg = createHmacDrbg;\n// Validating curves and fields\nvar validatorFns = {\n    bigint: function (val) { return typeof val === 'bigint'; },\n    function: function (val) { return typeof val === 'function'; },\n    boolean: function (val) { return typeof val === 'boolean'; },\n    string: function (val) { return typeof val === 'string'; },\n    stringOrUint8Array: function (val) { return typeof val === 'string' || isBytes(val); },\n    isSafeInteger: function (val) { return Number.isSafeInteger(val); },\n    array: function (val) { return Array.isArray(val); },\n    field: function (val, object) { return object.Fp.isValid(val); },\n    hash: function (val) { return typeof val === 'function' && Number.isSafeInteger(val.outputLen); },\n};\n// type Record<K extends string | number | symbol, T> = { [P in K]: T; }\nfunction validateObject(object, validators, optValidators) {\n    var e_1, _b, e_2, _c;\n    if (optValidators === void 0) { optValidators = {}; }\n    var checkField = function (fieldName, type, isOptional) {\n        var checkVal = validatorFns[type];\n        if (typeof checkVal !== 'function')\n            throw new Error(\"Invalid validator \\\"\".concat(type, \"\\\", expected function\"));\n        var val = object[fieldName];\n        if (isOptional && val === undefined)\n            return;\n        if (!checkVal(val, object)) {\n            throw new Error(\"Invalid param \".concat(String(fieldName), \"=\").concat(val, \" (\").concat(typeof val, \"), expected \").concat(type));\n        }\n    };\n    try {\n        for (var _d = __values(Object.entries(validators)), _e = _d.next(); !_e.done; _e = _d.next()) {\n            var _g = __read(_e.value, 2), fieldName = _g[0], type = _g[1];\n            checkField(fieldName, type, false);\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\n    try {\n        for (var _h = __values(Object.entries(optValidators)), _j = _h.next(); !_j.done; _j = _h.next()) {\n            var _k = __read(_j.value, 2), fieldName = _k[0], type = _k[1];\n            checkField(fieldName, type, true);\n        }\n    }\n    catch (e_2_1) { e_2 = { error: e_2_1 }; }\n    finally {\n        try {\n            if (_j && !_j.done && (_c = _h.return)) _c.call(_h);\n        }\n        finally { if (e_2) throw e_2.error; }\n    }\n    return object;\n}\nexports.validateObject = validateObject;\n// validate type tests\n// const o: { a: number; b: number; c: number } = { a: 1, b: 5, c: 6 };\n// const z0 = validateObject(o, { a: 'isSafeInteger' }, { c: 'bigint' }); // Ok!\n// // Should fail type-check\n// const z1 = validateObject(o, { a: 'tmp' }, { c: 'zz' });\n// const z2 = validateObject(o, { a: 'isSafeInteger' }, { c: 'zz' });\n// const z3 = validateObject(o, { test: 'boolean', z: 'bug' });\n// const z4 = validateObject(o, { a: 'boolean', z: 'bug' });\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js":
/*!******************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js ***!
  \******************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/abstract/weierstrass.ts\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.mapToCurveSimpleSWU = exports.SWUFpSqrtRatio = exports.weierstrass = exports.weierstrassPoints = exports.DER = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// Short Weierstrass curve. The formula is: y² = x³ + ax + b\nvar mod = __importStar(__webpack_require__(/*! ./modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\"));\nvar ut = __importStar(__webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\"));\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\nvar curve_1 = __webpack_require__(/*! ./curve.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/curve.js\");\nfunction validatePointOpts(curve) {\n    var opts = (0, curve_1.validateBasic)(curve);\n    ut.validateObject(opts, {\n        a: 'field',\n        b: 'field',\n    }, {\n        allowedPrivateKeyLengths: 'array',\n        wrapPrivateKey: 'boolean',\n        isTorsionFree: 'function',\n        clearCofactor: 'function',\n        allowInfinityPoint: 'boolean',\n        fromBytes: 'function',\n        toBytes: 'function',\n    });\n    var endo = opts.endo, Fp = opts.Fp, a = opts.a;\n    if (endo) {\n        if (!Fp.eql(a, Fp.ZERO)) {\n            throw new Error('Endomorphism can only be defined for Koblitz curves that have a=0');\n        }\n        if (typeof endo !== 'object' ||\n            typeof endo.beta !== 'bigint' ||\n            typeof endo.splitScalar !== 'function') {\n            throw new Error('Expected endomorphism with beta: bigint and splitScalar: function');\n        }\n    }\n    return Object.freeze(__assign({}, opts));\n}\n// ASN.1 DER encoding utilities\nvar b2n = ut.bytesToNumberBE, h2b = ut.hexToBytes;\nexports.DER = {\n    // asn.1 DER encoding utils\n    Err: /** @class */ (function (_super) {\n        __extends(DERErr, _super);\n        function DERErr(m) {\n            if (m === void 0) { m = ''; }\n            return _super.call(this, m) || this;\n        }\n        return DERErr;\n    }(Error)),\n    _parseInt: function (data) {\n        var E = exports.DER.Err;\n        if (data.length < 2 || data[0] !== 0x02)\n            throw new E('Invalid signature integer tag');\n        var len = data[1];\n        var res = data.subarray(2, len + 2);\n        if (!len || res.length !== len)\n            throw new E('Invalid signature integer: wrong length');\n        // https://crypto.stackexchange.com/a/57734 Leftmost bit of first byte is 'negative' flag,\n        // since we always use positive integers here. It must always be empty:\n        // - add zero byte if exists\n        // - if next byte doesn't have a flag, leading zero is not allowed (minimal encoding)\n        if (res[0] & 128)\n            throw new E('Invalid signature integer: negative');\n        if (res[0] === 0x00 && !(res[1] & 128))\n            throw new E('Invalid signature integer: unnecessary leading zero');\n        return { d: b2n(res), l: data.subarray(len + 2) }; // d is data, l is left\n    },\n    toSig: function (hex) {\n        // parse DER signature\n        var E = exports.DER.Err;\n        var data = typeof hex === 'string' ? h2b(hex) : hex;\n        ut.abytes(data);\n        var l = data.length;\n        if (l < 2 || data[0] != 0x30)\n            throw new E('Invalid signature tag');\n        if (data[1] !== l - 2)\n            throw new E('Invalid signature: incorrect length');\n        var _a = exports.DER._parseInt(data.subarray(2)), r = _a.d, sBytes = _a.l;\n        var _b = exports.DER._parseInt(sBytes), s = _b.d, rBytesLeft = _b.l;\n        if (rBytesLeft.length)\n            throw new E('Invalid signature: left bytes after parsing');\n        return { r: r, s: s };\n    },\n    hexFromSig: function (sig) {\n        // Add leading zero if first byte has negative bit enabled. More details in '_parseInt'\n        var slice = function (s) { return (Number.parseInt(s[0], 16) & 8 ? '00' + s : s); };\n        var h = function (num) {\n            var hex = num.toString(16);\n            return hex.length & 1 ? \"0\".concat(hex) : hex;\n        };\n        var s = slice(h(sig.s));\n        var r = slice(h(sig.r));\n        var shl = s.length / 2;\n        var rhl = r.length / 2;\n        var sl = h(shl);\n        var rl = h(rhl);\n        return \"30\".concat(h(rhl + shl + 4), \"02\").concat(rl).concat(r, \"02\").concat(sl).concat(s);\n    },\n};\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nvar _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\nfunction weierstrassPoints(opts) {\n    var CURVE = validatePointOpts(opts);\n    var Fp = CURVE.Fp; // All curves has same field / group length as for now, but they can differ\n    var toBytes = CURVE.toBytes ||\n        (function (_c, point, _isCompressed) {\n            var a = point.toAffine();\n            return ut.concatBytes(Uint8Array.from([0x04]), Fp.toBytes(a.x), Fp.toBytes(a.y));\n        });\n    var fromBytes = CURVE.fromBytes ||\n        (function (bytes) {\n            // const head = bytes[0];\n            var tail = bytes.subarray(1);\n            // if (head !== 0x04) throw new Error('Only non-compressed encoding is supported');\n            var x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n            var y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n            return { x: x, y: y };\n        });\n    /**\n     * y² = x³ + ax + b: Short weierstrass curve formula\n     * @returns y²\n     */\n    function weierstrassEquation(x) {\n        var a = CURVE.a, b = CURVE.b;\n        var x2 = Fp.sqr(x); // x * x\n        var x3 = Fp.mul(x2, x); // x2 * x\n        return Fp.add(Fp.add(x3, Fp.mul(x, a)), b); // x3 + a * x + b\n    }\n    // Validate whether the passed curve params are valid.\n    // We check if curve equation works for generator point.\n    // `assertValidity()` won't work: `isTorsionFree()` is not available at this point in bls12-381.\n    // ProjectivePoint class has not been initialized yet.\n    if (!Fp.eql(Fp.sqr(CURVE.Gy), weierstrassEquation(CURVE.Gx)))\n        throw new Error('bad generator point: equation left != right');\n    // Valid group elements reside in range 1..n-1\n    function isWithinCurveOrder(num) {\n        return typeof num === 'bigint' && _0n < num && num < CURVE.n;\n    }\n    function assertGE(num) {\n        if (!isWithinCurveOrder(num))\n            throw new Error('Expected valid bigint: 0 < bigint < curve.n');\n    }\n    // Validates if priv key is valid and converts it to bigint.\n    // Supports options allowedPrivateKeyLengths and wrapPrivateKey.\n    function normPrivateKeyToScalar(key) {\n        var lengths = CURVE.allowedPrivateKeyLengths, nByteLength = CURVE.nByteLength, wrapPrivateKey = CURVE.wrapPrivateKey, n = CURVE.n;\n        if (lengths && typeof key !== 'bigint') {\n            if (ut.isBytes(key))\n                key = ut.bytesToHex(key);\n            // Normalize to hex string, pad. E.g. P521 would norm 130-132 char hex to 132-char bytes\n            if (typeof key !== 'string' || !lengths.includes(key.length))\n                throw new Error('Invalid key');\n            key = key.padStart(nByteLength * 2, '0');\n        }\n        var num;\n        try {\n            num =\n                typeof key === 'bigint'\n                    ? key\n                    : ut.bytesToNumberBE((0, utils_1.ensureBytes)('private key', key, nByteLength));\n        }\n        catch (error) {\n            throw new Error(\"private key must be \".concat(nByteLength, \" bytes, hex or bigint, not \").concat(typeof key));\n        }\n        if (wrapPrivateKey)\n            num = mod.mod(num, n); // disabled by default, enabled for BLS\n        assertGE(num); // num in range [1..N-1]\n        return num;\n    }\n    var pointPrecomputes = new Map();\n    function assertPrjPoint(other) {\n        if (!(other instanceof Point))\n            throw new Error('ProjectivePoint expected');\n    }\n    /**\n     * Projective Point works in 3d / projective (homogeneous) coordinates: (x, y, z) ∋ (x=x/z, y=y/z)\n     * Default Point works in 2d / affine coordinates: (x, y)\n     * We're doing calculations in projective, because its operations don't require costly inversion.\n     */\n    var Point = /** @class */ (function () {\n        function Point(px, py, pz) {\n            this.px = px;\n            this.py = py;\n            this.pz = pz;\n            if (px == null || !Fp.isValid(px))\n                throw new Error('x required');\n            if (py == null || !Fp.isValid(py))\n                throw new Error('y required');\n            if (pz == null || !Fp.isValid(pz))\n                throw new Error('z required');\n        }\n        // Does not validate if the point is on-curve.\n        // Use fromHex instead, or call assertValidity() later.\n        Point.fromAffine = function (p) {\n            var _a = p || {}, x = _a.x, y = _a.y;\n            if (!p || !Fp.isValid(x) || !Fp.isValid(y))\n                throw new Error('invalid affine point');\n            if (p instanceof Point)\n                throw new Error('projective point not allowed');\n            var is0 = function (i) { return Fp.eql(i, Fp.ZERO); };\n            // fromAffine(x:0, y:0) would produce (x:0, y:0, z:1), but we need (x:0, y:1, z:0)\n            if (is0(x) && is0(y))\n                return Point.ZERO;\n            return new Point(x, y, Fp.ONE);\n        };\n        Object.defineProperty(Point.prototype, \"x\", {\n            get: function () {\n                return this.toAffine().x;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Object.defineProperty(Point.prototype, \"y\", {\n            get: function () {\n                return this.toAffine().y;\n            },\n            enumerable: false,\n            configurable: true\n        });\n        /**\n         * Takes a bunch of Projective Points but executes only one\n         * inversion on all of them. Inversion is very slow operation,\n         * so this improves performance massively.\n         * Optimization: converts a list of projective points to a list of identical points with Z=1.\n         */\n        Point.normalizeZ = function (points) {\n            var toInv = Fp.invertBatch(points.map(function (p) { return p.pz; }));\n            return points.map(function (p, i) { return p.toAffine(toInv[i]); }).map(Point.fromAffine);\n        };\n        /**\n         * Converts hash string or Uint8Array to Point.\n         * @param hex short/long ECDSA hex\n         */\n        Point.fromHex = function (hex) {\n            var P = Point.fromAffine(fromBytes((0, utils_1.ensureBytes)('pointHex', hex)));\n            P.assertValidity();\n            return P;\n        };\n        // Multiplies generator point by privateKey.\n        Point.fromPrivateKey = function (privateKey) {\n            return Point.BASE.multiply(normPrivateKeyToScalar(privateKey));\n        };\n        // \"Private method\", don't use it directly\n        Point.prototype._setWindowSize = function (windowSize) {\n            this._WINDOW_SIZE = windowSize;\n            pointPrecomputes.delete(this);\n        };\n        // A point on curve is valid if it conforms to equation.\n        Point.prototype.assertValidity = function () {\n            if (this.is0()) {\n                // (0, 1, 0) aka ZERO is invalid in most contexts.\n                // In BLS, ZERO can be serialized, so we allow it.\n                // (0, 0, 0) is wrong representation of ZERO and is always invalid.\n                if (CURVE.allowInfinityPoint && !Fp.is0(this.py))\n                    return;\n                throw new Error('bad point: ZERO');\n            }\n            // Some 3rd-party test vectors require different wording between here & `fromCompressedHex`\n            var _a = this.toAffine(), x = _a.x, y = _a.y;\n            // Check if x, y are valid field elements\n            if (!Fp.isValid(x) || !Fp.isValid(y))\n                throw new Error('bad point: x or y not FE');\n            var left = Fp.sqr(y); // y²\n            var right = weierstrassEquation(x); // x³ + ax + b\n            if (!Fp.eql(left, right))\n                throw new Error('bad point: equation left != right');\n            if (!this.isTorsionFree())\n                throw new Error('bad point: not in prime-order subgroup');\n        };\n        Point.prototype.hasEvenY = function () {\n            var y = this.toAffine().y;\n            if (Fp.isOdd)\n                return !Fp.isOdd(y);\n            throw new Error(\"Field doesn't support isOdd\");\n        };\n        /**\n         * Compare one point to another.\n         */\n        Point.prototype.equals = function (other) {\n            assertPrjPoint(other);\n            var _a = this, X1 = _a.px, Y1 = _a.py, Z1 = _a.pz;\n            var X2 = other.px, Y2 = other.py, Z2 = other.pz;\n            var U1 = Fp.eql(Fp.mul(X1, Z2), Fp.mul(X2, Z1));\n            var U2 = Fp.eql(Fp.mul(Y1, Z2), Fp.mul(Y2, Z1));\n            return U1 && U2;\n        };\n        /**\n         * Flips point to one corresponding to (x, -y) in Affine coordinates.\n         */\n        Point.prototype.negate = function () {\n            return new Point(this.px, Fp.neg(this.py), this.pz);\n        };\n        // Renes-Costello-Batina exception-free doubling formula.\n        // There is 30% faster Jacobian formula, but it is not complete.\n        // https://eprint.iacr.org/2015/1060, algorithm 3\n        // Cost: 8M + 3S + 3*a + 2*b3 + 15add.\n        Point.prototype.double = function () {\n            var a = CURVE.a, b = CURVE.b;\n            var b3 = Fp.mul(b, _3n);\n            var _a = this, X1 = _a.px, Y1 = _a.py, Z1 = _a.pz;\n            var X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n            var t0 = Fp.mul(X1, X1); // step 1\n            var t1 = Fp.mul(Y1, Y1);\n            var t2 = Fp.mul(Z1, Z1);\n            var t3 = Fp.mul(X1, Y1);\n            t3 = Fp.add(t3, t3); // step 5\n            Z3 = Fp.mul(X1, Z1);\n            Z3 = Fp.add(Z3, Z3);\n            X3 = Fp.mul(a, Z3);\n            Y3 = Fp.mul(b3, t2);\n            Y3 = Fp.add(X3, Y3); // step 10\n            X3 = Fp.sub(t1, Y3);\n            Y3 = Fp.add(t1, Y3);\n            Y3 = Fp.mul(X3, Y3);\n            X3 = Fp.mul(t3, X3);\n            Z3 = Fp.mul(b3, Z3); // step 15\n            t2 = Fp.mul(a, t2);\n            t3 = Fp.sub(t0, t2);\n            t3 = Fp.mul(a, t3);\n            t3 = Fp.add(t3, Z3);\n            Z3 = Fp.add(t0, t0); // step 20\n            t0 = Fp.add(Z3, t0);\n            t0 = Fp.add(t0, t2);\n            t0 = Fp.mul(t0, t3);\n            Y3 = Fp.add(Y3, t0);\n            t2 = Fp.mul(Y1, Z1); // step 25\n            t2 = Fp.add(t2, t2);\n            t0 = Fp.mul(t2, t3);\n            X3 = Fp.sub(X3, t0);\n            Z3 = Fp.mul(t2, t1);\n            Z3 = Fp.add(Z3, Z3); // step 30\n            Z3 = Fp.add(Z3, Z3);\n            return new Point(X3, Y3, Z3);\n        };\n        // Renes-Costello-Batina exception-free addition formula.\n        // There is 30% faster Jacobian formula, but it is not complete.\n        // https://eprint.iacr.org/2015/1060, algorithm 1\n        // Cost: 12M + 0S + 3*a + 3*b3 + 23add.\n        Point.prototype.add = function (other) {\n            assertPrjPoint(other);\n            var _a = this, X1 = _a.px, Y1 = _a.py, Z1 = _a.pz;\n            var X2 = other.px, Y2 = other.py, Z2 = other.pz;\n            var X3 = Fp.ZERO, Y3 = Fp.ZERO, Z3 = Fp.ZERO; // prettier-ignore\n            var a = CURVE.a;\n            var b3 = Fp.mul(CURVE.b, _3n);\n            var t0 = Fp.mul(X1, X2); // step 1\n            var t1 = Fp.mul(Y1, Y2);\n            var t2 = Fp.mul(Z1, Z2);\n            var t3 = Fp.add(X1, Y1);\n            var t4 = Fp.add(X2, Y2); // step 5\n            t3 = Fp.mul(t3, t4);\n            t4 = Fp.add(t0, t1);\n            t3 = Fp.sub(t3, t4);\n            t4 = Fp.add(X1, Z1);\n            var t5 = Fp.add(X2, Z2); // step 10\n            t4 = Fp.mul(t4, t5);\n            t5 = Fp.add(t0, t2);\n            t4 = Fp.sub(t4, t5);\n            t5 = Fp.add(Y1, Z1);\n            X3 = Fp.add(Y2, Z2); // step 15\n            t5 = Fp.mul(t5, X3);\n            X3 = Fp.add(t1, t2);\n            t5 = Fp.sub(t5, X3);\n            Z3 = Fp.mul(a, t4);\n            X3 = Fp.mul(b3, t2); // step 20\n            Z3 = Fp.add(X3, Z3);\n            X3 = Fp.sub(t1, Z3);\n            Z3 = Fp.add(t1, Z3);\n            Y3 = Fp.mul(X3, Z3);\n            t1 = Fp.add(t0, t0); // step 25\n            t1 = Fp.add(t1, t0);\n            t2 = Fp.mul(a, t2);\n            t4 = Fp.mul(b3, t4);\n            t1 = Fp.add(t1, t2);\n            t2 = Fp.sub(t0, t2); // step 30\n            t2 = Fp.mul(a, t2);\n            t4 = Fp.add(t4, t2);\n            t0 = Fp.mul(t1, t4);\n            Y3 = Fp.add(Y3, t0);\n            t0 = Fp.mul(t5, t4); // step 35\n            X3 = Fp.mul(t3, X3);\n            X3 = Fp.sub(X3, t0);\n            t0 = Fp.mul(t3, t1);\n            Z3 = Fp.mul(t5, Z3);\n            Z3 = Fp.add(Z3, t0); // step 40\n            return new Point(X3, Y3, Z3);\n        };\n        Point.prototype.subtract = function (other) {\n            return this.add(other.negate());\n        };\n        Point.prototype.is0 = function () {\n            return this.equals(Point.ZERO);\n        };\n        Point.prototype.wNAF = function (n) {\n            return wnaf.wNAFCached(this, pointPrecomputes, n, function (comp) {\n                var toInv = Fp.invertBatch(comp.map(function (p) { return p.pz; }));\n                return comp.map(function (p, i) { return p.toAffine(toInv[i]); }).map(Point.fromAffine);\n            });\n        };\n        /**\n         * Non-constant-time multiplication. Uses double-and-add algorithm.\n         * It's faster, but should only be used when you don't care about\n         * an exposed private key e.g. sig verification, which works over *public* keys.\n         */\n        Point.prototype.multiplyUnsafe = function (n) {\n            var I = Point.ZERO;\n            if (n === _0n)\n                return I;\n            assertGE(n); // Will throw on 0\n            if (n === _1n)\n                return this;\n            var endo = CURVE.endo;\n            if (!endo)\n                return wnaf.unsafeLadder(this, n);\n            // Apply endomorphism\n            var _a = endo.splitScalar(n), k1neg = _a.k1neg, k1 = _a.k1, k2neg = _a.k2neg, k2 = _a.k2;\n            var k1p = I;\n            var k2p = I;\n            var d = this;\n            while (k1 > _0n || k2 > _0n) {\n                if (k1 & _1n)\n                    k1p = k1p.add(d);\n                if (k2 & _1n)\n                    k2p = k2p.add(d);\n                d = d.double();\n                k1 >>= _1n;\n                k2 >>= _1n;\n            }\n            if (k1neg)\n                k1p = k1p.negate();\n            if (k2neg)\n                k2p = k2p.negate();\n            k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n            return k1p.add(k2p);\n        };\n        /**\n         * Constant time multiplication.\n         * Uses wNAF method. Windowed method may be 10% faster,\n         * but takes 2x longer to generate and consumes 2x memory.\n         * Uses precomputes when available.\n         * Uses endomorphism for Koblitz curves.\n         * @param scalar by which the point would be multiplied\n         * @returns New point\n         */\n        Point.prototype.multiply = function (scalar) {\n            assertGE(scalar);\n            var n = scalar;\n            var point, fake; // Fake point is used to const-time mult\n            var endo = CURVE.endo;\n            if (endo) {\n                var _a = endo.splitScalar(n), k1neg = _a.k1neg, k1 = _a.k1, k2neg = _a.k2neg, k2 = _a.k2;\n                var _b = this.wNAF(k1), k1p = _b.p, f1p = _b.f;\n                var _d = this.wNAF(k2), k2p = _d.p, f2p = _d.f;\n                k1p = wnaf.constTimeNegate(k1neg, k1p);\n                k2p = wnaf.constTimeNegate(k2neg, k2p);\n                k2p = new Point(Fp.mul(k2p.px, endo.beta), k2p.py, k2p.pz);\n                point = k1p.add(k2p);\n                fake = f1p.add(f2p);\n            }\n            else {\n                var _e = this.wNAF(n), p = _e.p, f = _e.f;\n                point = p;\n                fake = f;\n            }\n            // Normalize `z` for both points, but return only real one\n            return Point.normalizeZ([point, fake])[0];\n        };\n        /**\n         * Efficiently calculate `aP + bQ`. Unsafe, can expose private key, if used incorrectly.\n         * Not using Strauss-Shamir trick: precomputation tables are faster.\n         * The trick could be useful if both P and Q are not G (not in our case).\n         * @returns non-zero affine point\n         */\n        Point.prototype.multiplyAndAddUnsafe = function (Q, a, b) {\n            var G = Point.BASE; // No Strauss-Shamir trick: we have 10% faster G precomputes\n            var mul = function (P, a // Select faster multiply() method\n            ) { return (a === _0n || a === _1n || !P.equals(G) ? P.multiplyUnsafe(a) : P.multiply(a)); };\n            var sum = mul(this, a).add(mul(Q, b));\n            return sum.is0() ? undefined : sum;\n        };\n        // Converts Projective point to affine (x, y) coordinates.\n        // Can accept precomputed Z^-1 - for example, from invertBatch.\n        // (x, y, z) ∋ (x=x/z, y=y/z)\n        Point.prototype.toAffine = function (iz) {\n            var _a = this, x = _a.px, y = _a.py, z = _a.pz;\n            var is0 = this.is0();\n            // If invZ was 0, we return zero point. However we still want to execute\n            // all operations, so we replace invZ with a random number, 1.\n            if (iz == null)\n                iz = is0 ? Fp.ONE : Fp.inv(z);\n            var ax = Fp.mul(x, iz);\n            var ay = Fp.mul(y, iz);\n            var zz = Fp.mul(z, iz);\n            if (is0)\n                return { x: Fp.ZERO, y: Fp.ZERO };\n            if (!Fp.eql(zz, Fp.ONE))\n                throw new Error('invZ was invalid');\n            return { x: ax, y: ay };\n        };\n        Point.prototype.isTorsionFree = function () {\n            var cofactor = CURVE.h, isTorsionFree = CURVE.isTorsionFree;\n            if (cofactor === _1n)\n                return true; // No subgroups, always torsion-free\n            if (isTorsionFree)\n                return isTorsionFree(Point, this);\n            throw new Error('isTorsionFree() has not been declared for the elliptic curve');\n        };\n        Point.prototype.clearCofactor = function () {\n            var cofactor = CURVE.h, clearCofactor = CURVE.clearCofactor;\n            if (cofactor === _1n)\n                return this; // Fast-path\n            if (clearCofactor)\n                return clearCofactor(Point, this);\n            return this.multiplyUnsafe(CURVE.h);\n        };\n        Point.prototype.toRawBytes = function (isCompressed) {\n            if (isCompressed === void 0) { isCompressed = true; }\n            this.assertValidity();\n            return toBytes(Point, this, isCompressed);\n        };\n        Point.prototype.toHex = function (isCompressed) {\n            if (isCompressed === void 0) { isCompressed = true; }\n            return ut.bytesToHex(this.toRawBytes(isCompressed));\n        };\n        Point.BASE = new Point(CURVE.Gx, CURVE.Gy, Fp.ONE);\n        Point.ZERO = new Point(Fp.ZERO, Fp.ONE, Fp.ZERO);\n        return Point;\n    }());\n    var _bits = CURVE.nBitLength;\n    var wnaf = (0, curve_1.wNAF)(Point, CURVE.endo ? Math.ceil(_bits / 2) : _bits);\n    // Validate if generator point is on curve\n    return {\n        CURVE: CURVE,\n        ProjectivePoint: Point,\n        normPrivateKeyToScalar: normPrivateKeyToScalar,\n        weierstrassEquation: weierstrassEquation,\n        isWithinCurveOrder: isWithinCurveOrder,\n    };\n}\nexports.weierstrassPoints = weierstrassPoints;\nfunction validateOpts(curve) {\n    var opts = (0, curve_1.validateBasic)(curve);\n    ut.validateObject(opts, {\n        hash: 'hash',\n        hmac: 'function',\n        randomBytes: 'function',\n    }, {\n        bits2int: 'function',\n        bits2int_modN: 'function',\n        lowS: 'boolean',\n    });\n    return Object.freeze(__assign({ lowS: true }, opts));\n}\nfunction weierstrass(curveDef) {\n    var CURVE = validateOpts(curveDef);\n    var Fp = CURVE.Fp, CURVE_ORDER = CURVE.n;\n    var compressedLen = Fp.BYTES + 1; // e.g. 33 for 32\n    var uncompressedLen = 2 * Fp.BYTES + 1; // e.g. 65 for 32\n    function isValidFieldElement(num) {\n        return _0n < num && num < Fp.ORDER; // 0 is banned since it's not invertible FE\n    }\n    function modN(a) {\n        return mod.mod(a, CURVE_ORDER);\n    }\n    function invN(a) {\n        return mod.invert(a, CURVE_ORDER);\n    }\n    var _a = weierstrassPoints(__assign(__assign({}, CURVE), { toBytes: function (_c, point, isCompressed) {\n            var a = point.toAffine();\n            var x = Fp.toBytes(a.x);\n            var cat = ut.concatBytes;\n            if (isCompressed) {\n                return cat(Uint8Array.from([point.hasEvenY() ? 0x02 : 0x03]), x);\n            }\n            else {\n                return cat(Uint8Array.from([0x04]), x, Fp.toBytes(a.y));\n            }\n        }, fromBytes: function (bytes) {\n            var len = bytes.length;\n            var head = bytes[0];\n            var tail = bytes.subarray(1);\n            // this.assertValidity() is done inside of fromHex\n            if (len === compressedLen && (head === 0x02 || head === 0x03)) {\n                var x = ut.bytesToNumberBE(tail);\n                if (!isValidFieldElement(x))\n                    throw new Error('Point is not on curve');\n                var y2 = weierstrassEquation(x); // y² = x³ + ax + b\n                var y = void 0;\n                try {\n                    y = Fp.sqrt(y2); // y = y² ^ (p+1)/4\n                }\n                catch (sqrtError) {\n                    var suffix = sqrtError instanceof Error ? ': ' + sqrtError.message : '';\n                    throw new Error('Point is not on curve' + suffix);\n                }\n                var isYOdd = (y & _1n) === _1n;\n                // ECDSA\n                var isHeadOdd = (head & 1) === 1;\n                if (isHeadOdd !== isYOdd)\n                    y = Fp.neg(y);\n                return { x: x, y: y };\n            }\n            else if (len === uncompressedLen && head === 0x04) {\n                var x = Fp.fromBytes(tail.subarray(0, Fp.BYTES));\n                var y = Fp.fromBytes(tail.subarray(Fp.BYTES, 2 * Fp.BYTES));\n                return { x: x, y: y };\n            }\n            else {\n                throw new Error(\"Point of length \".concat(len, \" was invalid. Expected \").concat(compressedLen, \" compressed bytes or \").concat(uncompressedLen, \" uncompressed bytes\"));\n            }\n        } })), Point = _a.ProjectivePoint, normPrivateKeyToScalar = _a.normPrivateKeyToScalar, weierstrassEquation = _a.weierstrassEquation, isWithinCurveOrder = _a.isWithinCurveOrder;\n    var numToNByteStr = function (num) {\n        return ut.bytesToHex(ut.numberToBytesBE(num, CURVE.nByteLength));\n    };\n    function isBiggerThanHalfOrder(number) {\n        var HALF = CURVE_ORDER >> _1n;\n        return number > HALF;\n    }\n    function normalizeS(s) {\n        return isBiggerThanHalfOrder(s) ? modN(-s) : s;\n    }\n    // slice bytes num\n    var slcNum = function (b, from, to) { return ut.bytesToNumberBE(b.slice(from, to)); };\n    /**\n     * ECDSA signature with its (r, s) properties. Supports DER & compact representations.\n     */\n    var Signature = /** @class */ (function () {\n        function Signature(r, s, recovery) {\n            this.r = r;\n            this.s = s;\n            this.recovery = recovery;\n            this.assertValidity();\n        }\n        // pair (bytes of r, bytes of s)\n        Signature.fromCompact = function (hex) {\n            var l = CURVE.nByteLength;\n            hex = (0, utils_1.ensureBytes)('compactSignature', hex, l * 2);\n            return new Signature(slcNum(hex, 0, l), slcNum(hex, l, 2 * l));\n        };\n        // DER encoded ECDSA signature\n        // https://bitcoin.stackexchange.com/questions/57644/what-are-the-parts-of-a-bitcoin-transaction-input-script\n        Signature.fromDER = function (hex) {\n            var _a = exports.DER.toSig((0, utils_1.ensureBytes)('DER', hex)), r = _a.r, s = _a.s;\n            return new Signature(r, s);\n        };\n        Signature.prototype.assertValidity = function () {\n            // can use assertGE here\n            if (!isWithinCurveOrder(this.r))\n                throw new Error('r must be 0 < r < CURVE.n');\n            if (!isWithinCurveOrder(this.s))\n                throw new Error('s must be 0 < s < CURVE.n');\n        };\n        Signature.prototype.addRecoveryBit = function (recovery) {\n            return new Signature(this.r, this.s, recovery);\n        };\n        Signature.prototype.recoverPublicKey = function (msgHash) {\n            var _a = this, r = _a.r, s = _a.s, rec = _a.recovery;\n            var h = bits2int_modN((0, utils_1.ensureBytes)('msgHash', msgHash)); // Truncate hash\n            if (rec == null || ![0, 1, 2, 3].includes(rec))\n                throw new Error('recovery id invalid');\n            var radj = rec === 2 || rec === 3 ? r + CURVE.n : r;\n            if (radj >= Fp.ORDER)\n                throw new Error('recovery id 2 or 3 invalid');\n            var prefix = (rec & 1) === 0 ? '02' : '03';\n            var R = Point.fromHex(prefix + numToNByteStr(radj));\n            var ir = invN(radj); // r^-1\n            var u1 = modN(-h * ir); // -hr^-1\n            var u2 = modN(s * ir); // sr^-1\n            var Q = Point.BASE.multiplyAndAddUnsafe(R, u1, u2); // (sr^-1)R-(hr^-1)G = -(hr^-1)G + (sr^-1)\n            if (!Q)\n                throw new Error('point at infinify'); // unsafe is fine: no priv data leaked\n            Q.assertValidity();\n            return Q;\n        };\n        // Signatures should be low-s, to prevent malleability.\n        Signature.prototype.hasHighS = function () {\n            return isBiggerThanHalfOrder(this.s);\n        };\n        Signature.prototype.normalizeS = function () {\n            return this.hasHighS() ? new Signature(this.r, modN(-this.s), this.recovery) : this;\n        };\n        // DER-encoded\n        Signature.prototype.toDERRawBytes = function () {\n            return ut.hexToBytes(this.toDERHex());\n        };\n        Signature.prototype.toDERHex = function () {\n            return exports.DER.hexFromSig({ r: this.r, s: this.s });\n        };\n        // padded bytes of r, then padded bytes of s\n        Signature.prototype.toCompactRawBytes = function () {\n            return ut.hexToBytes(this.toCompactHex());\n        };\n        Signature.prototype.toCompactHex = function () {\n            return numToNByteStr(this.r) + numToNByteStr(this.s);\n        };\n        return Signature;\n    }());\n    var utils = {\n        isValidPrivateKey: function (privateKey) {\n            try {\n                normPrivateKeyToScalar(privateKey);\n                return true;\n            }\n            catch (error) {\n                return false;\n            }\n        },\n        normPrivateKeyToScalar: normPrivateKeyToScalar,\n        /**\n         * Produces cryptographically secure private key from random of size\n         * (groupLen + ceil(groupLen / 2)) with modulo bias being negligible.\n         */\n        randomPrivateKey: function () {\n            var length = mod.getMinHashLength(CURVE.n);\n            return mod.mapHashToField(CURVE.randomBytes(length), CURVE.n);\n        },\n        /**\n         * Creates precompute table for an arbitrary EC point. Makes point \"cached\".\n         * Allows to massively speed-up `point.multiply(scalar)`.\n         * @returns cached point\n         * @example\n         * const fast = utils.precompute(8, ProjectivePoint.fromHex(someonesPubKey));\n         * fast.multiply(privKey); // much faster ECDH now\n         */\n        precompute: function (windowSize, point) {\n            if (windowSize === void 0) { windowSize = 8; }\n            if (point === void 0) { point = Point.BASE; }\n            point._setWindowSize(windowSize);\n            point.multiply(BigInt(3)); // 3 is arbitrary, just need any number here\n            return point;\n        },\n    };\n    /**\n     * Computes public key for a private key. Checks for validity of the private key.\n     * @param privateKey private key\n     * @param isCompressed whether to return compact (default), or full key\n     * @returns Public key, full when isCompressed=false; short when isCompressed=true\n     */\n    function getPublicKey(privateKey, isCompressed) {\n        if (isCompressed === void 0) { isCompressed = true; }\n        return Point.fromPrivateKey(privateKey).toRawBytes(isCompressed);\n    }\n    /**\n     * Quick and dirty check for item being public key. Does not validate hex, or being on-curve.\n     */\n    function isProbPub(item) {\n        var arr = ut.isBytes(item);\n        var str = typeof item === 'string';\n        var len = (arr || str) && item.length;\n        if (arr)\n            return len === compressedLen || len === uncompressedLen;\n        if (str)\n            return len === 2 * compressedLen || len === 2 * uncompressedLen;\n        if (item instanceof Point)\n            return true;\n        return false;\n    }\n    /**\n     * ECDH (Elliptic Curve Diffie Hellman).\n     * Computes shared public key from private key and public key.\n     * Checks: 1) private key validity 2) shared key is on-curve.\n     * Does NOT hash the result.\n     * @param privateA private key\n     * @param publicB different public key\n     * @param isCompressed whether to return compact (default), or full key\n     * @returns shared public key\n     */\n    function getSharedSecret(privateA, publicB, isCompressed) {\n        if (isCompressed === void 0) { isCompressed = true; }\n        if (isProbPub(privateA))\n            throw new Error('first arg must be private key');\n        if (!isProbPub(publicB))\n            throw new Error('second arg must be public key');\n        var b = Point.fromHex(publicB); // check for being on-curve\n        return b.multiply(normPrivateKeyToScalar(privateA)).toRawBytes(isCompressed);\n    }\n    // RFC6979: ensure ECDSA msg is X bytes and < N. RFC suggests optional truncating via bits2octets.\n    // FIPS 186-4 4.6 suggests the leftmost min(nBitLen, outLen) bits, which matches bits2int.\n    // bits2int can produce res>N, we can do mod(res, N) since the bitLen is the same.\n    // int2octets can't be used; pads small msgs with 0: unacceptatble for trunc as per RFC vectors\n    var bits2int = CURVE.bits2int ||\n        function (bytes) {\n            // For curves with nBitLength % 8 !== 0: bits2octets(bits2octets(m)) !== bits2octets(m)\n            // for some cases, since bytes.length * 8 is not actual bitLength.\n            var num = ut.bytesToNumberBE(bytes); // check for == u8 done here\n            var delta = bytes.length * 8 - CURVE.nBitLength; // truncate to nBitLength leftmost bits\n            return delta > 0 ? num >> BigInt(delta) : num;\n        };\n    var bits2int_modN = CURVE.bits2int_modN ||\n        function (bytes) {\n            return modN(bits2int(bytes)); // can't use bytesToNumberBE here\n        };\n    // NOTE: pads output with zero as per spec\n    var ORDER_MASK = ut.bitMask(CURVE.nBitLength);\n    /**\n     * Converts to bytes. Checks if num in `[0..ORDER_MASK-1]` e.g.: `[0..2^256-1]`.\n     */\n    function int2octets(num) {\n        if (typeof num !== 'bigint')\n            throw new Error('bigint expected');\n        if (!(_0n <= num && num < ORDER_MASK))\n            throw new Error(\"bigint expected < 2^\".concat(CURVE.nBitLength));\n        // works with order, can have different size than numToField!\n        return ut.numberToBytesBE(num, CURVE.nByteLength);\n    }\n    // Steps A, D of RFC6979 3.2\n    // Creates RFC6979 seed; converts msg/privKey to numbers.\n    // Used only in sign, not in verify.\n    // NOTE: we cannot assume here that msgHash has same amount of bytes as curve order, this will be wrong at least for P521.\n    // Also it can be bigger for P224 + SHA256\n    function prepSig(msgHash, privateKey, opts) {\n        if (opts === void 0) { opts = defaultSigOpts; }\n        if (['recovered', 'canonical'].some(function (k) { return k in opts; }))\n            throw new Error('sign() legacy options not supported');\n        var hash = CURVE.hash, randomBytes = CURVE.randomBytes;\n        var lowS = opts.lowS, prehash = opts.prehash, ent = opts.extraEntropy; // generates low-s sigs by default\n        if (lowS == null)\n            lowS = true; // RFC6979 3.2: we skip step A, because we already provide hash\n        msgHash = (0, utils_1.ensureBytes)('msgHash', msgHash);\n        if (prehash)\n            msgHash = (0, utils_1.ensureBytes)('prehashed msgHash', hash(msgHash));\n        // We can't later call bits2octets, since nested bits2int is broken for curves\n        // with nBitLength % 8 !== 0. Because of that, we unwrap it here as int2octets call.\n        // const bits2octets = (bits) => int2octets(bits2int_modN(bits))\n        var h1int = bits2int_modN(msgHash);\n        var d = normPrivateKeyToScalar(privateKey); // validate private key, convert to bigint\n        var seedArgs = [int2octets(d), int2octets(h1int)];\n        // extraEntropy. RFC6979 3.6: additional k' (optional).\n        if (ent != null && ent !== false) {\n            // K = HMAC_K(V || 0x00 || int2octets(x) || bits2octets(h1) || k')\n            var e = ent === true ? randomBytes(Fp.BYTES) : ent; // generate random bytes OR pass as-is\n            seedArgs.push((0, utils_1.ensureBytes)('extraEntropy', e)); // check for being bytes\n        }\n        var seed = ut.concatBytes.apply(ut, __spreadArray([], __read(seedArgs), false)); // Step D of RFC6979 3.2\n        var m = h1int; // NOTE: no need to call bits2int second time here, it is inside truncateHash!\n        // Converts signature params into point w r/s, checks result for validity.\n        function k2sig(kBytes) {\n            // RFC 6979 Section 3.2, step 3: k = bits2int(T)\n            var k = bits2int(kBytes); // Cannot use fields methods, since it is group element\n            if (!isWithinCurveOrder(k))\n                return; // Important: all mod() calls here must be done over N\n            var ik = invN(k); // k^-1 mod n\n            var q = Point.BASE.multiply(k).toAffine(); // q = Gk\n            var r = modN(q.x); // r = q.x mod n\n            if (r === _0n)\n                return;\n            // Can use scalar blinding b^-1(bm + bdr) where b ∈ [1,q−1] according to\n            // https://tches.iacr.org/index.php/TCHES/article/view/7337/6509. We've decided against it:\n            // a) dependency on CSPRNG b) 15% slowdown c) doesn't really help since bigints are not CT\n            var s = modN(ik * modN(m + r * d)); // Not using blinding here\n            if (s === _0n)\n                return;\n            var recovery = (q.x === r ? 0 : 2) | Number(q.y & _1n); // recovery bit (2 or 3, when q.x > n)\n            var normS = s;\n            if (lowS && isBiggerThanHalfOrder(s)) {\n                normS = normalizeS(s); // if lowS was passed, ensure s is always\n                recovery ^= 1; // // in the bottom half of N\n            }\n            return new Signature(r, normS, recovery); // use normS, not s\n        }\n        return { seed: seed, k2sig: k2sig };\n    }\n    var defaultSigOpts = { lowS: CURVE.lowS, prehash: false };\n    var defaultVerOpts = { lowS: CURVE.lowS, prehash: false };\n    /**\n     * Signs message hash with a private key.\n     * ```\n     * sign(m, d, k) where\n     *   (x, y) = G × k\n     *   r = x mod n\n     *   s = (m + dr)/k mod n\n     * ```\n     * @param msgHash NOT message. msg needs to be hashed to `msgHash`, or use `prehash`.\n     * @param privKey private key\n     * @param opts lowS for non-malleable sigs. extraEntropy for mixing randomness into k. prehash will hash first arg.\n     * @returns signature with recovery param\n     */\n    function sign(msgHash, privKey, opts) {\n        if (opts === void 0) { opts = defaultSigOpts; }\n        var _a = prepSig(msgHash, privKey, opts), seed = _a.seed, k2sig = _a.k2sig; // Steps A, D of RFC6979 3.2.\n        var C = CURVE;\n        var drbg = ut.createHmacDrbg(C.hash.outputLen, C.nByteLength, C.hmac);\n        return drbg(seed, k2sig); // Steps B, C, D, E, F, G\n    }\n    // Enable precomputes. Slows down first publicKey computation by 20ms.\n    Point.BASE._setWindowSize(8);\n    // utils.precompute(8, ProjectivePoint.BASE)\n    /**\n     * Verifies a signature against message hash and public key.\n     * Rejects lowS signatures by default: to override,\n     * specify option `{lowS: false}`. Implements section 4.1.4 from https://www.secg.org/sec1-v2.pdf:\n     *\n     * ```\n     * verify(r, s, h, P) where\n     *   U1 = hs^-1 mod n\n     *   U2 = rs^-1 mod n\n     *   R = U1⋅G - U2⋅P\n     *   mod(R.x, n) == r\n     * ```\n     */\n    function verify(signature, msgHash, publicKey, opts) {\n        var _a;\n        if (opts === void 0) { opts = defaultVerOpts; }\n        var sg = signature;\n        msgHash = (0, utils_1.ensureBytes)('msgHash', msgHash);\n        publicKey = (0, utils_1.ensureBytes)('publicKey', publicKey);\n        if ('strict' in opts)\n            throw new Error('options.strict was renamed to lowS');\n        var lowS = opts.lowS, prehash = opts.prehash;\n        var _sig = undefined;\n        var P;\n        try {\n            if (typeof sg === 'string' || ut.isBytes(sg)) {\n                // Signature can be represented in 2 ways: compact (2*nByteLength) & DER (variable-length).\n                // Since DER can also be 2*nByteLength bytes, we check for it first.\n                try {\n                    _sig = Signature.fromDER(sg);\n                }\n                catch (derError) {\n                    if (!(derError instanceof exports.DER.Err))\n                        throw derError;\n                    _sig = Signature.fromCompact(sg);\n                }\n            }\n            else if (typeof sg === 'object' && typeof sg.r === 'bigint' && typeof sg.s === 'bigint') {\n                var r_1 = sg.r, s_1 = sg.s;\n                _sig = new Signature(r_1, s_1);\n            }\n            else {\n                throw new Error('PARSE');\n            }\n            P = Point.fromHex(publicKey);\n        }\n        catch (error) {\n            if (error.message === 'PARSE')\n                throw new Error(\"signature must be Signature instance, Uint8Array or hex string\");\n            return false;\n        }\n        if (lowS && _sig.hasHighS())\n            return false;\n        if (prehash)\n            msgHash = CURVE.hash(msgHash);\n        var r = _sig.r, s = _sig.s;\n        var h = bits2int_modN(msgHash); // Cannot use fields methods, since it is group element\n        var is = invN(s); // s^-1\n        var u1 = modN(h * is); // u1 = hs^-1 mod n\n        var u2 = modN(r * is); // u2 = rs^-1 mod n\n        var R = (_a = Point.BASE.multiplyAndAddUnsafe(P, u1, u2)) === null || _a === void 0 ? void 0 : _a.toAffine(); // R = u1⋅G + u2⋅P\n        if (!R)\n            return false;\n        var v = modN(R.x);\n        return v === r;\n    }\n    return {\n        CURVE: CURVE,\n        getPublicKey: getPublicKey,\n        getSharedSecret: getSharedSecret,\n        sign: sign,\n        verify: verify,\n        ProjectivePoint: Point,\n        Signature: Signature,\n        utils: utils,\n    };\n}\nexports.weierstrass = weierstrass;\n/**\n * Implementation of the Shallue and van de Woestijne method for any weierstrass curve.\n * TODO: check if there is a way to merge this with uvRatio in Edwards; move to modular.\n * b = True and y = sqrt(u / v) if (u / v) is square in F, and\n * b = False and y = sqrt(Z * (u / v)) otherwise.\n * @param Fp\n * @param Z\n * @returns\n */\nfunction SWUFpSqrtRatio(Fp, Z) {\n    // Generic implementation\n    var q = Fp.ORDER;\n    var l = _0n;\n    for (var o = q - _1n; o % _2n === _0n; o /= _2n)\n        l += _1n;\n    var c1 = l; // 1. c1, the largest integer such that 2^c1 divides q - 1.\n    // We need 2n ** c1 and 2n ** (c1-1). We can't use **; but we can use <<.\n    // 2n ** c1 == 2n << (c1-1)\n    var _2n_pow_c1_1 = _2n << (c1 - _1n - _1n);\n    var _2n_pow_c1 = _2n_pow_c1_1 * _2n;\n    var c2 = (q - _1n) / _2n_pow_c1; // 2. c2 = (q - 1) / (2^c1)  # Integer arithmetic\n    var c3 = (c2 - _1n) / _2n; // 3. c3 = (c2 - 1) / 2            # Integer arithmetic\n    var c4 = _2n_pow_c1 - _1n; // 4. c4 = 2^c1 - 1                # Integer arithmetic\n    var c5 = _2n_pow_c1_1; // 5. c5 = 2^(c1 - 1)                  # Integer arithmetic\n    var c6 = Fp.pow(Z, c2); // 6. c6 = Z^c2\n    var c7 = Fp.pow(Z, (c2 + _1n) / _2n); // 7. c7 = Z^((c2 + 1) / 2)\n    var sqrtRatio = function (u, v) {\n        var tv1 = c6; // 1. tv1 = c6\n        var tv2 = Fp.pow(v, c4); // 2. tv2 = v^c4\n        var tv3 = Fp.sqr(tv2); // 3. tv3 = tv2^2\n        tv3 = Fp.mul(tv3, v); // 4. tv3 = tv3 * v\n        var tv5 = Fp.mul(u, tv3); // 5. tv5 = u * tv3\n        tv5 = Fp.pow(tv5, c3); // 6. tv5 = tv5^c3\n        tv5 = Fp.mul(tv5, tv2); // 7. tv5 = tv5 * tv2\n        tv2 = Fp.mul(tv5, v); // 8. tv2 = tv5 * v\n        tv3 = Fp.mul(tv5, u); // 9. tv3 = tv5 * u\n        var tv4 = Fp.mul(tv3, tv2); // 10. tv4 = tv3 * tv2\n        tv5 = Fp.pow(tv4, c5); // 11. tv5 = tv4^c5\n        var isQR = Fp.eql(tv5, Fp.ONE); // 12. isQR = tv5 == 1\n        tv2 = Fp.mul(tv3, c7); // 13. tv2 = tv3 * c7\n        tv5 = Fp.mul(tv4, tv1); // 14. tv5 = tv4 * tv1\n        tv3 = Fp.cmov(tv2, tv3, isQR); // 15. tv3 = CMOV(tv2, tv3, isQR)\n        tv4 = Fp.cmov(tv5, tv4, isQR); // 16. tv4 = CMOV(tv5, tv4, isQR)\n        // 17. for i in (c1, c1 - 1, ..., 2):\n        for (var i = c1; i > _1n; i--) {\n            var tv5_1 = i - _2n; // 18.    tv5 = i - 2\n            tv5_1 = _2n << (tv5_1 - _1n); // 19.    tv5 = 2^tv5\n            var tvv5 = Fp.pow(tv4, tv5_1); // 20.    tv5 = tv4^tv5\n            var e1 = Fp.eql(tvv5, Fp.ONE); // 21.    e1 = tv5 == 1\n            tv2 = Fp.mul(tv3, tv1); // 22.    tv2 = tv3 * tv1\n            tv1 = Fp.mul(tv1, tv1); // 23.    tv1 = tv1 * tv1\n            tvv5 = Fp.mul(tv4, tv1); // 24.    tv5 = tv4 * tv1\n            tv3 = Fp.cmov(tv2, tv3, e1); // 25.    tv3 = CMOV(tv2, tv3, e1)\n            tv4 = Fp.cmov(tvv5, tv4, e1); // 26.    tv4 = CMOV(tv5, tv4, e1)\n        }\n        return { isValid: isQR, value: tv3 };\n    };\n    if (Fp.ORDER % _4n === _3n) {\n        // sqrt_ratio_3mod4(u, v)\n        var c1_1 = (Fp.ORDER - _3n) / _4n; // 1. c1 = (q - 3) / 4     # Integer arithmetic\n        var c2_1 = Fp.sqrt(Fp.neg(Z)); // 2. c2 = sqrt(-Z)\n        sqrtRatio = function (u, v) {\n            var tv1 = Fp.sqr(v); // 1. tv1 = v^2\n            var tv2 = Fp.mul(u, v); // 2. tv2 = u * v\n            tv1 = Fp.mul(tv1, tv2); // 3. tv1 = tv1 * tv2\n            var y1 = Fp.pow(tv1, c1_1); // 4. y1 = tv1^c1\n            y1 = Fp.mul(y1, tv2); // 5. y1 = y1 * tv2\n            var y2 = Fp.mul(y1, c2_1); // 6. y2 = y1 * c2\n            var tv3 = Fp.mul(Fp.sqr(y1), v); // 7. tv3 = y1^2; 8. tv3 = tv3 * v\n            var isQR = Fp.eql(tv3, u); // 9. isQR = tv3 == u\n            var y = Fp.cmov(y2, y1, isQR); // 10. y = CMOV(y2, y1, isQR)\n            return { isValid: isQR, value: y }; // 11. return (isQR, y) isQR ? y : y*c2\n        };\n    }\n    // No curves uses that\n    // if (Fp.ORDER % _8n === _5n) // sqrt_ratio_5mod8\n    return sqrtRatio;\n}\nexports.SWUFpSqrtRatio = SWUFpSqrtRatio;\n/**\n * Simplified Shallue-van de Woestijne-Ulas Method\n * https://www.rfc-editor.org/rfc/rfc9380#section-6.6.2\n */\nfunction mapToCurveSimpleSWU(Fp, opts) {\n    mod.validateField(Fp);\n    if (!Fp.isValid(opts.A) || !Fp.isValid(opts.B) || !Fp.isValid(opts.Z))\n        throw new Error('mapToCurveSimpleSWU: invalid opts');\n    var sqrtRatio = SWUFpSqrtRatio(Fp, opts.Z);\n    if (!Fp.isOdd)\n        throw new Error('Fp.isOdd is not implemented!');\n    // Input: u, an element of F.\n    // Output: (x, y), a point on E.\n    return function (u) {\n        // prettier-ignore\n        var tv1, tv2, tv3, tv4, tv5, tv6, x, y;\n        tv1 = Fp.sqr(u); // 1.  tv1 = u^2\n        tv1 = Fp.mul(tv1, opts.Z); // 2.  tv1 = Z * tv1\n        tv2 = Fp.sqr(tv1); // 3.  tv2 = tv1^2\n        tv2 = Fp.add(tv2, tv1); // 4.  tv2 = tv2 + tv1\n        tv3 = Fp.add(tv2, Fp.ONE); // 5.  tv3 = tv2 + 1\n        tv3 = Fp.mul(tv3, opts.B); // 6.  tv3 = B * tv3\n        tv4 = Fp.cmov(opts.Z, Fp.neg(tv2), !Fp.eql(tv2, Fp.ZERO)); // 7.  tv4 = CMOV(Z, -tv2, tv2 != 0)\n        tv4 = Fp.mul(tv4, opts.A); // 8.  tv4 = A * tv4\n        tv2 = Fp.sqr(tv3); // 9.  tv2 = tv3^2\n        tv6 = Fp.sqr(tv4); // 10. tv6 = tv4^2\n        tv5 = Fp.mul(tv6, opts.A); // 11. tv5 = A * tv6\n        tv2 = Fp.add(tv2, tv5); // 12. tv2 = tv2 + tv5\n        tv2 = Fp.mul(tv2, tv3); // 13. tv2 = tv2 * tv3\n        tv6 = Fp.mul(tv6, tv4); // 14. tv6 = tv6 * tv4\n        tv5 = Fp.mul(tv6, opts.B); // 15. tv5 = B * tv6\n        tv2 = Fp.add(tv2, tv5); // 16. tv2 = tv2 + tv5\n        x = Fp.mul(tv1, tv3); // 17.   x = tv1 * tv3\n        var _a = sqrtRatio(tv2, tv6), isValid = _a.isValid, value = _a.value; // 18. (is_gx1_square, y1) = sqrt_ratio(tv2, tv6)\n        y = Fp.mul(tv1, u); // 19.   y = tv1 * u  -> Z * u^3 * y1\n        y = Fp.mul(y, value); // 20.   y = y * y1\n        x = Fp.cmov(x, tv3, isValid); // 21.   x = CMOV(x, tv3, is_gx1_square)\n        y = Fp.cmov(y, value, isValid); // 22.   y = CMOV(y, y1, is_gx1_square)\n        var e1 = Fp.isOdd(u) === Fp.isOdd(y); // 23.  e1 = sgn0(u) == sgn0(y)\n        y = Fp.cmov(Fp.neg(y), y, e1); // 24.   y = CMOV(-y, y, e1)\n        x = Fp.div(x, tv4); // 25.   x = x / tv4\n        return { x: x, y: y };\n    };\n}\nexports.mapToCurveSimpleSWU = mapToCurveSimpleSWU;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/bls12_381.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/bls12_381.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-curves/blob/38a4ca1e6b0a80c60b11bbb6b3d71e3bfabd5bbb/src/bls12-381.ts#L1\n\nit was modified and adapted to this repository\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bls12_381 = exports.G2_mapToCurve = exports.G1_mapToCurve = exports.G1_formBytes = exports.parseMask = exports.Fp12 = exports.Fp12_ONE = exports.Fp12_eql = exports.Fp12_conjugate = exports.Fp12_finalExponentiate = exports.Fp12Multiply = exports.Fp2 = exports.Fp = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// bls12-381 is pairing-friendly Barreto-Lynn-Scott elliptic curve construction allowing to:\n// - Construct zk-SNARKs at the 120-bit security\n// - Efficiently verify N aggregate signatures with 1 pairing and N ec additions:\n//   the Boneh-Lynn-Shacham signature scheme is orders of magnitude more efficient than Schnorr\n//\n// ### Summary\n// 1. BLS Relies on Bilinear Pairing (expensive)\n// 2. Private Keys: 32 bytes\n// 3. Public Keys: 48 bytes: 381 bit affine x coordinate, encoded into 48 big-endian bytes.\n// 4. Signatures: 96 bytes: two 381 bit integers (affine x coordinate), encoded into two 48 big-endian byte arrays.\n//     - The signature is a point on the G2 subgroup, which is defined over a finite field\n//     with elements twice as big as the G1 curve (G2 is over Fp2 rather than Fp. Fp2 is analogous to the complex numbers).\n// 5. The 12 stands for the Embedding degree.\n//\n// ### Formulas\n// - `P = pk x G` - public keys\n// - `S = pk x H(m)` - signing\n// - `e(P, H(m)) == e(G, S)` - verification using pairings\n// - `e(G, S) = e(G, SUM(n)(Si)) = MUL(n)(e(G, Si))` - signature aggregation\n//\n// ### Compatibility and notes\n// 1. It is compatible with Algorand, Chia, Dfinity, Ethereum, Filecoin, ZEC\n//    Filecoin uses little endian byte arrays for private keys - make sure to reverse byte order.\n// 2. Some projects use G2 for public keys and G1 for signatures. It's called \"short signature\"\n// 3. Curve security level is about 120 bits as per Barbulescu-Duquesne 2017\n//    https://hal.science/hal-01534101/file/main.pdf\n// 4. Compatible with specs:\n// [cfrg-pairing-friendly-curves-11](https://tools.ietf.org/html/draft-irtf-cfrg-pairing-friendly-curves-11),\n// [cfrg-bls-signature-05](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-bls-signature-05),\n// [RFC 9380](https://www.rfc-editor.org/rfc/rfc9380).\nvar bls_1 = __webpack_require__(/*! ./abstract/bls.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/bls.js\");\nvar mod = __importStar(__webpack_require__(/*! ./abstract/modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\"));\nvar utils_1 = __webpack_require__(/*! ./abstract/utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\n// Types\nvar weierstrass_1 = __webpack_require__(/*! ./abstract/weierstrass.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js\");\nvar hash_to_curve_1 = __webpack_require__(/*! ./abstract/hash-to-curve.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js\");\nvar sha256_1 = __webpack_require__(/*! ./sha256.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js\");\nvar utils_2 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\n// Be friendly to bad ECMAScript parsers by not using bigint literals\n// prettier-ignore\nvar _0n = BigInt(0), _1n = BigInt(1), _2n = BigInt(2), _3n = BigInt(3), _4n = BigInt(4);\n// prettier-ignore\nvar _8n = BigInt(8), _16n = BigInt(16);\n// CURVE FIELDS\n// Finite field over p.\nvar Fp_raw = BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab');\nexports.Fp = mod.Field(Fp_raw);\n// Finite field over r.\n// This particular field is not used anywhere in bls12-381, but it is still useful.\nvar Fr = mod.Field(BigInt('0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001'));\nvar Fp2Add = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var r0 = _b.c0, r1 = _b.c1;\n    return ({\n        c0: exports.Fp.add(c0, r0),\n        c1: exports.Fp.add(c1, r1),\n    });\n};\nvar Fp2Subtract = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var r0 = _b.c0, r1 = _b.c1;\n    return ({\n        c0: exports.Fp.sub(c0, r0),\n        c1: exports.Fp.sub(c1, r1),\n    });\n};\nvar Fp2Multiply = function (_a, rhs) {\n    var c0 = _a.c0, c1 = _a.c1;\n    if (typeof rhs === 'bigint')\n        return { c0: exports.Fp.mul(c0, rhs), c1: exports.Fp.mul(c1, rhs) };\n    // (a+bi)(c+di) = (ac−bd) + (ad+bc)i\n    var r0 = rhs.c0, r1 = rhs.c1;\n    var t1 = exports.Fp.mul(c0, r0); // c0 * o0\n    var t2 = exports.Fp.mul(c1, r1); // c1 * o1\n    // (T1 - T2) + ((c0 + c1) * (r0 + r1) - (T1 + T2))*i\n    var o0 = exports.Fp.sub(t1, t2);\n    var o1 = exports.Fp.sub(exports.Fp.mul(exports.Fp.add(c0, c1), exports.Fp.add(r0, r1)), exports.Fp.add(t1, t2));\n    return { c0: o0, c1: o1 };\n};\nvar Fp2Square = function (_a) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var a = exports.Fp.add(c0, c1);\n    var b = exports.Fp.sub(c0, c1);\n    var c = exports.Fp.add(c0, c0);\n    return { c0: exports.Fp.mul(a, b), c1: exports.Fp.mul(c, c1) };\n};\n// G2 is the order-q subgroup of E2(Fp²) : y² = x³+4(1+√−1),\n// where Fp2 is Fp[√−1]/(x2+1). #E2(Fp2 ) = h2q, where\n// G² - 1\n// h2q\n// NOTE: ORDER was wrong!\nvar FP2_ORDER = Fp_raw * Fp_raw;\nexports.Fp2 = {\n    ORDER: FP2_ORDER,\n    BITS: (0, utils_1.bitLen)(FP2_ORDER),\n    BYTES: Math.ceil((0, utils_1.bitLen)(FP2_ORDER) / 8),\n    MASK: (0, utils_1.bitMask)((0, utils_1.bitLen)(FP2_ORDER)),\n    ZERO: { c0: exports.Fp.ZERO, c1: exports.Fp.ZERO },\n    ONE: { c0: exports.Fp.ONE, c1: exports.Fp.ZERO },\n    create: function (num) { return num; },\n    isValid: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return typeof c0 === 'bigint' && typeof c1 === 'bigint';\n    },\n    is0: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return exports.Fp.is0(c0) && exports.Fp.is0(c1);\n    },\n    eql: function (_a, _b) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var r0 = _b.c0, r1 = _b.c1;\n        return exports.Fp.eql(c0, r0) && exports.Fp.eql(c1, r1);\n    },\n    neg: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({ c0: exports.Fp.neg(c0), c1: exports.Fp.neg(c1) });\n    },\n    pow: function (num, power) { return mod.FpPow(exports.Fp2, num, power); },\n    invertBatch: function (nums) { return mod.FpInvertBatch(exports.Fp2, nums); },\n    // Normalized\n    add: Fp2Add,\n    sub: Fp2Subtract,\n    mul: Fp2Multiply,\n    sqr: Fp2Square,\n    // NonNormalized stuff\n    addN: Fp2Add,\n    subN: Fp2Subtract,\n    mulN: Fp2Multiply,\n    sqrN: Fp2Square,\n    // Why inversion for bigint inside Fp instead of Fp2? it is even used in that context?\n    div: function (lhs, rhs) { return exports.Fp2.mul(lhs, typeof rhs === 'bigint' ? exports.Fp.inv(exports.Fp.create(rhs)) : exports.Fp2.inv(rhs)); },\n    inv: function (_a) {\n        var a = _a.c0, b = _a.c1;\n        // We wish to find the multiplicative inverse of a nonzero\n        // element a + bu in Fp2. We leverage an identity\n        //\n        // (a + bu)(a - bu) = a² + b²\n        //\n        // which holds because u² = -1. This can be rewritten as\n        //\n        // (a + bu)(a - bu)/(a² + b²) = 1\n        //\n        // because a² + b² = 0 has no nonzero solutions for (a, b).\n        // This gives that (a - bu)/(a² + b²) is the inverse\n        // of (a + bu). Importantly, this can be computing using\n        // only a single inversion in Fp.\n        var factor = exports.Fp.inv(exports.Fp.create(a * a + b * b));\n        return { c0: exports.Fp.mul(factor, exports.Fp.create(a)), c1: exports.Fp.mul(factor, exports.Fp.create(-b)) };\n    },\n    sqrt: function (num) {\n        if (exports.Fp2.eql(num, exports.Fp2.ZERO))\n            return exports.Fp2.ZERO; // Algo doesn't handles this case\n        // TODO: Optimize this line. It's extremely slow.\n        // Speeding this up would boost aggregateSignatures.\n        // https://eprint.iacr.org/2012/685.pdf applicable?\n        // https://github.com/zkcrypto/bls12_381/blob/080eaa74ec0e394377caa1ba302c8c121df08b07/src/fp2.rs#L250\n        // https://github.com/supranational/blst/blob/aae0c7d70b799ac269ff5edf29d8191dbd357876/src/exp2.c#L1\n        // Inspired by https://github.com/dalek-cryptography/curve25519-dalek/blob/17698df9d4c834204f83a3574143abacb4fc81a5/src/field.rs#L99\n        var candidateSqrt = exports.Fp2.pow(num, (exports.Fp2.ORDER + _8n) / _16n);\n        var check = exports.Fp2.div(exports.Fp2.sqr(candidateSqrt), num); // candidateSqrt.square().div(this);\n        var R = FP2_ROOTS_OF_UNITY;\n        var divisor = [R[0], R[2], R[4], R[6]].find(function (r) { return exports.Fp2.eql(r, check); });\n        if (!divisor)\n            throw new Error('No root');\n        var index = R.indexOf(divisor);\n        var root = R[index / 2];\n        if (!root)\n            throw new Error('Invalid root');\n        var x1 = exports.Fp2.div(candidateSqrt, root);\n        var x2 = exports.Fp2.neg(x1);\n        var _a = exports.Fp2.reim(x1), re1 = _a.re, im1 = _a.im;\n        var _b = exports.Fp2.reim(x2), re2 = _b.re, im2 = _b.im;\n        if (im1 > im2 || (im1 === im2 && re1 > re2))\n            return x1;\n        return x2;\n    },\n    // Same as sgn0_m_eq_2 in RFC 9380\n    isOdd: function (x) {\n        var _a = exports.Fp2.reim(x), x0 = _a.re, x1 = _a.im;\n        var sign_0 = x0 % _2n;\n        var zero_0 = x0 === _0n;\n        var sign_1 = x1 % _2n;\n        return BigInt(sign_0 || (zero_0 && sign_1)) == _1n;\n    },\n    // Bytes util\n    fromBytes: function (b) {\n        if (b.length !== exports.Fp2.BYTES)\n            throw new Error(\"fromBytes wrong length=\".concat(b.length));\n        return { c0: exports.Fp.fromBytes(b.subarray(0, exports.Fp.BYTES)), c1: exports.Fp.fromBytes(b.subarray(exports.Fp.BYTES)) };\n    },\n    toBytes: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return (0, utils_1.concatBytes)(exports.Fp.toBytes(c0), exports.Fp.toBytes(c1));\n    },\n    cmov: function (_a, _b, c) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var r0 = _b.c0, r1 = _b.c1;\n        return ({\n            c0: exports.Fp.cmov(c0, r0, c),\n            c1: exports.Fp.cmov(c1, r1, c),\n        });\n    },\n    // Specific utils\n    // toString() {\n    //   return `Fp2(${this.c0} + ${this.c1}×i)`;\n    // }\n    reim: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({ re: c0, im: c1 });\n    },\n    // multiply by u + 1\n    mulByNonresidue: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({ c0: exports.Fp.sub(c0, c1), c1: exports.Fp.add(c0, c1) });\n    },\n    multiplyByB: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var t0 = exports.Fp.mul(c0, _4n); // 4 * c0\n        var t1 = exports.Fp.mul(c1, _4n); // 4 * c1\n        // (T0-T1) + (T0+T1)*i\n        return { c0: exports.Fp.sub(t0, t1), c1: exports.Fp.add(t0, t1) };\n    },\n    fromBigTuple: function (tuple) {\n        if (tuple.length !== 2)\n            throw new Error('Invalid tuple');\n        var fps = tuple.map(function (n) { return exports.Fp.create(n); });\n        return { c0: fps[0], c1: fps[1] };\n    },\n    frobeniusMap: function (_a, power) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({\n            c0: c0,\n            c1: exports.Fp.mul(c1, FP2_FROBENIUS_COEFFICIENTS[power % 2]),\n        });\n    },\n};\n// Finite extension field over irreducible polynominal.\n// Fp(u) / (u² - β) where β = -1\nvar FP2_FROBENIUS_COEFFICIENTS = [\n    BigInt('0x1'),\n    BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaa'),\n].map(function (item) { return exports.Fp.create(item); });\n// For Fp2 roots of unity.\nvar rv1 = BigInt('0x6af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09');\n// const ev1 =\n//   BigInt('0x699be3b8c6870965e5bf892ad5d2cc7b0e85a117402dfd83b7f4a947e02d978498255a2aaec0ac627b5afbdf1bf1c90');\n// const ev2 =\n//   BigInt('0x8157cd83046453f5dd0972b6e3949e4288020b5b8a9cc99ca07e27089a2ce2436d965026adad3ef7baba37f2183e9b5');\n// const ev3 =\n//   BigInt('0xab1c2ffdd6c253ca155231eb3e71ba044fd562f6f72bc5bad5ec46a0b7a3b0247cf08ce6c6317f40edbc653a72dee17');\n// const ev4 =\n//   BigInt('0xaa404866706722864480885d68ad0ccac1967c7544b447873cc37e0181271e006df72162a3d3e0287bf597fbf7f8fc1');\n// Eighth roots of unity, used for computing square roots in Fp2.\n// To verify or re-calculate:\n// Array(8).fill(new Fp2([1n, 1n])).map((fp2, k) => fp2.pow(Fp2.ORDER * BigInt(k) / 8n))\nvar FP2_ROOTS_OF_UNITY = [\n    [_1n, _0n],\n    [rv1, -rv1],\n    [_0n, _1n],\n    [rv1, rv1],\n    [-_1n, _0n],\n    [-rv1, rv1],\n    [_0n, -_1n],\n    [-rv1, -rv1],\n].map(function (pair) { return exports.Fp2.fromBigTuple(pair); });\nvar Fp6Add = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n    var r0 = _b.c0, r1 = _b.c1, r2 = _b.c2;\n    return ({\n        c0: exports.Fp2.add(c0, r0),\n        c1: exports.Fp2.add(c1, r1),\n        c2: exports.Fp2.add(c2, r2),\n    });\n};\nvar Fp6Subtract = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n    var r0 = _b.c0, r1 = _b.c1, r2 = _b.c2;\n    return ({\n        c0: exports.Fp2.sub(c0, r0),\n        c1: exports.Fp2.sub(c1, r1),\n        c2: exports.Fp2.sub(c2, r2),\n    });\n};\nvar Fp6Multiply = function (_a, rhs) {\n    var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n    if (typeof rhs === 'bigint') {\n        return {\n            c0: exports.Fp2.mul(c0, rhs),\n            c1: exports.Fp2.mul(c1, rhs),\n            c2: exports.Fp2.mul(c2, rhs),\n        };\n    }\n    var r0 = rhs.c0, r1 = rhs.c1, r2 = rhs.c2;\n    var t0 = exports.Fp2.mul(c0, r0); // c0 * o0\n    var t1 = exports.Fp2.mul(c1, r1); // c1 * o1\n    var t2 = exports.Fp2.mul(c2, r2); // c2 * o2\n    return {\n        // t0 + (c1 + c2) * (r1 * r2) - (T1 + T2) * (u + 1)\n        c0: exports.Fp2.add(t0, exports.Fp2.mulByNonresidue(exports.Fp2.sub(exports.Fp2.mul(exports.Fp2.add(c1, c2), exports.Fp2.add(r1, r2)), exports.Fp2.add(t1, t2)))),\n        // (c0 + c1) * (r0 + r1) - (T0 + T1) + T2 * (u + 1)\n        c1: exports.Fp2.add(exports.Fp2.sub(exports.Fp2.mul(exports.Fp2.add(c0, c1), exports.Fp2.add(r0, r1)), exports.Fp2.add(t0, t1)), exports.Fp2.mulByNonresidue(t2)),\n        // T1 + (c0 + c2) * (r0 + r2) - T0 + T2\n        c2: exports.Fp2.sub(exports.Fp2.add(t1, exports.Fp2.mul(exports.Fp2.add(c0, c2), exports.Fp2.add(r0, r2))), exports.Fp2.add(t0, t2)),\n    };\n};\nvar Fp6Square = function (_a) {\n    var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n    var t0 = exports.Fp2.sqr(c0); // c0²\n    var t1 = exports.Fp2.mul(exports.Fp2.mul(c0, c1), _2n); // 2 * c0 * c1\n    var t3 = exports.Fp2.mul(exports.Fp2.mul(c1, c2), _2n); // 2 * c1 * c2\n    var t4 = exports.Fp2.sqr(c2); // c2²\n    return {\n        c0: exports.Fp2.add(exports.Fp2.mulByNonresidue(t3), t0),\n        c1: exports.Fp2.add(exports.Fp2.mulByNonresidue(t4), t1),\n        // T1 + (c0 - c1 + c2)² + T3 - T0 - T4\n        c2: exports.Fp2.sub(exports.Fp2.sub(exports.Fp2.add(exports.Fp2.add(t1, exports.Fp2.sqr(exports.Fp2.add(exports.Fp2.sub(c0, c1), c2))), t3), t0), t4),\n    };\n};\nvar Fp6 = {\n    ORDER: exports.Fp2.ORDER,\n    BITS: 3 * exports.Fp2.BITS,\n    BYTES: 3 * exports.Fp2.BYTES,\n    MASK: (0, utils_1.bitMask)(3 * exports.Fp2.BITS),\n    ZERO: { c0: exports.Fp2.ZERO, c1: exports.Fp2.ZERO, c2: exports.Fp2.ZERO },\n    ONE: { c0: exports.Fp2.ONE, c1: exports.Fp2.ZERO, c2: exports.Fp2.ZERO },\n    create: function (num) { return num; },\n    isValid: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return exports.Fp2.isValid(c0) && exports.Fp2.isValid(c1) && exports.Fp2.isValid(c2);\n    },\n    is0: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return exports.Fp2.is0(c0) && exports.Fp2.is0(c1) && exports.Fp2.is0(c2);\n    },\n    neg: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return ({ c0: exports.Fp2.neg(c0), c1: exports.Fp2.neg(c1), c2: exports.Fp2.neg(c2) });\n    },\n    eql: function (_a, _b) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        var r0 = _b.c0, r1 = _b.c1, r2 = _b.c2;\n        return exports.Fp2.eql(c0, r0) && exports.Fp2.eql(c1, r1) && exports.Fp2.eql(c2, r2);\n    },\n    sqrt: function () {\n        throw new Error('Not implemented');\n    },\n    // Do we need division by bigint at all? Should be done via order:\n    div: function (lhs, rhs) { return Fp6.mul(lhs, typeof rhs === 'bigint' ? exports.Fp.inv(exports.Fp.create(rhs)) : Fp6.inv(rhs)); },\n    pow: function (num, power) { return mod.FpPow(Fp6, num, power); },\n    invertBatch: function (nums) { return mod.FpInvertBatch(Fp6, nums); },\n    // Normalized\n    add: Fp6Add,\n    sub: Fp6Subtract,\n    mul: Fp6Multiply,\n    sqr: Fp6Square,\n    // NonNormalized stuff\n    addN: Fp6Add,\n    subN: Fp6Subtract,\n    mulN: Fp6Multiply,\n    sqrN: Fp6Square,\n    inv: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        var t0 = exports.Fp2.sub(exports.Fp2.sqr(c0), exports.Fp2.mulByNonresidue(exports.Fp2.mul(c2, c1))); // c0² - c2 * c1 * (u + 1)\n        var t1 = exports.Fp2.sub(exports.Fp2.mulByNonresidue(exports.Fp2.sqr(c2)), exports.Fp2.mul(c0, c1)); // c2² * (u + 1) - c0 * c1\n        var t2 = exports.Fp2.sub(exports.Fp2.sqr(c1), exports.Fp2.mul(c0, c2)); // c1² - c0 * c2\n        // 1/(((c2 * T1 + c1 * T2) * v) + c0 * T0)\n        var t4 = exports.Fp2.inv(exports.Fp2.add(exports.Fp2.mulByNonresidue(exports.Fp2.add(exports.Fp2.mul(c2, t1), exports.Fp2.mul(c1, t2))), exports.Fp2.mul(c0, t0)));\n        return { c0: exports.Fp2.mul(t4, t0), c1: exports.Fp2.mul(t4, t1), c2: exports.Fp2.mul(t4, t2) };\n    },\n    // Bytes utils\n    fromBytes: function (b) {\n        if (b.length !== Fp6.BYTES)\n            throw new Error(\"fromBytes wrong length=\".concat(b.length));\n        return {\n            c0: exports.Fp2.fromBytes(b.subarray(0, exports.Fp2.BYTES)),\n            c1: exports.Fp2.fromBytes(b.subarray(exports.Fp2.BYTES, 2 * exports.Fp2.BYTES)),\n            c2: exports.Fp2.fromBytes(b.subarray(2 * exports.Fp2.BYTES)),\n        };\n    },\n    toBytes: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return (0, utils_1.concatBytes)(exports.Fp2.toBytes(c0), exports.Fp2.toBytes(c1), exports.Fp2.toBytes(c2));\n    },\n    cmov: function (_a, _b, c) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        var r0 = _b.c0, r1 = _b.c1, r2 = _b.c2;\n        return ({\n            c0: exports.Fp2.cmov(c0, r0, c),\n            c1: exports.Fp2.cmov(c1, r1, c),\n            c2: exports.Fp2.cmov(c2, r2, c),\n        });\n    },\n    // Utils\n    //   fromTriple(triple: [Fp2, Fp2, Fp2]) {\n    //     return new Fp6(...triple);\n    //   }\n    //   toString() {\n    //     return `Fp6(${this.c0} + ${this.c1} * v, ${this.c2} * v^2)`;\n    //   }\n    fromBigSix: function (t) {\n        if (!Array.isArray(t) || t.length !== 6)\n            throw new Error('Invalid Fp6 usage');\n        return {\n            c0: exports.Fp2.fromBigTuple(t.slice(0, 2)),\n            c1: exports.Fp2.fromBigTuple(t.slice(2, 4)),\n            c2: exports.Fp2.fromBigTuple(t.slice(4, 6)),\n        };\n    },\n    frobeniusMap: function (_a, power) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return ({\n            c0: exports.Fp2.frobeniusMap(c0, power),\n            c1: exports.Fp2.mul(exports.Fp2.frobeniusMap(c1, power), FP6_FROBENIUS_COEFFICIENTS_1[power % 6]),\n            c2: exports.Fp2.mul(exports.Fp2.frobeniusMap(c2, power), FP6_FROBENIUS_COEFFICIENTS_2[power % 6]),\n        });\n    },\n    mulByNonresidue: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return ({ c0: exports.Fp2.mulByNonresidue(c2), c1: c0, c2: c1 });\n    },\n    // Sparse multiplication\n    multiplyBy1: function (_a, b1) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return ({\n            c0: exports.Fp2.mulByNonresidue(exports.Fp2.mul(c2, b1)),\n            c1: exports.Fp2.mul(c0, b1),\n            c2: exports.Fp2.mul(c1, b1),\n        });\n    },\n    // Sparse multiplication\n    multiplyBy01: function (_a, b0, b1) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        var t0 = exports.Fp2.mul(c0, b0); // c0 * b0\n        var t1 = exports.Fp2.mul(c1, b1); // c1 * b1\n        return {\n            // ((c1 + c2) * b1 - T1) * (u + 1) + T0\n            c0: exports.Fp2.add(exports.Fp2.mulByNonresidue(exports.Fp2.sub(exports.Fp2.mul(exports.Fp2.add(c1, c2), b1), t1)), t0),\n            // (b0 + b1) * (c0 + c1) - T0 - T1\n            c1: exports.Fp2.sub(exports.Fp2.sub(exports.Fp2.mul(exports.Fp2.add(b0, b1), exports.Fp2.add(c0, c1)), t0), t1),\n            // (c0 + c2) * b0 - T0 + T1\n            c2: exports.Fp2.add(exports.Fp2.sub(exports.Fp2.mul(exports.Fp2.add(c0, c2), b0), t0), t1),\n        };\n    },\n    multiplyByFp2: function (_a, rhs) {\n        var c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        return ({\n            c0: exports.Fp2.mul(c0, rhs),\n            c1: exports.Fp2.mul(c1, rhs),\n            c2: exports.Fp2.mul(c2, rhs),\n        });\n    },\n};\nvar FP6_FROBENIUS_COEFFICIENTS_1 = [\n    [BigInt('0x1'), BigInt('0x0')],\n    [\n        BigInt('0x0'),\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac'),\n    ],\n    [\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe'),\n        BigInt('0x0'),\n    ],\n    [BigInt('0x0'), BigInt('0x1')],\n    [\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x0'),\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe'),\n    ],\n].map(function (pair) { return exports.Fp2.fromBigTuple(pair); });\nvar FP6_FROBENIUS_COEFFICIENTS_2 = [\n    [BigInt('0x1'), BigInt('0x0')],\n    [\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaad'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaa'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffff'),\n        BigInt('0x0'),\n    ],\n].map(function (pair) { return exports.Fp2.fromBigTuple(pair); });\n// The BLS parameter x for BLS12-381\nvar BLS_X = BigInt('0xd201000000010000');\nvar BLS_X_LEN = (0, utils_1.bitLen)(BLS_X);\nvar Fp12Add = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var r0 = _b.c0, r1 = _b.c1;\n    return ({\n        c0: Fp6.add(c0, r0),\n        c1: Fp6.add(c1, r1),\n    });\n};\nvar Fp12Subtract = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var r0 = _b.c0, r1 = _b.c1;\n    return ({\n        c0: Fp6.sub(c0, r0),\n        c1: Fp6.sub(c1, r1),\n    });\n};\nvar Fp12Multiply = function (_a, rhs) {\n    var c0 = _a.c0, c1 = _a.c1;\n    if (typeof rhs === 'bigint')\n        return { c0: Fp6.mul(c0, rhs), c1: Fp6.mul(c1, rhs) };\n    var r0 = rhs.c0, r1 = rhs.c1;\n    var t1 = Fp6.mul(c0, r0); // c0 * r0\n    var t2 = Fp6.mul(c1, r1); // c1 * r1\n    return {\n        c0: Fp6.add(t1, Fp6.mulByNonresidue(t2)),\n        // (c0 + c1) * (r0 + r1) - (T1 + T2)\n        c1: Fp6.sub(Fp6.mul(Fp6.add(c0, c1), Fp6.add(r0, r1)), Fp6.add(t1, t2)),\n    };\n};\nexports.Fp12Multiply = Fp12Multiply;\nvar Fp12Square = function (_a) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var ab = Fp6.mul(c0, c1); // c0 * c1\n    return {\n        // (c1 * v + c0) * (c0 + c1) - AB - AB * v\n        c0: Fp6.sub(Fp6.sub(Fp6.mul(Fp6.add(Fp6.mulByNonresidue(c1), c0), Fp6.add(c0, c1)), ab), Fp6.mulByNonresidue(ab)),\n        c1: Fp6.add(ab, ab),\n    }; // AB + AB\n};\nfunction Fp4Square(a, b) {\n    var a2 = exports.Fp2.sqr(a);\n    var b2 = exports.Fp2.sqr(b);\n    return {\n        first: exports.Fp2.add(exports.Fp2.mulByNonresidue(b2), a2),\n        second: exports.Fp2.sub(exports.Fp2.sub(exports.Fp2.sqr(exports.Fp2.add(a, b)), a2), b2), // (a + b)² - a² - b²\n    };\n}\nvar Fp12_finalExponentiate = function (num) {\n    var x = BLS_X;\n    // this^(q⁶) / this\n    var t0 = exports.Fp12.div(exports.Fp12.frobeniusMap(num, 6), num);\n    // t0^(q²) * t0\n    var t1 = exports.Fp12.mul(exports.Fp12.frobeniusMap(t0, 2), t0);\n    var t2 = exports.Fp12.conjugate(exports.Fp12._cyclotomicExp(t1, x));\n    var t3 = exports.Fp12.mul(exports.Fp12.conjugate(exports.Fp12._cyclotomicSquare(t1)), t2);\n    var t4 = exports.Fp12.conjugate(exports.Fp12._cyclotomicExp(t3, x));\n    var t5 = exports.Fp12.conjugate(exports.Fp12._cyclotomicExp(t4, x));\n    var t6 = exports.Fp12.mul(exports.Fp12.conjugate(exports.Fp12._cyclotomicExp(t5, x)), exports.Fp12._cyclotomicSquare(t2));\n    var t7 = exports.Fp12.conjugate(exports.Fp12._cyclotomicExp(t6, x));\n    var t2_t5_pow_q2 = exports.Fp12.frobeniusMap(exports.Fp12.mul(t2, t5), 2);\n    var t4_t1_pow_q3 = exports.Fp12.frobeniusMap(exports.Fp12.mul(t4, t1), 3);\n    var t6_t1c_pow_q1 = exports.Fp12.frobeniusMap(exports.Fp12.mul(t6, exports.Fp12.conjugate(t1)), 1);\n    var t7_t3c_t1 = exports.Fp12.mul(exports.Fp12.mul(t7, exports.Fp12.conjugate(t3)), t1);\n    // (t2 * t5)^(q²) * (t4 * t1)^(q³) * (t6 * t1.conj)^(q^1) * t7 * t3.conj * t1\n    return exports.Fp12.mul(exports.Fp12.mul(exports.Fp12.mul(t2_t5_pow_q2, t4_t1_pow_q3), t6_t1c_pow_q1), t7_t3c_t1);\n};\nexports.Fp12_finalExponentiate = Fp12_finalExponentiate;\nvar Fp12_conjugate = function (_a) {\n    var c0 = _a.c0, c1 = _a.c1;\n    return ({ c0: c0, c1: Fp6.neg(c1) });\n};\nexports.Fp12_conjugate = Fp12_conjugate;\nvar Fp12_eql = function (_a, _b) {\n    var c0 = _a.c0, c1 = _a.c1;\n    var r0 = _b.c0, r1 = _b.c1;\n    return Fp6.eql(c0, r0) && Fp6.eql(c1, r1);\n};\nexports.Fp12_eql = Fp12_eql;\nexports.Fp12_ONE = { c0: Fp6.ONE, c1: Fp6.ZERO };\nexports.Fp12 = {\n    ORDER: exports.Fp2.ORDER,\n    BITS: 2 * exports.Fp2.BITS,\n    BYTES: 2 * exports.Fp2.BYTES,\n    MASK: (0, utils_1.bitMask)(2 * exports.Fp2.BITS),\n    ZERO: { c0: Fp6.ZERO, c1: Fp6.ZERO },\n    ONE: { c0: Fp6.ONE, c1: Fp6.ZERO },\n    create: function (num) { return num; },\n    isValid: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return Fp6.isValid(c0) && Fp6.isValid(c1);\n    },\n    is0: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return Fp6.is0(c0) && Fp6.is0(c1);\n    },\n    neg: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({ c0: Fp6.neg(c0), c1: Fp6.neg(c1) });\n    },\n    eql: exports.Fp12_eql,\n    sqrt: function () {\n        throw new Error('Not implemented');\n    },\n    inv: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var t = Fp6.inv(Fp6.sub(Fp6.sqr(c0), Fp6.mulByNonresidue(Fp6.sqr(c1)))); // 1 / (c0² - c1² * v)\n        return { c0: Fp6.mul(c0, t), c1: Fp6.neg(Fp6.mul(c1, t)) }; // ((C0 * T) * T) + (-C1 * T) * w\n    },\n    div: function (lhs, rhs) {\n        return exports.Fp12.mul(lhs, typeof rhs === 'bigint' ? exports.Fp.inv(exports.Fp.create(rhs)) : exports.Fp12.inv(rhs));\n    },\n    pow: function (num, power) { return mod.FpPow(exports.Fp12, num, power); },\n    invertBatch: function (nums) { return mod.FpInvertBatch(exports.Fp12, nums); },\n    // Normalized\n    add: Fp12Add,\n    sub: Fp12Subtract,\n    mul: exports.Fp12Multiply,\n    sqr: Fp12Square,\n    // NonNormalized stuff\n    addN: Fp12Add,\n    subN: Fp12Subtract,\n    mulN: exports.Fp12Multiply,\n    sqrN: Fp12Square,\n    // Bytes utils\n    fromBytes: function (b) {\n        if (b.length !== exports.Fp12.BYTES)\n            throw new Error(\"fromBytes wrong length=\".concat(b.length));\n        return {\n            c0: Fp6.fromBytes(b.subarray(0, Fp6.BYTES)),\n            c1: Fp6.fromBytes(b.subarray(Fp6.BYTES)),\n        };\n    },\n    toBytes: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return (0, utils_1.concatBytes)(Fp6.toBytes(c0), Fp6.toBytes(c1));\n    },\n    cmov: function (_a, _b, c) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var r0 = _b.c0, r1 = _b.c1;\n        return ({\n            c0: Fp6.cmov(c0, r0, c),\n            c1: Fp6.cmov(c1, r1, c),\n        });\n    },\n    // Utils\n    // toString() {\n    //   return `Fp12(${this.c0} + ${this.c1} * w)`;\n    // },\n    // fromTuple(c: [Fp6, Fp6]) {\n    //   return new Fp12(...c);\n    // }\n    fromBigTwelve: function (t) { return ({\n        c0: Fp6.fromBigSix(t.slice(0, 6)),\n        c1: Fp6.fromBigSix(t.slice(6, 12)),\n    }); },\n    // Raises to q**i -th power\n    frobeniusMap: function (lhs, power) {\n        var r0 = Fp6.frobeniusMap(lhs.c0, power);\n        var _a = Fp6.frobeniusMap(lhs.c1, power), c0 = _a.c0, c1 = _a.c1, c2 = _a.c2;\n        var coeff = FP12_FROBENIUS_COEFFICIENTS[power % 12];\n        return {\n            c0: r0,\n            c1: Fp6.create({\n                c0: exports.Fp2.mul(c0, coeff),\n                c1: exports.Fp2.mul(c1, coeff),\n                c2: exports.Fp2.mul(c2, coeff),\n            }),\n        };\n    },\n    // Sparse multiplication\n    multiplyBy014: function (_a, o0, o1, o4) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var t0 = Fp6.multiplyBy01(c0, o0, o1);\n        var t1 = Fp6.multiplyBy1(c1, o4);\n        return {\n            c0: Fp6.add(Fp6.mulByNonresidue(t1), t0),\n            // (c1 + c0) * [o0, o1+o4] - T0 - T1\n            c1: Fp6.sub(Fp6.sub(Fp6.multiplyBy01(Fp6.add(c1, c0), o0, exports.Fp2.add(o1, o4)), t0), t1),\n        };\n    },\n    multiplyByFp2: function (_a, rhs) {\n        var c0 = _a.c0, c1 = _a.c1;\n        return ({\n            c0: Fp6.multiplyByFp2(c0, rhs),\n            c1: Fp6.multiplyByFp2(c1, rhs),\n        });\n    },\n    conjugate: exports.Fp12_conjugate,\n    // A cyclotomic group is a subgroup of Fp^n defined by\n    //   GΦₙ(p) = {α ∈ Fpⁿ : α^Φₙ(p) = 1}\n    // The result of any pairing is in a cyclotomic subgroup\n    // https://eprint.iacr.org/2009/565.pdf\n    _cyclotomicSquare: function (_a) {\n        var c0 = _a.c0, c1 = _a.c1;\n        var c0c0 = c0.c0, c0c1 = c0.c1, c0c2 = c0.c2;\n        var c1c0 = c1.c0, c1c1 = c1.c1, c1c2 = c1.c2;\n        var _b = Fp4Square(c0c0, c1c1), t3 = _b.first, t4 = _b.second;\n        var _d = Fp4Square(c1c0, c0c2), t5 = _d.first, t6 = _d.second;\n        var _e = Fp4Square(c0c1, c1c2), t7 = _e.first, t8 = _e.second;\n        var t9 = exports.Fp2.mulByNonresidue(t8); // T8 * (u + 1)\n        return {\n            c0: Fp6.create({\n                c0: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.sub(t3, c0c0), _2n), t3),\n                c1: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.sub(t5, c0c1), _2n), t5),\n                c2: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.sub(t7, c0c2), _2n), t7),\n            }),\n            c1: Fp6.create({\n                c0: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.add(t9, c1c0), _2n), t9),\n                c1: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.add(t4, c1c1), _2n), t4),\n                c2: exports.Fp2.add(exports.Fp2.mul(exports.Fp2.add(t6, c1c2), _2n), t6),\n            }),\n        }; // 2 * (T6 + c1c2) + T6\n    },\n    _cyclotomicExp: function (num, n) {\n        var z = exports.Fp12.ONE;\n        for (var i = BLS_X_LEN - 1; i >= 0; i--) {\n            z = exports.Fp12._cyclotomicSquare(z);\n            if ((0, utils_1.bitGet)(n, i))\n                z = exports.Fp12.mul(z, num);\n        }\n        return z;\n    },\n    // https://eprint.iacr.org/2010/354.pdf\n    // https://eprint.iacr.org/2009/565.pdf\n    finalExponentiate: exports.Fp12_finalExponentiate,\n};\nvar FP12_FROBENIUS_COEFFICIENTS = [\n    [BigInt('0x1'), BigInt('0x0')],\n    [\n        BigInt('0x1904d3bf02bb0667c231beb4202c0d1f0fd603fd3cbd5f4f7b2443d784bab9c4f67ea53d63e7813d8d0775ed92235fb8'),\n        BigInt('0x00fc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3'),\n    ],\n    [\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffeffff'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x135203e60180a68ee2e9c448d77a2cd91c3dedd930b1cf60ef396489f61eb45e304466cf3e67fa0af1ee7b04121bdea2'),\n        BigInt('0x06af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09'),\n    ],\n    [\n        BigInt('0x00000000000000005f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995'),\n        BigInt('0x05b2cfd9013a5fd8df47fa6b48b1e045f39816240c0b8fee8beadf4d8e9c0566c63a3e6e257f87329b18fae980078116'),\n    ],\n    [\n        BigInt('0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaaa'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x00fc3e2b36c4e03288e9e902231f9fb854a14787b6c7b36fec0c8ec971f63c5f282d5ac14d6c7ec22cf78a126ddc4af3'),\n        BigInt('0x1904d3bf02bb0667c231beb4202c0d1f0fd603fd3cbd5f4f7b2443d784bab9c4f67ea53d63e7813d8d0775ed92235fb8'),\n    ],\n    [\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x06af0e0437ff400b6831e36d6bd17ffe48395dabc2d3435e77f76e17009241c5ee67992f72ec05f4c81084fbede3cc09'),\n        BigInt('0x135203e60180a68ee2e9c448d77a2cd91c3dedd930b1cf60ef396489f61eb45e304466cf3e67fa0af1ee7b04121bdea2'),\n    ],\n    [\n        BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaad'),\n        BigInt('0x0'),\n    ],\n    [\n        BigInt('0x05b2cfd9013a5fd8df47fa6b48b1e045f39816240c0b8fee8beadf4d8e9c0566c63a3e6e257f87329b18fae980078116'),\n        BigInt('0x144e4211384586c16bd3ad4afa99cc9170df3560e77982d0db45f3536814f0bd5871c1908bd478cd1ee605167ff82995'),\n    ],\n].map(function (n) { return exports.Fp2.fromBigTuple(n); });\n// END OF CURVE FIELDS\n// HashToCurve\n// 3-isogeny map from E' to E https://www.rfc-editor.org/rfc/rfc9380#appendix-E.3\nvar isogenyMapG2 = (0, hash_to_curve_1.isogenyMap)(exports.Fp2, [\n    // xNum\n    [\n        [\n            '0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6',\n            '0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6',\n        ],\n        [\n            '0x0',\n            '0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a',\n        ],\n        [\n            '0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e',\n            '0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d',\n        ],\n        [\n            '0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1',\n            '0x0',\n        ],\n    ],\n    // xDen\n    [\n        [\n            '0x0',\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63',\n        ],\n        [\n            '0xc',\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f',\n        ],\n        ['0x1', '0x0'], // LAST 1\n    ],\n    // yNum\n    [\n        [\n            '0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706',\n            '0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706',\n        ],\n        [\n            '0x0',\n            '0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be',\n        ],\n        [\n            '0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c',\n            '0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f',\n        ],\n        [\n            '0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10',\n            '0x0',\n        ],\n    ],\n    // yDen\n    [\n        [\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb',\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb',\n        ],\n        [\n            '0x0',\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3',\n        ],\n        [\n            '0x12',\n            '0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99',\n        ],\n        ['0x1', '0x0'], // LAST 1\n    ],\n].map(function (i) { return i.map(function (pair) { return exports.Fp2.fromBigTuple(pair.map(BigInt)); }); }));\n// 11-isogeny map from E' to E\nvar isogenyMapG1 = (0, hash_to_curve_1.isogenyMap)(exports.Fp, [\n    // xNum\n    [\n        '0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7',\n        '0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb',\n        '0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0',\n        '0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861',\n        '0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9',\n        '0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983',\n        '0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84',\n        '0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e',\n        '0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317',\n        '0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e',\n        '0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b',\n        '0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229',\n    ],\n    // xDen\n    [\n        '0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c',\n        '0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff',\n        '0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19',\n        '0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8',\n        '0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e',\n        '0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5',\n        '0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a',\n        '0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e',\n        '0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641',\n        '0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a',\n        '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n    ],\n    // yNum\n    [\n        '0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33',\n        '0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696',\n        '0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6',\n        '0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb',\n        '0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb',\n        '0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0',\n        '0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2',\n        '0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29',\n        '0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587',\n        '0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30',\n        '0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132',\n        '0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e',\n        '0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8',\n        '0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133',\n        '0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b',\n        '0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604',\n    ],\n    // yDen\n    [\n        '0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1',\n        '0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d',\n        '0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2',\n        '0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416',\n        '0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d',\n        '0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac',\n        '0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c',\n        '0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9',\n        '0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a',\n        '0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55',\n        '0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8',\n        '0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092',\n        '0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc',\n        '0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7',\n        '0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f',\n        '0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n    ],\n].map(function (i) { return i.map(function (j) { return BigInt(j); }); }));\n// SWU Map - Fp2 to G2': y² = x³ + 240i * x + 1012 + 1012i\nvar G2_SWU = (0, weierstrass_1.mapToCurveSimpleSWU)(exports.Fp2, {\n    A: exports.Fp2.create({ c0: exports.Fp.create(_0n), c1: exports.Fp.create(BigInt(240)) }),\n    B: exports.Fp2.create({ c0: exports.Fp.create(BigInt(1012)), c1: exports.Fp.create(BigInt(1012)) }),\n    Z: exports.Fp2.create({ c0: exports.Fp.create(BigInt(-2)), c1: exports.Fp.create(BigInt(-1)) }), // Z: -(2 + I)\n});\n// Optimized SWU Map - Fp to G1\nvar G1_SWU = (0, weierstrass_1.mapToCurveSimpleSWU)(exports.Fp, {\n    A: exports.Fp.create(BigInt('0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d')),\n    B: exports.Fp.create(BigInt('0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0')),\n    Z: exports.Fp.create(BigInt(11)),\n});\n// Endomorphisms (for fast cofactor clearing)\n// Ψ(P) endomorphism\nvar ut_root = Fp6.create({ c0: exports.Fp2.ZERO, c1: exports.Fp2.ONE, c2: exports.Fp2.ZERO });\nvar wsq = exports.Fp12.create({ c0: ut_root, c1: Fp6.ZERO });\nvar wcu = exports.Fp12.create({ c0: Fp6.ZERO, c1: ut_root });\nvar _a = __read(exports.Fp12.invertBatch([wsq, wcu]), 2), wsq_inv = _a[0], wcu_inv = _a[1];\nfunction psi(x, y) {\n    // Untwist Fp2->Fp12 && frobenius(1) && twist back\n    var x2 = exports.Fp12.mul(exports.Fp12.frobeniusMap(exports.Fp12.multiplyByFp2(wsq_inv, x), 1), wsq).c0.c0;\n    var y2 = exports.Fp12.mul(exports.Fp12.frobeniusMap(exports.Fp12.multiplyByFp2(wcu_inv, y), 1), wcu).c0.c0;\n    return [x2, y2];\n}\n// Ψ endomorphism\nfunction G2psi(c, P) {\n    var affine = P.toAffine();\n    var p = psi(affine.x, affine.y);\n    return new c(p[0], p[1], exports.Fp2.ONE);\n}\n// Ψ²(P) endomorphism\n// 1 / F2(2)^((p-1)/3) in GF(p²)\nvar PSI2_C1 = BigInt('0x1a0111ea397fe699ec02408663d4de85aa0d857d89759ad4897d29650fb85f9b409427eb4f49fffd8bfd00000000aaac');\nfunction psi2(x, y) {\n    return [exports.Fp2.mul(x, PSI2_C1), exports.Fp2.neg(y)];\n}\nfunction G2psi2(c, P) {\n    var affine = P.toAffine();\n    var p = psi2(affine.x, affine.y);\n    return new c(p[0], p[1], exports.Fp2.ONE);\n}\n// Default hash_to_field options are for hash to G2.\n//\n// Parameter definitions are in section 5.3 of the spec unless otherwise noted.\n// Parameter values come from section 8.8.2 of the spec.\n// https://www.rfc-editor.org/rfc/rfc9380#section-8.8.2\n//\n// Base field F is GF(p^m)\n// p = 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaaab\n// m = 2 (or 1 for G1 see section 8.8.1)\n// k = 128\nvar htfDefaults = Object.freeze({\n    // DST: a domain separation tag\n    // defined in section 2.2.5\n    // Use utils.getDSTLabel(), utils.setDSTLabel(value)\n    DST: \"\",\n    encodeDST: \"\",\n    // p: the characteristic of F\n    //    where F is a finite field of characteristic p and order q = p^m\n    p: exports.Fp.ORDER,\n    // m: the extension degree of F, m >= 1\n    //     where F is a finite field of characteristic p and order q = p^m\n    m: 2,\n    // k: the target security level for the suite in bits\n    // defined in section 5.1\n    k: 128,\n    // option to use a message that has already been processed by\n    // expand_message_xmd\n    expand: 'xmd',\n    // Hash functions for: expand_message_xmd is appropriate for use with a\n    // wide range of hash functions, including SHA-2, SHA-3, BLAKE2, and others.\n    // BBS+ uses blake2: https://github.com/hyperledger/aries-framework-go/issues/2247\n    hash: sha256_1.sha256,\n});\n// Encoding utils\n// Point on G1 curve: (x, y)\n// Compressed point of infinity\nvar COMPRESSED_ZERO = setMask(exports.Fp.toBytes(_0n), { infinity: true, compressed: true }); // set compressed & point-at-infinity bits\nfunction parseMask(bytes) {\n    // Copy, so we can remove mask data. It will be removed also later, when Fp.create will call modulo.\n    bytes = bytes.slice();\n    var mask = bytes[0] & 224;\n    var compressed = !!((mask >> 7) & 1); // compression bit (0b1000_0000)\n    var infinity = !!((mask >> 6) & 1); // point at infinity bit (0b0100_0000)\n    var sort = !!((mask >> 5) & 1); // sort bit (0b0010_0000)\n    bytes[0] &= 31; // clear mask (zero first 3 bits)\n    return { compressed: compressed, infinity: infinity, sort: sort, value: bytes };\n}\nexports.parseMask = parseMask;\nfunction setMask(bytes, mask) {\n    if (bytes[0] & 224)\n        throw new Error('setMask: non-empty mask');\n    if (mask.compressed)\n        bytes[0] |= 128;\n    if (mask.infinity)\n        bytes[0] |= 64;\n    if (mask.sort)\n        bytes[0] |= 32;\n    return bytes;\n}\nfunction signatureG1ToRawBytes(point) {\n    point.assertValidity();\n    var isZero = point.equals(exports.bls12_381.G1.ProjectivePoint.ZERO);\n    var _a = point.toAffine(), x = _a.x, y = _a.y;\n    if (isZero)\n        return COMPRESSED_ZERO.slice();\n    var P = exports.Fp.ORDER;\n    var sort = Boolean((y * _2n) / P);\n    return setMask((0, utils_1.numberToBytesBE)(x, exports.Fp.BYTES), { compressed: true, sort: sort });\n}\nfunction signatureG2ToRawBytes(point) {\n    // NOTE: by some reasons it was missed in bls12-381, looks like bug\n    point.assertValidity();\n    var len = exports.Fp.BYTES;\n    if (point.equals(exports.bls12_381.G2.ProjectivePoint.ZERO))\n        return (0, utils_1.concatBytes)(COMPRESSED_ZERO, (0, utils_1.numberToBytesBE)(_0n, len));\n    var _a = point.toAffine(), x = _a.x, y = _a.y;\n    var _b = exports.Fp2.reim(x), x0 = _b.re, x1 = _b.im;\n    var _d = exports.Fp2.reim(y), y0 = _d.re, y1 = _d.im;\n    var tmp = y1 > _0n ? y1 * _2n : y0 * _2n;\n    var sort = Boolean((tmp / exports.Fp.ORDER) & _1n);\n    var z2 = x0;\n    return (0, utils_1.concatBytes)(setMask((0, utils_1.numberToBytesBE)(x1, len), { sort: sort, compressed: true }), (0, utils_1.numberToBytesBE)(z2, len));\n}\nvar G1_formBytes = function (bytes) {\n    var _a = parseMask(bytes), compressed = _a.compressed, infinity = _a.infinity, sort = _a.sort, value = _a.value;\n    if (value.length === 48 && compressed) {\n        // TODO: Fp.bytes\n        var P = exports.Fp.ORDER;\n        var compressedValue = (0, utils_1.bytesToNumberBE)(value);\n        // Zero\n        var x = exports.Fp.create(compressedValue & exports.Fp.MASK);\n        if (infinity) {\n            if (x !== _0n)\n                throw new Error('G1: non-empty compressed point at infinity');\n            return { x: _0n, y: _0n };\n        }\n        var right = exports.Fp.add(exports.Fp.pow(x, _3n), exports.Fp.create(exports.bls12_381.params.G1b)); // y² = x³ + b\n        var y = exports.Fp.sqrt(right);\n        if (!y)\n            throw new Error('Invalid compressed G1 point');\n        if ((y * _2n) / P !== BigInt(sort))\n            y = exports.Fp.neg(y);\n        return { x: exports.Fp.create(x), y: exports.Fp.create(y) };\n    }\n    else if (value.length === 96 && !compressed) {\n        // Check if the infinity flag is set\n        var x = (0, utils_1.bytesToNumberBE)(value.subarray(0, exports.Fp.BYTES));\n        var y = (0, utils_1.bytesToNumberBE)(value.subarray(exports.Fp.BYTES));\n        if (infinity) {\n            if (x !== _0n || y !== _0n)\n                throw new Error('G1: non-empty point at infinity');\n            return exports.bls12_381.G1.ProjectivePoint.ZERO.toAffine();\n        }\n        return { x: exports.Fp.create(x), y: exports.Fp.create(y) };\n    }\n    else {\n        throw new Error('Invalid point G1, expected 48/96 bytes');\n    }\n};\nexports.G1_formBytes = G1_formBytes;\nvar G1_mapToCurve = function (scalars) {\n    var _a = G1_SWU(exports.Fp.create(scalars[0])), x = _a.x, y = _a.y;\n    return isogenyMapG1(x, y);\n};\nexports.G1_mapToCurve = G1_mapToCurve;\nvar G2_mapToCurve = function (scalars) {\n    var _a = G2_SWU(exports.Fp2.fromBigTuple(scalars)), x = _a.x, y = _a.y;\n    return isogenyMapG2(x, y);\n};\nexports.G2_mapToCurve = G2_mapToCurve;\n// To verify curve parameters, see pairing-friendly-curves spec:\n// https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-pairing-friendly-curves-11\n// Basic math is done over finite fields over p.\n// More complicated math is done over polynominal extension fields.\n// To simplify calculations in Fp12, we construct extension tower:\n// Fp₁₂ = Fp₆² => Fp₂³\n// Fp(u) / (u² - β) where β = -1\n// Fp₂(v) / (v³ - ξ) where ξ = u + 1\n// Fp₆(w) / (w² - γ) where γ = v\n// Here goes constants && point encoding format\nexports.bls12_381 = (0, bls_1.bls)({\n    // Fields\n    fields: {\n        Fp: exports.Fp,\n        Fp2: exports.Fp2,\n        Fp6: Fp6,\n        Fp12: exports.Fp12,\n        Fr: Fr,\n    },\n    // G1 is the order-q subgroup of E1(Fp) : y² = x³ + 4, #E1(Fp) = h1q, where\n    // characteristic; z + (z⁴ - z² + 1)(z - 1)²/3\n    G1: {\n        Fp: exports.Fp,\n        // cofactor; (z - 1)²/3\n        h: BigInt('0x396c8c005555e1568c00aaab0000aaab'),\n        // generator's coordinates\n        // x = 3685416753713387016781088315183077757961620795782546409894578378688607592378376318836054947676345821548104185464507\n        // y = 1339506544944476473020471379941921221584933875938349620426543736416511423956333506472724655353366534992391756441569\n        Gx: BigInt('0x17f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb22c6bb'),\n        Gy: BigInt('0x08b3f481e3aaa0f1a09e30ed741d8ae4fcf5e095d5d00af600db18cb2c04b3edd03cc744a2888ae40caa232946c5e7e1'),\n        a: exports.Fp.ZERO,\n        b: _4n,\n        htfDefaults: __assign(__assign({}, htfDefaults), { m: 1, DST: 'BLS_SIG_BLS12381G1_XMD:SHA-256_SSWU_RO_NUL_' }),\n        wrapPrivateKey: true,\n        allowInfinityPoint: true,\n        // Checks is the point resides in prime-order subgroup.\n        // point.isTorsionFree() should return true for valid points\n        // It returns false for shitty points.\n        // https://eprint.iacr.org/2021/1130.pdf\n        isTorsionFree: function (c, point) {\n            // φ endomorphism\n            var cubicRootOfUnityModP = BigInt('0x5f19672fdf76ce51ba69c6076a0f77eaddb3a93be6f89688de17d813620a00022e01fffffffefffe');\n            var phi = new c(exports.Fp.mul(point.px, cubicRootOfUnityModP), point.py, point.pz);\n            // todo: unroll\n            var xP = point.multiplyUnsafe(exports.bls12_381.params.x).negate(); // [x]P\n            var u2P = xP.multiplyUnsafe(exports.bls12_381.params.x); // [u2]P\n            return u2P.equals(phi);\n            // https://eprint.iacr.org/2019/814.pdf\n            // (z² − 1)/3\n            // const c1 = BigInt('0x396c8c005555e1560000000055555555');\n            // const P = this;\n            // const S = P.sigma();\n            // const Q = S.double();\n            // const S2 = S.sigma();\n            // // [(z² − 1)/3](2σ(P) − P − σ²(P)) − σ²(P) = O\n            // const left = Q.subtract(P).subtract(S2).multiplyUnsafe(c1);\n            // const C = left.subtract(S2);\n            // return C.isZero();\n        },\n        // Clear cofactor of G1\n        // https://eprint.iacr.org/2019/403\n        clearCofactor: function (_c, point) {\n            // return this.multiplyUnsafe(CURVE.h);\n            return point.multiplyUnsafe(exports.bls12_381.params.x).add(point); // x*P + P\n        },\n        mapToCurve: exports.G1_mapToCurve,\n        fromBytes: exports.G1_formBytes,\n        toBytes: function (c, point, isCompressed) {\n            var isZero = point.equals(c.ZERO);\n            var _a = point.toAffine(), x = _a.x, y = _a.y;\n            if (isCompressed) {\n                if (isZero)\n                    return COMPRESSED_ZERO.slice();\n                var P = exports.Fp.ORDER;\n                var sort = Boolean((y * _2n) / P);\n                return setMask((0, utils_1.numberToBytesBE)(x, exports.Fp.BYTES), { compressed: true, sort: sort });\n            }\n            else {\n                if (isZero) {\n                    // 2x PUBLIC_KEY_LENGTH\n                    var x_2 = (0, utils_1.concatBytes)(new Uint8Array([0x40]), new Uint8Array(2 * exports.Fp.BYTES - 1));\n                    return x_2;\n                }\n                else {\n                    return (0, utils_1.concatBytes)((0, utils_1.numberToBytesBE)(x, exports.Fp.BYTES), (0, utils_1.numberToBytesBE)(y, exports.Fp.BYTES));\n                }\n            }\n        },\n        ShortSignature: {\n            fromHex: function (hex) {\n                var _a = parseMask((0, utils_1.ensureBytes)('signatureHex', hex, 48)), infinity = _a.infinity, sort = _a.sort, value = _a.value;\n                var P = exports.Fp.ORDER;\n                var compressedValue = (0, utils_1.bytesToNumberBE)(value);\n                // Zero\n                if (infinity)\n                    return exports.bls12_381.G1.ProjectivePoint.ZERO;\n                var x = exports.Fp.create(compressedValue & exports.Fp.MASK);\n                var right = exports.Fp.add(exports.Fp.pow(x, _3n), exports.Fp.create(exports.bls12_381.params.G1b)); // y² = x³ + b\n                var y = exports.Fp.sqrt(right);\n                if (!y)\n                    throw new Error('Invalid compressed G1 point');\n                var aflag = BigInt(sort);\n                if ((y * _2n) / P !== aflag)\n                    y = exports.Fp.neg(y);\n                var point = exports.bls12_381.G1.ProjectivePoint.fromAffine({ x: x, y: y });\n                point.assertValidity();\n                return point;\n            },\n            toRawBytes: function (point) {\n                return signatureG1ToRawBytes(point);\n            },\n            toHex: function (point) {\n                return (0, utils_1.bytesToHex)(signatureG1ToRawBytes(point));\n            },\n        },\n    },\n    // G2 is the order-q subgroup of E2(Fp²) : y² = x³+4(1+√−1),\n    // where Fp2 is Fp[√−1]/(x2+1). #E2(Fp2 ) = h2q, where\n    // G² - 1\n    // h2q\n    G2: {\n        Fp: exports.Fp2,\n        // cofactor\n        h: BigInt('0x5d543a95414e7f1091d50792876a202cd91de4547085abaa68a205b2e5a7ddfa628f1cb4d9e82ef21537e293a6691ae1616ec6e786f0c70cf1c38e31c7238e5'),\n        Gx: exports.Fp2.fromBigTuple([\n            BigInt('0x024aa2b2f08f0a91260805272dc51051c6e47ad4fa403b02b4510b647ae3d1770bac0326a805bbefd48056c8c121bdb8'),\n            BigInt('0x13e02b6052719f607dacd3a088274f65596bd0d09920b61ab5da61bbdc7f5049334cf11213945d57e5ac7d055d042b7e'),\n        ]),\n        // y =\n        // 927553665492332455747201965776037880757740193453592970025027978793976877002675564980949289727957565575433344219582,\n        // 1985150602287291935568054521177171638300868978215655730859378665066344726373823718423869104263333984641494340347905\n        Gy: exports.Fp2.fromBigTuple([\n            BigInt('0x0ce5d527727d6e118cc9cdc6da2e351aadfd9baa8cbdd3a76d429a695160d12c923ac9cc3baca289e193548608b82801'),\n            BigInt('0x0606c4a02ea734cc32acd2b02bc28b99cb3e287e85a763af267492ab572e99ab3f370d275cec1da1aaa9075ff05f79be'),\n        ]),\n        a: exports.Fp2.ZERO,\n        b: exports.Fp2.fromBigTuple([_4n, _4n]),\n        hEff: BigInt('0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551'),\n        htfDefaults: __assign({}, htfDefaults),\n        wrapPrivateKey: true,\n        allowInfinityPoint: true,\n        mapToCurve: exports.G2_mapToCurve,\n        // Checks is the point resides in prime-order subgroup.\n        // point.isTorsionFree() should return true for valid points\n        // It returns false for shitty points.\n        // https://eprint.iacr.org/2021/1130.pdf\n        isTorsionFree: function (c, P) {\n            return P.multiplyUnsafe(exports.bls12_381.params.x).negate().equals(G2psi(c, P)); // ψ(P) == [u](P)\n            // Older version: https://eprint.iacr.org/2019/814.pdf\n            // Ψ²(P) => Ψ³(P) => [z]Ψ³(P) where z = -x => [z]Ψ³(P) - Ψ²(P) + P == O\n            // return P.psi2().psi().mulNegX().subtract(psi2).add(P).isZero();\n        },\n        // Maps the point into the prime-order subgroup G2.\n        // clear_cofactor_bls12381_g2 from cfrg-hash-to-curve-11\n        // https://eprint.iacr.org/2017/419.pdf\n        // prettier-ignore\n        clearCofactor: function (c, P) {\n            var x = exports.bls12_381.params.x;\n            var t1 = P.multiplyUnsafe(x).negate(); // [-x]P\n            var t2 = G2psi(c, P); // Ψ(P)\n            var t3 = P.double(); // 2P\n            t3 = G2psi2(c, t3); // Ψ²(2P)\n            t3 = t3.subtract(t2); // Ψ²(2P) - Ψ(P)\n            t2 = t1.add(t2); // [-x]P + Ψ(P)\n            t2 = t2.multiplyUnsafe(x).negate(); // [x²]P - [x]Ψ(P)\n            t3 = t3.add(t2); // Ψ²(2P) - Ψ(P) + [x²]P - [x]Ψ(P)\n            t3 = t3.subtract(t1); // Ψ²(2P) - Ψ(P) + [x²]P - [x]Ψ(P) + [x]P\n            var Q = t3.subtract(P); // Ψ²(2P) - Ψ(P) + [x²]P - [x]Ψ(P) + [x]P - 1P\n            return Q; // [x²-x-1]P + [x-1]Ψ(P) + Ψ²(2P)\n        },\n        fromBytes: function (bytes) {\n            var _a = parseMask(bytes), compressed = _a.compressed, infinity = _a.infinity, sort = _a.sort, value = _a.value;\n            if ((!compressed && !infinity && sort) || // 00100000\n                (!compressed && infinity && sort) || // 01100000\n                (sort && infinity && compressed) // 11100000\n            ) {\n                throw new Error('Invalid encoding flag: ' + (bytes[0] & 224));\n            }\n            var L = exports.Fp.BYTES;\n            var slc = function (b, from, to) { return (0, utils_1.bytesToNumberBE)(b.slice(from, to)); };\n            if (value.length === 96 && compressed) {\n                var b = exports.bls12_381.params.G2b;\n                var P = exports.Fp.ORDER;\n                if (infinity) {\n                    // check that all bytes are 0\n                    if (value.reduce(function (p, c) { return (p !== 0 ? c + 1 : c); }, 0) > 0) {\n                        throw new Error('Invalid compressed G2 point');\n                    }\n                    return { x: exports.Fp2.ZERO, y: exports.Fp2.ZERO };\n                }\n                var x_1 = slc(value, 0, L);\n                var x_0 = slc(value, L, 2 * L);\n                var x = exports.Fp2.create({ c0: exports.Fp.create(x_0), c1: exports.Fp.create(x_1) });\n                var right = exports.Fp2.add(exports.Fp2.pow(x, _3n), b); // y² = x³ + 4 * (u+1) = x³ + b\n                var y = exports.Fp2.sqrt(right);\n                var Y_bit = y.c1 === _0n ? (y.c0 * _2n) / P : (y.c1 * _2n) / P ? _1n : _0n;\n                y = sort && Y_bit > 0 ? y : exports.Fp2.neg(y);\n                return { x: x, y: y };\n            }\n            else if (value.length === 192 && !compressed) {\n                if (infinity) {\n                    if (value.reduce(function (p, c) { return (p !== 0 ? c + 1 : c); }, 0) > 0) {\n                        throw new Error('Invalid uncompressed G2 point');\n                    }\n                    return { x: exports.Fp2.ZERO, y: exports.Fp2.ZERO };\n                }\n                var x1 = slc(value, 0, L);\n                var x0 = slc(value, L, 2 * L);\n                var y1 = slc(value, 2 * L, 3 * L);\n                var y0 = slc(value, 3 * L, 4 * L);\n                return { x: exports.Fp2.fromBigTuple([x0, x1]), y: exports.Fp2.fromBigTuple([y0, y1]) };\n            }\n            else {\n                throw new Error('Invalid point G2, expected 96/192 bytes');\n            }\n        },\n        toBytes: function (c, point, isCompressed) {\n            var len = exports.Fp.BYTES, P = exports.Fp.ORDER;\n            var isZero = point.equals(c.ZERO);\n            var _a = point.toAffine(), x = _a.x, y = _a.y;\n            if (isCompressed) {\n                if (isZero)\n                    return (0, utils_1.concatBytes)(COMPRESSED_ZERO, (0, utils_1.numberToBytesBE)(_0n, len));\n                var flag = Boolean(y.c1 === _0n ? (y.c0 * _2n) / P : (y.c1 * _2n) / P);\n                return (0, utils_1.concatBytes)(setMask((0, utils_1.numberToBytesBE)(x.c1, len), { compressed: true, sort: flag }), (0, utils_1.numberToBytesBE)(x.c0, len));\n            }\n            else {\n                if (isZero)\n                    return (0, utils_1.concatBytes)(new Uint8Array([0x40]), new Uint8Array(4 * len - 1)); // bytes[0] |= 1 << 6;\n                var _b = exports.Fp2.reim(x), x0 = _b.re, x1 = _b.im;\n                var _d = exports.Fp2.reim(y), y0 = _d.re, y1 = _d.im;\n                return (0, utils_1.concatBytes)((0, utils_1.numberToBytesBE)(x1, len), (0, utils_1.numberToBytesBE)(x0, len), (0, utils_1.numberToBytesBE)(y1, len), (0, utils_1.numberToBytesBE)(y0, len));\n            }\n        },\n        Signature: {\n            // TODO: Optimize, it's very slow because of sqrt.\n            fromHex: function (hex) {\n                var _a = parseMask((0, utils_1.ensureBytes)('signatureHex', hex)), infinity = _a.infinity, sort = _a.sort, value = _a.value;\n                var P = exports.Fp.ORDER;\n                var half = hex.length / 2;\n                if (half !== 48 && half !== 96)\n                    throw new Error('Invalid compressed signature length, must be 96 or 192');\n                var z1 = (0, utils_1.bytesToNumberBE)(value.slice(0, half));\n                var z2 = (0, utils_1.bytesToNumberBE)(value.slice(half));\n                // Indicates the infinity point\n                if (infinity)\n                    return exports.bls12_381.G2.ProjectivePoint.ZERO;\n                var x1 = exports.Fp.create(z1 & exports.Fp.MASK);\n                var x2 = exports.Fp.create(z2);\n                var x = exports.Fp2.create({ c0: x2, c1: x1 });\n                var y2 = exports.Fp2.add(exports.Fp2.pow(x, _3n), exports.bls12_381.params.G2b); // y² = x³ + 4\n                // The slow part\n                var y = exports.Fp2.sqrt(y2);\n                if (!y)\n                    throw new Error('Failed to find a square root');\n                // Choose the y whose leftmost bit of the imaginary part is equal to the a_flag1\n                // If y1 happens to be zero, then use the bit of y0\n                var _b = exports.Fp2.reim(y), y0 = _b.re, y1 = _b.im;\n                var aflag1 = BigInt(sort);\n                var isGreater = y1 > _0n && (y1 * _2n) / P !== aflag1;\n                var isZero = y1 === _0n && (y0 * _2n) / P !== aflag1;\n                if (isGreater || isZero)\n                    y = exports.Fp2.neg(y);\n                var point = exports.bls12_381.G2.ProjectivePoint.fromAffine({ x: x, y: y });\n                point.assertValidity();\n                return point;\n            },\n            toRawBytes: function (point) {\n                return signatureG2ToRawBytes(point);\n            },\n            toHex: function (point) {\n                return (0, utils_1.bytesToHex)(signatureG2ToRawBytes(point));\n            },\n        },\n    },\n    params: {\n        x: BLS_X,\n        r: Fr.ORDER, // order; z⁴ − z² + 1; CURVE.n from other curves\n    },\n    htfDefaults: htfDefaults,\n    hash: sha256_1.sha256,\n    randomBytes: utils_2.randomBytes\n});\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/bls12_381.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/crypto.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/crypto.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/crypto.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/hmac.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/hmac.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.hmac = exports.HMAC = void 0;\nvar _assert_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_assert.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\n// HMAC (RFC 2104)\nvar HMAC = /** @class */ (function (_super) {\n    __extends(HMAC, _super);\n    function HMAC(hash, _key) {\n        var _this = _super.call(this) || this;\n        _this.finished = false;\n        _this.destroyed = false;\n        (0, _assert_1.hash)(hash);\n        var key = (0, utils_1.toBytes)(_key);\n        _this.iHash = hash.create();\n        if (typeof _this.iHash.update !== 'function')\n            throw new Error('Expected instance of class which extends utils.Hash');\n        _this.blockLen = _this.iHash.blockLen;\n        _this.outputLen = _this.iHash.outputLen;\n        var blockLen = _this.blockLen;\n        var pad = new Uint8Array(blockLen);\n        // blockLen can be bigger than outputLen\n        pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n        for (var i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36;\n        _this.iHash.update(pad);\n        // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n        _this.oHash = hash.create();\n        // Undo internal XOR && apply outer XOR\n        for (var i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36 ^ 0x5c;\n        _this.oHash.update(pad);\n        pad.fill(0);\n        return _this;\n    }\n    HMAC.prototype.update = function (buf) {\n        (0, _assert_1.exists)(this);\n        this.iHash.update(buf);\n        return this;\n    };\n    HMAC.prototype.digestInto = function (out) {\n        (0, _assert_1.exists)(this);\n        (0, _assert_1.bytes)(out, this.outputLen);\n        this.finished = true;\n        this.iHash.digestInto(out);\n        this.oHash.update(out);\n        this.oHash.digestInto(out);\n        this.destroy();\n    };\n    HMAC.prototype.digest = function () {\n        var out = new Uint8Array(this.oHash.outputLen);\n        this.digestInto(out);\n        return out;\n    };\n    HMAC.prototype._cloneInto = function (to) {\n        // Create new instance without calling constructor since key already in state and we don't know it.\n        to || (to = Object.create(Object.getPrototypeOf(this), {}));\n        var _a = this, oHash = _a.oHash, iHash = _a.iHash, finished = _a.finished, destroyed = _a.destroyed, blockLen = _a.blockLen, outputLen = _a.outputLen;\n        to = to;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        to.blockLen = blockLen;\n        to.outputLen = outputLen;\n        to.oHash = oHash._cloneInto(to.oHash);\n        to.iHash = iHash._cloneInto(to.iHash);\n        return to;\n    };\n    HMAC.prototype.destroy = function () {\n        this.destroyed = true;\n        this.oHash.destroy();\n        this.iHash.destroy();\n    };\n    return HMAC;\n}(utils_1.Hash));\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nvar hmac = function (hash, key, message) {\n    return new HMAC(hash, key).update(message).digest();\n};\nexports.hmac = hmac;\nexports.hmac.create = function (hash, key) { return new HMAC(hash, key); };\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/hmac.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/index.js ***!
  \***************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./keccak.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/keccak.js\"), exports);\n__exportStar(__webpack_require__(/*! ./bls12_381.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/bls12_381.js\"), exports);\n// DO NOT export \"./_u64\";\n// DO NOT export \"./utils\";\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/keccak.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/keccak.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar _a;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.keccak_512 = exports.keccak_384 = exports.keccak_256 = exports.keccak_224 = exports.Keccak = exports.keccakP = void 0;\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-hashes/blob/6ae82e75d4c354d53a488e95b1bfe9cba90bd6ff/src/sha3.ts#L1\n\nit was modified and adapted to this repository to re-use already defined stuff\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\nvar _u64_1 = __webpack_require__(/*! ./_u64.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_u64.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nvar SHA3_PI = [];\nvar SHA3_ROTL = [];\nvar _SHA3_IOTA = [];\nvar _0n = /** @__PURE__ */ BigInt(0);\nvar _1n = /** @__PURE__ */ BigInt(1);\nvar _2n = /** @__PURE__ */ BigInt(2);\nvar _7n = /** @__PURE__ */ BigInt(7);\nvar _256n = /** @__PURE__ */ BigInt(256);\nvar _0x71n = /** @__PURE__ */ BigInt(0x71);\nfor (var round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n    // Pi\n    _a = __read([y, (2 * x + 3 * y) % 5], 2), x = _a[0], y = _a[1];\n    SHA3_PI.push(2 * (5 * y + x));\n    // Rotational\n    SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n    // Iota\n    var t = _0n;\n    for (var j = 0; j < 7; j++) {\n        R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n        if (R & _2n)\n            t ^= _1n << ((_1n << /** @__PURE__ */ BigInt(j)) - _1n);\n    }\n    _SHA3_IOTA.push(t);\n}\nvar _b = __read(/** @__PURE__ */ (0, _u64_1.split)(_SHA3_IOTA, true), 2), SHA3_IOTA_H = _b[0], SHA3_IOTA_L = _b[1];\n// Left rotation (without 0, 32, 64)\nvar rotlH = function (h, l, s) { return (s > 32 ? (0, _u64_1.rotlBH)(h, l, s) : (0, _u64_1.rotlSH)(h, l, s)); };\nvar rotlL = function (h, l, s) { return (s > 32 ? (0, _u64_1.rotlBL)(h, l, s) : (0, _u64_1.rotlSL)(h, l, s)); };\n// Same as keccakf1600, but allows to skip some rounds\nfunction keccakP(s, rounds) {\n    if (rounds === void 0) { rounds = 24; }\n    var B = new Uint32Array(5 * 2);\n    // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n    for (var round = 24 - rounds; round < 24; round++) {\n        // Theta θ\n        for (var x = 0; x < 10; x++)\n            B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n        for (var x = 0; x < 10; x += 2) {\n            var idx1 = (x + 8) % 10;\n            var idx0 = (x + 2) % 10;\n            var B0 = B[idx0];\n            var B1 = B[idx0 + 1];\n            var Th = rotlH(B0, B1, 1) ^ B[idx1];\n            var Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n            for (var y = 0; y < 50; y += 10) {\n                s[x + y] ^= Th;\n                s[x + y + 1] ^= Tl;\n            }\n        }\n        // Rho (ρ) and Pi (π)\n        var curH = s[2];\n        var curL = s[3];\n        for (var t = 0; t < 24; t++) {\n            var shift = SHA3_ROTL[t];\n            var Th = rotlH(curH, curL, shift);\n            var Tl = rotlL(curH, curL, shift);\n            var PI = SHA3_PI[t];\n            curH = s[PI];\n            curL = s[PI + 1];\n            s[PI] = Th;\n            s[PI + 1] = Tl;\n        }\n        // Chi (χ)\n        for (var y = 0; y < 50; y += 10) {\n            for (var x = 0; x < 10; x++)\n                B[x] = s[y + x];\n            for (var x = 0; x < 10; x++)\n                s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n        }\n        // Iota (ι)\n        s[0] ^= SHA3_IOTA_H[round];\n        s[1] ^= SHA3_IOTA_L[round];\n    }\n    B.fill(0);\n}\nexports.keccakP = keccakP;\nvar Keccak = /** @class */ (function (_super) {\n    __extends(Keccak, _super);\n    // NOTE: we accept arguments in bytes instead of bits here.\n    function Keccak(blockLen, suffix, outputLen, enableXOF, rounds) {\n        if (enableXOF === void 0) { enableXOF = false; }\n        if (rounds === void 0) { rounds = 24; }\n        var _this = _super.call(this) || this;\n        _this.blockLen = blockLen;\n        _this.suffix = suffix;\n        _this.outputLen = outputLen;\n        _this.enableXOF = enableXOF;\n        _this.rounds = rounds;\n        _this.pos = 0;\n        _this.posOut = 0;\n        _this.finished = false;\n        _this.destroyed = false;\n        // Can be passed from user as dkLen\n        (0, assert_1.assertPostiveInteger)(outputLen);\n        // 1600 = 5x5 matrix of 64bit.  1600 bits === 200 bytes\n        if (0 >= _this.blockLen || _this.blockLen >= 200)\n            throw new Error('Sha3 supports only keccak-f1600 function');\n        _this.state = new Uint8Array(200);\n        _this.state32 = (0, utils_1.u32)(_this.state);\n        return _this;\n    }\n    Keccak.prototype.keccak = function () {\n        if (!utils_1.isLE)\n            (0, utils_1.byteSwap32)(this.state32);\n        keccakP(this.state32, this.rounds);\n        if (!utils_1.isLE)\n            (0, utils_1.byteSwap32)(this.state32);\n        this.posOut = 0;\n        this.pos = 0;\n    };\n    Keccak.prototype.update = function (data) {\n        this.assertExists();\n        var _a = this, blockLen = _a.blockLen, state = _a.state;\n        data = (0, utils_1.toBytes)(data);\n        var len = data.length;\n        for (var pos = 0; pos < len;) {\n            var take = Math.min(blockLen - this.pos, len - pos);\n            for (var i = 0; i < take; i++)\n                state[this.pos++] ^= data[pos++];\n            if (this.pos === blockLen)\n                this.keccak();\n        }\n        return this;\n    };\n    Keccak.prototype.finish = function () {\n        if (this.finished)\n            return;\n        this.finished = true;\n        var _a = this, state = _a.state, suffix = _a.suffix, pos = _a.pos, blockLen = _a.blockLen;\n        // Do the padding\n        state[pos] ^= suffix;\n        if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n            this.keccak();\n        state[blockLen - 1] ^= 0x80;\n        this.keccak();\n    };\n    Keccak.prototype.writeInto = function (out) {\n        this.assertExists(false);\n        if (!(out instanceof Uint8Array))\n            throw new Error(\"Uint8Array expected\");\n        this.finish();\n        var bufferOut = this.state;\n        var blockLen = this.blockLen;\n        for (var pos = 0, len = out.length; pos < len;) {\n            if (this.posOut >= blockLen)\n                this.keccak();\n            var take = Math.min(blockLen - this.posOut, len - pos);\n            out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n            this.posOut += take;\n            pos += take;\n        }\n        return out;\n    };\n    Keccak.prototype.xofInto = function (out) {\n        // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n        if (!this.enableXOF)\n            throw new Error('XOF is not possible for this instance');\n        return this.writeInto(out);\n    };\n    Keccak.prototype.xof = function (bytes) {\n        (0, assert_1.assertPostiveInteger)(bytes);\n        return this.xofInto(new Uint8Array(bytes));\n    };\n    Keccak.prototype.digestInto = function (out) {\n        // output(out, this);\n        if (!(out instanceof Uint8Array))\n            throw new Error(\"Uint8Array expected\");\n        var min = this.outputLen;\n        if (out.length < min)\n            throw new Error(\"digestInto() expects output buffer of length at least \".concat(min));\n        if (this.finished)\n            throw new Error('digest() was already called');\n        this.writeInto(out);\n        this.destroy();\n        return out;\n    };\n    Keccak.prototype.digest = function () {\n        return this.digestInto(new Uint8Array(this.outputLen));\n    };\n    Keccak.prototype.destroy = function () {\n        this.destroyed = true;\n        this.state.fill(0);\n    };\n    Keccak.prototype._cloneInto = function (to) {\n        var _a = this, blockLen = _a.blockLen, suffix = _a.suffix, outputLen = _a.outputLen, rounds = _a.rounds, enableXOF = _a.enableXOF;\n        to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n        to.state32.set(this.state32);\n        to.pos = this.pos;\n        to.posOut = this.posOut;\n        to.finished = this.finished;\n        to.rounds = rounds;\n        // Suffix can change in cSHAKE\n        to.suffix = suffix;\n        to.outputLen = outputLen;\n        to.enableXOF = enableXOF;\n        to.destroyed = this.destroyed;\n        return to;\n    };\n    Keccak.prototype.assertExists = function (checkFinished) {\n        if (checkFinished === void 0) { checkFinished = true; }\n        if (this.destroyed)\n            throw new Error('Hash instance has been destroyed');\n        if (checkFinished && this.finished)\n            throw new Error('Hash#digest() has already been called');\n    };\n    return Keccak;\n}(utils_1.Hash));\nexports.Keccak = Keccak;\nvar gen = function (suffix, blockLen, outputLen) {\n    return (0, utils_1.wrapConstructor)(function () { return new Keccak(blockLen, suffix, outputLen); });\n};\n// export const sha3_224 = /** @__PURE__ */ gen(0x06, 144, 224 / 8);\n// /**\n//  * SHA3-256 hash function\n//  * @param message - that would be hashed\n//  */\n// export const sha3_256 = /** @__PURE__ */ gen(0x06, 136, 256 / 8);\n// export const sha3_384 = /** @__PURE__ */ gen(0x06, 104, 384 / 8);\n// export const sha3_512 = /** @__PURE__ */ gen(0x06, 72, 512 / 8);\nexports.keccak_224 = gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexports.keccak_256 = gen(0x01, 136, 256 / 8);\nexports.keccak_384 = gen(0x01, 104, 384 / 8);\nexports.keccak_512 = gen(0x01, 72, 512 / 8);\n// const genShake = (suffix: number, blockLen: number, outputLen: number) =>\n//   wrapXOFConstructorWithOpts<HashXOF<Keccak>, ShakeOpts>(\n//     (opts: ShakeOpts = {}) =>\n//       new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n//   );\n// \n// export const shake128 = /** @__PURE__ */ genShake(0x1f, 168, 128 / 8);\n// export const shake256 = /** @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/keccak.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/ripemd_160.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/ripemd_160.js ***!
  \********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __values = (this && this.__values) || function(o) {\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n    if (m) return m.call(o);\n    if (o && typeof o.length === \"number\") return {\n        next: function () {\n            if (o && i >= o.length) o = void 0;\n            return { value: o && o[i++], done: !o };\n        }\n    };\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar e_1, _a;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RIPEMD160 = void 0;\n/**\n * RIPEMD-160 legacy hash function.\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n * @module\n */\nvar _md_1 = __webpack_require__(/*! ./_md.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_md.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\nvar Rho = /* @__PURE__ */ new Uint8Array([7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8]);\nvar Id = /* @__PURE__ */ new Uint8Array(new Array(16).fill(0).map(function (_, i) { return i; }));\nvar Pi = /* @__PURE__ */ Id.map(function (i) { return (9 * i + 5) % 16; });\nvar idxL = [Id];\nvar idxR = [Pi];\nfor (var i = 0; i < 4; i++)\n    try {\n        for (var _b = (e_1 = void 0, __values([idxL, idxR])), _c = _b.next(); !_c.done; _c = _b.next()) {\n            var j = _c.value;\n            j.push(j[i].map(function (k) { return Rho[k]; }));\n        }\n    }\n    catch (e_1_1) { e_1 = { error: e_1_1 }; }\n    finally {\n        try {\n            if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n        }\n        finally { if (e_1) throw e_1.error; }\n    }\nvar shifts = /* @__PURE__ */ [\n    [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n    [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n    [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n    [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n    [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map(function (i) { return new Uint8Array(i); });\nvar shiftsL = /* @__PURE__ */ idxL.map(function (idx, i) { return idx.map(function (j) { return shifts[i][j]; }); });\nvar shiftsR = /* @__PURE__ */ idxR.map(function (idx, i) { return idx.map(function (j) { return shifts[i][j]; }); });\nvar Kl = /* @__PURE__ */ new Uint32Array([\n    0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nvar Kr = /* @__PURE__ */ new Uint32Array([\n    0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction f(group, x, y, z) {\n    if (group === 0)\n        return x ^ y ^ z;\n    else if (group === 1)\n        return (x & y) | (~x & z);\n    else if (group === 2)\n        return (x | ~y) ^ z;\n    else if (group === 3)\n        return (x & z) | (y & ~z);\n    else\n        return x ^ (y | ~z);\n}\n// Temporary buffer, not used to store anything between runs\nvar R_BUF = /* @__PURE__ */ new Uint32Array(16);\nvar RIPEMD160 = /** @class */ (function (_super) {\n    __extends(RIPEMD160, _super);\n    function RIPEMD160() {\n        var _this = _super.call(this, 64, 20, 8, true) || this;\n        _this.h0 = 0x67452301 | 0;\n        _this.h1 = 0xefcdab89 | 0;\n        _this.h2 = 0x98badcfe | 0;\n        _this.h3 = 0x10325476 | 0;\n        _this.h4 = 0xc3d2e1f0 | 0;\n        return _this;\n    }\n    RIPEMD160.prototype.get = function () {\n        var _a = this, h0 = _a.h0, h1 = _a.h1, h2 = _a.h2, h3 = _a.h3, h4 = _a.h4;\n        return [h0, h1, h2, h3, h4];\n    };\n    RIPEMD160.prototype.set = function (h0, h1, h2, h3, h4) {\n        this.h0 = h0 | 0;\n        this.h1 = h1 | 0;\n        this.h2 = h2 | 0;\n        this.h3 = h3 | 0;\n        this.h4 = h4 | 0;\n    };\n    RIPEMD160.prototype.process = function (view, offset) {\n        for (var i = 0; i < 16; i++, offset += 4)\n            R_BUF[i] = view.getUint32(offset, true);\n        // prettier-ignore\n        var al = this.h0 | 0, ar = al, bl = this.h1 | 0, br = bl, cl = this.h2 | 0, cr = cl, dl = this.h3 | 0, dr = dl, el = this.h4 | 0, er = el;\n        // Instead of iterating 0 to 80, we split it into 5 groups\n        // And use the groups in constants, functions, etc. Much simpler\n        for (var group = 0; group < 5; group++) {\n            var rGroup = 4 - group;\n            var hbl = Kl[group], hbr = Kr[group]; // prettier-ignore\n            var rl = idxL[group], rr = idxR[group]; // prettier-ignore\n            var sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore\n            for (var i = 0; i < 16; i++) {\n                var tl = ((0, utils_1.rotl)(al + f(group, bl, cl, dl) + R_BUF[rl[i]] + hbl, sl[i]) + el) | 0;\n                al = el, el = dl, dl = (0, utils_1.rotl)(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n            }\n            // 2 loops are 10% faster\n            for (var i = 0; i < 16; i++) {\n                var tr = ((0, utils_1.rotl)(ar + f(rGroup, br, cr, dr) + R_BUF[rr[i]] + hbr, sr[i]) + er) | 0;\n                ar = er, er = dr, dr = (0, utils_1.rotl)(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n            }\n        }\n        // Add the compressed chunk to the current hash value\n        this.set((this.h1 + cl + dr) | 0, (this.h2 + dl + er) | 0, (this.h3 + el + ar) | 0, (this.h4 + al + br) | 0, (this.h0 + bl + cr) | 0);\n    };\n    RIPEMD160.prototype.roundClean = function () {\n        R_BUF.fill(0);\n    };\n    RIPEMD160.prototype.destroy = function () {\n        this.destroyed = true;\n        this.buffer.fill(0);\n        this.set(0, 0, 0, 0, 0);\n    };\n    return RIPEMD160;\n}(_md_1.HashMD));\nexports.RIPEMD160 = RIPEMD160;\n/** RIPEMD-160 - a legacy hash function from 1990s. */\nvar _ripemd160 = /* @__PURE__ */ (0, utils_1.wrapConstructor)(function () { return new RIPEMD160(); });\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/ripemd_160.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/secp256k1.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/secp256k1.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.verifySecp256k1 = exports.signSecp256k1 = exports.encodeToCurve = exports.hashToCurve = exports.schnorr = exports.verifySchnorr = exports.signSchnorr = exports.Secp256k1Point = exports.secp256k1PointToBytes = exports.secp256k1 = void 0;\n/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nvar sha256_1 = __webpack_require__(/*! ./sha256.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\nvar modular_1 = __webpack_require__(/*! ./abstract/modular.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/modular.js\");\nvar weierstrass_1 = __webpack_require__(/*! ./abstract/weierstrass.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/weierstrass.js\");\nvar utils_2 = __webpack_require__(/*! ./abstract/utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/utils.js\");\nvar hash_to_curve_1 = __webpack_require__(/*! ./abstract/hash-to-curve.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/abstract/hash-to-curve.js\");\nvar _shortw_utils_1 = __webpack_require__(/*! ./_shortw_utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_shortw_utils.js\");\nvar secp256k1P = BigInt('0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f');\nvar secp256k1N = BigInt('0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141');\nvar _1n = BigInt(1);\nvar _2n = BigInt(2);\nvar divNearest = function (a, b) { return (a + b / _2n) / b; };\n/**\n * √n = n^((p+1)/4) for fields p = 3 mod 4. We unwrap the loop and multiply bit-by-bit.\n * (P+1n/4n).toString(2) would produce bits [223x 1, 0, 22x 1, 4x 0, 11, 00]\n */\nfunction sqrtMod(y) {\n    var P = secp256k1P;\n    var _3n = BigInt(3), _6n = BigInt(6), _11n = BigInt(11), _22n = BigInt(22);\n    var _23n = BigInt(23), _44n = BigInt(44), _88n = BigInt(88);\n    var b2 = (y * y * y) % P; // x^3, 11\n    var b3 = (b2 * b2 * y) % P; // x^7\n    var b6 = ((0, modular_1.pow2)(b3, _3n, P) * b3) % P;\n    var b9 = ((0, modular_1.pow2)(b6, _3n, P) * b3) % P;\n    var b11 = ((0, modular_1.pow2)(b9, _2n, P) * b2) % P;\n    var b22 = ((0, modular_1.pow2)(b11, _11n, P) * b11) % P;\n    var b44 = ((0, modular_1.pow2)(b22, _22n, P) * b22) % P;\n    var b88 = ((0, modular_1.pow2)(b44, _44n, P) * b44) % P;\n    var b176 = ((0, modular_1.pow2)(b88, _88n, P) * b88) % P;\n    var b220 = ((0, modular_1.pow2)(b176, _44n, P) * b44) % P;\n    var b223 = ((0, modular_1.pow2)(b220, _3n, P) * b3) % P;\n    var t1 = ((0, modular_1.pow2)(b223, _23n, P) * b22) % P;\n    var t2 = ((0, modular_1.pow2)(t1, _6n, P) * b2) % P;\n    var root = (0, modular_1.pow2)(t2, _2n, P);\n    if (!Fp.eql(Fp.sqr(root), y))\n        throw new Error('Cannot find square root');\n    return root;\n}\nvar Fp = (0, modular_1.Field)(secp256k1P, undefined, undefined, { sqrt: sqrtMod });\nexports.secp256k1 = (0, _shortw_utils_1.createCurve)({\n    a: BigInt(0),\n    b: BigInt(7),\n    Fp: Fp,\n    n: secp256k1N,\n    // Base point (x, y) aka generator point\n    Gx: BigInt('55066263022277343669578718895168534326250603453777594175500187360389116729240'),\n    Gy: BigInt('32670510020758816978083085130507043184471273380659243275938904335757337482424'),\n    h: BigInt(1),\n    lowS: true,\n    /**\n     * secp256k1 belongs to Koblitz curves: it has efficiently computable endomorphism.\n     * Endomorphism uses 2x less RAM, speeds up precomputation by 2x and ECDH / key recovery by 20%.\n     * For precomputed wNAF it trades off 1/2 init time & 1/3 ram for 20% perf hit.\n     * Explanation: https://gist.github.com/paulmillr/eb670806793e84df628a7c434a873066\n     */\n    endo: {\n        beta: BigInt('0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee'),\n        splitScalar: function (k) {\n            var n = secp256k1N;\n            var a1 = BigInt('0x3086d221a7d46bcde86c90e49284eb15');\n            var b1 = -_1n * BigInt('0xe4437ed6010e88286f547fa90abfe4c3');\n            var a2 = BigInt('0x114ca50f7a8e2f3f657c1108d9d44cfd8');\n            var b2 = a1;\n            var POW_2_128 = BigInt('0x100000000000000000000000000000000'); // (2n**128n).toString(16)\n            var c1 = divNearest(b2 * k, n);\n            var c2 = divNearest(-b1 * k, n);\n            var k1 = (0, modular_1.mod)(k - c1 * a1 - c2 * a2, n);\n            var k2 = (0, modular_1.mod)(-c1 * b1 - c2 * b2, n);\n            var k1neg = k1 > POW_2_128;\n            var k2neg = k2 > POW_2_128;\n            if (k1neg)\n                k1 = n - k1;\n            if (k2neg)\n                k2 = n - k2;\n            if (k1 > POW_2_128 || k2 > POW_2_128) {\n                throw new Error('splitScalar: Endomorphism failed, k=' + k);\n            }\n            return { k1neg: k1neg, k1: k1, k2neg: k2neg, k2: k2 };\n        },\n    },\n}, sha256_1.sha256);\n// Schnorr signatures are superior to ECDSA from above. Below is Schnorr-specific BIP0340 code.\n// https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki\nvar _0n = BigInt(0);\nvar fe = function (x) { return typeof x === 'bigint' && _0n < x && x < secp256k1P; };\nvar ge = function (x) { return typeof x === 'bigint' && _0n < x && x < secp256k1N; };\n/** An object mapping tags to their tagged hash prefix of [SHA256(tag) | SHA256(tag)] */\nvar TAGGED_HASH_PREFIXES = {};\nfunction taggedHash(tag) {\n    var messages = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        messages[_i - 1] = arguments[_i];\n    }\n    var tagP = TAGGED_HASH_PREFIXES[tag];\n    if (tagP === undefined) {\n        var tagH = (0, sha256_1.sha256)(Uint8Array.from(tag, function (c) { return c.charCodeAt(0); }));\n        tagP = (0, utils_2.concatBytes)(tagH, tagH);\n        TAGGED_HASH_PREFIXES[tag] = tagP;\n    }\n    return (0, sha256_1.sha256)(utils_2.concatBytes.apply(void 0, __spreadArray([tagP], __read(messages), false)));\n}\n// ECDSA compact points are 33-byte. Schnorr is 32: we strip first byte 0x02 or 0x03\nvar pointToBytes = function (point) { return point.toRawBytes(true).slice(1); };\nexports.secp256k1PointToBytes = pointToBytes;\nvar numTo32b = function (n) { return (0, utils_2.numberToBytesBE)(n, 32); };\nvar modP = function (x) { return (0, modular_1.mod)(x, secp256k1P); };\nvar modN = function (x) { return (0, modular_1.mod)(x, secp256k1N); };\nvar Point = exports.secp256k1.ProjectivePoint;\nexports.Secp256k1Point = exports.secp256k1.ProjectivePoint;\nvar GmulAdd = function (Q, a, b) {\n    return Point.BASE.multiplyAndAddUnsafe(Q, a, b);\n};\n// Calculate point, scalar and bytes\nfunction schnorrGetExtPubKey(priv) {\n    var d_ = exports.secp256k1.utils.normPrivateKeyToScalar(priv); // same method executed in fromPrivateKey\n    var p = Point.fromPrivateKey(d_); // P = d'⋅G; 0 < d' < n check is done inside\n    var scalar = p.hasEvenY() ? d_ : modN(-d_);\n    return { scalar: scalar, bytes: pointToBytes(p) };\n}\n/**\n * lift_x from BIP340. Convert 32-byte x coordinate to elliptic curve point.\n * @returns valid point checked for being on-curve\n */\nfunction lift_x(x) {\n    if (!fe(x))\n        throw new Error('bad x: need 0 < x < p'); // Fail if x ≥ p.\n    var xx = modP(x * x);\n    var c = modP(xx * x + BigInt(7)); // Let c = x³ + 7 mod p.\n    var y = sqrtMod(c); // Let y = c^(p+1)/4 mod p.\n    if (y % _2n !== _0n)\n        y = modP(-y); // Return the unique point P such that x(P) = x and\n    var p = new Point(x, y, _1n); // y(P) = y if y mod 2 = 0 or y(P) = p-y otherwise.\n    p.assertValidity();\n    return p;\n}\n/**\n * Create tagged hash, convert it to bigint, reduce modulo-n.\n */\nfunction challenge() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    return modN((0, utils_2.bytesToNumberBE)(taggedHash.apply(void 0, __spreadArray(['BIP0340/challenge'], __read(args), false))));\n}\n/**\n * Schnorr public key is just `x` coordinate of Point as per BIP340.\n */\nfunction schnorrGetPublicKey(privateKey) {\n    return schnorrGetExtPubKey(privateKey).bytes; // d'=int(sk). Fail if d'=0 or d'≥n. Ret bytes(d'⋅G)\n}\n/**\n * Creates Schnorr signature as per BIP340. Verifies itself before returning anything.\n * auxRand is optional and is not the sole source of k generation: bad CSPRNG won't be dangerous.\n */\nfunction schnorrSign(message, privateKey, auxRand) {\n    if (auxRand === void 0) { auxRand = (0, utils_1.randomBytes)(32); }\n    var m = (0, utils_2.ensureBytes)('message', message);\n    var _a = schnorrGetExtPubKey(privateKey), px = _a.bytes, d = _a.scalar; // checks for isWithinCurveOrder\n    var a = (0, utils_2.ensureBytes)('auxRand', auxRand, 32); // Auxiliary random data a: a 32-byte array\n    var t = numTo32b(d ^ (0, utils_2.bytesToNumberBE)(taggedHash('BIP0340/aux', a))); // Let t be the byte-wise xor of bytes(d) and hash/aux(a)\n    var rand = taggedHash('BIP0340/nonce', t, px, m); // Let rand = hash/nonce(t || bytes(P) || m)\n    var k_ = modN((0, utils_2.bytesToNumberBE)(rand)); // Let k' = int(rand) mod n\n    if (k_ === _0n)\n        throw new Error('sign failed: k is zero'); // Fail if k' = 0.\n    var _b = schnorrGetExtPubKey(k_), rx = _b.bytes, k = _b.scalar; // Let R = k'⋅G.\n    var e = challenge(rx, px, m); // Let e = int(hash/challenge(bytes(R) || bytes(P) || m)) mod n.\n    var sig = new Uint8Array(64); // Let sig = bytes(R) || bytes((k + ed) mod n).\n    sig.set(rx, 0);\n    sig.set(numTo32b(modN(k + e * d)), 32);\n    // If Verify(bytes(P), m, sig) (see below) returns failure, abort\n    if (!schnorrVerify(sig, m, px))\n        throw new Error('sign: Invalid signature produced');\n    return sig;\n}\n/**\n * Verifies Schnorr signature.\n * Will swallow errors & return false except for initial type validation of arguments.\n */\nfunction schnorrVerify(signature, message, publicKey) {\n    var sig = (0, utils_2.ensureBytes)('signature', signature, 64);\n    var m = (0, utils_2.ensureBytes)('message', message);\n    var pub = (0, utils_2.ensureBytes)('publicKey', publicKey, 32);\n    try {\n        var P = lift_x((0, utils_2.bytesToNumberBE)(pub)); // P = lift_x(int(pk)); fail if that fails\n        var r = (0, utils_2.bytesToNumberBE)(sig.subarray(0, 32)); // Let r = int(sig[0:32]); fail if r ≥ p.\n        if (!fe(r))\n            return false;\n        var s = (0, utils_2.bytesToNumberBE)(sig.subarray(32, 64)); // Let s = int(sig[32:64]); fail if s ≥ n.\n        if (!ge(s))\n            return false;\n        var e = challenge(numTo32b(r), pointToBytes(P), m); // int(challenge(bytes(r)||bytes(P)||m))%n\n        var R = GmulAdd(P, s, modN(-e)); // R = s⋅G - e⋅P\n        if (!R || !R.hasEvenY() || R.toAffine().x !== r)\n            return false; // -eP == (n-e)P\n        return true; // Fail if is_infinite(R) / not has_even_y(R) / x(R) ≠ r.\n    }\n    catch (error) {\n        return false;\n    }\n}\nexports.signSchnorr = schnorrSign;\nexports.verifySchnorr = schnorrVerify;\nexports.schnorr = (function () { return ({\n    getPublicKey: schnorrGetPublicKey,\n    sign: schnorrSign,\n    verify: schnorrVerify,\n    utils: {\n        randomPrivateKey: exports.secp256k1.utils.randomPrivateKey,\n        lift_x: lift_x,\n        pointToBytes: pointToBytes,\n        numberToBytesBE: utils_2.numberToBytesBE,\n        bytesToNumberBE: utils_2.bytesToNumberBE,\n        taggedHash: taggedHash,\n        mod: modular_1.mod,\n    },\n}); })();\nvar isoMap = /* @__PURE__ */ (function () {\n    return (0, hash_to_curve_1.isogenyMap)(Fp, [\n        // xNum\n        [\n            '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa8c7',\n            '0x7d3d4c80bc321d5b9f315cea7fd44c5d595d2fc0bf63b92dfff1044f17c6581',\n            '0x534c328d23f234e6e2a413deca25caece4506144037c40314ecbd0b53d9dd262',\n            '0x8e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38e38daaaaa88c',\n        ],\n        // xDen\n        [\n            '0xd35771193d94918a9ca34ccbb7b640dd86cd409542f8487d9fe6b745781eb49b',\n            '0xedadc6f64383dc1df7c4b2d51b54225406d36b641f5e41bbc52a56612a8c6d14',\n            '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n        ],\n        // yNum\n        [\n            '0x4bda12f684bda12f684bda12f684bda12f684bda12f684bda12f684b8e38e23c',\n            '0xc75e0c32d5cb7c0fa9d0a54b12a0a6d5647ab046d686da6fdffc90fc201d71a3',\n            '0x29a6194691f91a73715209ef6512e576722830a201be2018a765e85a9ecee931',\n            '0x2f684bda12f684bda12f684bda12f684bda12f684bda12f684bda12f38e38d84',\n        ],\n        // yDen\n        [\n            '0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffff93b',\n            '0x7a06534bb8bdb49fd5e9e6632722c2989467c1bfc8e8d978dfb425d2685c2573',\n            '0x6484aa716545ca2cf3a70c3fa8fe337e0a3d21162f0d6299a7bf8192bfd2a76f',\n            '0x0000000000000000000000000000000000000000000000000000000000000001', // LAST 1\n        ],\n    ].map(function (i) { return i.map(function (j) { return BigInt(j); }); }));\n})();\nvar mapSWU = /* @__PURE__ */ (function () {\n    return (0, weierstrass_1.mapToCurveSimpleSWU)(Fp, {\n        A: BigInt('0x3f8731abdd661adca08a5558f0f5d272e953d363cb6f0e5d405447c01a444533'),\n        B: BigInt('1771'),\n        Z: Fp.create(BigInt('-11')),\n    });\n})();\nvar htf = /* @__PURE__ */ (function () {\n    return (0, hash_to_curve_1.createHasher)(exports.secp256k1.ProjectivePoint, function (scalars) {\n        var _a = mapSWU(Fp.create(scalars[0])), x = _a.x, y = _a.y;\n        return isoMap(x, y);\n    }, {\n        DST: 'secp256k1_XMD:SHA-256_SSWU_RO_',\n        encodeDST: 'secp256k1_XMD:SHA-256_SSWU_NU_',\n        p: Fp.ORDER,\n        m: 1,\n        k: 128,\n        expand: 'xmd',\n        hash: sha256_1.sha256,\n    });\n})();\nexports.hashToCurve = (function () { return htf.hashToCurve; })();\nexports.encodeToCurve = (function () { return htf.encodeToCurve; })();\nfunction signSecp256k1(data, privateKey, extraEntropy) {\n    return exports.secp256k1.sign(data, privateKey, { extraEntropy: extraEntropy }).toCompactRawBytes();\n}\nexports.signSecp256k1 = signSecp256k1;\nvar myDefaultVerOpts = { lowS: true, prehash: false };\nfunction verifySecp256k1(sig, msgHash, pubKey) {\n    return exports.secp256k1.verify(sig, msgHash, pubKey, myDefaultVerOpts);\n}\nexports.verifySecp256k1 = verifySecp256k1;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/secp256k1.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha224 = exports.sha256 = void 0;\nvar _md_1 = __webpack_require__(/*! ./_md.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_md.js\");\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\n// SHA2-256 need to try 2^128 hashes to execute birthday attack.\n// BTC network is doing 2^67 hashes/sec as per early 2023.\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nvar SHA256_K = /* @__PURE__ */ new Uint32Array([\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state:\n// first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19\n// prettier-ignore\nvar SHA256_IV = /* @__PURE__ */ new Uint32Array([\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nvar SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nvar SHA256 = /** @class */ (function (_super) {\n    __extends(SHA256, _super);\n    function SHA256() {\n        var _this = _super.call(this, 64, 32, 8, false) || this;\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        _this.A = SHA256_IV[0] | 0;\n        _this.B = SHA256_IV[1] | 0;\n        _this.C = SHA256_IV[2] | 0;\n        _this.D = SHA256_IV[3] | 0;\n        _this.E = SHA256_IV[4] | 0;\n        _this.F = SHA256_IV[5] | 0;\n        _this.G = SHA256_IV[6] | 0;\n        _this.H = SHA256_IV[7] | 0;\n        return _this;\n    }\n    SHA256.prototype.get = function () {\n        var _a = this, A = _a.A, B = _a.B, C = _a.C, D = _a.D, E = _a.E, F = _a.F, G = _a.G, H = _a.H;\n        return [A, B, C, D, E, F, G, H];\n    };\n    // prettier-ignore\n    SHA256.prototype.set = function (A, B, C, D, E, F, G, H) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n        this.F = F | 0;\n        this.G = G | 0;\n        this.H = H | 0;\n    };\n    SHA256.prototype.process = function (view, offset) {\n        // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n        for (var i = 0; i < 16; i++, offset += 4)\n            SHA256_W[i] = view.getUint32(offset, false);\n        for (var i = 16; i < 64; i++) {\n            var W15 = SHA256_W[i - 15];\n            var W2 = SHA256_W[i - 2];\n            var s0 = (0, utils_1.rotr)(W15, 7) ^ (0, utils_1.rotr)(W15, 18) ^ (W15 >>> 3);\n            var s1 = (0, utils_1.rotr)(W2, 17) ^ (0, utils_1.rotr)(W2, 19) ^ (W2 >>> 10);\n            SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n        }\n        // Compression function main loop, 64 rounds\n        var _a = this, A = _a.A, B = _a.B, C = _a.C, D = _a.D, E = _a.E, F = _a.F, G = _a.G, H = _a.H;\n        for (var i = 0; i < 64; i++) {\n            var sigma1 = (0, utils_1.rotr)(E, 6) ^ (0, utils_1.rotr)(E, 11) ^ (0, utils_1.rotr)(E, 25);\n            var T1 = (H + sigma1 + (0, _md_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            var sigma0 = (0, utils_1.rotr)(A, 2) ^ (0, utils_1.rotr)(A, 13) ^ (0, utils_1.rotr)(A, 22);\n            var T2 = (sigma0 + (0, _md_1.Maj)(A, B, C)) | 0;\n            H = G;\n            G = F;\n            F = E;\n            E = (D + T1) | 0;\n            D = C;\n            C = B;\n            B = A;\n            A = (T1 + T2) | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        F = (F + this.F) | 0;\n        G = (G + this.G) | 0;\n        H = (H + this.H) | 0;\n        this.set(A, B, C, D, E, F, G, H);\n    };\n    SHA256.prototype.roundClean = function () {\n        SHA256_W.fill(0);\n    };\n    SHA256.prototype.destroy = function () {\n        this.set(0, 0, 0, 0, 0, 0, 0, 0);\n        this.buffer.fill(0);\n    };\n    return SHA256;\n}(_md_1.HashMD));\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nvar SHA224 = /** @class */ (function (_super) {\n    __extends(SHA224, _super);\n    function SHA224() {\n        var _this = _super.call(this) || this;\n        _this.A = 0xc1059ed8 | 0;\n        _this.B = 0x367cd507 | 0;\n        _this.C = 0x3070dd17 | 0;\n        _this.D = 0xf70e5939 | 0;\n        _this.E = 0xffc00b31 | 0;\n        _this.F = 0x68581511 | 0;\n        _this.G = 0x64f98fa7 | 0;\n        _this.H = 0xbefa4fa4 | 0;\n        _this.outputLen = 28;\n        return _this;\n    }\n    return SHA224;\n}(SHA256));\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexports.sha256 = (0, utils_1.wrapConstructor)(function () { return new SHA256(); });\nexports.sha224 = (0, utils_1.wrapConstructor)(function () { return new SHA224(); });\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/sha256.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/sha512.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/sha512.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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};\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA512 = void 0;\nvar _md_1 = __webpack_require__(/*! ./_md.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_md.js\");\nvar u64 = __importStar(__webpack_require__(/*! ./_u64.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/_u64.js\"));\nvar utils_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nvar _a = __read(/* @__PURE__ */ (function () { return u64.split([\n    '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n    '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n    '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n    '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n    '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n    '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n    '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n    '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n    '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n    '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n    '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n    '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n    '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n    '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n    '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n    '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n    '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n    '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n    '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n    '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(function (n) { return BigInt(n); })); })(), 2), SHA512_Kh = _a[0], SHA512_Kl = _a[1];\n// Temporary buffer, not used to store anything between runs\nvar SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nvar SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nvar SHA512 = /** @class */ (function (_super) {\n    __extends(SHA512, _super);\n    function SHA512() {\n        var _this = _super.call(this, 128, 64, 16, false) || this;\n        // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n        // Also looks cleaner and easier to verify with spec.\n        // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n        // h -- high 32 bits, l -- low 32 bits\n        _this.Ah = 0x6a09e667 | 0;\n        _this.Al = 0xf3bcc908 | 0;\n        _this.Bh = 0xbb67ae85 | 0;\n        _this.Bl = 0x84caa73b | 0;\n        _this.Ch = 0x3c6ef372 | 0;\n        _this.Cl = 0xfe94f82b | 0;\n        _this.Dh = 0xa54ff53a | 0;\n        _this.Dl = 0x5f1d36f1 | 0;\n        _this.Eh = 0x510e527f | 0;\n        _this.El = 0xade682d1 | 0;\n        _this.Fh = 0x9b05688c | 0;\n        _this.Fl = 0x2b3e6c1f | 0;\n        _this.Gh = 0x1f83d9ab | 0;\n        _this.Gl = 0xfb41bd6b | 0;\n        _this.Hh = 0x5be0cd19 | 0;\n        _this.Hl = 0x137e2179 | 0;\n        return _this;\n    }\n    // prettier-ignore\n    SHA512.prototype.get = function () {\n        var _a = this, Ah = _a.Ah, Al = _a.Al, Bh = _a.Bh, Bl = _a.Bl, Ch = _a.Ch, Cl = _a.Cl, Dh = _a.Dh, Dl = _a.Dl, Eh = _a.Eh, El = _a.El, Fh = _a.Fh, Fl = _a.Fl, Gh = _a.Gh, Gl = _a.Gl, Hh = _a.Hh, Hl = _a.Hl;\n        return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n    };\n    // prettier-ignore\n    SHA512.prototype.set = function (Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n        this.Ah = Ah | 0;\n        this.Al = Al | 0;\n        this.Bh = Bh | 0;\n        this.Bl = Bl | 0;\n        this.Ch = Ch | 0;\n        this.Cl = Cl | 0;\n        this.Dh = Dh | 0;\n        this.Dl = Dl | 0;\n        this.Eh = Eh | 0;\n        this.El = El | 0;\n        this.Fh = Fh | 0;\n        this.Fl = Fl | 0;\n        this.Gh = Gh | 0;\n        this.Gl = Gl | 0;\n        this.Hh = Hh | 0;\n        this.Hl = Hl | 0;\n    };\n    SHA512.prototype.process = function (view, offset) {\n        var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n        // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n        for (var i = 0; i < 16; i++, offset += 4) {\n            SHA512_W_H[i] = view.getUint32(offset);\n            SHA512_W_L[i] = view.getUint32((offset += 4));\n        }\n        for (var i = 16; i < 80; i++) {\n            // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n            var W15h = SHA512_W_H[i - 15] | 0;\n            var W15l = SHA512_W_L[i - 15] | 0;\n            var s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n            var s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n            // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n            var W2h = SHA512_W_H[i - 2] | 0;\n            var W2l = SHA512_W_L[i - 2] | 0;\n            var s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n            var s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n            // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n            var SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n            var SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n            SHA512_W_H[i] = SUMh | 0;\n            SHA512_W_L[i] = SUMl | 0;\n        }\n        var _k = this, Ah = _k.Ah, Al = _k.Al, Bh = _k.Bh, Bl = _k.Bl, Ch = _k.Ch, Cl = _k.Cl, Dh = _k.Dh, Dl = _k.Dl, Eh = _k.Eh, El = _k.El, Fh = _k.Fh, Fl = _k.Fl, Gh = _k.Gh, Gl = _k.Gl, Hh = _k.Hh, Hl = _k.Hl;\n        // Compression function main loop, 80 rounds\n        for (var i = 0; i < 80; i++) {\n            // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n            var sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n            var sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n            //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            var CHIh = (Eh & Fh) ^ (~Eh & Gh);\n            var CHIl = (El & Fl) ^ (~El & Gl);\n            // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n            // prettier-ignore\n            var T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n            var T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n            var T1l = T1ll | 0;\n            // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n            var sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n            var sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n            var MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n            var MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n            Hh = Gh | 0;\n            Hl = Gl | 0;\n            Gh = Fh | 0;\n            Gl = Fl | 0;\n            Fh = Eh | 0;\n            Fl = El | 0;\n            (_a = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0), Eh = _a.h, El = _a.l);\n            Dh = Ch | 0;\n            Dl = Cl | 0;\n            Ch = Bh | 0;\n            Cl = Bl | 0;\n            Bh = Ah | 0;\n            Bl = Al | 0;\n            var All = u64.add3L(T1l, sigma0l, MAJl);\n            Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n            Al = All | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        (_b = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0), Ah = _b.h, Al = _b.l);\n        (_c = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0), Bh = _c.h, Bl = _c.l);\n        (_d = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0), Ch = _d.h, Cl = _d.l);\n        (_e = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0), Dh = _e.h, Dl = _e.l);\n        (_f = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0), Eh = _f.h, El = _f.l);\n        (_g = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0), Fh = _g.h, Fl = _g.l);\n        (_h = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0), Gh = _h.h, Gl = _h.l);\n        (_j = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0), Hh = _j.h, Hl = _j.l);\n        this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n    };\n    SHA512.prototype.roundClean = function () {\n        SHA512_W_H.fill(0);\n        SHA512_W_L.fill(0);\n    };\n    SHA512.prototype.destroy = function () {\n        this.buffer.fill(0);\n        this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    };\n    return SHA512;\n}(_md_1.HashMD));\nexports.SHA512 = SHA512;\nvar SHA512_224 = /** @class */ (function (_super) {\n    __extends(SHA512_224, _super);\n    function SHA512_224() {\n        var _this = _super.call(this) || this;\n        // h -- high 32 bits, l -- low 32 bits\n        _this.Ah = 0x8c3d37c8 | 0;\n        _this.Al = 0x19544da2 | 0;\n        _this.Bh = 0x73e19966 | 0;\n        _this.Bl = 0x89dcd4d6 | 0;\n        _this.Ch = 0x1dfab7ae | 0;\n        _this.Cl = 0x32ff9c82 | 0;\n        _this.Dh = 0x679dd514 | 0;\n        _this.Dl = 0x582f9fcf | 0;\n        _this.Eh = 0x0f6d2b69 | 0;\n        _this.El = 0x7bd44da8 | 0;\n        _this.Fh = 0x77e36f73 | 0;\n        _this.Fl = 0x04c48942 | 0;\n        _this.Gh = 0x3f9d85a8 | 0;\n        _this.Gl = 0x6a1d36c8 | 0;\n        _this.Hh = 0x1112e6ad | 0;\n        _this.Hl = 0x91d692a1 | 0;\n        _this.outputLen = 28;\n        return _this;\n    }\n    return SHA512_224;\n}(SHA512));\nvar SHA512_256 = /** @class */ (function (_super) {\n    __extends(SHA512_256, _super);\n    function SHA512_256() {\n        var _this = _super.call(this) || this;\n        // h -- high 32 bits, l -- low 32 bits\n        _this.Ah = 0x22312194 | 0;\n        _this.Al = 0xfc2bf72c | 0;\n        _this.Bh = 0x9f555fa3 | 0;\n        _this.Bl = 0xc84c64c2 | 0;\n        _this.Ch = 0x2393b86b | 0;\n        _this.Cl = 0x6f53b151 | 0;\n        _this.Dh = 0x96387719 | 0;\n        _this.Dl = 0x5940eabd | 0;\n        _this.Eh = 0x96283ee2 | 0;\n        _this.El = 0xa88effe3 | 0;\n        _this.Fh = 0xbe5e1e25 | 0;\n        _this.Fl = 0x53863992 | 0;\n        _this.Gh = 0x2b0199fc | 0;\n        _this.Gl = 0x2c85b8aa | 0;\n        _this.Hh = 0x0eb72ddc | 0;\n        _this.Hl = 0x81c52ca2 | 0;\n        _this.outputLen = 32;\n        return _this;\n    }\n    return SHA512_256;\n}(SHA512));\nvar SHA384 = /** @class */ (function (_super) {\n    __extends(SHA384, _super);\n    function SHA384() {\n        var _this = _super.call(this) || this;\n        // h -- high 32 bits, l -- low 32 bits\n        _this.Ah = 0xcbbb9d5d | 0;\n        _this.Al = 0xc1059ed8 | 0;\n        _this.Bh = 0x629a292a | 0;\n        _this.Bl = 0x367cd507 | 0;\n        _this.Ch = 0x9159015a | 0;\n        _this.Cl = 0x3070dd17 | 0;\n        _this.Dh = 0x152fecd8 | 0;\n        _this.Dl = 0xf70e5939 | 0;\n        _this.Eh = 0x67332667 | 0;\n        _this.El = 0xffc00b31 | 0;\n        _this.Fh = 0x8eb44a87 | 0;\n        _this.Fl = 0x68581511 | 0;\n        _this.Gh = 0xdb0c2e0d | 0;\n        _this.Gl = 0x64f98fa7 | 0;\n        _this.Hh = 0x47b5481d | 0;\n        _this.Hl = 0xbefa4fa4 | 0;\n        _this.outputLen = 48;\n        return _this;\n    }\n    return SHA384;\n}(SHA512));\nexports.sha512 = (0, utils_1.wrapConstructor)(function () { return new SHA512(); });\nexports.sha512_224 = (0, utils_1.wrapConstructor)(function () { return new SHA512_224(); });\nexports.sha512_256 = (0, utils_1.wrapConstructor)(function () { return new SHA512_256(); });\nexports.sha384 = (0, utils_1.wrapConstructor)(function () { return new SHA384(); });\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/sha512.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/noble/utils.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/noble/utils.js ***!
  \***************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/*\nTHIS IMPLEMENTATION WAS TAKEN FROM `@noble/hashes`\n\noriginal source: https://github.com/paulmillr/noble-hashes/blob/6ae82e75d4c354d53a488e95b1bfe9cba90bd6ff/src/utils.ts#L1\n\nit was modified and adapted to this repository to re-use already defined stuff\n\nthe main reason for copying over and not using as dependency is because of different target in the `tsconfig.json`\n\n`@noble/hashes` targets es2020, which tends to cause problems with some other (older) packages sometimes\n\nthis repo targets ES5+\n*/\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\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};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n    function verb(n) { return function (v) { return step([n, v]); }; }\n    function step(op) {\n        if (f) throw new TypeError(\"Generator is already executing.\");\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n            if (y = 0, t) op = [op[0] & 2, t.value];\n            switch (op[0]) {\n                case 0: case 1: t = op; break;\n                case 4: _.label++; return { value: op[1], done: false };\n                case 5: _.label++; y = op[1]; op = [0]; continue;\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\n                default:\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                    if (t[2]) _.ops.pop();\n                    _.trys.pop(); continue;\n            }\n            op = body.call(thisArg, _);\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n    }\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.randomBytes = exports.wrapXOFConstructorWithOpts = exports.wrapConstructorWithOpts = exports.wrapConstructor = exports.checkOpts = exports.Hash = exports.concatBytes = exports.toBytes = exports.asyncLoop = exports.nextTick = exports.hexToBytes = exports.bytesToHex = exports.byteSwap32 = exports.byteSwapIfBE = exports.byteSwap = exports.isLE = exports.rotl = exports.rotr = exports.createView = exports.u32 = exports.u8 = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\nvar crypto_1 = __webpack_require__(/*! ./crypto.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/crypto.js\");\n// Cast array to different type\nvar u8 = function (arr) { return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength); };\nexports.u8 = u8;\nvar u32 = function (arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n};\nexports.u32 = u32;\n// Cast array to view\nvar createView = function (arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n};\nexports.createView = createView;\n// The rotate right (circular right shift) operation for uint32\nvar rotr = function (word, shift) { return (word << (32 - shift)) | (word >>> shift); };\nexports.rotr = rotr;\n// The rotate left (circular left shift) operation for uint32\nvar rotl = function (word, shift) {\n    return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n};\nexports.rotl = rotl;\nexports.isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// The byte swap operation for uint32\nvar byteSwap = function (word) {\n    return ((word << 24) & 0xff000000) |\n        ((word << 8) & 0xff0000) |\n        ((word >>> 8) & 0xff00) |\n        ((word >>> 24) & 0xff);\n};\nexports.byteSwap = byteSwap;\n// Conditionally byte swap if on a big-endian platform\nexports.byteSwapIfBE = exports.isLE ? function (n) { return n; } : function (n) { return (0, exports.byteSwap)(n); };\n// In place byte swap for Uint32Array\nfunction byteSwap32(arr) {\n    for (var i = 0; i < arr.length; i++) {\n        arr[i] = (0, exports.byteSwap)(arr[i]);\n    }\n}\nexports.byteSwap32 = byteSwap32;\n// Array where index 0xf0 (240) is mapped to string 'f0'\nvar hexes = /* @__PURE__ */ Array.from({ length: 256 }, function (_, i) {\n    return i.toString(16).padStart(2, '0');\n});\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n    (0, assert_1.assertBytes)(bytes);\n    // pre-caching improves the speed 6x\n    var hex = '';\n    for (var i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\nexports.bytesToHex = bytesToHex;\n// We use optimized technique to convert hex string to byte array\nvar asciis = { _0: 48, _9: 57, _A: 65, _F: 70, _a: 97, _f: 102 };\nfunction asciiToBase16(char) {\n    if (char >= asciis._0 && char <= asciis._9)\n        return char - asciis._0;\n    if (char >= asciis._A && char <= asciis._F)\n        return char - (asciis._A - 10);\n    if (char >= asciis._a && char <= asciis._f)\n        return char - (asciis._a - 10);\n    return;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    var hl = hex.length;\n    var al = hl / 2;\n    if (hl % 2)\n        throw new Error('padded hex string expected, got unpadded hex of length ' + hl);\n    var array = new Uint8Array(al);\n    for (var ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        var n1 = asciiToBase16(hex.charCodeAt(hi));\n        var n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            var char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2;\n    }\n    return array;\n}\nexports.hexToBytes = hexToBytes;\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nvar nextTick = function () { return __awaiter(void 0, void 0, void 0, function () { return __generator(this, function (_b) {\n    return [2 /*return*/];\n}); }); };\nexports.nextTick = nextTick;\n// Returns control to thread each 'tick' ms to avoid blocking\nfunction asyncLoop(iters, tick, cb) {\n    return __awaiter(this, void 0, void 0, function () {\n        var ts, i, diff;\n        return __generator(this, function (_b) {\n            switch (_b.label) {\n                case 0:\n                    ts = Date.now();\n                    i = 0;\n                    _b.label = 1;\n                case 1:\n                    if (!(i < iters)) return [3 /*break*/, 4];\n                    cb(i);\n                    diff = Date.now() - ts;\n                    if (diff >= 0 && diff < tick)\n                        return [3 /*break*/, 3];\n                    return [4 /*yield*/, (0, exports.nextTick)()];\n                case 2:\n                    _b.sent();\n                    ts += diff;\n                    _b.label = 3;\n                case 3:\n                    i++;\n                    return [3 /*break*/, 1];\n                case 4: return [2 /*return*/];\n            }\n        });\n    });\n}\nexports.asyncLoop = asyncLoop;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n    if (typeof data === 'string')\n        data = (0, uint8array_utils_1.fromUtf8)(data);\n    (0, assert_1.assertBytes)(data);\n    return data;\n}\nexports.toBytes = toBytes;\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes() {\n    var arrays = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        arrays[_i] = arguments[_i];\n    }\n    var sum = 0;\n    for (var i = 0; i < arrays.length; i++) {\n        var a = arrays[i];\n        (0, assert_1.assertBytes)(a);\n        sum += a.length;\n    }\n    var res = new Uint8Array(sum);\n    for (var i = 0, pad = 0; i < arrays.length; i++) {\n        var a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\nexports.concatBytes = concatBytes;\n// For runtime check if class implements interface\nvar Hash = /** @class */ (function () {\n    function Hash() {\n    }\n    // Safe version that clones internal state\n    Hash.prototype.clone = function () {\n        return this._cloneInto();\n    };\n    return Hash;\n}());\nexports.Hash = Hash;\nvar toStr = {}.toString;\nfunction checkOpts(defaults, opts) {\n    if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n        throw new Error('Options should be object or undefined');\n    var merged = Object.assign(defaults, opts);\n    return merged;\n}\nexports.checkOpts = checkOpts;\nfunction wrapConstructor(hashCons) {\n    var hashC = function (msg) { return hashCons().update(toBytes(msg)).digest(); };\n    var tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = function () { return hashCons(); };\n    return hashC;\n}\nexports.wrapConstructor = wrapConstructor;\nfunction wrapConstructorWithOpts(hashCons) {\n    var hashC = function (msg, opts) { return hashCons(opts).update(toBytes(msg)).digest(); };\n    var tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = function (opts) { return hashCons(opts); };\n    return hashC;\n}\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nfunction wrapXOFConstructorWithOpts(hashCons) {\n    var hashC = function (msg, opts) { return hashCons(opts).update(toBytes(msg)).digest(); };\n    var tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = function (opts) { return hashCons(opts); };\n    return hashC;\n}\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nfunction randomBytes(bytesLength) {\n    if (bytesLength === void 0) { bytesLength = 32; }\n    if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n        return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\nexports.randomBytes = randomBytes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/noble/utils.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/ripemd_160.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/ripemd_160.js ***!
  \**************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ripemd160 = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar ripemd_160_1 = __webpack_require__(/*! ./noble/ripemd_160.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/ripemd_160.js\");\nfunction ripemd160(input) {\n    if (typeof input === \"string\") {\n        if (input.startsWith(\"0x\"))\n            input = (0, uint8array_utils_1.fromHex)(input.toLowerCase().slice(2));\n        else if (isHex(input))\n            input = (0, uint8array_utils_1.fromHex)(input.toLowerCase());\n        else\n            input = (0, uint8array_utils_1.fromUtf8)(input);\n    }\n    if (!(input instanceof Uint8Array))\n        throw new Error(\"ripemd160: input must be Uint8Array or string\");\n    return new ripemd_160_1.RIPEMD160().update(input).digest();\n}\nexports.ripemd160 = ripemd160;\nfunction isHex(str) {\n    return /^[0-9A-Fa-f]*$/.test(str);\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/ripemd_160.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/secp256k1.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/secp256k1.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.verifySchnorrSecp256k1Signature = exports.verifyEcdsaSecp256k1Signature = void 0;\nvar secp256k1_1 = __webpack_require__(/*! ./noble/secp256k1.js */ \"./node_modules/@harmoniclabs/crypto/dist/noble/secp256k1.js\");\nfunction verifyEcdsaSecp256k1Signature(vk, // 33 bytes\nmessageHash, // 32 bytes\nsignature) {\n    if (!(vk instanceof Uint8Array &&\n        messageHash instanceof Uint8Array &&\n        signature instanceof Uint8Array &&\n        vk.length === 33 &&\n        messageHash.length === 32 &&\n        signature.length === 64))\n        throw new TypeError(\"invalid arguments passed to 'verifyEcdsaSecp256k1Signature'\");\n    var vkHead = vk[0];\n    if (!(vkHead === 0x02 ||\n        vkHead === 0x03))\n        throw new Error(\"plutus-machine only supports compressed public keys for 'verifyEcdsaSecp256k1Signature'\");\n    return (0, secp256k1_1.verifySecp256k1)(signature, messageHash, vk);\n}\nexports.verifyEcdsaSecp256k1Signature = verifyEcdsaSecp256k1Signature;\nfunction verifySchnorrSecp256k1Signature(pubKey, messageHash, signature) {\n    if (!(pubKey instanceof Uint8Array &&\n        messageHash instanceof Uint8Array &&\n        signature instanceof Uint8Array &&\n        pubKey.length === 32 &&\n        signature.length === 64))\n        throw new TypeError(\"invalid arguments passed to 'verifyEcdsaSecp256k1Signature'\");\n    // signature 64\n    // pubKey 32\n    return (0, secp256k1_1.verifySchnorr)(signature, messageHash, pubKey);\n}\nexports.verifySchnorrSecp256k1Signature = verifySchnorrSecp256k1Signature;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/secp256k1.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/sha2_256.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/sha2_256.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha2_256 = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar types_1 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar rotr32_1 = __webpack_require__(/*! ./utils/rotr32.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/rotr32.js\");\n/**\n     * Pad a bytearray so its size is a multiple of 64 (512 bits).\n     * Internal method.\n     */\nfunction pad(src) {\n    var nBits = src.length * 8;\n    var dst = src.slice();\n    dst.push(0x80);\n    var nZeroes = (64 - dst.length % 64) - 8;\n    if (nZeroes < 0) {\n        nZeroes += 64;\n    }\n    for (var i = 0; i < nZeroes; i++) {\n        dst.push(0);\n    }\n    // assume nBits fits in 32 bits\n    dst.push(0);\n    dst.push(0);\n    dst.push(0);\n    dst.push(0);\n    dst.push(((nBits >> 24) & 0xff));\n    dst.push(((nBits >> 16) & 0xff));\n    dst.push(((nBits >> 8) & 0xff));\n    dst.push(((nBits >> 0) & 0xff));\n    return dst;\n}\nvar k = [\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n    0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n    0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n    0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n    0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n    0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,\n];\nfunction sigma0(x) {\n    return (0, rotr32_1.rotr32)(x, 7) ^ (0, rotr32_1.rotr32)(x, 18) ^ (x >>> 3);\n}\nfunction sigma1(x) {\n    return (0, rotr32_1.rotr32)(x, 17) ^ (0, rotr32_1.rotr32)(x, 19) ^ (x >>> 10);\n}\n/**\n * getulates sha2-256 (32bytes) hash of a list of uint8 numbers.\n * Result is also a list of uint8 number.\n * @example\n * bytesToHex(sha2_256([0x61, 0x62, 0x63])) => \"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad\"\n * @example\n * sha2_256(textToBytes(\"Hello, World!\")) => [223, 253, 96, 33, 187, 43, 213, 176, 175, 103, 98, 144, 128, 158, 195, 165, 49, 145, 221, 129, 199, 247, 10, 75, 40, 104, 138, 54, 33, 130, 152, 111]\n * @param {uint5[]} bytes - list of uint8 numbers\n * @returns {number[]} - list of uint8 numbers\n */\nfunction sha2_256(bytes) {\n    if ((0, uint8array_utils_1.isUint8Array)(bytes)) {\n        bytes = (0, types_1.buffToByteArr)(bytes);\n    }\n    /**\n     * Initial hash (updated during compression phase)\n     */\n    var hash = [\n        0x6a09e667,\n        0xbb67ae85,\n        0x3c6ef372,\n        0xa54ff53a,\n        0x510e527f,\n        0x9b05688c,\n        0x1f83d9ab,\n        0x5be0cd19,\n    ];\n    bytes = pad(bytes);\n    // break message in successive 64 byte chunks\n    for (var chunkStart = 0; chunkStart < bytes.length; chunkStart += 64) {\n        var chunk = bytes.slice(chunkStart, chunkStart + 64);\n        var w = (new Array(64)).fill(0); // array of 32 bit numbers!\n        // copy chunk into first 16 positions of w\n        for (var i = 0; i < 16; i++) {\n            w[i] = (chunk[i * 4 + 0] << 24) |\n                (chunk[i * 4 + 1] << 16) |\n                (chunk[i * 4 + 2] << 8) |\n                (chunk[i * 4 + 3]);\n        }\n        // extends the first 16 positions into the remaining 48 positions\n        for (var i = 16; i < 64; i++) {\n            w[i] = (w[i - 16] + sigma0(w[i - 15]) + w[i - 7] + sigma1(w[i - 2])) | 0;\n        }\n        // intialize working variables to current hash value\n        var a = hash[0];\n        var b = hash[1];\n        var c = hash[2];\n        var d = hash[3];\n        var e = hash[4];\n        var f = hash[5];\n        var g = hash[6];\n        var h = hash[7];\n        // compression function main loop\n        for (var i = 0; i < 64; i++) {\n            var S1 = (0, rotr32_1.rotr32)(e, 6) ^ (0, rotr32_1.rotr32)(e, 11) ^ (0, rotr32_1.rotr32)(e, 25);\n            var ch = (e & f) ^ ((~e) & g);\n            var temp1 = (h + S1 + ch + k[i] + w[i]) | 0;\n            var S0 = (0, rotr32_1.rotr32)(a, 2) ^ (0, rotr32_1.rotr32)(a, 13) ^ (0, rotr32_1.rotr32)(a, 22);\n            var maj = (a & b) ^ (a & c) ^ (b & c);\n            var temp2 = (S0 + maj) | 0;\n            h = g;\n            g = f;\n            f = e;\n            e = (d + temp1) | 0;\n            d = c;\n            c = b;\n            b = a;\n            a = (temp1 + temp2) | 0;\n        }\n        // update the hash\n        hash[0] = (hash[0] + a) | 0;\n        hash[1] = (hash[1] + b) | 0;\n        hash[2] = (hash[2] + c) | 0;\n        hash[3] = (hash[3] + d) | 0;\n        hash[4] = (hash[4] + e) | 0;\n        hash[5] = (hash[5] + f) | 0;\n        hash[6] = (hash[6] + g) | 0;\n        hash[7] = (hash[7] + h) | 0;\n    }\n    // produce the final digest of uint8 numbers\n    var result = [];\n    for (var i = 0; i < 8; i++) {\n        var item = hash[i];\n        result.push(((item >> 24) & 0xff));\n        result.push(((item >> 16) & 0xff));\n        result.push(((item >> 8) & 0xff));\n        result.push(((item >> 0) & 0xff));\n    }\n    return new Uint8Array(result);\n}\nexports.sha2_256 = sha2_256;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/sha2_256.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/sha2_512.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/sha2_512.js ***!
  \************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha2_512 = exports._sha2_512_pad = void 0;\nvar types_1 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\n/**\n * Pad a bytearray so its size is a multiple of 128 (1024 bits).\n * Internal method.\n */\nfunction _sha2_512_pad(src) {\n    var nBits = src.length * 8;\n    // clone\n    var dst = src.slice();\n    dst.push(0x80);\n    var nZeroes = (128 - dst.length % 128) - 8;\n    if (nZeroes < 0) {\n        nZeroes += 128;\n    }\n    for (var i = 0; i < nZeroes; i++) {\n        dst.push(0);\n    }\n    // assume nBits fits in 32 bits\n    dst.push(0);\n    dst.push(0);\n    dst.push(0);\n    dst.push(0);\n    dst.push(((nBits >> 24) & 0xff));\n    dst.push(((nBits >> 16) & 0xff));\n    dst.push(((nBits >> 8) & 0xff));\n    dst.push(((nBits >> 0) & 0xff));\n    return dst;\n}\nexports._sha2_512_pad = _sha2_512_pad;\nvar _sha2_512_k = Object.freeze([\n    (0, types_1.uint64)(\"0x428a2f98d728ae22\"), (0, types_1.uint64)(\"0x7137449123ef65cd\"),\n    (0, types_1.uint64)(\"0xb5c0fbcfec4d3b2f\"), (0, types_1.uint64)(\"0xe9b5dba58189dbbc\"),\n    (0, types_1.uint64)(\"0x3956c25bf348b538\"), (0, types_1.uint64)(\"0x59f111f1b605d019\"),\n    (0, types_1.uint64)(\"0x923f82a4af194f9b\"), (0, types_1.uint64)(\"0xab1c5ed5da6d8118\"),\n    (0, types_1.uint64)(\"0xd807aa98a3030242\"), (0, types_1.uint64)(\"0x12835b0145706fbe\"),\n    (0, types_1.uint64)(\"0x243185be4ee4b28c\"), (0, types_1.uint64)(\"0x550c7dc3d5ffb4e2\"),\n    (0, types_1.uint64)(\"0x72be5d74f27b896f\"), (0, types_1.uint64)(\"0x80deb1fe3b1696b1\"),\n    (0, types_1.uint64)(\"0x9bdc06a725c71235\"), (0, types_1.uint64)(\"0xc19bf174cf692694\"),\n    (0, types_1.uint64)(\"0xe49b69c19ef14ad2\"), (0, types_1.uint64)(\"0xefbe4786384f25e3\"),\n    (0, types_1.uint64)(\"0x0fc19dc68b8cd5b5\"), (0, types_1.uint64)(\"0x240ca1cc77ac9c65\"),\n    (0, types_1.uint64)(\"0x2de92c6f592b0275\"), (0, types_1.uint64)(\"0x4a7484aa6ea6e483\"),\n    (0, types_1.uint64)(\"0x5cb0a9dcbd41fbd4\"), (0, types_1.uint64)(\"0x76f988da831153b5\"),\n    (0, types_1.uint64)(\"0x983e5152ee66dfab\"), (0, types_1.uint64)(\"0xa831c66d2db43210\"),\n    (0, types_1.uint64)(\"0xb00327c898fb213f\"), (0, types_1.uint64)(\"0xbf597fc7beef0ee4\"),\n    (0, types_1.uint64)(\"0xc6e00bf33da88fc2\"), (0, types_1.uint64)(\"0xd5a79147930aa725\"),\n    (0, types_1.uint64)(\"0x06ca6351e003826f\"), (0, types_1.uint64)(\"0x142929670a0e6e70\"),\n    (0, types_1.uint64)(\"0x27b70a8546d22ffc\"), (0, types_1.uint64)(\"0x2e1b21385c26c926\"),\n    (0, types_1.uint64)(\"0x4d2c6dfc5ac42aed\"), (0, types_1.uint64)(\"0x53380d139d95b3df\"),\n    (0, types_1.uint64)(\"0x650a73548baf63de\"), (0, types_1.uint64)(\"0x766a0abb3c77b2a8\"),\n    (0, types_1.uint64)(\"0x81c2c92e47edaee6\"), (0, types_1.uint64)(\"0x92722c851482353b\"),\n    (0, types_1.uint64)(\"0xa2bfe8a14cf10364\"), (0, types_1.uint64)(\"0xa81a664bbc423001\"),\n    (0, types_1.uint64)(\"0xc24b8b70d0f89791\"), (0, types_1.uint64)(\"0xc76c51a30654be30\"),\n    (0, types_1.uint64)(\"0xd192e819d6ef5218\"), (0, types_1.uint64)(\"0xd69906245565a910\"),\n    (0, types_1.uint64)(\"0xf40e35855771202a\"), (0, types_1.uint64)(\"0x106aa07032bbd1b8\"),\n    (0, types_1.uint64)(\"0x19a4c116b8d2d0c8\"), (0, types_1.uint64)(\"0x1e376c085141ab53\"),\n    (0, types_1.uint64)(\"0x2748774cdf8eeb99\"), (0, types_1.uint64)(\"0x34b0bcb5e19b48a8\"),\n    (0, types_1.uint64)(\"0x391c0cb3c5c95a63\"), (0, types_1.uint64)(\"0x4ed8aa4ae3418acb\"),\n    (0, types_1.uint64)(\"0x5b9cca4f7763e373\"), (0, types_1.uint64)(\"0x682e6ff3d6b2b8a3\"),\n    (0, types_1.uint64)(\"0x748f82ee5defb2fc\"), (0, types_1.uint64)(\"0x78a5636f43172f60\"),\n    (0, types_1.uint64)(\"0x84c87814a1f0ab72\"), (0, types_1.uint64)(\"0x8cc702081a6439ec\"),\n    (0, types_1.uint64)(\"0x90befffa23631e28\"), (0, types_1.uint64)(\"0xa4506cebde82bde9\"),\n    (0, types_1.uint64)(\"0xbef9a3f7b2c67915\"), (0, types_1.uint64)(\"0xc67178f2e372532b\"),\n    (0, types_1.uint64)(\"0xca273eceea26619c\"), (0, types_1.uint64)(\"0xd186b8c721c0c207\"),\n    (0, types_1.uint64)(\"0xeada7dd6cde0eb1e\"), (0, types_1.uint64)(\"0xf57d4f7fee6ed178\"),\n    (0, types_1.uint64)(\"0x06f067aa72176fba\"), (0, types_1.uint64)(\"0x0a637dc5a2c898a6\"),\n    (0, types_1.uint64)(\"0x113f9804bef90dae\"), (0, types_1.uint64)(\"0x1b710b35131c471b\"),\n    (0, types_1.uint64)(\"0x28db77f523047d84\"), (0, types_1.uint64)(\"0x32caab7b40c72493\"),\n    (0, types_1.uint64)(\"0x3c9ebe0a15c9bebc\"), (0, types_1.uint64)(\"0x431d67c49c100d4c\"),\n    (0, types_1.uint64)(\"0x4cc5d4becb3e42b6\"), (0, types_1.uint64)(\"0x597f299cfc657e2a\"),\n    (0, types_1.uint64)(\"0x5fcb6fab3ad6faec\"), (0, types_1.uint64)(\"0x6c44198c4a475817\"),\n]);\n/**\n * getulates sha2-512 (64bytes) hash of a list of uint8 numbers.\n * Result is also a list of uint8 number.\n * @example\n * bytesToHex(sha2_512([0x61, 0x62, 0x63])) => \"ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f\"\n * @example\n * bytesToHex(sha2_512([])) => \"cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e\"\n * @param {number[]} bytes - list of uint8 numbers\n * @returns {number[]} - list of uint8 numbers\n */\nfunction sha2_512(bytes) {\n    if (bytes instanceof Uint8Array)\n        bytes = Array.from(bytes);\n    // initial has; updated later\n    var hash = [\n        (0, types_1.uint64)(\"0x6a09e667f3bcc908\"),\n        (0, types_1.uint64)(\"0xbb67ae8584caa73b\"),\n        (0, types_1.uint64)(\"0x3c6ef372fe94f82b\"),\n        (0, types_1.uint64)(\"0xa54ff53a5f1d36f1\"),\n        (0, types_1.uint64)(\"0x510e527fade682d1\"),\n        (0, types_1.uint64)(\"0x9b05688c2b3e6c1f\"),\n        (0, types_1.uint64)(\"0x1f83d9abfb41bd6b\"),\n        (0, types_1.uint64)(\"0x5be0cd19137e2179\"),\n    ];\n    function sigma0(x) {\n        return (0, types_1.forceUint64)(((0, types_1.uint64Rotr)(x, 1) ^ (0, types_1.uint64Rotr)(x, 8)) ^ (x >> BigInt(7)));\n    }\n    function sigma1(x) {\n        return (0, types_1.forceUint64)(((0, types_1.uint64Rotr)(x, 19) ^ (0, types_1.uint64Rotr)(x, 61)) ^ (x >> BigInt(6)));\n    }\n    bytes = _sha2_512_pad(bytes);\n    // break message in successive 64 byte chunks\n    for (var chunkStart = 0; chunkStart < bytes.length; chunkStart += 128) {\n        var chunk = bytes.slice(chunkStart, chunkStart + 128);\n        var w = (new Array(80)).fill(BigInt(0)); // array of 32 bit numbers!\n        // copy chunk into first 16 hi/lo positions of w (i.e. into first 32 uint32 positions)\n        for (var i = 0; i < 16; i++) {\n            w[i] = (0, types_1.uint64)(\"0x\" + (0, types_1.byteArrToHex)(chunk.slice(i * 8, i * 8 + 8)));\n        }\n        // extends the first 16 positions into the remaining 80 positions\n        for (var i = 16; i < 80; i++) {\n            w[i] = (0, types_1.forceUint64)(sigma1(w[i - 2]) + w[i - 7] + sigma0(w[i - 15]) + w[i - 16]);\n        }\n        // intialize working variables to current hash value\n        var a = hash[0];\n        var b = hash[1];\n        var c = hash[2];\n        var d = hash[3];\n        var e = hash[4];\n        var f = hash[5];\n        var g = hash[6];\n        var h = hash[7];\n        // compression function main loop\n        for (var i = 0; i < 80; i++) {\n            var S1 = (((0, types_1.uint64Rotr)(e, 14) ^ (0, types_1.uint64Rotr)(e, 18)) ^ (0, types_1.uint64Rotr)(e, 41));\n            var ch = ((e & f) ^ ((~e) & g));\n            var temp1 = (0, types_1.forceUint64)(h + S1 + ch + _sha2_512_k[i] + w[i]);\n            var S0 = ((0, types_1.uint64Rotr)(a, 28) ^ (0, types_1.uint64Rotr)(a, 34)) ^ ((0, types_1.uint64Rotr)(a, 39));\n            var maj = (((a & b) ^ (a & c)) ^ (b & (c)));\n            var temp2 = (0, types_1.forceUint64)(S0 + maj);\n            h = g;\n            g = f;\n            f = e;\n            e = (0, types_1.forceUint64)(d + temp1);\n            d = c;\n            c = b;\n            b = a;\n            a = (0, types_1.forceUint64)(temp1 + temp2);\n        }\n        // update the hash\n        hash[0] = (0, types_1.forceUint64)(hash[0] + a);\n        hash[1] = (0, types_1.forceUint64)(hash[1] + b);\n        hash[2] = (0, types_1.forceUint64)(hash[2] + c);\n        hash[3] = (0, types_1.forceUint64)(hash[3] + d);\n        hash[4] = (0, types_1.forceUint64)(hash[4] + e);\n        hash[5] = (0, types_1.forceUint64)(hash[5] + f);\n        hash[6] = (0, types_1.forceUint64)(hash[6] + g);\n        hash[7] = (0, types_1.forceUint64)(hash[7] + h);\n    }\n    // produce the final digest of uint8 numbers\n    var result = [];\n    for (var i = 0; i < 8; i++) {\n        result.push.apply(result, __spreadArray([], __read((0, types_1.uint64ToBytesBE)(hash[i])), false));\n    }\n    return new Uint8Array(result);\n}\nexports.sha2_512 = sha2_512;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/sha2_512.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/sha3.js":
/*!********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/sha3.js ***!
  \********************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha3 = void 0;\nvar types_1 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar types_2 = __webpack_require__(/*! ./types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\n/**\n * state width (1600 bits, )\n */\nvar WIDTH = 200;\n/**\n * rate (1088 bits, 136 bytes)\n */\nvar RATE = 136;\n/**\n * capacity\n */\nvar CAP = WIDTH - RATE;\n/**\n * Apply 1000...1 padding until size is multiple of r.\n * If already multiple of r then add a whole block of padding.\n * @param {number[]} src - list of uint8 numbers\n * @returns {number[]} - list of uint8 numbers\n */\nfunction pad(src) {\n    var dst = src.slice();\n    var nZeroes = RATE - 2 - (dst.length % RATE);\n    if (nZeroes < -1) {\n        nZeroes += RATE - 2;\n    }\n    if (nZeroes == -1) {\n        dst.push(0x86);\n    }\n    else {\n        dst.push(0x06);\n        for (var i = 0; i < nZeroes; i++) {\n            dst.push(0);\n        }\n        dst.push(0x80);\n    }\n    (0, assert_1.assert)((dst.length % RATE) === 0, \"wrong destination length\");\n    return dst;\n}\n/**\n * 24 numbers used in the sha3 permute function\n */\nvar OFFSETS = Object.freeze([6, 12, 18, 24, 3, 9, 10, 16, 22, 1, 7, 13, 19, 20, 4, 5, 11, 17, 23, 2, 8, 14, 15, 21]);\n/**\n * 24 numbers used in the sha3 permute function\n */\nvar SHIFTS = Object.freeze([-12, -11, 21, 14, 28, 20, 3, -13, -29, 1, 6, 25, 8, 18, 27, -4, 10, 15, -24, -30, -23, -7, -9, 2]);\n/**\n * Round constants used in the sha3 permute function\n */\nvar RC = Object.freeze([\n    (0, types_2.uint64)(\"0x0000000000000001\"),\n    (0, types_2.uint64)(\"0x0000000000008082\"),\n    (0, types_2.uint64)(\"0x800000000000808a\"),\n    (0, types_2.uint64)(\"0x8000000080008000\"),\n    (0, types_2.uint64)(\"0x000000000000808b\"),\n    (0, types_2.uint64)(\"0x0000000080000001\"),\n    (0, types_2.uint64)(\"0x8000000080008081\"),\n    (0, types_2.uint64)(\"0x8000000000008009\"),\n    (0, types_2.uint64)(\"0x000000000000008a\"),\n    (0, types_2.uint64)(\"0x0000000000000088\"),\n    (0, types_2.uint64)(\"0x0000000080008009\"),\n    (0, types_2.uint64)(\"0x000000008000000a\"),\n    (0, types_2.uint64)(\"0x000000008000808b\"),\n    (0, types_2.uint64)(\"0x800000000000008b\"),\n    (0, types_2.uint64)(\"0x8000000000008089\"),\n    (0, types_2.uint64)(\"0x8000000000008003\"),\n    (0, types_2.uint64)(\"0x8000000000008002\"),\n    (0, types_2.uint64)(\"0x8000000000000080\"),\n    (0, types_2.uint64)(\"0x000000000000800a\"),\n    (0, types_2.uint64)(\"0x800000008000000a\"),\n    (0, types_2.uint64)(\"0x8000000080008081\"),\n    (0, types_2.uint64)(\"0x8000000000008080\"),\n    (0, types_2.uint64)(\"0x0000000080000001\"),\n    (0, types_2.uint64)(\"0x8000000080008008\"),\n]);\nfunction permute(s) {\n    var c = new Array(5);\n    var b = new Array(25);\n    for (var round = 0; round < 24; round++) {\n        for (var i = 0; i < 5; i++) {\n            c[i] = (0, types_2.uint64)((((s[i] ^ s[i + 5]) ^ s[i + 10]) ^ s[i + 15]) ^ s[i + 20]);\n        }\n        for (var i = 0; i < 5; i++) {\n            var tmp = (0, types_2.uint64)(c[(i + 4) % 5] ^ (0, types_2.uint64Rotr)(c[(i + 1) % 5], 63));\n            for (var j = 0; j < 5; j++) {\n                s[i + 5 * j] = (0, types_2.uint64)(s[i + 5 * j] ^ tmp);\n            }\n        }\n        b[0] = s[0];\n        for (var i = 1; i < 25; i++) {\n            var offset = OFFSETS[i - 1];\n            var left = Math.abs(SHIFTS[i - 1]);\n            var right = (32 - left);\n            if (SHIFTS[i - 1] < 0) {\n                b[i] = (0, types_2.uint64Rotr)(s[offset], right);\n            }\n            else {\n                b[i] = (0, types_2.uint64Rotr)(s[offset], (right + 32));\n            }\n        }\n        for (var i = 0; i < 5; i++) {\n            for (var j = 0; j < 5; j++) {\n                s[i * 5 + j] = (0, types_2.uint64)(b[i * 5 + j] ^ ((~b[i * 5 + (j + 1) % 5]) & b[i * 5 + (j + 2) % 5]));\n            }\n        }\n        s[0] = (s[0] ^ RC[round]);\n    }\n}\n/**\n * getulates sha3-256 (32bytes) hash of a list of uint8 numbers.\n * Result is also a list of uint8 number.\n * Sha3 only bit-wise operations, so 64-bit operations can easily be replicated using 2 32-bit operations instead\n * @example\n * bytesToHex(sha3(textToBytes(\"abc\"))) => \"3a985da74fe225b2045c172d6bd390bd855f086e3e9d525b46bfe24511431532\"\n * @example\n * bytesToHex(sha3((new Array(136)).fill(1))) => \"b36dc2167c4d9dda1a58b87046c8d76a6359afe3612c4de8a38857e09117b2db\"\n * @example\n * bytesToHex(sha3((new Array(135)).fill(2))) => \"5bdf5d815d29a9d7161c66520efc17c2edd7898f2b99a029e8d2e4ff153407f4\"\n * @example\n * bytesToHex(sha3((new Array(134)).fill(3))) => \"8e6575663dfb75a88f94a32c5b363c410278b65020734560d968aadd6896a621\"\n * @example\n * bytesToHex(sha3((new Array(137)).fill(4))) => \"f10b39c3e455006aa42120b9751faa0f35c821211c9d086beb28bf3c4134c6c6\"\n */\nfunction sha3(bytes) {\n    if ((0, uint8array_utils_1.isUint8Array)(bytes)) {\n        bytes = (0, types_1.buffToByteArr)(bytes);\n    }\n    bytes = pad(bytes);\n    // initialize the state\n    var state = (new Array(WIDTH / 8)).fill((0, types_2.uint64)(0));\n    for (var chunkStart = 0; chunkStart < bytes.length; chunkStart += RATE) {\n        // extend the chunk to become length WIDTH\n        var chunk = bytes.slice(chunkStart, chunkStart + RATE).concat((new Array(CAP)).fill(0));\n        // element-wise xor with 'state'\n        for (var i = 0; i < WIDTH; i += 8) {\n            state[i / 8] = (0, types_2.uint64)(state[i / 8] ^\n                (0, types_2.uint64)(\"0x\" + (0, types_2.byteArrToHex)(chunk.slice(i, i + 8).reverse())));\n            // beware: a uint32 is stored as little endian, but a pair of uint32s that form a uin64 are stored in big endian format!\n            //state[i/4] ^= (chunk[i] << 0) | (chunk[i+1] << 8) | (chunk[i+2] << 16) | (chunk[i+3] << 24);\n        }\n        // apply block permutations\n        permute(state);\n    }\n    var hash = [];\n    for (var i = 0; i < 4; i++) {\n        hash.push.apply(hash, __spreadArray([], __read((0, types_2.uint64ToBytesLE)(state[i])), false));\n    }\n    return hash;\n}\nexports.sha3 = sha3;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/sha3.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/types.js":
/*!*********************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/types.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.uint64Rotr = exports.uint64ToBytesBE = exports.uint64ToBytesLE = exports.isUint64 = exports.forceUint64 = exports.uint64 = exports.buffToUint5Arr = exports.byteArrToBin = exports.byteArrToHex = exports.buffToByteArr = exports.isByteArr = exports.isByte = exports.byte = exports.isUint6 = exports.isUint5 = void 0;\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\nfunction isUint5(n) {\n    return (typeof n === \"number\" &&\n        n >= 0 && n <= 31 &&\n        n === Math.round(n));\n}\nexports.isUint5 = isUint5;\nfunction isUint6(n) {\n    return (typeof n === \"number\" &&\n        n >= 0 && n <= 63 &&\n        n === Math.round(n));\n}\nexports.isUint6 = isUint6;\nfunction byte(bint) {\n    return (Number(bint) & 0xff);\n}\nexports.byte = byte;\nfunction isByte(n) {\n    return (typeof n === \"number\" &&\n        n >= 0 && n <= 255 &&\n        n === Math.round(n));\n}\nexports.isByte = isByte;\nfunction isByteArr(something) {\n    return (Array.isArray(something) &&\n        something.every(isByte));\n}\nexports.isByteArr = isByteArr;\nfunction buffToByteArr(buff) {\n    if (!(0, uint8array_utils_1.isUint8Array)(buff)) {\n        if (isByteArr(buff))\n            return buff.slice();\n        throw new Error(\"can't convert non-buffer to byte array\");\n    }\n    return Array.from(buff);\n}\nexports.buffToByteArr = buffToByteArr;\nfunction byteArrToHex(bytes) {\n    if (bytes instanceof Uint8Array)\n        bytes = Array.from(bytes);\n    return bytes.reduce(function (acc, val) { return acc + val.toString(16).slice(0, 2).padStart(2, '0'); }, '');\n}\nexports.byteArrToHex = byteArrToHex;\nfunction byteArrToBin(bytes) {\n    return bytes.reduce(function (acc, val) { return acc + val.toString(2).slice(0, 8).padStart(8, '0'); }, '');\n}\nexports.byteArrToBin = byteArrToBin;\n/**\n * Internal method\n *\n * `bytes` is **padded at the end** to be a multiple of 5\n */\nfunction buffToUint5Arr(bytes) {\n    var result = [];\n    var bits = (0, uint8array_utils_1.isUint8Array)(bytes) ?\n        Array.from(bytes).reduce(function (acc, n) { return acc + n.toString(2).padStart(8, '0'); }, \"\") :\n        (isByteArr(bytes) ?\n            byteArrToBin(bytes) :\n            undefined);\n    if (bits === undefined) {\n        throw new Error(\"invalid input to convert ot uint5 array\");\n    }\n    var mod5Len = bits.length % 5;\n    if (mod5Len !== 0) {\n        bits = bits.padEnd(bits.length + (5 - mod5Len), '0');\n    }\n    bits = bits.split('');\n    for (var i = 0; i < bits.length;) {\n        result.push(Number(\"0b\".concat(bits[i++]).concat(bits[i++]).concat(bits[i++]).concat(bits[i++]).concat(bits[i++])));\n    }\n    return result;\n}\nexports.buffToUint5Arr = buffToUint5Arr;\nfunction uint64(n) {\n    var _n = BigInt(n);\n    if (!isUint64(_n))\n        throw new Error(\"can't convert \" + n + \" to uint64\");\n    return _n;\n}\nexports.uint64 = uint64;\nfunction forceUint64(n) {\n    return (BigInt(n) & BigInt(\"0x\" + \"ff\".repeat(8)));\n}\nexports.forceUint64 = forceUint64;\nfunction isUint64(n) {\n    return (typeof n === \"bigint\" &&\n        n >= BigInt(0) &&\n        n < BigInt(\"0x1\" + \"00\".repeat(8)) // n < (1 << 64)\n    );\n}\nexports.isUint64 = isUint64;\nfunction uint64ToBytesLE(uint) {\n    return [\n        byte(BigInt(\"0x00000000000000ff\") & uint),\n        byte((BigInt(\"0x000000000000ff00\") & uint) >> BigInt(8)),\n        byte((BigInt(\"0x0000000000ff0000\") & uint) >> BigInt(16)),\n        byte((BigInt(\"0x00000000ff000000\") & uint) >> BigInt(24)),\n        byte((BigInt(\"0x000000ff00000000\") & uint) >> BigInt(32)),\n        byte((BigInt(\"0x0000ff0000000000\") & uint) >> BigInt(40)),\n        byte((BigInt(\"0x00ff000000000000\") & uint) >> BigInt(48)),\n        byte((BigInt(\"0xff00000000000000\") & uint) >> BigInt(56)),\n    ];\n}\nexports.uint64ToBytesLE = uint64ToBytesLE;\nfunction uint64ToBytesBE(uint) {\n    return uint64ToBytesLE(uint).reverse();\n}\nexports.uint64ToBytesBE = uint64ToBytesBE;\nfunction uint64Rotr(a, b) {\n    (0, assert_1.assert)(isUint64(a) && isUint6(b), \"invalid args for 'uint64And'\");\n    if (b === 0)\n        return a;\n    var n = BigInt(b);\n    return forceUint64(forceUint64(a >> n) | forceUint64(a << (BigInt(64) - n)));\n}\nexports.uint64Rotr = uint64Rotr;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/types.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/assert.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/assert.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assertBytes = exports.assertPostiveInteger = exports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n// keccak asserts\nfunction assertPostiveInteger(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error(\"positive integer expected, not \".concat(n));\n}\nexports.assertPostiveInteger = assertPostiveInteger;\nfunction assertBytes(stuff) {\n    if (!(stuff instanceof Uint8Array))\n        throw new Error(\"Uint8Array expected\");\n}\nexports.assertBytes = assertBytes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/base32.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/base32.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.decodeBase32Bech32 = exports.decodeBase32rfc4648 = exports.encodeBase32rfc4648 = exports.BECH32_BASE32_ALPHABET = exports.rfc4648_ALPHABET = void 0;\nvar types_1 = __webpack_require__(/*! ../types.js */ \"./node_modules/@harmoniclabs/crypto/dist/types.js\");\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nexports.rfc4648_ALPHABET = Object.freeze([\n    'a', 'b', 'c', 'd', 'e', 'f', 'g',\n    'h', 'i', 'j', 'k', 'l', 'm', 'n',\n    'o', 'p', 'q', 'r', 's', 't', 'u',\n    'v', 'w', 'x', 'y', 'z', '2', '3',\n    '4', '5', '6', '7'\n]);\nexports.BECH32_BASE32_ALPHABET = Object.freeze([\n    'q', 'p', 'z', 'r', 'y', '9', 'x',\n    '8', 'g', 'f', '2', 't', 'v', 'd',\n    'w', '0', 's', '3', 'j', 'n', '5',\n    '4', 'k', 'h', 'c', 'e', '6', 'm',\n    'u', 'a', '7', 'l'\n]);\nfunction encodeBase32rfc4648(bytes) {\n    return (0, types_1.buffToUint5Arr)(bytes).map(function (c) { return exports.rfc4648_ALPHABET[c]; }).join(\"\");\n}\nexports.encodeBase32rfc4648 = encodeBase32rfc4648;\nfunction decodeBase32(base32Str, alpabeth) {\n    if (!Array.from(base32Str).every(function (ch) { return alpabeth.includes(ch); }))\n        throw new Error(\"can't decode base32 a string that is not in base32 (rfc 4648); string was: \" + base32Str);\n    var len = base32Str.length;\n    var bits = '';\n    for (var i = 0; i < len - 1; i++) {\n        var num_1 = alpabeth.indexOf(base32Str[i].toLowerCase());\n        bits += num_1.toString(2).padStart(5, '0');\n    }\n    // last, make sure we align to byte\n    var nCut = len * 5 - 8 * Math.floor(len * 5 / 8);\n    var num = alpabeth.indexOf(base32Str[len - 1].toLowerCase());\n    var lastbits = num.toString(2).padStart(5, '0');\n    bits += lastbits.slice(0, 5 - nCut);\n    return bitstream_1.BitStream.fromBinStr(bits).toBuffer().buffer;\n}\nfunction decodeBase32rfc4648(base32Str) {\n    return decodeBase32(base32Str, exports.rfc4648_ALPHABET);\n}\nexports.decodeBase32rfc4648 = decodeBase32rfc4648;\nfunction decodeBase32Bech32(base32Str) {\n    return decodeBase32(base32Str, exports.BECH32_BASE32_ALPHABET);\n}\nexports.decodeBase32Bech32 = decodeBase32Bech32;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/base32.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/bigintToBuffer.js":
/*!************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/bigintToBuffer.js ***!
  \************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bigintToBuffer = void 0;\nvar assert_1 = __webpack_require__(/*! ./assert.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/assert.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nfunction bigintToBuffer(bigint, nBytes) {\n    if (nBytes === void 0) { nBytes = undefined; }\n    (0, assert_1.assert)(bigint >= BigInt(0), \"cannot convert negative bigint to buffer\");\n    if (bigint == BigInt(0)) {\n        if (nBytes === undefined) {\n            return Uint8Array.from([]);\n        }\n        return new Uint8Array(nBytes);\n    }\n    var buffHexString = bigint.toString(16);\n    buffHexString = buffHexString.length % 2 === 0 ? buffHexString : '0' + buffHexString;\n    if (nBytes !== undefined) {\n        (0, assert_1.assert)(Math.round(Math.abs(nBytes)) === nBytes, \"cannot construct a buffer of length \" + nBytes + \", while using BigIntUtils.toBufferOfNBytesBE\");\n        // pads with zeroes so that the final length is of nBytes*2 (2 hex digits per byte)\n        // String.prototype.padStart docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart\n        buffHexString = buffHexString.padStart(nBytes * 2, \"00\");\n        if (buffHexString.length > nBytes * 2) {\n            console.warn(\"required buffer size is smaller than the one used effectively by the given bigint, truncating the initial bytes as overflow\");\n            buffHexString = buffHexString.slice(buffHexString.length - (nBytes * 2));\n        }\n    }\n    return (0, uint8array_utils_1.fromHex)(buffHexString);\n}\nexports.bigintToBuffer = bigintToBuffer;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/bigintToBuffer.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/index.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/index.js ***!
  \***************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./base32.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/base32.js\"), exports);\n__exportStar(__webpack_require__(/*! ./positiveMod.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/positiveMod.js\"), exports);\n__exportStar(__webpack_require__(/*! ./rotr32.js */ \"./node_modules/@harmoniclabs/crypto/dist/utils/rotr32.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/positiveMod.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/positiveMod.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.positiveMod = void 0;\nfunction positiveMod(x, n) {\n    var _n = BigInt(n);\n    var res = BigInt(x) % _n;\n    return res < BigInt(0) ? res + _n : res;\n}\nexports.positiveMod = positiveMod;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/positiveMod.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/utils/rotr32.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/utils/rotr32.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.rotr32 = void 0;\nfunction rotr32(x, by) {\n    return (x >>> by) | (x << (32 - by)) | 0;\n}\nexports.rotr32 = rotr32;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/utils/rotr32.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/crypto/dist/vrf.js":
/*!*******************************************************!*\
  !*** ./node_modules/@harmoniclabs/crypto/dist/vrf.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.vrf_ed25519_sha512_ell2_challenge_generation = exports.vrf_ed25519_sha512_ell2_nonce_generation = exports.vrf_ed25519_sha512_ell2_hash_to_curve = exports.vrf_ed25519_sha512_ell2_prove = void 0;\nvar ed25519_1 = __webpack_require__(/*! ./ed25519.js */ \"./node_modules/@harmoniclabs/crypto/dist/ed25519.js\");\nvar sha2_512_1 = __webpack_require__(/*! ./sha2_512.js */ \"./node_modules/@harmoniclabs/crypto/dist/sha2_512.js\");\n/**\n4.4. RSA-FDH-VRF Ciphersuites\n\nThis document defines RSA-FDH-VRF-SHA256 as follows:\n\nsuite_string = 0x01.\nThe hash function Hash is SHA-256 as specified in [RFC6234], with hLen = 32.\nMGF_salt = I2OSP(k, 4) || I2OSP(n, k).\n\nThis document defines RSA-FDH-VRF-SHA384 as follows:\n\nsuite_string = 0x02.\nThe hash function Hash is SHA-384 as specified in [RFC6234], with hLen = 48.\nMGF_salt = I2OSP(k, 4) || I2OSP(n, k).\n\nThis document defines RSA-FDH-VRF-SHA512 as follows:\n\nsuite_string = 0x03.\nThe hash function Hash is SHA-512 as specified in [RFC6234], with hLen = 64.\nMGF_salt = I2OSP(k, 4) || I2OSP(n, k).\n\n */\nvar SUITE = 0x03;\nvar ONE = 0x01;\nvar TWO = 0x02;\n/**\n * https://datatracker.ietf.org/doc/html/rfc9381#section-5.1\n */\nfunction vrf_ed25519_sha512_ell2_prove(sk, alpha) {\n    var _a = __read((0, ed25519_1.extendEd25519PrivateKey)(sk), 2), scalar = _a[0], extension = _a[1];\n    // 1. Use SK to derive the VRF secret scalar x and the VRF public key Y = x*B\n    var pk = new Uint8Array((0, ed25519_1.deriveEd25519PublicKey)(Array.from(sk)));\n    var H = vrf_ed25519_sha512_ell2_hash_to_curve(pk, alpha);\n    var H_point = (0, ed25519_1.pointFromBytes)(H);\n    var gamma = (0, ed25519_1.scalarMul)(H_point, scalar);\n    var compressed_gamma = (0, ed25519_1.bigpointToUint8Array)(gamma);\n    var k = vrf_ed25519_sha512_ell2_nonce_generation(extension, H);\n    var announcement_1 = (0, ed25519_1.bigpointToUint8Array)((0, ed25519_1.scalarMultBase)(k));\n    var announcement_2 = (0, ed25519_1.bigpointToUint8Array)((0, ed25519_1.scalarMul)(H_point, k));\n    var challange = (0, ed25519_1.scalarFromBytes)(vrf_ed25519_sha512_ell2_challenge_generation(H, compressed_gamma, announcement_1, announcement_2));\n    var response = k + challange * scalar;\n    return {\n        gamma: gamma,\n        challange: challange,\n        response: response\n    };\n}\nexports.vrf_ed25519_sha512_ell2_prove = vrf_ed25519_sha512_ell2_prove;\nfunction vrf_ed25519_sha512_ell2_hash_to_curve(public_key, alpha_string) {\n    var input = new Uint8Array(2 + public_key.length + alpha_string.length);\n    input[0] = SUITE;\n    input[1] = ONE;\n    input.set(public_key, 2);\n    input.set(alpha_string, 2 + public_key.length);\n    //return pointFromBytes(sha2_512(input))\n    return (0, sha2_512_1.sha2_512)(input);\n}\nexports.vrf_ed25519_sha512_ell2_hash_to_curve = vrf_ed25519_sha512_ell2_hash_to_curve;\nfunction vrf_ed25519_sha512_ell2_nonce_generation(secret_extension, H) {\n    var input = new Uint8Array(64);\n    input.set(secret_extension, 0);\n    input.set(H, 32);\n    //return pointFromBytes(sha2_512(input))\n    return (0, ed25519_1.scalarFromBytes)((0, sha2_512_1.sha2_512)(input));\n}\nexports.vrf_ed25519_sha512_ell2_nonce_generation = vrf_ed25519_sha512_ell2_nonce_generation;\nfunction vrf_ed25519_sha512_ell2_challenge_generation(H, gamma, announcement_1, announcement_2) {\n    var input = new Uint8Array(2 + H.length + gamma.length + announcement_1.length + announcement_2.length);\n    input[0] = SUITE;\n    input[1] = TWO;\n    input.set(H, 2);\n    input.set(gamma, 2 + H.length);\n    input.set(announcement_1, 2 + H.length + gamma.length);\n    input.set(announcement_2, 2 + H.length + gamma.length + announcement_1.length);\n    return (0, sha2_512_1.sha2_512)(input).slice(0, 16);\n}\nexports.vrf_ed25519_sha512_ell2_challenge_generation = vrf_ed25519_sha512_ell2_challenge_generation;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/crypto/dist/vrf.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/obj-utils/dist/index.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/obj-utils/dist/index.js ***!
  \************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nvar _a, _b;\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.defineNormalProperty = exports.defineFixedDeletableProperty = exports.defineHiddenNormalProperty = exports.defineDeletableDescriptor = exports.defineNonDeletableNormalProperty = exports.defineReadOnlyProperty = exports.defineWritableHiddenProperty = exports.defineGetterOnlyProperty = exports.defineReadOnlyHiddenProperty = exports.definePropertyIfNotPresent = exports.defineProperty = exports.freezeAll = exports.deepClone = exports.jsonClone = exports.deepEqual = exports.isSerializable = exports.hasOwn = exports.has_n_determined_keys = exports.containsKeys = exports.hasNkeys = exports.hasUniqueKey = exports.isObject = exports.isNotArray = void 0;\nfunction isNotArray(obj) {\n    return !Array.isArray(obj);\n}\nexports.isNotArray = isNotArray;\nfunction isObject(obj) {\n    return (typeof obj === \"object\" &&\n        isNotArray(obj) &&\n        obj !== null &&\n        obj !== undefined // useless since \"typeof\" would have returned \"undefined\", but better safe than sorry :P\n    );\n}\nexports.isObject = isObject;\nfunction hasUniqueKey(obj, key) {\n    if (key === void 0) { key = undefined; }\n    var keys = Object.keys(obj);\n    return (keys.length === 1 &&\n        (typeof key !== \"undefined\" ? keys[0] === key : true));\n}\nexports.hasUniqueKey = hasUniqueKey;\nfunction hasNkeys(obj, n) {\n    return (isObject(obj) &&\n        Object.keys(obj).length === n);\n}\nexports.hasNkeys = hasNkeys;\nfunction containsKeys(obj) {\n    var keys = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        keys[_i - 1] = arguments[_i];\n    }\n    var oKeys = Object.keys(obj);\n    for (var i = 0; i < keys.length; i++) {\n        if (!oKeys.includes(keys[i]))\n            return false;\n    }\n    return true;\n}\nexports.containsKeys = containsKeys;\nfunction has_n_determined_keys(obj, n) {\n    var keys = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        keys[_i - 2] = arguments[_i];\n    }\n    return (hasNkeys(obj, n) &&\n        keys.length === n && containsKeys.apply(void 0, __spreadArray([obj], __read(keys), false)));\n}\nexports.has_n_determined_keys = has_n_determined_keys;\nexports.hasOwn = (_b = ((_a = Object.hasOwn) !== null && _a !== void 0 ? _a : Object.prototype.hasOwnProperty.call)) !== null && _b !== void 0 ? _b : containsKeys;\nfunction isSerializable(obj) {\n    var keys = Object.keys(obj);\n    for (var i = 0; i < keys.length; i++) {\n        var value = obj[keys[i]];\n        if (typeof value === \"number\" ||\n            typeof value === \"bigint\" ||\n            typeof value === \"boolean\" ||\n            typeof value === \"string\" ||\n            typeof value === \"undefined\")\n            continue; // this single value is true, don't know the others\n        else {\n            if (Array.isArray(value)) {\n                for (var i_1 = 0; i_1 < value.length; i_1++) {\n                    // all array elements must be serilalizable to\n                    // equivalent to AND all elments\n                    if (!isSerializable(value[i_1]))\n                        return false;\n                }\n            }\n            else if (typeof value === \"object\") {\n                if (!isSerializable(value))\n                    continue; // this single value is true, don't know the others\n                else\n                    return false;\n            }\n            else if (typeof value === \"function\")\n                return false;\n        }\n    }\n    return true;\n}\nexports.isSerializable = isSerializable;\nfunction deepEqual(a, b) {\n    if (typeof a !== typeof b) {\n        return false;\n    }\n    /*\n    covers:\n    - nuber\n    - strings\n    - boolean\n    - functions only if are the same object\n    ( unfortunately, proving deep function equality is not possible (yet) )\n    */\n    if (a === b) {\n        return true;\n    }\n    if (Array.isArray(a)) {\n        if (Array.isArray(b)) {\n            if (a.length !== b.length)\n                return false;\n            for (var i = 0; i < a.length; i++) {\n                if (!deepEqual(a[i], b[i])) {\n                    return false;\n                }\n            }\n            return true;\n        }\n        else // a and b are not both arrays\n         {\n            return false;\n        }\n    }\n    else if (Array.isArray(b))\n        return false; // a is an array indeed\n    // type equality checked before, no need to re-check\n    if (typeof a === \"object\") {\n        var aKeys = Object.keys(a);\n        var bKeys = Object.keys(b);\n        if (aKeys.length !== aKeys.length) {\n            return false;\n        }\n        // {} === {} -> true\n        if (aKeys.length === 0 && bKeys.length === 0) {\n            return true;\n        }\n        for (var i = 0; i < aKeys.length; i++) {\n            var foundThis_a = false;\n            for (var j = 0; j < bKeys.length; j++) {\n                if (aKeys[i] === bKeys[j]) {\n                    foundThis_a = true;\n                    break;\n                }\n            }\n            if (foundThis_a) {\n                if (deepEqual(a[aKeys[i]], b[aKeys[i]])) {\n                    if (i === (aKeys.length - 1)) {\n                        return true;\n                    }\n                    continue;\n                }\n                else\n                    return false;\n            }\n            else {\n                return false;\n            }\n        }\n    }\n    return false;\n}\nexports.deepEqual = deepEqual;\nfunction jsonClone(obj) {\n    return JSON.parse(JSON.stringify(obj));\n}\nexports.jsonClone = jsonClone;\nfunction deepClone(obj) {\n    var clone;\n    //@ts-ignore\n    if (typeof obj === \"function\")\n        return cloneFunc(obj);\n    if (typeof obj === \"object\") {\n        if (Array.isArray(obj)) {\n            clone = [];\n            for (var i = 0; i < obj.length; i++) {\n                clone[i] = deepClone(obj[i]);\n            }\n            return clone;\n        }\n        var objKeys = Object.keys(obj);\n        for (var i = 0; i < objKeys.length; i++) {\n            clone[objKeys[i]] = deepClone(obj[objKeys[i]]);\n        }\n        return clone;\n    }\n    // number\n    // string\n    // boolean\n    return obj;\n}\nexports.deepClone = deepClone;\nfunction freezeAll(something) {\n    if (typeof something === \"object\" && something !== null) {\n        var ks = Object.keys(something);\n        for (var i = 0; i < ks.length; i++) {\n            freezeAll(something[ks[i]]);\n        }\n    }\n    return Object.freeze(something);\n}\nexports.freezeAll = freezeAll;\nvar writableProperty = 1;\nvar enumerableProperty = 2;\nvar configurableProperty = 4;\n/*\nhttps://stackoverflow.com/questions/52204566/typescript-add-dynamically-named-property-to-return-type\n\ndeclare function addKeyValue2<T extends {}, K extends keyof any, V>(obj: T, key: K, value: V):\n    { [P in keyof (T & Record<K, any>)]: P extends K ? V : P extends keyof T ? T[P] : never }\n*/\n/**\n *\n * @param obj {object} to define the property on\n * @param name {PropertyKey} name of the property\n * @param value {any} value of the property\n * @param accessLevel writable / enumerable / configurable\n *\n * enumerable   = 0b010, if ```false``` is not showed\n * configurable = 0b100, if ```false``` cannot be deleted or changed\n *\n * 0 -> none // hidden object-specific descriptor\n *\n * 1 -> writable only // hidden, modifiable, non deletable\n *\n * 2 -> enumerable only // showed object-specific descriptor\n *\n * 3 -> writable AND enumerable // non deletable\n *\n * 4 -> configurable only // hidden object-specific deleteable descriptor\n *\n * 5 -> configurable AND writable // hidden, modifiable, deletable\n *\n * 6 -> configurable AND enumerable // showed, non modifiable, deletable\n *\n * 7 -> all // showed, modifiable, deletable\n *\n */\nfunction defineProperty(obj, name, value, accessLevel) {\n    if (accessLevel === void 0) { accessLevel = 0; }\n    return Object.defineProperty(obj, name, {\n        value: value,\n        writable: (accessLevel & writableProperty) === writableProperty,\n        enumerable: (accessLevel & enumerableProperty) === enumerableProperty,\n        configurable: (accessLevel & configurableProperty) === configurableProperty,\n    });\n}\nexports.defineProperty = defineProperty;\nfunction definePropertyIfNotPresent(obj, name, descriptor) {\n    if ((0, exports.hasOwn)(obj, name))\n        return obj;\n    return Object.defineProperty(obj, name, descriptor);\n}\nexports.definePropertyIfNotPresent = definePropertyIfNotPresent;\nfunction defineReadOnlyHiddenProperty(obj, name, value) {\n    return defineProperty(obj, name, value, 0);\n}\nexports.defineReadOnlyHiddenProperty = defineReadOnlyHiddenProperty;\nfunction defineGetterOnlyProperty(obj, name, valueGetter) {\n    return definePropertyIfNotPresent(obj, name, {\n        get: valueGetter,\n        set: function () { },\n        configurable: false,\n        enumerable: true\n    });\n}\nexports.defineGetterOnlyProperty = defineGetterOnlyProperty;\nfunction defineWritableHiddenProperty(obj, name, value) {\n    return defineProperty(obj, name, value, 1);\n}\nexports.defineWritableHiddenProperty = defineWritableHiddenProperty;\n/**\n * 2 -> enumerable only\n *\n * property is showed and can be accessed trough indexing\n *\n * cannot be modified\n *\n * cannot be deleted\n */\nfunction defineReadOnlyProperty(obj, name, value) {\n    var _a;\n    if ((0, exports.hasOwn)(obj, name) && // if the object has already a property with the same name\n        (!((_a = Object.getOwnPropertyDescriptor(obj, name)) === null || _a === void 0 ? void 0 : _a.writable)) // and it cannot be overridden\n    )\n        return obj; // return that object;\n    return defineProperty(obj, name, value, 2);\n}\nexports.defineReadOnlyProperty = defineReadOnlyProperty;\nfunction defineNonDeletableNormalProperty(obj, name, value) {\n    var _a;\n    if ((0, exports.hasOwn)(obj, name) && // if the object has already a property with the same name\n        (!((_a = Object.getOwnPropertyDescriptor(obj, name)) === null || _a === void 0 ? void 0 : _a.writable)) // and it cannot be overridden\n    )\n        return obj; // return that object;\n    return defineProperty(obj, name, value, 3);\n}\nexports.defineNonDeletableNormalProperty = defineNonDeletableNormalProperty;\nfunction defineDeletableDescriptor(obj, name, value) {\n    return defineProperty(obj, name, value, 4);\n}\nexports.defineDeletableDescriptor = defineDeletableDescriptor;\nfunction defineHiddenNormalProperty(obj, name, value) {\n    return defineProperty(obj, name, value, 5);\n}\nexports.defineHiddenNormalProperty = defineHiddenNormalProperty;\nfunction defineFixedDeletableProperty(obj, name, value) {\n    return defineProperty(obj, name, value, 6);\n}\nexports.defineFixedDeletableProperty = defineFixedDeletableProperty;\nfunction defineNormalProperty(obj, name, value) {\n    return defineProperty(obj, name, value, 7);\n}\nexports.defineNormalProperty = defineNormalProperty;\nfunction cloneFunc(func) {\n    var cloneObj = func;\n    //@ts-ignore\n    if (func.__isClone) {\n        //@ts-ignore\n        cloneObj = func.__clonedFrom;\n    }\n    //@ts-ignore\n    var temp = function () { return cloneObj.apply(this, arguments); };\n    for (var key in func) {\n        //@ts-ignore\n        temp[key] = func[key];\n    }\n    //@ts-ignore\n    temp.__isClone = true;\n    //@ts-ignore\n    temp.__clonedFrom = cloneObj;\n    return temp;\n}\n;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/obj-utils/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/pair/dist/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/@harmoniclabs/pair/dist/index.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Pair = void 0;\nvar Pair = /** @class */ (function () {\n    function Pair(a, b) {\n        this.fst = a;\n        this.snd = b;\n    }\n    Object.defineProperty(Pair.prototype, Symbol.toStringTag, {\n        get: function () {\n            return \"Pair( \".concat(this.fst, \", \").concat(this.snd, \" )\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Pair.isStrictInstance = function (any) {\n        if (any === undefined || any === null)\n            return false;\n        return Object.getPrototypeOf(any) === Pair.prototype;\n    };\n    Pair.prototype.asObj = function () {\n        return {\n            fst: this.fst,\n            snd: this.snd\n        };\n    };\n    return Pair;\n}());\nexports.Pair = Pair;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/pair/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/Data.js":
/*!*************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/Data.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dataFromJson = exports.cloneData = exports.eqData = exports.isData = void 0;\nvar DataB_1 = __webpack_require__(/*! ./DataB.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataB.js\");\nvar DataConstr_1 = __webpack_require__(/*! ./DataConstr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js\");\nvar DataI_1 = __webpack_require__(/*! ./DataI.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataI.js\");\nvar DataList_1 = __webpack_require__(/*! ./DataList.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataList.js\");\nvar DataMap_1 = __webpack_require__(/*! ./DataMap.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js\");\nvar DataPair_1 = __webpack_require__(/*! ./DataPair.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js\");\nfunction isSomething(something) {\n    return something !== null && something !== undefined;\n}\nfunction isData(something) {\n    if (!isSomething(something))\n        return false;\n    var proto = Object.getPrototypeOf(something);\n    return (proto === DataConstr_1.DataConstr.prototype ||\n        proto === DataMap_1.DataMap.prototype ||\n        proto === DataList_1.DataList.prototype ||\n        proto === DataI_1.DataI.prototype ||\n        proto === DataB_1.DataB.prototype);\n}\nexports.isData = isData;\nfunction eqData(a, b) {\n    if (!(isSomething(a) &&\n        isSomething(b)))\n        return false;\n    var aProto = Object.getPrototypeOf(a);\n    var bProto = Object.getPrototypeOf(b);\n    if (aProto !== bProto)\n        return false;\n    if (aProto === DataConstr_1.DataConstr.prototype) {\n        try {\n            return (a.constr === b.constr &&\n                a.fields.length === b.fields.length &&\n                a.fields.every(function (aField, idx) { return eqData(aField, b.fields[idx]); }));\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    if (aProto === DataMap_1.DataMap.prototype) {\n        var aMap = a.map;\n        var bMap_1 = b.map;\n        return (aMap.length === bMap_1.length &&\n            aMap.every(function (entry, idx) {\n                var bEntry = bMap_1[idx];\n                return (eqData(entry.fst, bEntry.fst) &&\n                    eqData(entry.snd, bEntry.snd));\n            }));\n    }\n    if (aProto === DataList_1.DataList.prototype) {\n        return (a.list.every(function (elem, idx) { return eqData(elem, b.list[idx]); }));\n    }\n    if (aProto === DataI_1.DataI.prototype) {\n        return (a.int === b.int);\n    }\n    if (aProto === DataB_1.DataB.prototype) {\n        return (a.bytes.toString() === b.bytes.toString());\n    }\n    return false;\n}\nexports.eqData = eqData;\nfunction cloneData(data) {\n    if (!isData(data))\n        throw new Error(\"invalid data while cloning\");\n    return data.clone();\n}\nexports.cloneData = cloneData;\n/**\n * all data instances (from any version) will have a `toJson` method\n * this function will get back the data of this version if needed\n**/\nfunction dataFromJson(json) {\n    if (typeof json !== \"object\")\n        throw new TypeError(\"unexpected input\");\n    var keys = Object.keys(json);\n    if (keys.length <= 0)\n        throw new TypeError(\"unexpected input\");\n    var k = keys[0];\n    if (k === \"int\")\n        return new DataI_1.DataI(json[k]);\n    if (k === \"bytes\")\n        return new DataB_1.DataB(json[k]);\n    if (k === \"list\")\n        return new DataList_1.DataList(json[k].map(dataFromJson));\n    if (k === \"map\") {\n        var jsonMap = json[k];\n        return new DataMap_1.DataMap(jsonMap.map(function (_a) {\n            var k = _a.k, v = _a.v;\n            return new DataPair_1.DataPair(dataFromJson(k), dataFromJson(v));\n        }));\n    }\n    if (keys.includes(\"constr\"))\n        return new DataConstr_1.DataConstr(json.constr, json.fields.map(dataFromJson));\n    throw new Error(\"unknown json format\");\n}\nexports.dataFromJson = dataFromJson;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/Data.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataB.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataB.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataB = void 0;\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataB = /** @class */ (function () {\n    function DataB(B) {\n        if (!(B instanceof bytestring_1.ByteString))\n            B = new bytestring_1.ByteString(B);\n        var _bytes = B.clone();\n        Object.defineProperties(this, {\n            bytes: __assign({ value: _bytes }, roDescr_1.roDescr)\n        });\n    }\n    DataB.prototype.clone = function () {\n        // the constructor clones the bytes\n        return new DataB(this.bytes);\n    };\n    DataB.prototype.toJson = function () {\n        return { bytes: this.bytes.toString() };\n    };\n    DataB.prototype.toString = function () {\n        return \"B #\".concat(this.bytes.toString());\n    };\n    return DataB;\n}());\nexports.DataB = DataB;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataB.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.cborTagToConstrNumber = exports.constrNumberToCborTag = exports.DataConstr = void 0;\nvar biguint_1 = __webpack_require__(/*! @harmoniclabs/biguint */ \"./node_modules/@harmoniclabs/biguint/dist/index.js\");\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataConstr = /** @class */ (function () {\n    function DataConstr(constr, fields) {\n        (0, assert_1.assert)(Array.isArray(fields) && fields.every(Data_1.isData), \"invalid fields passed to constructor\");\n        Object.defineProperties(this, {\n            constr: __assign({ value: (0, biguint_1.forceBigUInt)(constr) }, roDescr_1.roDescr),\n            fields: __assign({ value: fields }, roDescr_1.roDescr)\n        });\n    }\n    DataConstr.prototype.clone = function () {\n        return new DataConstr(this.constr, this.fields.map(function (dataElem) { return dataElem.clone(); }));\n    };\n    DataConstr.prototype.toJson = function () {\n        return {\n            constr: Number(this.constr),\n            fields: this.fields.map(function (f) { return f.toJson(); })\n        };\n    };\n    DataConstr.prototype.toString = function () {\n        return \"Constr \".concat(this.constr.toString(), \" [\").concat(this.fields.map(function (data) { return data.toString(); }).join(\",\"), \"]\");\n    };\n    return DataConstr;\n}());\nexports.DataConstr = DataConstr;\n/**\n * Note [CBOR alternative tags]\n *\n * We've proposed to add additional tags to the CBOR standard to cover (essentially) sum types.\n * This is exactly what we need to encode the 'Constr' constructor of 'Data' in an unambiguous way.\n * The tags aren't *quite* accepted yet, but they're clearly going to accept so we might as well\n * start using them.\n * The scheme is:\n * - Alternatives 0-6 -> tags 121-127, followed by the arguments in a list\n * - Alternatives 7-127 -> tags 1280-1400, followed by the arguments in a list\n * - Any alternatives, including those that don't fit in the above -> tag 102 followed by a list containing\n * an unsigned integer for the actual alternative, and then the arguments in a (nested!) list.\n */\nfunction constrNumberToCborTag(uint) {\n    if (uint < BigInt(0)) {\n        throw new Error(\"an unsinged integer was negative; while constructing a CborTag from a DataConstr; tag: \" + uint);\n    }\n    if (uint < BigInt(7)) {\n        return uint + BigInt(121);\n    }\n    if (uint < BigInt(128)) {\n        // ( 1280 - 7 ) + uint\n        return (BigInt(1273) + uint);\n    }\n    return BigInt(102);\n}\nexports.constrNumberToCborTag = constrNumberToCborTag;\n/**\n * the case ```tag === 102``` should be handled outside the funciton\n *\n * returns a negative number in case of unrecognized alternative\n */\nfunction cborTagToConstrNumber(tag) {\n    // should never happen being tag unsigned\n    // ignores the tag if that's the case\n    // negative numbers are returned also in case of unrecognized alternative\n    if (tag < 0)\n        return tag;\n    if (121 <= tag && tag <= 127)\n        return tag - BigInt(121);\n    if (1280 <= tag && tag <= 1400)\n        return tag - BigInt(1273);\n    if (tag === BigInt(102))\n        return tag;\n    // unrecognized alternative\n    return BigInt(-1);\n}\nexports.cborTagToConstrNumber = cborTagToConstrNumber;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataI.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataI.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataI = void 0;\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataI = /** @class */ (function () {\n    function DataI(I) {\n        if (I === void 0) { I = 0; }\n        I = BigInt(I);\n        Object.defineProperties(this, {\n            int: __assign({ value: I }, roDescr_1.roDescr)\n        });\n    }\n    DataI.prototype.clone = function () {\n        return new DataI(this.int);\n    };\n    DataI.prototype.toJson = function () {\n        return { int: this.int.toString() };\n    };\n    DataI.prototype.toString = function () {\n        return \"I \".concat(this.int.toString());\n    };\n    return DataI;\n}());\nexports.DataI = DataI;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataI.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataList.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataList.js ***!
  \*****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataList = void 0;\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataList = /** @class */ (function () {\n    function DataList(list) {\n        (0, assert_1.assert)(Array.isArray(list) &&\n            list.every(Data_1.isData), \"invalid list passed to constructor\");\n        Object.defineProperties(this, {\n            list: __assign({ value: list }, roDescr_1.roDescr)\n        });\n    }\n    DataList.prototype.clone = function () {\n        return new DataList(this.list.map(function (dataElem) { return dataElem.clone(); }));\n    };\n    DataList.prototype.toJson = function () {\n        return {\n            list: this.list.map(function (elem) { return elem.toJson(); })\n        };\n    };\n    DataList.prototype.toString = function () {\n        return \"List [\".concat(this.list.map(function (data) { return data.toString(); }).join(\",\"), \"]\");\n    };\n    return DataList;\n}());\nexports.DataList = DataList;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataList.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataMap = void 0;\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar DataPair_1 = __webpack_require__(/*! ./DataPair.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataMap = /** @class */ (function () {\n    function DataMap(map) {\n        (0, assert_1.assert)(Array.isArray(map) &&\n            map.every(function (entry) {\n                return entry instanceof DataPair_1.DataPair &&\n                    (0, Data_1.isData)(entry.fst) && (0, Data_1.isData)(entry.snd);\n            }), \"invalid map passed to 'DataPair' constructor\");\n        Object.defineProperties(this, {\n            map: __assign({ value: map }, roDescr_1.roDescr)\n        });\n    }\n    DataMap.prototype.clone = function () {\n        return new DataMap(this.map.map(function (pair) { return pair.clone(); }));\n    };\n    DataMap.prototype.toJson = function () {\n        return {\n            map: this.map.map(function (_a) {\n                var fst = _a.fst, snd = _a.snd;\n                return ({\n                    k: fst.toJson(),\n                    v: snd.toJson()\n                });\n            })\n        };\n    };\n    DataMap.prototype.toString = function () {\n        return \"Map [\".concat(this.map.map(function (dataPair) { return dataPair.toString(); }).join(\",\"), \"]\");\n    };\n    return DataMap;\n}());\nexports.DataMap = DataMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js ***!
  \*****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataPair = void 0;\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nvar roDescr_1 = __webpack_require__(/*! ./utils/roDescr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js\");\nvar DataPair = /** @class */ (function () {\n    function DataPair(fst, snd) {\n        (0, assert_1.assert)((0, Data_1.isData)(fst) && (0, Data_1.isData)(snd), \"invalid Data passed to 'DataPair' constructor; fst: \".concat(fst, \"; snd: \").concat(snd));\n        Object.defineProperties(this, {\n            fst: __assign({ value: fst }, roDescr_1.roDescr),\n            snd: __assign({ value: snd }, roDescr_1.roDescr),\n        });\n    }\n    DataPair.prototype.clone = function () {\n        return new DataPair(this.fst, this.snd);\n    };\n    DataPair.prototype.toString = function () {\n        return \"(\".concat(this.fst.toString(), \",\").concat(this.snd.toString(), \")\");\n    };\n    return DataPair;\n}());\nexports.DataPair = DataPair;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/fromCbor.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/fromCbor.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dataFromCbor = exports.dataFromCborObj = void 0;\nvar cbor_1 = __webpack_require__(/*! @harmoniclabs/cbor */ \"./node_modules/@harmoniclabs/cbor/dist/index.js\");\nvar DataB_1 = __webpack_require__(/*! ./DataB.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataB.js\");\nvar DataConstr_1 = __webpack_require__(/*! ./DataConstr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js\");\nvar DataI_1 = __webpack_require__(/*! ./DataI.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataI.js\");\nvar DataList_1 = __webpack_require__(/*! ./DataList.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataList.js\");\nvar DataMap_1 = __webpack_require__(/*! ./DataMap.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js\");\nvar DataPair_1 = __webpack_require__(/*! ./DataPair.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nfunction dataFromCborObj(cborObj) {\n    (0, assert_1.assert)((0, cbor_1.isCborObj)(cborObj), \"Invalid cborObj to convert to Data\");\n    if (cborObj instanceof cbor_1.CborUInt ||\n        cborObj instanceof cbor_1.CborNegInt) {\n        return new DataI_1.DataI(cborObj.num);\n    }\n    if (cborObj instanceof cbor_1.CborBytes) {\n        // if indefinite length (> 64)\n        // `bytes` property already concats the chunks for us \n        return new DataB_1.DataB(cborObj.bytes);\n    }\n    if (cborObj instanceof cbor_1.CborArray) {\n        return new DataList_1.DataList(cborObj.array.map(function (cObj) { return dataFromCborObj(cObj); }));\n    }\n    if (cborObj instanceof cbor_1.CborMap) {\n        return new DataMap_1.DataMap(cborObj.map.map(function (entry) {\n            return new DataPair_1.DataPair(dataFromCborObj(entry.k), dataFromCborObj(entry.v));\n        }));\n    }\n    if (cborObj instanceof cbor_1.CborTag) {\n        var tag = (0, DataConstr_1.cborTagToConstrNumber)(cborObj.tag);\n        var data = cborObj.data;\n        if (\n        // any unrecognized tag\n        tag < BigInt(0) ||\n            !(Object.getPrototypeOf(data) === cbor_1.CborArray.prototype) ||\n            !(data instanceof cbor_1.CborArray) // for typescript to be happy\n        ) {\n            // ignore the tag and and treats the object as if it were normal CBOR\n            return dataFromCborObj(data);\n        }\n        if (tag === BigInt(102)) {\n            (0, assert_1.assert)(data.array.length === 2 &&\n                data.array[0] instanceof cbor_1.CborUInt &&\n                data.array[1] instanceof cbor_1.CborArray, \"invalid fileds for cbor tag 102 while constructing DataConstr\");\n            return new DataConstr_1.DataConstr(data.array[0].num, data.array[1].array.map(dataFromCborObj));\n        }\n        (0, assert_1.assert)((Object.getPrototypeOf(data) === cbor_1.CborArray.prototype) &&\n            (data instanceof cbor_1.CborArray), // for typescript to be happy\n        \"invalid CBOR fields for DataConstr\");\n        return new DataConstr_1.DataConstr(tag, data.array.map(dataFromCborObj));\n    }\n    // CborText and CborSimple not supported\n    throw new Error(\"invalid CBOR major type for Data\");\n}\nexports.dataFromCborObj = dataFromCborObj;\nfunction dataFromCbor(cbor) {\n    return dataFromCborObj(cbor_1.Cbor.parse((0, cbor_1.forceCborString)(cbor)));\n}\nexports.dataFromCbor = dataFromCbor;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/fromCbor.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/fromString.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/fromString.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dataFromString = exports.dataFromStringWithOffset = void 0;\nvar DataB_1 = __webpack_require__(/*! ./DataB.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataB.js\");\nvar DataConstr_1 = __webpack_require__(/*! ./DataConstr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js\");\nvar DataI_1 = __webpack_require__(/*! ./DataI.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataI.js\");\nvar DataList_1 = __webpack_require__(/*! ./DataList.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataList.js\");\nvar DataPair_1 = __webpack_require__(/*! ./DataPair.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js\");\nvar DataMap_1 = __webpack_require__(/*! ./DataMap.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js\");\n// | [`I ${bigint}` ]\n// | [`B #${string}`];\nfunction formatStringByBrackets(str) {\n    var openBracketIdx = str.indexOf(\"[\");\n    var bIdx = str.indexOf(\"B\");\n    var iIdx = str.indexOf(\"I\");\n    if (\n    // there is no open bracket\n    openBracketIdx < 0 ||\n        ( // or\n        // we have an open bracket\n        // and B is also present\n        bIdx >= 0 ?\n            // and B is before the open bracket\n            bIdx < openBracketIdx :\n            (\n            // or I is also present\n            iIdx >= 0 ?\n                // and I is before\n                iIdx < openBracketIdx :\n                // else open bracket comes first\n                false))) {\n        var intMatch = str\n            // I\\s+             -> \"I\" followed by one or more space\n            // \\+?\\-?           -> may or may nost start with \"+\" or \"-\"\n            // (?<!\\.)          -> MUST NOT have dots before\n            // (?<!(#|x)\\d*)    -> MUST NOT have before \"#\" or \"x\" with 0 or more digits (escluded bls elements and bytestrings)\n            // \\d+              -> one or more digits\n            // (?!(\\.|x))       -> MUST NOT have dots after or \"x\" (x excludes \"0x\" which are bls elems)\n            .match(/I\\s+\\+?\\-?(?<!\\.)(?<!(#|x)\\d*)\\d+(?!(\\.|x))/);\n        var bsMatch = str.match(/B\\s*#[0-9a-fA-F]*/);\n        if (!bsMatch && !intMatch)\n            throw new Error(\"expected Data I or B; found none\");\n        var match = bsMatch && intMatch ?\n            (str.indexOf(bsMatch[0]) < str.indexOf(intMatch[0]) ?\n                bsMatch :\n                intMatch) :\n            (!bsMatch ? intMatch : bsMatch);\n        if (!match)\n            throw new Error(\"expected Data I or B; found none\");\n        var formattedStr = match[0];\n        return {\n            formatted: [formattedStr],\n            offset: str.indexOf(formattedStr) + formattedStr.length\n        }; // I or B\n    }\n    var start = str.slice(0, openBracketIdx).trim();\n    var prev = openBracketIdx + 1;\n    var i = prev;\n    var ch = \"\";\n    var nOpen = 0;\n    var isMap = /^\\(?(\\s*)?Map/.test(str);\n    var insidePair = false;\n    var pairK = undefined;\n    var rest = [];\n    while (true) {\n        ch = str[i];\n        switch (ch) {\n            case \"[\": {\n                nOpen++;\n                break;\n            }\n            case \"]\": {\n                if (nOpen === 0) {\n                    var elem = str.substring(prev, i).trim();\n                    if (elem !== \"\")\n                        rest.push([elem]);\n                    return {\n                        formatted: [start, rest],\n                        offset: i + 1\n                    };\n                }\n                else\n                    nOpen--;\n                break;\n            }\n            case \",\": {\n                if (nOpen === 0) {\n                    if (!isMap) {\n                        rest.push(formatStringByBrackets(str.substring(prev, i)).formatted);\n                        prev = i + 1;\n                    }\n                    else {\n                        if (insidePair) {\n                            if (str[prev] === \",\")\n                                prev++;\n                            if (str[prev] === \"(\")\n                                prev++;\n                            pairK = formatStringByBrackets(str.substring(prev, i)).formatted;\n                            prev = i + 1;\n                        }\n                        else\n                            break;\n                    }\n                }\n                break;\n            }\n            case \"(\": {\n                if (nOpen === 0)\n                    insidePair = true;\n                break;\n            }\n            case \")\": {\n                if (nOpen === 0) {\n                    var v = formatStringByBrackets(str.substring(prev, i)).formatted;\n                    prev = i + 1;\n                    rest.push({ k: pairK, v: v });\n                    pairK = undefined;\n                    insidePair = false;\n                }\n                break;\n            }\n            default: break;\n        }\n        i++;\n    }\n}\n/**\n * parses the result of `data.toString()`\n *\n * @param {string} str data\n *\n * @returns and object with the parsed data and the length of the string used as `offset`\n */\nfunction dataFromStringWithOffset(str) {\n    var _a = formatStringByBrackets(str), words = _a.formatted, offset = _a.offset;\n    return { data: parseWords(words), offset: offset };\n}\nexports.dataFromStringWithOffset = dataFromStringWithOffset;\n/**\n * parses the result of `data.toString()`\n *\n * @param {string} str data\n */\nfunction dataFromString(str) {\n    return dataFromStringWithOffset(str).data;\n}\nexports.dataFromString = dataFromString;\nfunction parseWords(words) {\n    var start = words[0];\n    while (start.startsWith(\"(\"))\n        start = start.slice(1);\n    if (/^\\(?(\\s*)?Constr/.test(start)) {\n        var _a = __read(start.split(\" \"), 2), _ = _a[0], idxStr = _a[1];\n        var idx = BigInt(idxStr);\n        if (Array.isArray(words[1])) {\n            var fields = words[1].map(parseWords);\n            return new DataConstr_1.DataConstr(idx, fields);\n        }\n        else\n            return dataFromString(words[0]);\n    }\n    if (/^\\(?(\\s*)?Map/.test(start)) {\n        if (Array.isArray(words[1])) {\n            var pairs = words[1];\n            return new DataMap_1.DataMap(pairs.map(function (_a) {\n                var k = _a.k, v = _a.v;\n                return new DataPair_1.DataPair(parseWords(k), parseWords(v));\n            }));\n        }\n        else\n            return dataFromString(words[0]);\n    }\n    if (/^\\(?(\\s*)?List/.test(start)) {\n        if (Array.isArray(words[1])) {\n            return new DataList_1.DataList(words[1].map(parseWords));\n        }\n        else\n            return dataFromString(words[0]);\n    }\n    if (start[0] === \"I\") {\n        var _b = __read(start.split(\" \"), 2), _ = _b[0], valStr = _b[1];\n        return new DataI_1.DataI(BigInt(valStr));\n    }\n    if (start[0] === \"B\") {\n        var _c = __read(start.split(\"#\"), 2), _ = _c[0], valueStr = _c[1];\n        return new DataB_1.DataB(valueStr);\n    }\n    throw new Error(\"invalid string to parse Data; \" + JSON.stringify(words));\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/fromString.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/hashData.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/hashData.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.hashData = void 0;\nvar crypto_1 = __webpack_require__(/*! @harmoniclabs/crypto */ \"./node_modules/@harmoniclabs/crypto/dist/index.js\");\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar toCbor_1 = __webpack_require__(/*! ./toCbor.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/toCbor.js\");\nfunction hashData(data) {\n    if (!(0, Data_1.isData)(data))\n        throw new Error(\"hashData only works with Data\");\n    return (0, crypto_1.blake2b_256)((0, toCbor_1.dataToCbor)(data).toBuffer());\n}\nexports.hashData = hashData;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/hashData.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/index.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/index.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataB.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataB.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataConstr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataI.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataI.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataList.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataList.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataMap.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js\"), exports);\n__exportStar(__webpack_require__(/*! ./DataPair.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataPair.js\"), exports);\n__exportStar(__webpack_require__(/*! ./fromCbor.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/fromCbor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./fromString.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/fromString.js\"), exports);\n__exportStar(__webpack_require__(/*! ./toCbor.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/toCbor.js\"), exports);\n__exportStar(__webpack_require__(/*! ./hashData.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/hashData.js\"), exports);\n__exportStar(__webpack_require__(/*! ./toData/interface.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/toData/interface.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/toCbor.js":
/*!***************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/toCbor.js ***!
  \***************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.dataToCbor = exports.dataToCborObj = void 0;\nvar Data_1 = __webpack_require__(/*! ./Data.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/Data.js\");\nvar DataConstr_1 = __webpack_require__(/*! ./DataConstr.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataConstr.js\");\nvar DataMap_1 = __webpack_require__(/*! ./DataMap.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataMap.js\");\nvar DataList_1 = __webpack_require__(/*! ./DataList.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataList.js\");\nvar DataI_1 = __webpack_require__(/*! ./DataI.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataI.js\");\nvar DataB_1 = __webpack_require__(/*! ./DataB.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/DataB.js\");\nvar cbor_1 = __webpack_require__(/*! @harmoniclabs/cbor */ \"./node_modules/@harmoniclabs/cbor/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ./utils/assert.js */ \"./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar minBigInt = BigInt(\"-18446744073709551616\"); // -(2n ** 64n)\nvar maxBigInt = BigInt(\"18446744073709551615\"); // (2n ** 64n) - 1n\nfunction dataToCborObj(data) {\n    (0, assert_1.assert)((0, Data_1.isData)(data), \"Invalid data; cannot convert to CBOR\");\n    if (data instanceof DataConstr_1.DataConstr) {\n        var constrNum = data.constr;\n        var tag = (0, DataConstr_1.constrNumberToCborTag)(constrNum);\n        var fields = new cbor_1.CborArray(data.fields.map(dataToCborObj), {\n            indefinite: data.fields.length > 0\n        });\n        if (Number(tag) === 102) {\n            /*\n            Any alternatives, including those that don't fit in the above\n            \n            -> tag 102 followed by a list containing\n                an unsigned integer for the actual alternative,\n                and then the arguments in a (nested!) list.\n            */\n            fields = new cbor_1.CborArray([\n                new cbor_1.CborUInt(constrNum),\n                fields\n            ]);\n        }\n        return new cbor_1.CborTag(tag, fields);\n    }\n    if (data instanceof DataMap_1.DataMap) {\n        return new cbor_1.CborMap(data.map.map(function (pair) {\n            return {\n                k: dataToCborObj(pair.fst),\n                v: dataToCborObj(pair.snd)\n            };\n        }), {\n            indefinite: data.map.length > 0\n        });\n    }\n    if (data instanceof DataList_1.DataList) {\n        return new cbor_1.CborArray(data.list.map(dataToCborObj), {\n            indefinite: data.list.length > 0\n        });\n    }\n    if (data instanceof DataI_1.DataI) {\n        var n = data.int;\n        return (n < 0 ?\n            new cbor_1.CborNegInt(n) :\n            new cbor_1.CborUInt(n));\n    }\n    if (data instanceof DataB_1.DataB) {\n        var bytes = data.bytes.toBuffer();\n        // definite length only if length <= 64\n        if (bytes.length <= 64)\n            return new cbor_1.CborBytes(bytes);\n        var ptr = 64;\n        var fst = Uint8Array.prototype.slice.call(bytes, 0, ptr);\n        var chunks = [];\n        var chunkSize = 0;\n        var chunkEnd = 0;\n        while (ptr < bytes.length) {\n            chunkSize = Math.min(64, bytes.length - ptr);\n            chunkEnd = ptr + chunkSize;\n            chunks.push(Uint8Array.prototype.slice.call(bytes, ptr, chunkEnd));\n            ptr = chunkEnd;\n        }\n        // indefinite length bytes\n        return new cbor_1.CborBytes(fst, chunks);\n    }\n    throw new Error(\"'dataToCborObj' did not match any possible Data constructor\");\n}\nexports.dataToCborObj = dataToCborObj;\nfunction dataToCbor(data) {\n    return cbor_1.Cbor.encode(dataToCborObj(data));\n}\nexports.dataToCbor = dataToCbor;\nfunction positiveIntegerToBytes(n) {\n    var hex = n.toString(16);\n    return (0, uint8array_utils_1.fromHex)((hex.length % 2) === 0 ? hex : \"0\" + hex);\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/toCbor.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/toData/interface.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/toData/interface.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/toData/interface.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js ***!
  \*********************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.roDescr = void 0;\nexports.roDescr = Object.freeze({\n    writable: false,\n    enumerable: true,\n    configurable: false\n});\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/plutus-data/dist/utils/roDescr.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/_asserts.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/_asserts.js ***!
  \**********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.checkBounds = exports.assertInBound = exports.assertNum = exports.asserValidOffset = void 0;\nvar errors = __importStar(__webpack_require__(/*! ./errors.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/errors.js\"));\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction asserValidOffset(offset, ext, length) {\n    if ((offset % 1) !== 0 || offset < 0)\n        throw new RangeError('offset is not uint');\n    if (offset + ext > length)\n        throw new RangeError('Trying to access beyond buffer length');\n}\nexports.asserValidOffset = asserValidOffset;\nfunction assertNum(n) {\n    if (typeof n !== \"number\")\n        throw new Error(\"expected a number\");\n}\nexports.assertNum = assertNum;\nfunction assertInBound(value, length, type) {\n    if (Math.floor(value) !== value) {\n        assertNum(value);\n        throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value);\n    }\n    if (length < 0) {\n        throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n    }\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', \">= \".concat(type ? 1 : 0, \" and <= \").concat(length), value);\n}\nexports.assertInBound = assertInBound;\nfunction checkBounds(buf, offset, byteLength) {\n    assertNum(offset);\n    if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n        assertInBound(offset, buf.length - (byteLength + 1));\n    }\n}\nexports.checkBounds = checkBounds;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/_asserts.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/ascii.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/ascii.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fromAscii = exports.toAscii = void 0;\nfunction toAscii(buf, start, end) {\n    if (start === void 0) { start = 0; }\n    if (end === void 0) { end = Infinity; }\n    var ret = '';\n    end = Math.min(buf.length, end);\n    for (var i = start; i < end; ++i) {\n        ret += String.fromCharCode(buf[i] & 0x7f);\n    }\n    return ret;\n}\nexports.toAscii = toAscii;\nfunction fromAscii(str) {\n    var len = str.length;\n    var byteArray = new Array(len);\n    for (var i = 0; i < str.length; ++i) {\n        byteArray[i] = str.charCodeAt(i) & 0xff;\n    }\n    return new Uint8Array(byteArray);\n}\nexports.fromAscii = fromAscii;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/ascii.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/base64.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/base64.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fromBase64 = exports.toBase64 = void 0;\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n    lookup[chars.charCodeAt(i)] = i;\n}\nfunction toBase64(bytes) {\n    var i, len = bytes.length, base64 = '';\n    for (i = 0; i < len; i += 3) {\n        base64 += chars[bytes[i] >> 2];\n        base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n        base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n        base64 += chars[bytes[i + 2] & 63];\n    }\n    if (len % 3 === 2) {\n        base64 = base64.substring(0, base64.length - 1) + '=';\n    }\n    else if (len % 3 === 1) {\n        base64 = base64.substring(0, base64.length - 2) + '==';\n    }\n    return base64;\n}\nexports.toBase64 = toBase64;\n;\nfunction fromBase64(base64) {\n    var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n    if (base64[base64.length - 1] === '=') {\n        bufferLength--;\n        if (base64[base64.length - 2] === '=') {\n            bufferLength--;\n        }\n    }\n    var bytes = new Uint8Array(bufferLength);\n    for (i = 0; i < len; i += 4) {\n        encoded1 = lookup[base64.charCodeAt(i)];\n        encoded2 = lookup[base64.charCodeAt(i + 1)];\n        encoded3 = lookup[base64.charCodeAt(i + 2)];\n        encoded4 = lookup[base64.charCodeAt(i + 3)];\n        bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n        bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n        bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n    }\n    return bytes;\n}\nexports.fromBase64 = fromBase64;\n;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/base64.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/concat.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/concat.js ***!
  \********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.concatUint8Array = void 0;\nfunction concatUint8Array() {\n    var chunks = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        chunks[_i] = arguments[_i];\n    }\n    // if(!Array.isArray(chunks)) return new Uint8Array([]);\n    if (!chunks.every(function (chunk) { return chunk instanceof Uint8Array; }))\n        return new Uint8Array([]);\n    if (chunks.length <= 0)\n        return new Uint8Array([]);\n    if (chunks.length === 1)\n        return Uint8Array.prototype.slice.call(chunks[0]);\n    var len = chunks.reduce(function (acc, chunk) { return acc + chunk.length; }, 0);\n    var result = new Uint8Array(len);\n    var offset = 0;\n    var nChunks = chunks.length;\n    for (var i = 0, chunk = void 0; i < nChunks;) {\n        chunk = chunks[i++];\n        result.set(chunk, offset);\n        offset += chunk.length;\n    }\n    return result;\n}\nexports.concatUint8Array = concatUint8Array;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/concat.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/errors.js":
/*!********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/errors.js ***!
  \********************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __extends = (this && this.__extends) || (function () {\n    var extendStatics = function (d, b) {\n        extendStatics = Object.setPrototypeOf ||\n            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n        return extendStatics(d, b);\n    };\n    return function (d, b) {\n        if (typeof b !== \"function\" && b !== null)\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n        extendStatics(d, b);\n        function __() { this.constructor = d; }\n        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n    };\n})();\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ERR_OUT_OF_RANGE = exports.ERR_INVALID_ARG_TYPE = exports.ERR_BUFFER_OUT_OF_BOUNDS = void 0;\nfunction addNumericalSeparator(val) {\n    var res = '';\n    var i = val.length;\n    var start = val[0] === '-' ? 1 : 0;\n    for (; i >= start + 4; i -= 3) {\n        res = \"_\".concat(val.slice(i - 3, i)).concat(res);\n    }\n    return \"\".concat(val.slice(0, i)).concat(res);\n}\nfunction E(sym, getMessage, Base) {\n    return /** @class */ (function (_super) {\n        __extends(Uint8ArrayError, _super);\n        function Uint8ArrayError() {\n            var args = [];\n            for (var _i = 0; _i < arguments.length; _i++) {\n                args[_i] = arguments[_i];\n            }\n            var _this = _super.call(this) || this;\n            Object.defineProperty(_this, 'message', {\n                value: getMessage.apply(_this, args),\n                writable: true,\n                configurable: true\n            });\n            // Add the error code to the name to include it in the stack trace.\n            _this.name = \"\".concat(_this.name, \" [\").concat(sym, \"]\");\n            // Access the stack to generate the error message including the error code\n            // from the name.\n            _this.stack; // eslint-disable-line no-unused-expressions\n            return _this;\n        }\n        Object.defineProperty(Uint8ArrayError.prototype, \"code\", {\n            get: function () {\n                return sym;\n            },\n            set: function (value) {\n                Object.defineProperty(this, 'code', {\n                    configurable: true,\n                    enumerable: true,\n                    value: value,\n                    writable: true\n                });\n            },\n            enumerable: false,\n            configurable: true\n        });\n        Uint8ArrayError.prototype.toString = function () {\n            return \"\".concat(this.name, \" [\").concat(sym, \"]: \").concat(this.message);\n        };\n        return Uint8ArrayError;\n    }(Base));\n}\nexports.ERR_BUFFER_OUT_OF_BOUNDS = E('ERR_BUFFER_OUT_OF_BOUNDS', function (name) {\n    if (name) {\n        return \"\".concat(name, \" is outside of buffer bounds\");\n    }\n    return 'Attempt to access memory outside buffer bounds';\n}, RangeError);\nexports.ERR_INVALID_ARG_TYPE = E('ERR_INVALID_ARG_TYPE', function (name, actual) {\n    return \"The \\\"\".concat(name, \"\\\" argument must be of type number. Received type \").concat(typeof actual);\n}, TypeError);\nexports.ERR_OUT_OF_RANGE = E('ERR_OUT_OF_RANGE', function (str, range, input) {\n    var msg = \"The value of \\\"\".concat(str, \"\\\" is out of range.\");\n    var received = input;\n    if (Number.isInteger(input) && Math.abs(input) > Math.pow(2, 32)) {\n        received = addNumericalSeparator(String(input));\n    }\n    else if (typeof input === 'bigint') {\n        received = String(input);\n        if (input > (BigInt(1) << BigInt(32)) || input < -(BigInt(1) << BigInt(32))) {\n            received = addNumericalSeparator(received);\n        }\n        received += 'n';\n    }\n    msg += \" It must be \".concat(range, \". Received \").concat(received);\n    return msg;\n}, RangeError);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/errors.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/hex.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/hex.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.fromHex = exports.toHex = void 0;\nvar isUint8Array_1 = __webpack_require__(/*! ./isUint8Array.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/isUint8Array.js\");\nfunction toHex(buff) {\n    if (!(0, isUint8Array_1.isUint8Array)(buff))\n        throw new TypeError('toHex expects an `Uint8Array`;');\n    var strArr = new Array(buff.length);\n    buff.forEach(function (b, i) { return strArr[i] = b.toString(16).padStart(2, '0'); });\n    return strArr.join('');\n}\nexports.toHex = toHex;\nvar hexChars = Object.freeze(Array.from(\"0123456789abcdef\"));\nfunction isLowerCaseHex(str) {\n    return Array.from(str).every(function (ch) { return hexChars.includes(ch); });\n}\nfunction fromHex(str) {\n    if (typeof str !== \"string\")\n        throw new TypeError('fromHex expects an hexadecimal string;');\n    str = str.toLowerCase();\n    str = str.length % 2 === 0 ? str : '0' + str;\n    var len = str.length / 2;\n    var arr = new Array(len);\n    for (var i = 0; i < len; i++) {\n        var i2 = i * 2;\n        var byte = str.substring(i2, i2 + 2);\n        if (!isLowerCaseHex(byte))\n            throw new TypeError('fromHex expects an hexadecimal string; input was: ' + str);\n        arr[i] = parseInt(\"0x\" + byte);\n    }\n    return new Uint8Array(arr);\n}\nexports.fromHex = fromHex;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/hex.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/index.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./isUint8Array.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/isUint8Array.js\"), exports);\n__exportStar(__webpack_require__(/*! ./utf8.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/utf8.js\"), exports);\n__exportStar(__webpack_require__(/*! ./hex.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/hex.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ascii.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/ascii.js\"), exports);\n__exportStar(__webpack_require__(/*! ./readUint.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/readUint.js\"), exports);\n__exportStar(__webpack_require__(/*! ./writeUint.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/writeUint.js\"), exports);\n__exportStar(__webpack_require__(/*! ./utils/index.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/utils/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./concat.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/concat.js\"), exports);\n__exportStar(__webpack_require__(/*! ./base64.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/base64.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/isUint8Array.js":
/*!**************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/isUint8Array.js ***!
  \**************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isUint8Array = void 0;\nfunction isUint8Array(stuff) {\n    return stuff instanceof Uint8Array;\n}\nexports.isUint8Array = isUint8Array;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/isUint8Array.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/readUint.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/readUint.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.readFloat64BE = exports.readFloat32BE = exports.readIntLE = exports.readBigUInt64BE = exports.readBigUInt64LE = exports.readUInt32BE = exports.readUint32BE = exports.readUInt32LE = exports.readUint32LE = exports.readUInt16BE = exports.readUint16BE = exports.readUInt16LE = exports.readUint16LE = exports.readUInt8 = exports.readUint8 = void 0;\nvar _asserts_1 = __webpack_require__(/*! ./_asserts.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/_asserts.js\");\nexports.readUint8 = readUInt8;\nfunction readUInt8(buff, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, 1, buff.length);\n    return buff[offset];\n}\nexports.readUInt8 = readUInt8;\nexports.readUint16LE = readUInt16LE;\nfunction readUInt16LE(buff, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, 2, buff.length);\n    return buff[offset] | (buff[offset + 1] << 8);\n}\nexports.readUInt16LE = readUInt16LE;\nexports.readUint16BE = readUInt16BE;\nfunction readUInt16BE(buff, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, 2, buff.length);\n    return (buff[offset] << 8) | buff[offset + 1];\n}\nexports.readUInt16BE = readUInt16BE;\nexports.readUint32LE = readUInt32LE;\nfunction readUInt32LE(buff, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, 4, buff.length);\n    return ((buff[offset]) |\n        (buff[offset + 1] << 8) |\n        (buff[offset + 2] << 16)) +\n        (buff[offset + 3] * 0x1000000);\n}\nexports.readUInt32LE = readUInt32LE;\nexports.readUint32BE = readUInt32BE;\nfunction readUInt32BE(buff, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, 4, buff.length);\n    return (buff[offset] * 0x1000000) +\n        ((buff[offset + 1] << 16) |\n            (buff[offset + 2] << 8) |\n            buff[offset + 3]);\n}\nexports.readUInt32BE = readUInt32BE;\nfunction readBigUInt64LE(buff, offset) {\n    offset = offset >>> 0;\n    (0, _asserts_1.assertNum)(offset);\n    var first = buff[offset];\n    var last = buff[offset + 7];\n    if (first === undefined || last === undefined) {\n        (0, _asserts_1.assertInBound)(offset, buff.length - 8);\n    }\n    var lo = first +\n        buff[++offset] * Math.pow(2, 8) +\n        buff[++offset] * Math.pow(2, 16) +\n        buff[++offset] * Math.pow(2, 24);\n    var hi = buff[++offset] +\n        buff[++offset] * Math.pow(2, 8) +\n        buff[++offset] * Math.pow(2, 16) +\n        last * Math.pow(2, 24);\n    return BigInt(lo) + (BigInt(hi) << BigInt(32));\n}\nexports.readBigUInt64LE = readBigUInt64LE;\nfunction readBigUInt64BE(buff, offset) {\n    offset = offset >>> 0;\n    (0, _asserts_1.assertNum)(offset);\n    var first = buff[offset];\n    var last = buff[offset + 7];\n    if (first === undefined || last === undefined) {\n        (0, _asserts_1.assertInBound)(offset, buff.length - 8);\n    }\n    var hi = first * Math.pow(2, 24) +\n        buff[++offset] * Math.pow(2, 16) +\n        buff[++offset] * Math.pow(2, 8) +\n        buff[++offset];\n    var lo = buff[++offset] * Math.pow(2, 24) +\n        buff[++offset] * Math.pow(2, 16) +\n        buff[++offset] * Math.pow(2, 8) +\n        last;\n    return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n}\nexports.readBigUInt64BE = readBigUInt64BE;\nfunction readIntLE(buff, offset, byteLength, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    offset = offset >>> 0;\n    byteLength = byteLength >>> 0;\n    if (!noAssert)\n        (0, _asserts_1.asserValidOffset)(offset, byteLength, buff.length);\n    var val = buff[offset];\n    var mul = 1;\n    var i = 0;\n    while (++i < byteLength && (mul *= 0x100)) {\n        val += buff[offset + i] * mul;\n    }\n    mul *= 0x80;\n    if (val >= mul)\n        val -= Math.pow(2, 8 * byteLength);\n    return val;\n}\nexports.readIntLE = readIntLE;\nfunction readFloat32BE(buf, offset) {\n    var buff = new ArrayBuffer(4);\n    var asFloat32 = new Float32Array(buff);\n    var asUint8 = new Uint8Array(buff);\n    for (var i = offset; i < offset + 4; i++) {\n        asUint8[i - offset] = buf[i];\n    }\n    return asFloat32[0];\n}\nexports.readFloat32BE = readFloat32BE;\nfunction readFloat64BE(buf, offset) {\n    var buff = new ArrayBuffer(8);\n    var asFloat64 = new Float64Array(buff);\n    var asUint8 = new Uint8Array(buff);\n    for (var i = offset; i < offset + 8; i++) {\n        asUint8[i - offset] = buf[i];\n    }\n    return asFloat64[0];\n}\nexports.readFloat64BE = readFloat64BE;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/readUint.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/utf8.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/utf8.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.toUtf8 = exports.fromUtf8 = void 0;\nfunction fromUtf8(string, units) {\n    if (units === void 0) { units = Infinity; }\n    var codePoint;\n    var length = string.length;\n    var leadSurrogate = null;\n    var bytes = [];\n    for (var i = 0; i < length; ++i) {\n        codePoint = string.charCodeAt(i);\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)\n                        bytes.push(0xEF, 0xBF, 0xBD);\n                    continue;\n                }\n                else if (i + 1 === length) {\n                    // unpaired lead\n                    if ((units -= 3) > -1)\n                        bytes.push(0xEF, 0xBF, 0xBD);\n                    continue;\n                }\n                // valid lead\n                leadSurrogate = codePoint;\n                continue;\n            }\n            // 2 leads in a row\n            if (codePoint < 0xDC00) {\n                if ((units -= 3) > -1)\n                    bytes.push(0xEF, 0xBF, 0xBD);\n                leadSurrogate = codePoint;\n                continue;\n            }\n            // valid surrogate pair\n            codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n        }\n        else if (leadSurrogate) {\n            // valid bmp char, but last char was a lead\n            if ((units -= 3) > -1)\n                bytes.push(0xEF, 0xBF, 0xBD);\n        }\n        leadSurrogate = null;\n        // encode utf8\n        if (codePoint < 0x80) {\n            if ((units -= 1) < 0)\n                break;\n            bytes.push(codePoint);\n        }\n        else if (codePoint < 0x800) {\n            if ((units -= 2) < 0)\n                break;\n            bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n        }\n        else if (codePoint < 0x10000) {\n            if ((units -= 3) < 0)\n                break;\n            bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n        }\n        else if (codePoint < 0x110000) {\n            if ((units -= 4) < 0)\n                break;\n            bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n        }\n        else {\n            throw new Error('Invalid code point');\n        }\n    }\n    return new Uint8Array(bytes);\n}\nexports.fromUtf8 = fromUtf8;\nfunction toUtf8(buf, start, end) {\n    if (start === void 0) { start = 0; }\n    if (end === void 0) { end = Infinity; }\n    end = Math.min(buf.length, end);\n    var res = [];\n    var i = start;\n    while (i < end) {\n        var firstByte = buf[i];\n        var codePoint = null;\n        var bytesPerSequence = (firstByte > 0xEF)\n            ? 4\n            : (firstByte > 0xDF)\n                ? 3\n                : (firstByte > 0xBF)\n                    ? 2\n                    : 1;\n        if (i + bytesPerSequence <= end) {\n            var secondByte = void 0, thirdByte = void 0, fourthByte = void 0, tempCodePoint = void 0;\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        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        }\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        res.push(codePoint);\n        i += bytesPerSequence;\n    }\n    return decodeCodePointsArray(res);\n}\nexports.toUtf8 = toUtf8;\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;\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    // 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(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n    }\n    return res;\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/utf8.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/utils/index.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/utils/index.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.uint8ArrayEq = exports.lexCompare = void 0;\nfunction lexCompare(a, b) {\n    var min = a.length < b.length ? a : b;\n    var minLen = min.length;\n    for (var i = 0; i < minLen; i++) {\n        var _a = a.at(i);\n        var _b = b.at(i);\n        if (_a === undefined)\n            return -1 /* Ord.LT */;\n        if (_b === undefined)\n            return 1 /* Ord.GT */;\n        if (_a < _b)\n            return -1 /* Ord.LT */;\n        if (_a > _b)\n            return 1 /* Ord.GT */;\n        // if( _a === _b ) continue;\n    }\n    return a.length === b.length ? 0 /* Ord.EQ */ :\n        (a.length < b.length ? -1 /* Ord.LT */ : 1 /* Ord.GT */);\n}\nexports.lexCompare = lexCompare;\nfunction uint8ArrayEq(a, b) {\n    return a.length === b.length && a.every(function (n, i) { return n === b[i]; });\n}\nexports.uint8ArrayEq = uint8ArrayEq;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/utils/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uint8array-utils/dist/writeUint.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uint8array-utils/dist/writeUint.js ***!
  \***********************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.writeFloat64BE = exports.writeBigUInt64BE = exports.writeBigUInt64LE = exports.writeUInt32BE = exports.writeUint32BE = exports.writeUInt32LE = exports.writeUint32LE = exports.writeUInt16BE = exports.writeUint16BE = exports.writeUInt16LE = exports.writeUint16LE = exports.writeUInt8 = exports.writeUint8 = exports.writeUIntBE = exports.writeUintBE = exports.writeUIntLE = exports.writeUintLE = void 0;\nvar _asserts_1 = __webpack_require__(/*! ./_asserts.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/_asserts.js\");\nvar errors = __importStar(__webpack_require__(/*! ./errors.js */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/errors.js\"));\nfunction checkInt(buf, value, offset, ext, max, min) {\n    if (!(buf instanceof Uint8Array))\n        throw new TypeError('\"buffer\" argument must be an Uint8Array instance');\n    if (value > max || value < min)\n        throw new RangeError('\"value\" argument is out of bounds');\n    if (offset + ext > buf.length)\n        throw new RangeError('Index out of range');\n}\nfunction checkIntBI(value, min, max, buf, offset, byteLength) {\n    if (value > max || value < min) {\n        var n = typeof min === 'bigint' ? 'n' : '';\n        var range = void 0;\n        if (byteLength > 3) {\n            if (min === 0 || min === BigInt(0)) {\n                range = \">= 0\".concat(n, \" and < 2\").concat(n, \" ** \").concat((byteLength + 1) * 8).concat(n);\n            }\n            else {\n                range = \">= -(2\".concat(n, \" ** \").concat((byteLength + 1) * 8 - 1).concat(n, \") and < 2 ** \") +\n                    \"\".concat((byteLength + 1) * 8 - 1).concat(n);\n            }\n        }\n        else {\n            range = \">= \".concat(min).concat(n, \" and <= \").concat(max).concat(n);\n        }\n        throw new errors.ERR_OUT_OF_RANGE('value', range, value);\n    }\n    (0, _asserts_1.checkBounds)(buf, offset, byteLength);\n}\nexports.writeUintLE = writeUIntLE;\nfunction writeUIntLE(buff, value, offset, byteLength, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\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(buff, value, offset, byteLength, maxBytes, 0);\n    }\n    var mul = 1;\n    var i = 0;\n    buff[offset] = value & 0xFF;\n    while (++i < byteLength && (mul *= 0x100)) {\n        buff[offset + i] = (value / mul) & 0xFF;\n    }\n    return offset + byteLength;\n}\nexports.writeUIntLE = writeUIntLE;\nexports.writeUintBE = writeUIntBE;\nfunction writeUIntBE(buff, value, offset, byteLength, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\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(buff, value, offset, byteLength, maxBytes, 0);\n    }\n    var i = byteLength - 1;\n    var mul = 1;\n    buff[offset + i] = value & 0xFF;\n    while (--i >= 0 && (mul *= 0x100)) {\n        buff[offset + i] = (value / mul) & 0xFF;\n    }\n    return offset + byteLength;\n}\nexports.writeUIntBE = writeUIntBE;\nexports.writeUint8 = writeUInt8;\nfunction writeUInt8(buff, value, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    value = +value;\n    offset = offset >>> 0;\n    if (!noAssert)\n        checkInt(buff, value, offset, 1, 0xff, 0);\n    buff[offset] = (value & 0xff);\n    return offset + 1;\n}\nexports.writeUInt8 = writeUInt8;\nexports.writeUint16LE = writeUInt16LE;\nfunction writeUInt16LE(buff, value, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    value = +value;\n    offset = offset >>> 0;\n    if (!noAssert)\n        checkInt(buff, value, offset, 2, 0xffff, 0);\n    buff[offset] = (value & 0xff);\n    buff[offset + 1] = (value >>> 8);\n    return offset + 2;\n}\nexports.writeUInt16LE = writeUInt16LE;\nexports.writeUint16BE = writeUInt16BE;\nfunction writeUInt16BE(buff, value, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    value = +value;\n    offset = offset >>> 0;\n    if (!noAssert)\n        checkInt(buff, value, offset, 2, 0xffff, 0);\n    buff[offset] = (value >>> 8);\n    buff[offset + 1] = (value & 0xff);\n    return offset + 2;\n}\nexports.writeUInt16BE = writeUInt16BE;\nexports.writeUint32LE = writeUInt32LE;\nfunction writeUInt32LE(buff, value, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    value = +value;\n    offset = offset >>> 0;\n    if (!noAssert)\n        checkInt(buff, value, offset, 4, 0xffffffff, 0);\n    buff[offset + 3] = (value >>> 24);\n    buff[offset + 2] = (value >>> 16);\n    buff[offset + 1] = (value >>> 8);\n    buff[offset] = (value & 0xff);\n    return offset + 4;\n}\nexports.writeUInt32LE = writeUInt32LE;\nexports.writeUint32BE = writeUInt32BE;\nfunction writeUInt32BE(buff, value, offset, noAssert) {\n    if (noAssert === void 0) { noAssert = false; }\n    value = +value;\n    offset = offset >>> 0;\n    if (!noAssert)\n        checkInt(buff, value, offset, 4, 0xffffffff, 0);\n    buff[offset] = (value >>> 24);\n    buff[offset + 1] = (value >>> 16);\n    buff[offset + 2] = (value >>> 8);\n    buff[offset + 3] = (value & 0xff);\n    return offset + 4;\n}\nexports.writeUInt32BE = writeUInt32BE;\nfunction writeBigUInt64LE(buf, value, offset) {\n    var min = BigInt(0);\n    var max = BigInt('0xffffffffffffffff');\n    checkIntBI(value, min, max, buf, offset, 7);\n    var lo = Number(value & BigInt(0xffffffff));\n    buf[offset++] = lo;\n    lo = lo >> 8;\n    buf[offset++] = lo;\n    lo = lo >> 8;\n    buf[offset++] = lo;\n    lo = lo >> 8;\n    buf[offset++] = lo;\n    var hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n    buf[offset++] = hi;\n    hi = hi >> 8;\n    buf[offset++] = hi;\n    hi = hi >> 8;\n    buf[offset++] = hi;\n    hi = hi >> 8;\n    buf[offset++] = hi;\n    return offset;\n}\nexports.writeBigUInt64LE = writeBigUInt64LE;\nfunction writeBigUInt64BE(buf, value, offset) {\n    var min = BigInt(0);\n    var max = BigInt('0xffffffffffffffff');\n    checkIntBI(value, min, max, buf, offset, 7);\n    var lo = Number(value & BigInt(0xffffffff));\n    buf[offset + 7] = lo;\n    lo = lo >> 8;\n    buf[offset + 6] = lo;\n    lo = lo >> 8;\n    buf[offset + 5] = lo;\n    lo = lo >> 8;\n    buf[offset + 4] = lo;\n    var hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n    buf[offset + 3] = hi;\n    hi = hi >> 8;\n    buf[offset + 2] = hi;\n    hi = hi >> 8;\n    buf[offset + 1] = hi;\n    hi = hi >> 8;\n    buf[offset] = hi;\n    return offset + 8;\n}\nexports.writeBigUInt64BE = writeBigUInt64BE;\nfunction writeFloat64BE(buf, value, offset) {\n    var buff = new ArrayBuffer(8);\n    var asFloatArr = new Float64Array(buff);\n    asFloatArr[0] = value;\n    var asUint8 = new Uint8Array(buff);\n    for (var i = 0; i < 8; i++) {\n        buf[offset + i] = asUint8[i];\n    }\n    return offset + 8;\n}\nexports.writeFloat64BE = writeFloat64BE;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uint8array-utils/dist/writeUint.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCDecoder/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCDecoder/index.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.parseUPLC = exports.UPLCDecoder = void 0;\nvar UPLCProgram_1 = __webpack_require__(/*! ../UPLCProgram/UPLCProgram.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCProgram.js\");\nvar UPLCVersion_1 = __webpack_require__(/*! ../UPLCProgram/UPLCVersion.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js\");\nvar UPLCTerm_1 = __webpack_require__(/*! ../UPLCTerm/UPLCTerm.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js\");\nvar Application_1 = __webpack_require__(/*! ../UPLCTerms/Application.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js\");\nvar Builtin_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\");\nvar UPLCBuiltinTag_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/UPLCBuiltinTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js\");\nvar Delay_1 = __webpack_require__(/*! ../UPLCTerms/Delay.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js\");\nvar ErrorUPLC_1 = __webpack_require__(/*! ../UPLCTerms/ErrorUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js\");\nvar Force_1 = __webpack_require__(/*! ../UPLCTerms/Force.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js\");\nvar Lambda_1 = __webpack_require__(/*! ../UPLCTerms/Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\");\nvar UPLCVar_1 = __webpack_require__(/*! ../UPLCTerms/UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\");\nvar UPLCConst_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/UPLCConst.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js\");\nvar ConstType_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar cbor_1 = __webpack_require__(/*! @harmoniclabs/cbor */ \"./node_modules/@harmoniclabs/cbor/dist/index.js\");\nvar UPLCFlatUtils_1 = __importDefault(__webpack_require__(/*! ../utils/UPLCFlatUtils/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/UPLCFlatUtils/index.js\"));\nvar bigint_utils_1 = __webpack_require__(/*! @harmoniclabs/bigint-utils */ \"./node_modules/@harmoniclabs/bigint-utils/dist/index.js\");\nvar plutus_data_1 = __webpack_require__(/*! @harmoniclabs/plutus-data */ \"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar UPLCTermTag_1 = __webpack_require__(/*! ../UPLCTerm/UPLCTermTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTermTag.js\");\nvar Constr_1 = __webpack_require__(/*! ../UPLCTerms/Constr.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js\");\nvar Case_1 = __webpack_require__(/*! ../UPLCTerms/Case.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js\");\nfunction isSerializedScriptFormat(str) {\n    return (typeof str === \"string\" &&\n        (str === \"flat\" ||\n            str === \"cbor\"));\n}\nvar UPLCDecoder = /** @class */ (function () {\n    function UPLCDecoder() {\n    }\n    UPLCDecoder.parse = function (serializedScript, format, debugLogs) {\n        if (format === void 0) { format = \"cbor\"; }\n        if (debugLogs === void 0) { debugLogs = false; }\n        if (!isSerializedScriptFormat(format)) {\n            throw new Error(\"unknown format: \" + format.toString());\n        }\n        if (format === \"cbor\") {\n            var shouldTryParseCbor = true;\n            var tmp = undefined;\n            while (shouldTryParseCbor) {\n                try {\n                    tmp = cbor_1.Cbor.parse(serializedScript);\n                }\n                catch (_a) {\n                    shouldTryParseCbor = false;\n                }\n                if (!(tmp instanceof cbor_1.CborBytes)) {\n                    shouldTryParseCbor = false;\n                }\n                else {\n                    serializedScript = tmp.buffer;\n                }\n            }\n            format = \"flat\";\n        }\n        // -------------------------- ctx steup -------------------------- //\n        var currPtr = 0;\n        var nBytes = serializedScript.length;\n        var scriptBits = \"0000000\" + (0, bigint_utils_1.bigintFromBuffer)(serializedScript).toString(2);\n        /**\n         * dependencies:\n         * - currPtr\n         * - nBytes\n         * - serializedScript\n         */\n        var version = new UPLCVersion_1.UPLCVersion(readUInt(), readUInt(), readUInt());\n        var isV3Friendly = version.isV3Friendly();\n        var currDbn = 0;\n        function incrementPtrBy(n) {\n            currPtr += n;\n        }\n        function logState(forced) {\n            if (forced === void 0) { forced = false; }\n            if (forced || debugLogs) {\n                console.log(\"UPLCDecoder state: \" + JSON.stringify({\n                    currPtr: currPtr,\n                    bits: \"...\" + scriptBits.slice(currPtr - 16, currPtr + 16) + \"...\",\n                    \"ptr \": ' '.repeat(19) + '^',\n                    currentByteIndex: currByteIndex(),\n                    partialUPLC: partialUPLC\n                }, undefined, 2));\n            }\n        }\n        // --------------------------------------------------------------- //\n        // ------------------------------ partial UPLC stuff ------------------------------ //\n        var vars = \"abcdefghilmopqrstuvzwxyjkABCDEFGHILJMNOPQRSTUVZWXYJK\".split('');\n        var partialUPLC = \"\";\n        // -------------------------------------------------------------------------------- //\n        /**\n         * dependencies:\n         * - currPtr\n         * - nBytes\n         */\n        function currByteIndex() {\n            var idx = Math.floor(currPtr / 8);\n            if (idx >= nBytes)\n                throw new Error(\"pointer out of bound; ptr: \" + currPtr + \"; n bits: \" + nBytes * 8);\n            return idx;\n        }\n        /**\n         * dependencies:\n         * - currPtr\n         * - nBytes\n         * - serializedScript\n         */\n        function currByte() {\n            var byte = serializedScript.at(currByteIndex());\n            if (byte === undefined)\n                throw new Error(\"pointer out of bound; ptr: \" + currPtr + \"; n bits: \" + nBytes * 8);\n            return byte;\n        }\n        function getByteMask(nBits) {\n            var mask = 0;\n            for (var _nBits = Math.round(Math.abs(nBits)); _nBits > 0; _nBits--) {\n                mask = (mask << 1) + 1;\n            }\n            return mask;\n        }\n        function nthBitOfByte(nth, byte) {\n            switch (nth) {\n                case 0: return ((byte & 128) >> 7);\n                case 1: return ((byte & 64) >> 6);\n                case 2: return ((byte & 32) >> 5);\n                case 3: return ((byte & 16) >> 4);\n                case 4: return ((byte & 8) >> 3);\n                case 5: return ((byte & 4) >> 2);\n                case 6: return ((byte & 2) >> 1);\n                case 7: return (byte & 1);\n                default: throw new Error(\"can't access bit n: \" + nth);\n            }\n        }\n        /**\n         * dependencies:\n         * - currPtr\n         * - nBytes\n         * - serializedScript\n         */\n        function readNBits(n) {\n            if (n <= 0)\n                return BigInt(0);\n            var currB = currByte();\n            var inBytePtr = currPtr % 8;\n            if (n === 1) {\n                incrementPtrBy(1);\n                return BigInt(nthBitOfByte(inBytePtr, currB));\n            }\n            var missingBitsToByte = 8 - inBytePtr;\n            var shift = missingBitsToByte - n;\n            if (n <= missingBitsToByte) {\n                incrementPtrBy(n);\n                return BigInt((currB & (getByteMask(n) << shift)) >> shift);\n            }\n            incrementPtrBy(missingBitsToByte);\n            var result = BigInt(currB & getByteMask(missingBitsToByte));\n            var missingBitsToRead = n - missingBitsToByte;\n            var nWholeBytes = 0;\n            for (; (nWholeBytes + 1) * 8 < missingBitsToRead; nWholeBytes++) {\n                result = (result << BigInt(8)) & BigInt(currByte());\n                incrementPtrBy(8);\n            }\n            missingBitsToRead = missingBitsToRead - (nWholeBytes * 8);\n            if (missingBitsToRead === 0)\n                return result;\n            return (result << BigInt(missingBitsToRead)) | readNBits(missingBitsToRead);\n        }\n        function readPadding() {\n            while (Number(readNBits(1)) !== 1) { }\n            if ((currPtr % 8) !== 0)\n                throw new Error(\"padding was not alligned to byte; currPtr was: \" + currPtr + \"; currPtr % 8: \" + currPtr % 8);\n        }\n        /**\n         * dependencies:\n         * - currPtr\n         * - nBytes\n         * - serializedScript\n         */\n        function readUInt() {\n            var n = BigInt(0);\n            var wasLast = true;\n            var nRed = 0;\n            do {\n                var red = readNBits(8);\n                wasLast = (red & BigInt(128)) === BigInt(0);\n                n = n | (red & BigInt(127)) << BigInt(nRed * 7);\n                nRed++;\n            } while (!wasLast);\n            return n;\n        }\n        ;\n        function readSignedInt() {\n            return UPLCFlatUtils_1.default.unzigzagBigint(readUInt());\n        }\n        function readTerm() {\n            var _a;\n            // console.log( \"left to read: \" + serializedScript.subarray( currByteIndex() ).toString(\"hex\") );\n            logState();\n            var tag = Number(readNBits(4));\n            switch (tag) {\n                // serialised debruijn starts form 1;\n                // plu-ts debruijn starts from 0\n                case UPLCTermTag_1.UPLCTermTag.Var:\n                    var _dbn = readUInt();\n                    var dbn = Number(_dbn);\n                    var idx = currDbn - (dbn - 1);\n                    partialUPLC += (_a = vars[idx]) !== null && _a !== void 0 ? _a : \"(\".concat(idx.toString(), \")\");\n                    return new UPLCVar_1.UPLCVar(_dbn - BigInt(1));\n                case UPLCTermTag_1.UPLCTermTag.Delay:\n                    partialUPLC += \"(delay \";\n                    var delayed = readTerm();\n                    partialUPLC += \")\";\n                    return new Delay_1.Delay(delayed);\n                case UPLCTermTag_1.UPLCTermTag.Lambda:\n                    partialUPLC += \"(lam \" + vars[currDbn] + ' ';\n                    currDbn++;\n                    var lamBody = readTerm();\n                    currDbn--;\n                    partialUPLC += \")\";\n                    return new Lambda_1.Lambda(lamBody);\n                case UPLCTermTag_1.UPLCTermTag.Application:\n                    partialUPLC += '[';\n                    var appFn = readTerm();\n                    partialUPLC += ' ';\n                    var appArg = readTerm();\n                    partialUPLC += ']';\n                    return new Application_1.Application(appFn, appArg);\n                case UPLCTermTag_1.UPLCTermTag.Const: return readConst();\n                case UPLCTermTag_1.UPLCTermTag.Force:\n                    partialUPLC += \"(force \";\n                    var forced = readTerm();\n                    partialUPLC += ')';\n                    if (forced instanceof Builtin_1.Builtin)\n                        return forced;\n                    if (forced instanceof Force_1.Force && forced.termToForce instanceof Builtin_1.Builtin)\n                        return forced.termToForce;\n                    return new Force_1.Force(forced);\n                case UPLCTermTag_1.UPLCTermTag.Error:\n                    partialUPLC += \"(error)\";\n                    return new ErrorUPLC_1.ErrorUPLC(\n                    //    \"error got from deserialization;\",\n                    //    {\n                    //        debruijnLevel: currDbn,\n                    //        byteIndex: currByteIndex(),\n                    //        bitIndex: currPtr\n                    //    }\n                    );\n                case UPLCTermTag_1.UPLCTermTag.Builtin:\n                    var bn_tag = Number(readNBits(7));\n                    partialUPLC += \"(builtin \".concat((0, UPLCBuiltinTag_1.builtinTagToString)(bn_tag), \")\");\n                    return new Builtin_1.Builtin(bn_tag);\n                case UPLCTermTag_1.UPLCTermTag.Constr:\n                    {\n                        if (!isV3Friendly)\n                            throw new Error(\"found 'constr' node in uplc version \" + version.toString() +\n                                \"; lowest supported version is 1.1.0\");\n                        return new Constr_1.Constr(readUInt(), readTermList());\n                    }\n                    ;\n                case UPLCTermTag_1.UPLCTermTag.Case:\n                    {\n                        if (!isV3Friendly)\n                            throw new Error(\"found 'case' node in uplc version \" + version.toString() +\n                                \"; lowest supported version is 1.1.0\");\n                        return new Case_1.Case(readTerm(), readTermList());\n                    }\n                    ;\n                default: throw new Error(\"unknown tag: \" + tag + \"; partialUPLC == \" + partialUPLC);\n            }\n        }\n        function readTermList() {\n            var list = [];\n            for (var head = Number(readNBits(1)); head !== 0; head = Number(readNBits(1))) {\n                list.push(readTerm());\n            }\n            return list;\n        }\n        function readConst() {\n            logState();\n            var constTy = readConstTy();\n            if ((0, ConstType_1.constTypeEq)(constTy, ConstType_1.constT.bls12_381_G1_element) ||\n                (0, ConstType_1.constTypeEq)(constTy, ConstType_1.constT.bls12_381_G2_element) ||\n                (0, ConstType_1.constTypeEq)(constTy, ConstType_1.constT.bls12_381_MlResult))\n                throw new Error(\"bls constants are not supported in serialized UPLC\");\n            var val = readConstValueOfType(constTy);\n            partialUPLC += \"( con \".concat((0, UPLCTerm_1.showConstType)(constTy), \" \").concat((0, UPLCTerm_1.showUPLCConstValue)(val), \" )\");\n            return new UPLCConst_1.UPLCConst(constTy, val);\n        }\n        function readConstTy() {\n            var head = Number(readNBits(1));\n            if (head === 0)\n                throw new Error(\"empty const type\");\n            var tyTag;\n            var type = [];\n            do {\n                tyTag = Number(readNBits(4));\n                head = Number(readNBits(1));\n                if (tyTag === 7)\n                    continue;\n                type.push(tyTag);\n            } while (head !== 0);\n            if (!(type.length > 0 &&\n                (0, ConstType_1.isWellFormedConstType)(type)))\n                throw new Error(\"invalid constant type\");\n            return type;\n        }\n        function readConstValueOfType(t) {\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.int)) {\n                return readSignedInt();\n            }\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.byteStr)) {\n                readPadding();\n                var hexChunks = [];\n                var chunkLen = 1;\n                while (chunkLen !== 0) {\n                    chunkLen = Number(readNBits(8));\n                    for (var i = 0; i < chunkLen; i++) {\n                        hexChunks.push(readNBits(8).toString(16).padStart(2, '0'));\n                    }\n                }\n                return new bytestring_1.ByteString((0, uint8array_utils_1.fromHex)(hexChunks.join(\"\")));\n            }\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.str)) {\n                return (0, uint8array_utils_1.toUtf8)(readConstValueOfType(ConstType_1.constT.byteStr).toBuffer());\n            }\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.data)) {\n                var bytes = readConstValueOfType(ConstType_1.constT.byteStr).toBuffer();\n                return (0, plutus_data_1.dataFromCbor)(bytes);\n            }\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.bool))\n                return (Number(readNBits(1)) === 1);\n            if ((0, ConstType_1.constTypeEq)(t, ConstType_1.constT.unit))\n                return undefined;\n            if (t[0] === ConstType_1.ConstTyTag.list) {\n                var tyArg = ConstType_1.constListTypeUtils.getTypeArgument(t);\n                var list = [];\n                for (var head = Number(readNBits(1)); head !== 0; head = Number(readNBits(1))) {\n                    list.push(readConstValueOfType(tyArg));\n                }\n                return list;\n            }\n            if (t[0] === ConstType_1.ConstTyTag.pair) {\n                return new pair_1.Pair(readConstValueOfType(ConstType_1.constPairTypeUtils.getFirstTypeArgument(t)), readConstValueOfType(ConstType_1.constPairTypeUtils.getSecondTypeArgument(t)));\n            }\n            ;\n            throw new Error(\"'readConstValueOfType': no constant type matched\");\n        }\n        return new UPLCProgram_1.UPLCProgram(version, readTerm());\n    };\n    return UPLCDecoder;\n}());\nexports.UPLCDecoder = UPLCDecoder;\nfunction parseUPLC(serializedScript, format, debugLogs) {\n    if (format === void 0) { format = \"cbor\"; }\n    if (debugLogs === void 0) { debugLogs = false; }\n    return UPLCDecoder.parse(serializedScript, format, debugLogs);\n}\nexports.parseUPLC = parseUPLC;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCDecoder/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/UPLCSerializationContext.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/UPLCSerializationContext.js ***!
  \**************************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UPLCSerializationContex = void 0;\nvar UPLCVersion_1 = __webpack_require__(/*! ../UPLCProgram/UPLCVersion.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js\");\nfunction isV3Friendly(ctx) {\n    // ^1.1.0 || >= 2.*.*\n    return ctx.version.major === BigInt(1) ?\n        ctx.version.minor >= 1 :\n        ctx.version.major > 1;\n}\nvar UPLCSerializationContex = /** @class */ (function () {\n    function UPLCSerializationContex(rawCtx) {\n        this._rawCtx = __assign({ currLength: 0, version: {\n                major: BigInt(1),\n                minor: BigInt(1),\n                patch: BigInt(0)\n            } }, rawCtx);\n        this._is_v3_friendly = isV3Friendly(this._rawCtx);\n    }\n    Object.defineProperty(UPLCSerializationContex.prototype, \"is_v3_friendly\", {\n        get: function () {\n            return this._is_v3_friendly;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(UPLCSerializationContex.prototype, \"currLength\", {\n        get: function () {\n            return this._rawCtx.currLength;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(UPLCSerializationContex.prototype, \"version\", {\n        get: function () {\n            return new UPLCVersion_1.UPLCVersion(this._rawCtx.version.major, this._rawCtx.version.minor, this._rawCtx.version.patch);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    UPLCSerializationContex.prototype.updateVersion = function (uplcVersion) {\n        this._rawCtx.version = {\n            major: uplcVersion.major,\n            minor: uplcVersion.minor,\n            patch: uplcVersion.patch,\n        };\n        this._is_v3_friendly = isV3Friendly(this._rawCtx);\n    };\n    UPLCSerializationContex.prototype.incrementLengthBy = function (n) {\n        this._rawCtx.currLength = this._rawCtx.currLength + n;\n    };\n    return UPLCSerializationContex;\n}());\nexports.UPLCSerializationContex = UPLCSerializationContex;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/UPLCSerializationContext.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/index.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.encodeUPLC = exports.compileUPLC = exports.UPLCEncoder = exports.serializeBuiltin = void 0;\nvar ConstType_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\");\nvar ConstValue_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/ConstValue/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js\");\nvar UPLCBuiltinTag_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/UPLCBuiltinTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js\");\nvar UPLCTerm_1 = __webpack_require__(/*! ../UPLCTerm/UPLCTerm.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js\");\nvar Application_1 = __webpack_require__(/*! ../UPLCTerms/Application.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js\");\nvar Builtin_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\");\nvar UPLCConst_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/UPLCConst.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js\");\nvar Delay_1 = __webpack_require__(/*! ../UPLCTerms/Delay.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js\");\nvar ErrorUPLC_1 = __webpack_require__(/*! ../UPLCTerms/ErrorUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js\");\nvar Force_1 = __webpack_require__(/*! ../UPLCTerms/Force.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js\");\nvar Lambda_1 = __webpack_require__(/*! ../UPLCTerms/Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\");\nvar UPLCVar_1 = __webpack_require__(/*! ../UPLCTerms/UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\");\nvar UPLCSerializationContext_1 = __webpack_require__(/*! ./UPLCSerializationContext.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/UPLCSerializationContext.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar cbor_1 = __webpack_require__(/*! @harmoniclabs/cbor */ \"./node_modules/@harmoniclabs/cbor/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar plutus_data_1 = __webpack_require__(/*! @harmoniclabs/plutus-data */ \"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\nvar UPLCFlatUtils_1 = __importDefault(__webpack_require__(/*! ../utils/UPLCFlatUtils/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/UPLCFlatUtils/index.js\"));\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar Constr_1 = __webpack_require__(/*! ../UPLCTerms/Constr.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js\");\nvar Case_1 = __webpack_require__(/*! ../UPLCTerms/Case.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js\");\nvar crypto_1 = __webpack_require__(/*! @harmoniclabs/crypto */ \"./node_modules/@harmoniclabs/crypto/dist/index.js\");\n/*\n * --------------------------- [encode vs serialize methods] ---------------------------\n *\n *  in the ```UPLCEncoder``` class are present various methods of which name starts with \"encode\" or \"serialize\"\n *  directly followed by the type of the expected argument.\n *\n *  all the \"serialize\" functions are **PURE**; meaning given the expected input those will return the output without executing side-effects;\n *\n *  all the \"encode\" methods have the side effect to update the context before and always return the equivalent of the \"serialize\" counterpart;\n *\n *  for this reason, when it is common the pattern\n *  ```ts\n *  encode( uplcObj: UPLC ): BitStream\n *  {\n *      const serialized = serilize( uplcObj );\n *      this._ctx.incrementLengthBy( serialized.length );\n *      return serialized;\n *  }\n *  ```\n*/\nfunction serializeUInt(uint) {\n    return UPLCFlatUtils_1.default.encodeBigIntAsVariableLengthBitStream(BigInt(uint));\n}\nfunction serializeInt(int) {\n    (0, assert_1.assert)(typeof int === \"number\" || typeof int === \"bigint\", \"'serializeInt' only works for Signed Integer; \" +\n        \"try using int.toSigned() if you are using a derived class; inpout was: \" + int);\n    int = typeof int === \"number\" ? BigInt(int) : int;\n    return serializeUInt(UPLCFlatUtils_1.default.zigzagBigint(int));\n}\nfunction serializeVersion(version) {\n    var result = serializeUInt(version.major);\n    result.append(serializeUInt(version.minor));\n    result.append(serializeUInt(version.patch));\n    return result;\n}\nfunction serializeUPLCVar(uplcVar) {\n    var result = UPLCVar_1.UPLCVar.UPLCTag;\n    result.append(serializeUInt(\n    // no idea why deBruijn indicies start form 1...s\n    // can devs do something?\n    uplcVar.deBruijn + BigInt(1)));\n    return result;\n}\nfunction serializeConstType(type) {\n    (0, assert_1.assert)((0, ConstType_1.isWellFormedConstType)(type), \"cannot serialize an UPLC constant type if it is not well formed\");\n    /**\n     *\n     * Source: plutus-core-specification-june2022.pdf; section D.3.3; page 31\n     *\n     *  We define the encoder and decoder for types by combining 𝖾 𝗍𝗒𝗉𝖾 and 𝖽 𝗍𝗒𝗉𝖾 with 𝖤\n     *  and decoder for lists of four-bit integers (see Section D.2).\n     *\n     * Section D.2 ( D.2.2 )\n     *\n     * Suppose that we have a set 𝑋 for which we have defined an encoder 𝖤 𝑋 and a decoder 𝖣 𝑋 ; we define an\n⃖⃗     * 𝑋 which encodes lists of elements of 𝑋 by emitting the encodings of the elements of the list,\n     * encoder 𝖤\n     * **each preceded by a 𝟷 bit, then emitting a 𝟶 bit to mark the end of the list.**\n     *\n     */\n    function _serializeConstTyTagToUPLCBinaryString(typeTag) {\n        if (typeTag === ConstType_1.ConstTyTag.list) {\n            return (\"1\" + \"0111\" + // cons + (7).toString(2).padStart( 4, '0' ) // type application\n                \"1\" + \"0101\" // cons + (5).toString(2).padStart( 4, '0' ) // list\n            // \"0\"                        // nil // not needed (well formed) types do expects other tags after list\n            );\n        }\n        else if (typeTag === ConstType_1.ConstTyTag.pair) {\n            return (\"1\" + \"0111\" + // cons + (7).toString(2).padStart( 4, '0' ) // type application\n                \"1\" + \"0111\" + // cons + (7).toString(2).padStart( 4, '0' ) // type application\n                \"1\" + \"0110\" // cons + (5).toString(2).padStart( 4, '0' ) // pair\n            // \"0\"            // nil // not needed (well formed) types do expects other tags after pairs\n            );\n        }\n        else if (typeTag === ConstType_1.ConstTyTag.bls12_381_G1_element ||\n            typeTag === ConstType_1.ConstTyTag.bls12_381_G2_element ||\n            typeTag === ConstType_1.ConstTyTag.bls12_381_MlResult)\n            throw new Error(\"bls constants are not allowed in serialized UPLC\");\n        else {\n            return (\"1\" + typeTag.toString(2).padStart(4, '0'));\n        }\n    }\n    return bitstream_1.BitStream.fromBinStr(type.map(_serializeConstTyTagToUPLCBinaryString).join('') + \"0\");\n}\n/**\n * exported for testing purposes\n */\nfunction serializeBuiltin(bn) {\n    (0, assert_1.assert)((0, UPLCBuiltinTag_1.isUPLCBuiltinTag)(bn.tag), \"while serializing a Builtin 'bn.tag' is not a valid builtin tag: bn.tag: \" + bn.tag);\n    var nRequiredForces = (0, UPLCBuiltinTag_1.getNRequiredForces)(bn.tag);\n    var result = nRequiredForces === 0 ? new bitstream_1.BitStream(undefined) :\n        bitstream_1.BitStream.fromBinStr(\"0101\".repeat(nRequiredForces) // \"force\" tag repeated as necessary\n        );\n    result.append(Builtin_1.Builtin.UPLCTag);\n    result.append(bitstream_1.BitStream.fromBinStr(bn.tag.toString(2).padStart(7, '0') // builtin tag takes 7 bits\n    ));\n    return result;\n}\nexports.serializeBuiltin = serializeBuiltin;\n// ------------------------------------------------------------------------------------------------------------------- //\n// --------------------------------------------------- UPLCEncoder --------------------------------------------------- //\n// ------------------------------------------------------------------------------------------------------------------- //\nvar UPLCEncoder = /** @class */ (function () {\n    function UPLCEncoder() {\n        this._ctx = new UPLCSerializationContext_1.UPLCSerializationContex({\n            currLength: 0\n        });\n    }\n    UPLCEncoder.prototype.compile = function (program) {\n        var v = program.version;\n        this._ctx.updateVersion(v);\n        var uplc = program.body;\n        if (!(0, UPLCTerm_1.isPureUPLCTerm)(uplc)) {\n            throw new Error(\"'replaceHoisteTerm' did not return an 'UPLCTerm'\");\n        }\n        // might modify version if necessary\n        var encodedProgram = this.encodeTerm(uplc);\n        // version is always byte-alligned\n        var result = this.encodeVersion(this._ctx.version);\n        result.append(encodedProgram);\n        UPLCFlatUtils_1.default.padToByte(result);\n        return result;\n    };\n    Object.defineProperty(UPLCEncoder, \"compile\", {\n        get: function () {\n            return function (program) {\n                return (new UPLCEncoder()).compile(program);\n            };\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /** always byte-alligned */\n    UPLCEncoder.prototype.encodeVersion = function (version) {\n        var serialized = serializeVersion(version);\n        this._ctx.incrementLengthBy(serialized.length);\n        return serialized;\n    };\n    /** might modify version if necessary */\n    UPLCEncoder.prototype.encodeTerm = function (term) {\n        if (term instanceof UPLCVar_1.UPLCVar)\n            return this.encodeUPLCVar(term);\n        if (term instanceof Delay_1.Delay)\n            return this.encodeDelayTerm(term);\n        if (term instanceof Lambda_1.Lambda)\n            return this.encodeLambdaTerm(term);\n        if (term instanceof Application_1.Application)\n            return this.encodeApplicationTerm(term);\n        if (term instanceof UPLCConst_1.UPLCConst)\n            return this.encodeConstTerm(term);\n        if (term instanceof Force_1.Force)\n            return this.encodeForceTerm(term);\n        if (term instanceof ErrorUPLC_1.ErrorUPLC)\n            return this.encodeUPLCError(term);\n        if (term instanceof Builtin_1.Builtin)\n            return this.encodeBuiltin(term);\n        if (term instanceof Constr_1.Constr)\n            return this.encodeConstr(term);\n        if (term instanceof Case_1.Case)\n            return this.encodeCase(term);\n        throw new Error(\"'UPLCEncoder.encodeTerm' did not match any 'PureUPLCTerm'\");\n    };\n    UPLCEncoder.prototype.encodeUPLCVar = function (uplcVar) {\n        var serialized = serializeUPLCVar(uplcVar);\n        this._ctx.incrementLengthBy(serialized.length);\n        return serialized;\n    };\n    UPLCEncoder.prototype.encodeDelayTerm = function (delayed) {\n        var result = Delay_1.Delay.UPLCTag;\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeTerm(delayed.delayedTerm));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeLambdaTerm = function (lam) {\n        var result = Lambda_1.Lambda.UPLCTag;\n        this._ctx.incrementLengthBy(result.length);\n        /*\n        only the body of the lambda is encoded since the new variable is implicit\n        this is not referencied in any current specification but it is present in the `plutus` source code:\n\n        Here is where they called encode with the binder while encoding a Lambda Term\n\n        https://github.com/input-output-hk/plutus/blob/c8d4364d0e639fef4d5b93f7d6c0912d992b54f9/plutus-core/untyped-plutus-core/src/UntypedPlutusCore/Core/Instance/Flat.hs#L110\n\n\n        Here is where binder is defined\n\n        https://github.com/input-output-hk/plutus/blob/c8d4364d0e639fef4d5b93f7d6c0912d992b54f9/plutus-core/plutus-core/src/PlutusCore/Core/Type.hs#L228\n\n\n        And (most importantly) where flat encoding for binder is derived\n\n        https://github.com/input-output-hk/plutus/blob/c8d4364d0e639fef4d5b93f7d6c0912d992b54f9/plutus-core/plutus-core/src/PlutusCore/Flat.hs#L354\n        */\n        result.append(this.encodeTerm(lam.body));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeApplicationTerm = function (app) {\n        // if can use case/constr terms\n        if (this._ctx.is_v3_friendly) {\n            var args = [];\n            var term = app;\n            while (term instanceof Application_1.Application) {\n                // prepend element to keep same order\n                args.unshift(term.argTerm);\n                term = term.funcTerm;\n            }\n            // and we have more than 2 consecutive applications\n            if (args.length > 2) {\n                // use case and constr so that it costs\n                // as much as only 2 applications\n                return this.encodeCase(new Case_1.Case(new Constr_1.Constr(BigInt(0), args), \n                // only one continutation; the last func term\n                // (the one that expects the arguments)\n                [term]));\n            }\n            // else continue with normal application encoding\n        }\n        // normal application encoding\n        // always used in v1 and v2\n        var result = Application_1.Application.UPLCTag;\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeTerm(app.funcTerm));\n        result.append(this.encodeTerm(app.argTerm));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeConstTerm = function (uplcConst) {\n        var result = UPLCConst_1.UPLCConst.UPLCTag;\n        result.append(serializeConstType(uplcConst.type));\n        // tag and type where both context indipendent\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeConstValue(uplcConst.value));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeConstValue = function (value) {\n        (0, assert_1.assert)((0, ConstValue_1.isConstValue)(value), \"a 'ConstValue' instance was expected; got\" + value);\n        if ((0, crypto_1.isBlsG1)(value) ||\n            (0, crypto_1.isBlsG2)(value) ||\n            (0, crypto_1.isBlsResult)(value))\n            throw new Error(\"bls constants are not allowed in serialized UPLC\");\n        if (value === undefined)\n            return new bitstream_1.BitStream();\n        if ((0, ConstValue_1.isConstValueInt)(value)) {\n            var _i = serializeInt(value);\n            // ints are always serialized in chunks of 8 bits\n            // this should be irrelevant but still good to have\n            this._ctx.incrementLengthBy(_i.length);\n            return _i;\n        }\n        if (value instanceof bytestring_1.ByteString &&\n            (bytestring_1.ByteString.isStrictInstance(value))) {\n            // padding is added based on context\n            return this.encodeConstValueByteString(value);\n        }\n        if (typeof value === \"string\") {\n            /*\n            Section D.2.6 Strings (page 28)\n    \n            We have defined values of the string type to be sequences of Unicode characters. As mentioned earlier\n            we do not specify any particular internal representation of Unicode characters, but for serialisation we use\n            the UTF-8 representation to convert between strings and bytestrings\n            \n            **and then use the bytestring encoder and decoder**:\n            */\n            return this.encodeConstValue(new bytestring_1.ByteString((0, uint8array_utils_1.fromUtf8)(value)));\n        }\n        if (typeof value === \"boolean\") {\n            var _b = bitstream_1.BitStream.fromBinStr(value === true ? \"1\" : \"0\");\n            this._ctx.incrementLengthBy(_b.length);\n            return _b;\n        }\n        if ((0, ConstValue_1.isConstValueList)(value)) {\n            var result = new bitstream_1.BitStream();\n            /*\n            operations on bigints (BitStream underlying type) are O(n)\n            appending first to this BitStream and then to the effective result\n            should give us some performace improvements\n            */\n            var listElem = void 0;\n            for (var i = 0; i < value.length; i++) {\n                // cons\n                listElem = bitstream_1.BitStream.fromBinStr(\"1\");\n                this._ctx.incrementLengthBy(1);\n                // set list element\n                listElem.append(this.encodeConstValue(value[i]));\n                // append element\n                // length already updated since using an \"encode\" function\n                result.append(listElem);\n            }\n            // nil\n            result.append(bitstream_1.BitStream.fromBinStr(\"0\"));\n            this._ctx.incrementLengthBy(1);\n            return result;\n        }\n        if (value instanceof pair_1.Pair) {\n            var result = this.encodeConstValue(value.fst);\n            result.append(this.encodeConstValue(value.snd));\n            return result;\n        }\n        if (value instanceof cbor_1.CborString) {\n            value = (0, plutus_data_1.dataFromCbor)(value);\n        }\n        if ((0, plutus_data_1.isData)(value)) {\n            return this.encodeConstValueData(value);\n        }\n        throw new Error(\"'this.encodeConstValue' did not matched any 'ConstValue' possible type; input was: \" + value);\n    };\n    /**\n     * ### Section D.3.5\n     * The ```data``` type\n     *\n     * The 𝚍𝚊𝚝𝚊 type is encoded by converting to a bytestring using the CBOR encoding described in Note 1 of\n     * Appendix B.2 and then using 𝖤 𝕌 ∗ . The decoding process is the opposite of this: a bytestring is obtained\n     * using 𝖣 𝕌 ∗ and this is then decoded from CBOR to obtain a 𝚍𝚊𝚝𝚊 object.\n     *\n     * ### Section B.2\n     *\n     * **Note 1.** Serialising 𝚍𝚊𝚝𝚊 objects. The ```serialiseData``` function takes a 𝚍𝚊𝚝𝚊 object and converts it\n     * into a CBOR (Bormann and Hoffman [2020]) object. The encoding is based on the Haskell Data type\n     * described in Section A.1. A detailed description of the encoding will appear here at a later date, but for\n     * the time being see the Haskell code in\n     * [plutus-core/plutus-core/src/PlutusCore/Data.hs](https://github.com/input-output-hk/plutus/blob/master/plutus-core/plutus-core/src/PlutusCore/Data.hs)\n     * ([```encodeData``` line](https://github.com/input-output-hk/plutus/blob/9ef6a65067893b4f9099215ff7947da00c5cd7ac/plutus-core/plutus-core/src/PlutusCore/Data.hs#L139))\n     * in the Plutus GitHub repository IOHK [2019] for a definitive implementation.\n     *\n     * from the `encodeData` source:\n     *\n     * {- Note [The 64-byte limit]\n     *    We impose a 64-byte *on-the-wire* limit on the leaves of a serialized 'Data'. This prevents people from inserting\n     *    Mickey Mouse entire.\n     *\n     *    The simplest way of doing this is to check during deserialization that we never deserialize something that uses\n     *    more than 64-bytes, and this is largely what we do. Then it's the user's problem to not produce something too big.\n     *\n     *    But this is quite inconvenient, so see Note [Evading the 64-byte limit] for how we get around this.\n     * -}\n     * {- Note [Evading the 64-byte limit]\n     *  Implementing Note [The 64-byte limit] naively would be quite annoying:\n     *  - Users would be responsible for not creating Data values with leaves that were too big.\n     *  - If a script *required* such a thing (e.g. a counter that somehow got above 64 bytes), then the user is totally\n     *  stuck: the script demands something they cannot represent.\n     *\n     *  This is unpleasant and introduces limits. Probably limits that nobody will hit, but it's nicer to just not have them.\n     *  And it turns out that we can evade the problem with some clever encoding.\n     *\n     *  The fundamental\n     *  trick is that an *indefinite-length* CBOR bytestring is just as obfuscated as a list of bytestrings,\n     *  since it consists of a list of definite-length chunks, and each definite-length chunk must be *tagged* (at least with the size).\n     *  So we get a sequence like:\n     *\n     *  <list start>\n     *  <chunk length metadata>\n     *  <chunk>\n     *  <chunk length metadata>\n     *  ...\n     *  <list end>\n     *\n     *  The chunk length metadata has a prescribed format, such that it's difficult to manipulate it so that it\n     *  matches your \"desired\" data.\n     *  So this effectively breaks up the bytestring in much the same way as a list of <64 byte bytestrings.\n     *\n     *  So that solves the problem for bytestrings on the encoding side:\n     *  - if they are <=64 bytes, we can just encode them as a normal bytestring\n     *  - if they are >64 bytes, we encode them as indefinite-length bytestrings with 64-byte chunks\n     *\n     *  On the decoding side, we need to check when we decode that we never decode a definite-length\n     *  bytestring of >64 bytes. That covers our two cases:\n     *  - Short definite-length bytestrings are fine\n     *  - Long indefinite-length bytestrings are just made of short definite-length bytestings.\n     *\n     *   *  Unfortunately this all means that we have to write our own encoders/decoders so we can produce\n     *   *  chunks of the right size and check the sizes when we decode, but that's okay. Users need to do the same\n     *   *  thing: anyone encoding `Data` with their own encoders who doesn't split up big bytestrings in this way\n     *   *  will get failures when we decode them.\n     *\n     *  For integers, we have two cases. Small integers (<=64bits) can be encoded normally. Big integers are already\n     *  encoded *with a byte string*. The spec allows this to be an indefinite-length bytestring (although cborg doesn't\n     *  like it), so we can reuse our trick. Again, we need to write some manual encoders/decoders.\n     *  -}\n     */\n    UPLCEncoder.prototype.encodeConstValueData = function (data) {\n        var cborBytes = (0, plutus_data_1.dataToCbor)(data).toBuffer();\n        /*\n        **NOTE**\n\n        large data encoding\n\n        Before we thought this was only an UPLC serialization problem;\n        and that the UPLC builtin `serialiseData` would have just resulted\n        in a normal CBOR bytestring, no matter the length.\n\n        section 4.3.2 (Note 1) is instead clear that the above was not the case\n        and that the `serialiseData` is subject to the same serialization with\n        hard coded limit on bytestrings length\n\n        `dataToCbor` was fixed accordingly since `@harmoniclabs/plutus-data@^1.2.0`\n        so we can rely on that function both in UPLC serialization\n        and on-chain builtin `serialiseData` execution\n        */\n        return this.encodeConstValueByteString(new bytestring_1.ByteString(cborBytes));\n    };\n    /**\n     * latest specification (**_section D.2.5 Bytestrings; page 27_**)\n     * specifies how bytestrings are byte-alligned before and the first byte indicates the length\n     *\n     * **this function takes care of the length AND padding**\n     *\n     */\n    UPLCEncoder.prototype.encodeConstValueByteString = function (bs) {\n        var missingBytes = bs.toString();\n        var hexChunks = [];\n        while ((missingBytes.length / 2) > 255) {\n            hexChunks.push(\"ff\" + missingBytes.slice(0, 255 * 2));\n            missingBytes = missingBytes.slice(255 * 2);\n        }\n        if (missingBytes.length !== 0) {\n            hexChunks.push((missingBytes.length / 2).toString(16).padStart(2, '0') +\n                missingBytes);\n        }\n        // end chunk\n        hexChunks.push(\"00\");\n        var nPadBits = 8 - (this._ctx.currLength % 8);\n        // add initial padding as needed by context\n        var result = bitstream_1.BitStream.fromBinStr(\"1\".padStart(nPadBits, '0'));\n        // append chunks\n        result.append(new bitstream_1.BitStream((0, uint8array_utils_1.fromHex)(hexChunks.join('')), 0));\n        this._ctx.incrementLengthBy(result.length);\n        return result;\n    };\n    UPLCEncoder.prototype.encodeForceTerm = function (force) {\n        if (force.termToForce instanceof Delay_1.Delay) {\n            // cancels direct delays\n            return this.encodeTerm(force.termToForce.delayedTerm);\n        }\n        var result = Force_1.Force.UPLCTag;\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeTerm(force.termToForce));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeUPLCError = function (_term) {\n        var errTag = ErrorUPLC_1.ErrorUPLC.UPLCTag;\n        this._ctx.incrementLengthBy(errTag.length);\n        return errTag.clone();\n    };\n    UPLCEncoder.prototype.encodeBuiltin = function (bn) {\n        var result = serializeBuiltin(bn);\n        this._ctx.incrementLengthBy(result.length);\n        return result;\n    };\n    UPLCEncoder.prototype.encodeConstr = function (constr) {\n        if (!this._ctx.is_v3_friendly)\n            throw new Error(\"'Constr' term found using UPLC version \" +\n                this._ctx.version.toString() +\n                \"; maybe you wanted to use version 1.1.0 or higher?\");\n        var result = Constr_1.Constr.UPLCTag;\n        result.append(serializeUInt(constr.index));\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeTermList(constr.terms));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeCase = function (caseTerm) {\n        if (!this._ctx.is_v3_friendly)\n            throw new Error(\"'Case' term found using UPLC version \" +\n                this._ctx.version.toString() +\n                \"; maybe you wanted to use version 1.1.0 or higher?\");\n        var result = Case_1.Case.UPLCTag;\n        this._ctx.incrementLengthBy(result.length);\n        result.append(this.encodeTerm(caseTerm.constrTerm));\n        result.append(this.encodeTermList(caseTerm.continuations));\n        return result;\n    };\n    UPLCEncoder.prototype.encodeTermList = function (list) {\n        var _this = this;\n        if (list.length === 0) {\n            this._ctx.incrementLengthBy(1);\n            return bitstream_1.BitStream.fromBinStr(\"0\");\n        }\n        ;\n        var ctx = this._ctx;\n        var result = list\n            .reduce(function (accum, elem) {\n            var result = bitstream_1.BitStream.fromBinStr(\"1\");\n            // increment BEFORE `this.encodeTerm`\n            ctx.incrementLengthBy(1);\n            result.append(_this.encodeTerm(elem));\n            accum.append(result);\n            return accum;\n        }, new bitstream_1.BitStream(undefined));\n        ctx.incrementLengthBy(1);\n        result.append(bitstream_1.BitStream.fromBinStr(\"0\"));\n        return result;\n    };\n    return UPLCEncoder;\n}());\nexports.UPLCEncoder = UPLCEncoder;\nfunction compileUPLC(program) {\n    return (new UPLCEncoder()).compile(program);\n}\nexports.compileUPLC = compileUPLC;\n/**\n * alias for `compileUPLC`\n */\nexports.encodeUPLC = compileUPLC;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCProgram.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCProgram.js ***!
  \*************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UPLCProgram = void 0;\nvar UPLCVersion_1 = __webpack_require__(/*! ./UPLCVersion.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js\");\nvar UPLCProgram = /** @class */ (function () {\n    function UPLCProgram(version, body) {\n        if (Array.isArray(version)) {\n            this._version = new (UPLCVersion_1.UPLCVersion.bind.apply(UPLCVersion_1.UPLCVersion, __spreadArray([void 0], __read(version), false)))();\n        }\n        else {\n            this._version = version;\n        }\n        this._body = body;\n    }\n    Object.defineProperty(UPLCProgram.prototype, \"version\", {\n        get: function () { return this._version; },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    Object.defineProperty(UPLCProgram.prototype, \"body\", {\n        get: function () { return this._body; },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    return UPLCProgram;\n}());\nexports.UPLCProgram = UPLCProgram;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCProgram.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js ***!
  \*************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.defaultUplcVersion = exports.UPLCVersion = void 0;\nvar ints_1 = __webpack_require__(/*! ../utils/ints.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/ints.js\");\nvar UPLCVersion = /** @class */ (function () {\n    function UPLCVersion(major, minor, patch) {\n        this._major = (0, ints_1.forceBigUInt)(major);\n        this._minor = (0, ints_1.forceBigUInt)(minor);\n        this._patch = (0, ints_1.forceBigUInt)(patch);\n    }\n    Object.defineProperty(UPLCVersion.prototype, \"major\", {\n        get: function () { return this._major; },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    Object.defineProperty(UPLCVersion.prototype, \"minor\", {\n        get: function () { return this._minor; },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    Object.defineProperty(UPLCVersion.prototype, \"patch\", {\n        get: function () { return this._patch; },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    UPLCVersion.prototype.isV3Friendly = function () {\n        // ^1.1.0 || >= 2.*.*\n        return this.major === BigInt(1) ?\n            this.minor >= 1 :\n            this.major >= 2;\n    };\n    UPLCVersion.prototype.toString = function () {\n        return \"\".concat(this.major, \".\").concat(this.minor, \".\").concat(this.patch);\n    };\n    UPLCVersion.fromString = function (str) {\n        var _a = __read(str.split(\".\"), 3), a = _a[0], b = _a[1], c = _a[2];\n        return new UPLCVersion(BigInt(a), BigInt(b), BigInt(c));\n    };\n    return UPLCVersion;\n}());\nexports.UPLCVersion = UPLCVersion;\nexports.defaultUplcVersion = new UPLCVersion(1, 1, 0);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/index.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/index.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./UPLCProgram.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCProgram.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCVersion.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/UPLCVersion.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.eqUPLCTerm = exports.getUPLCVarRefsInTerm = exports.hasMultipleRefsInTerm = exports.hasAnyRefsInTerm = exports.prettyUPLC = exports.showUPLC = exports.showConstType = exports.showUPLCConstValue = exports.isClosedTerm = exports.isPureUPLCTerm = exports.isUPLCTerm = void 0;\nvar UPLCVar_1 = __webpack_require__(/*! ../UPLCTerms/UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\");\nvar Delay_1 = __webpack_require__(/*! ../UPLCTerms/Delay.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js\");\nvar Lambda_1 = __webpack_require__(/*! ../UPLCTerms/Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\");\nvar Application_1 = __webpack_require__(/*! ../UPLCTerms/Application.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js\");\nvar UPLCConst_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/UPLCConst.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js\");\nvar Force_1 = __webpack_require__(/*! ../UPLCTerms/Force.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js\");\nvar ErrorUPLC_1 = __webpack_require__(/*! ../UPLCTerms/ErrorUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js\");\nvar Builtin_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\");\nvar ConstType_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\");\nvar UPLCBuiltinTag_1 = __webpack_require__(/*! ../UPLCTerms/Builtin/UPLCBuiltinTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js\");\nvar ConstValue_1 = __webpack_require__(/*! ../UPLCTerms/UPLCConst/ConstValue/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js\");\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar plutus_data_1 = __webpack_require__(/*! @harmoniclabs/plutus-data */ \"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar Constr_1 = __webpack_require__(/*! ../UPLCTerms/Constr.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js\");\nvar Case_1 = __webpack_require__(/*! ../UPLCTerms/Case.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js\");\nvar crypto_1 = __webpack_require__(/*! @harmoniclabs/crypto */ \"./node_modules/@harmoniclabs/crypto/dist/index.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\n/**\n * **_O(1)_**\n * @param {UPLCTerm} t ```UPLCTerm``` to check\n * @returns {boolean} ```true``` if the argument is instance of any of the ```UPLCTerm``` constructors, ```false``` otherwise\n */\nfunction isUPLCTerm(t) {\n    // only strict instances\n    return (t instanceof UPLCVar_1.UPLCVar ||\n        t instanceof Delay_1.Delay ||\n        t instanceof Lambda_1.Lambda ||\n        t instanceof Application_1.Application ||\n        t instanceof UPLCConst_1.UPLCConst ||\n        t instanceof Force_1.Force ||\n        t instanceof ErrorUPLC_1.ErrorUPLC ||\n        t instanceof Builtin_1.Builtin ||\n        t instanceof Constr_1.Constr ||\n        t instanceof Case_1.Case);\n}\nexports.isUPLCTerm = isUPLCTerm;\n/**\n * **_O(n)_**\n * @param {UPLCTerm} t ```UPLCTerm``` to check\n * @returns {boolean} ```true``` if the AST contains only plutus-core terms, ```false``` otherwise\n */\nfunction isPureUPLCTerm(t) {\n    if (!isUPLCTerm(t))\n        return false;\n    if (t instanceof UPLCVar_1.UPLCVar)\n        return true;\n    if (t instanceof Delay_1.Delay)\n        return isPureUPLCTerm(t.delayedTerm);\n    if (t instanceof Lambda_1.Lambda)\n        return isPureUPLCTerm(t.body);\n    if (t instanceof Application_1.Application)\n        return (isPureUPLCTerm(t.argTerm) && isPureUPLCTerm(t.funcTerm));\n    if (t instanceof UPLCConst_1.UPLCConst)\n        return true;\n    if (t instanceof Force_1.Force)\n        return isPureUPLCTerm(t.termToForce);\n    if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        return true;\n    if (t instanceof Builtin_1.Builtin)\n        return true;\n    if (t instanceof Constr_1.Constr)\n        return t.terms.every(isPureUPLCTerm);\n    if (t instanceof Case_1.Case)\n        return isPureUPLCTerm(t.constrTerm) && t.continuations.every(isPureUPLCTerm);\n    return false;\n}\nexports.isPureUPLCTerm = isPureUPLCTerm;\nfunction _isClosedTerm(maxDeBruijn, t) {\n    (0, assert_1.assert)(isUPLCTerm(t), \"'isClosedTerm' functions only works on **raw** UPLCTerms\");\n    if (t instanceof UPLCVar_1.UPLCVar)\n        // deBruijn variables are 0 indexed (as arrays)\n        return maxDeBruijn > t.deBruijn;\n    else if (t instanceof Delay_1.Delay)\n        return _isClosedTerm(maxDeBruijn, t.delayedTerm);\n    else if (t instanceof Lambda_1.Lambda)\n        // increment max debruijn\n        return _isClosedTerm(maxDeBruijn + BigInt(1), t.body);\n    else if (t instanceof Application_1.Application)\n        return _isClosedTerm(maxDeBruijn, t.funcTerm) && _isClosedTerm(maxDeBruijn, t.argTerm);\n    else if (t instanceof UPLCConst_1.UPLCConst)\n        // `UPLCConst` has no variables in it, ence always closed\n        return true;\n    else if (t instanceof Force_1.Force)\n        return _isClosedTerm(maxDeBruijn, t.termToForce);\n    else if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        // `ErrorUPLC` has no variables in it, ence always closed\n        return true;\n    else if (t instanceof Builtin_1.Builtin)\n        // builtin per-se is just the function (ence a valid value),\n        // arguments are passed using the `Apply` Term\n        // so it is the `t instanceof Apply` case job\n        // to be sure the arguments are closed\n        return true;\n    else if (t instanceof Constr_1.Constr)\n        return t.terms.every(function (term) { return _isClosedTerm(maxDeBruijn, term); });\n    else if (t instanceof Case_1.Case)\n        return (_isClosedTerm(maxDeBruijn, t.constrTerm) &&\n            t.continuations.every(function (term) { return _isClosedTerm(maxDeBruijn, term); }));\n    else\n        throw new Error(\"unexpected execution flow in 'isClodeTerm'; all possibilieties should have already been handled; input term is: \" + t.toString());\n}\nfunction isClosedTerm(term) {\n    return _isClosedTerm(BigInt(0), term);\n}\nexports.isClosedTerm = isClosedTerm;\nfunction showUPLCConstValue(v) {\n    if (v === undefined)\n        return \"()\";\n    if ((0, ConstValue_1.isConstValueInt)(v))\n        return v.toString();\n    if (typeof v === \"string\")\n        return \"\\\"\".concat(v, \"\\\"\");\n    if (typeof v === \"boolean\")\n        return v ? \"True\" : \"False\";\n    if (v instanceof bytestring_1.ByteString)\n        return \"#\" + v.toString();\n    if ((0, plutus_data_1.isData)(v))\n        return v.toString();\n    if ((0, crypto_1.isBlsG1)(v))\n        return \"0x\".concat((0, uint8array_utils_1.toHex)((0, crypto_1.bls12_381_G1_compress)(v)));\n    if ((0, crypto_1.isBlsG2)(v))\n        return \"0x\".concat((0, uint8array_utils_1.toHex)((0, crypto_1.bls12_381_G2_compress)(v)));\n    if ((0, crypto_1.isBlsResult)(v))\n        return JSON.stringify(v, function (k, v) { return typeof v === \"bigint\" ? v.toString() : v; });\n    if (Array.isArray(v))\n        return \"[\" + v.map(showUPLCConstValue).join(',') + \"]\";\n    if (v instanceof pair_1.Pair)\n        return \"(\".concat(showUPLCConstValue(v.fst), \",\").concat(showUPLCConstValue(v.snd), \")\");\n    throw new Error(\"'showUPLCConstValue' did not matched any possible constant value\");\n}\nexports.showUPLCConstValue = showUPLCConstValue;\nfunction showConstType(t) {\n    if (t[0] === ConstType_1.ConstTyTag.list) {\n        return \"(list \".concat(showConstType(ConstType_1.constListTypeUtils.getTypeArgument(t)), \")\");\n    }\n    if (t[0] === ConstType_1.ConstTyTag.pair) {\n        return \"(pair \".concat(showConstType(ConstType_1.constPairTypeUtils.getFirstTypeArgument(t)), \" \").concat(showConstType(ConstType_1.constPairTypeUtils.getSecondTypeArgument(t)), \")\");\n    }\n    return (0, ConstType_1.constTypeToStirng)(t);\n}\nexports.showConstType = showConstType;\nvar vars = \"abcdefghilmopqrstuvzwxyjkABCDEFGHILJMNOPQRSTUVZWXYJK\".split('');\nfunction getVarNameForDbn(dbn) {\n    if (dbn < 0)\n        return \"(\".concat(dbn, \")\");\n    if (dbn < vars.length)\n        return vars[dbn];\n    return vars[Math.floor(dbn / vars.length)] + getVarNameForDbn(dbn - vars.length);\n}\nfunction _showUPLC(t, dbn) {\n    if (t instanceof UPLCVar_1.UPLCVar) {\n        return getVarNameForDbn(dbn - 1 - Number(t.deBruijn));\n    }\n    if (t instanceof Delay_1.Delay)\n        return \"(delay \".concat(_showUPLC(t.delayedTerm, dbn), \")\");\n    if (t instanceof Lambda_1.Lambda) {\n        return \"(lam \".concat(getVarNameForDbn(dbn), \" \").concat(_showUPLC(t.body, dbn + 1), \")\");\n    }\n    if (t instanceof Application_1.Application)\n        return \"[\".concat(_showUPLC(t.funcTerm, dbn), \" \").concat(_showUPLC(t.argTerm, dbn), \"]\");\n    if (t instanceof UPLCConst_1.UPLCConst)\n        return \"(con \".concat(showConstType(t.type), \" \").concat(showUPLCConstValue(t.value), \")\");\n    if (t instanceof Force_1.Force)\n        return \"(force \".concat(_showUPLC(t.termToForce, dbn), \")\");\n    if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        return \"(error)\";\n    if (t instanceof Builtin_1.Builtin) {\n        var nForces = (0, UPLCBuiltinTag_1.getNRequiredForces)(t.tag);\n        return \"(force \".repeat(nForces) + \"(builtin \".concat((0, UPLCBuiltinTag_1.builtinTagToString)(t.tag), \")\") + ')'.repeat(nForces);\n    }\n    if (t instanceof Constr_1.Constr) {\n        return \"(constr \" + t.index.toString() + \" \" + t.terms.map(function (term) { return _showUPLC(term, dbn); }).join(\" \") + \")\";\n    }\n    if (t instanceof Case_1.Case) {\n        return \"(case \" + _showUPLC(t.constrTerm, dbn) + \" \" + t.continuations.map(function (term) { return _showUPLC(term, dbn); }).join(\" \") + \")\";\n    }\n    return \"\";\n}\nfunction showUPLC(term) {\n    return _showUPLC(term, 0);\n}\nexports.showUPLC = showUPLC;\nfunction prettyUPLC(term, _indent) {\n    if (_indent === void 0) { _indent = 2; }\n    if (!Number.isSafeInteger(_indent) || _indent < 1)\n        return showUPLC(term);\n    var indentStr = \" \".repeat(_indent);\n    function getVarNameForDbn(dbn) {\n        if (dbn < 0)\n            return \"(\".concat(dbn, \")\");\n        if (dbn < vars.length)\n            return vars[dbn];\n        return vars[Math.floor(dbn / vars.length)] + getVarNameForDbn(dbn - vars.length);\n    }\n    function _prettyUPLC(t, dbn, depth) {\n        var indent = \"\\n\".concat(indentStr.repeat(depth));\n        if (t instanceof UPLCVar_1.UPLCVar) {\n            return indent + getVarNameForDbn(dbn - 1 - Number(t.deBruijn));\n        }\n        if (t instanceof Delay_1.Delay)\n            return \"\".concat(indent, \"(delay \").concat(_prettyUPLC(t.delayedTerm, dbn, depth + 1)).concat(indent, \")\");\n        if (t instanceof Lambda_1.Lambda) {\n            return \"\".concat(indent, \"(lam \").concat(getVarNameForDbn(dbn), \" \").concat(_prettyUPLC(t.body, dbn + 1, depth + 1)).concat(indent, \")\");\n        }\n        if (t instanceof Application_1.Application)\n            return \"\".concat(indent, \"[\").concat(_prettyUPLC(t.funcTerm, dbn, depth + 1), \" \").concat(_prettyUPLC(t.argTerm, dbn, depth + 1)).concat(indent, \"]\");\n        if (t instanceof UPLCConst_1.UPLCConst)\n            return \"\".concat(indent, \"(con \").concat(showConstType(t.type), \" \").concat(showUPLCConstValue(t.value), \")\");\n        if (t instanceof Force_1.Force)\n            return \"\".concat(indent, \"(force \").concat(_prettyUPLC(t.termToForce, dbn, depth + 1)).concat(indent, \")\");\n        if (t instanceof ErrorUPLC_1.ErrorUPLC)\n            return \"(error)\";\n        if (t instanceof Builtin_1.Builtin) {\n            var nForces = (0, UPLCBuiltinTag_1.getNRequiredForces)(t.tag);\n            return indent + \"(force \".repeat(nForces) + \"(builtin \".concat((0, UPLCBuiltinTag_1.builtinTagToString)(t.tag), \")\") + ')'.repeat(nForces);\n        }\n        if (t instanceof Constr_1.Constr) {\n            var nextIndent = indent + indentStr;\n            return indent + \"(constr \" + t.index.toString() + \"\\n\" +\n                nextIndent + \"[\" + t.terms.map(function (term) { return _prettyUPLC(term, dbn, depth + 2); }).join(\",\\n\") +\n                nextIndent + \"]\\n\" +\n                indent + \")\";\n        }\n        if (t instanceof Case_1.Case) {\n            var nextIndent = indent + indentStr;\n            return indent + \"(case\\n\" +\n                _prettyUPLC(t.constrTerm, dbn, depth + 1) + \"\\n\" +\n                nextIndent + \"[\" +\n                t.continuations.map(function (term) { return _prettyUPLC(term, dbn, depth + 2); }).join(\",\\n\") +\n                nextIndent + \"]\\n\" +\n                indent + \")\";\n        }\n        return \"\";\n    }\n    return _prettyUPLC(term, 0, 0);\n}\nexports.prettyUPLC = prettyUPLC;\n/**\n *\n * @param {number | bigint} varDeBruijn ```number | bigint```; debruijn level (at the term level) of the variable to search for\n * @param {UPLCTerm} t ```UPLCTerm``` to search in\n * @returns {boolean} ```true``` if the variable has **at least** 1 or more references; ```false``` otherwise\n */\nfunction hasAnyRefsInTerm(varDeBruijn, t) {\n    (0, assert_1.assert)(isUPLCTerm(t), \"'getUPLCVarRefsInTerm' expects an UPLCTerms\");\n    var dbn = BigInt(varDeBruijn);\n    if (t instanceof UPLCVar_1.UPLCVar)\n        return t.deBruijn === dbn;\n    if (t instanceof Delay_1.Delay)\n        return hasAnyRefsInTerm(dbn, t.delayedTerm);\n    if (t instanceof Lambda_1.Lambda)\n        return hasAnyRefsInTerm(dbn + BigInt(1), t.body);\n    if (t instanceof Application_1.Application)\n        return hasAnyRefsInTerm(dbn, t.funcTerm) || hasAnyRefsInTerm(dbn, t.argTerm);\n    if (t instanceof UPLCConst_1.UPLCConst)\n        return false;\n    if (t instanceof Force_1.Force)\n        return hasAnyRefsInTerm(dbn, t.termToForce);\n    if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        return false;\n    if (t instanceof Builtin_1.Builtin)\n        return false;\n    if (t instanceof Constr_1.Constr)\n        return t.terms.some(function (term) { return hasAnyRefsInTerm(dbn, term); });\n    if (t instanceof Case_1.Case)\n        return hasAnyRefsInTerm(dbn, t.constrTerm) || t.continuations.some(function (term) { return hasAnyRefsInTerm(dbn, term); });\n    throw new Error(\"'hasAnyRefsInTerm' did not matched any possible 'UPLCTerm' constructor\");\n}\nexports.hasAnyRefsInTerm = hasAnyRefsInTerm;\n/**\n *\n * @param {number | bigint} varDeBruijn ```number | bigint```; debruijn level (at the term level) of the variable to search for\n * @param {UPLCTerm} term ```UPLCTerm``` to search in\n * @returns {boolean} ```true``` if the variable has 2 or more references; ```false``` otherwise\n */\nfunction hasMultipleRefsInTerm(varDeBruijn, t) {\n    (0, assert_1.assert)(isUPLCTerm(t), \"'getUPLCVarRefsInTerm' expects an UPLCTerms\");\n    var dbn = BigInt(varDeBruijn);\n    if (t instanceof UPLCVar_1.UPLCVar)\n        return false; // single ref; case of multple refs is handled in 'Application' using 'hasAnyRefsInTerm'\n    if (t instanceof Delay_1.Delay)\n        return hasMultipleRefsInTerm(dbn, t.delayedTerm);\n    if (t instanceof Lambda_1.Lambda)\n        return hasMultipleRefsInTerm(dbn + BigInt(1), t.body);\n    if (t instanceof Application_1.Application)\n        return ((hasAnyRefsInTerm(dbn, t.funcTerm) && hasAnyRefsInTerm(dbn, t.argTerm)) || // referenced at least once in both terms\n            hasMultipleRefsInTerm(dbn, t.funcTerm) || // referenced multiple times in func \n            hasMultipleRefsInTerm(dbn, t.argTerm) // referenced multiple times in arg\n        );\n    if (t instanceof UPLCConst_1.UPLCConst)\n        return false;\n    if (t instanceof Force_1.Force)\n        return hasMultipleRefsInTerm(dbn, t.termToForce);\n    if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        return false;\n    if (t instanceof Builtin_1.Builtin)\n        return false;\n    if (t instanceof Constr_1.Constr)\n        return termArrayHasManyRefs(dbn, t.terms);\n    if (t instanceof Case_1.Case) {\n        return ((hasAnyRefsInTerm(dbn, t.constrTerm) &&\n            t.continuations.some(function (term) { return hasAnyRefsInTerm(dbn, term); })) ||\n            hasMultipleRefsInTerm(dbn, t.constrTerm) ||\n            termArrayHasManyRefs(dbn, t.continuations));\n    }\n    throw new Error(\"getUPLCVarRefsInTerm did not matched any possible 'UPLCTerm' constructor\");\n}\nexports.hasMultipleRefsInTerm = hasMultipleRefsInTerm;\nfunction termArrayHasManyRefs(dbn, terms) {\n    var idx = terms.findIndex(function (term) { return hasAnyRefsInTerm(dbn, term); });\n    if (idx < 0)\n        return false; // no refs at all;\n    return (terms.slice(idx + 1).some(function (term) { return hasAnyRefsInTerm(dbn, term); }) ||\n        terms.some(function (term) { return hasMultipleRefsInTerm(dbn, term); }));\n}\n/**\n *\n * @param {number | bigint} varDeBruijn ```number | bigint```; debruijn level (at the term level) of the variable to search for\n * @param {UPLCTerm} term ```UPLCTerm``` to search in\n * @returns {number} number of references to the variable\n */\nfunction getUPLCVarRefsInTerm(term, varDeBruijn) {\n    if (varDeBruijn === void 0) { varDeBruijn = 0; }\n    return _getUPLCVarRefsInTerm(BigInt(varDeBruijn), term, 0);\n}\nexports.getUPLCVarRefsInTerm = getUPLCVarRefsInTerm;\nfunction _getUPLCVarRefsInTerm(dbn, t, countedUntilNow) {\n    (0, assert_1.assert)(isUPLCTerm(t), \"'getUPLCVarRefsInTerm' expects an UPLCTerms\");\n    if (t instanceof UPLCVar_1.UPLCVar)\n        return countedUntilNow + (t.deBruijn === dbn ? 1 : 0);\n    if (t instanceof Delay_1.Delay)\n        return _getUPLCVarRefsInTerm(dbn, t.delayedTerm, countedUntilNow);\n    if (t instanceof Lambda_1.Lambda)\n        return _getUPLCVarRefsInTerm(dbn + BigInt(1), t.body, countedUntilNow);\n    if (t instanceof Application_1.Application)\n        return _getUPLCVarRefsInTerm(dbn, t.funcTerm, countedUntilNow) + _getUPLCVarRefsInTerm(dbn, t.argTerm, countedUntilNow);\n    if (t instanceof UPLCConst_1.UPLCConst)\n        return countedUntilNow;\n    if (t instanceof Force_1.Force)\n        return _getUPLCVarRefsInTerm(dbn, t.termToForce, countedUntilNow);\n    if (t instanceof ErrorUPLC_1.ErrorUPLC)\n        return countedUntilNow;\n    if (t instanceof Builtin_1.Builtin)\n        return countedUntilNow;\n    if (t instanceof Constr_1.Constr)\n        return t.terms.reduce(function (tot, term) { return _getUPLCVarRefsInTerm(dbn, term, tot); }, countedUntilNow);\n    if (t instanceof Case_1.Case)\n        return t.continuations.reduce(function (tot, term) { return _getUPLCVarRefsInTerm(dbn, term, tot); }, _getUPLCVarRefsInTerm(dbn, t.constrTerm, countedUntilNow));\n    throw new Error(\"getUPLCVarRefsInTerm did not matched any possible 'UPLCTerm' constructor\");\n}\n// type UPLCTerm = UPLCVar | Delay | Lambda | Application | UPLCConst | Force | ErrorUPLC | Builtin | Constr | Case;\nfunction eqUPLCTerm(a, b) {\n    if (a instanceof ErrorUPLC_1.ErrorUPLC)\n        return b instanceof ErrorUPLC_1.ErrorUPLC;\n    if (a instanceof UPLCVar_1.UPLCVar && b instanceof UPLCVar_1.UPLCVar)\n        return a.deBruijn === b.deBruijn;\n    if (a instanceof Delay_1.Delay && b instanceof Delay_1.Delay)\n        return eqUPLCTerm(a.delayedTerm, b.delayedTerm);\n    if (a instanceof Lambda_1.Lambda && b instanceof Lambda_1.Lambda)\n        return eqUPLCTerm(a.body, b.body);\n    if (a instanceof Application_1.Application && b instanceof Application_1.Application)\n        return (eqUPLCTerm(a.argTerm, b.argTerm) &&\n            eqUPLCTerm(a.funcTerm, b.funcTerm));\n    if (a instanceof UPLCConst_1.UPLCConst && b instanceof UPLCConst_1.UPLCConst)\n        return ((0, ConstType_1.constTypeEq)(a.type, b.type) &&\n            (0, ConstValue_1.canConstValueBeOfConstType)(a.value, a.type) &&\n            (0, ConstValue_1.canConstValueBeOfConstType)(b.value, b.type) &&\n            (function () {\n                try {\n                    return (0, ConstValue_1.eqConstValue)(a.value, b.value);\n                }\n                catch (e) {\n                    if (e instanceof RangeError)\n                        return false;\n                    throw e;\n                }\n            })());\n    if (a instanceof Force_1.Force && b instanceof Force_1.Force)\n        return eqUPLCTerm(a.termToForce, b.termToForce);\n    if (a instanceof Builtin_1.Builtin && b instanceof Builtin_1.Builtin)\n        return a.tag === b.tag;\n    if (a instanceof Constr_1.Constr && b instanceof Constr_1.Constr)\n        return (a.index === b.index &&\n            a.terms.length === b.terms.length &&\n            a.terms.every(function (t, i) { return eqUPLCTerm(t, b.terms[i]); }));\n    if (a instanceof Case_1.Case && b instanceof Case_1.Case)\n        return (eqUPLCTerm(a.constrTerm, b.constrTerm) &&\n            a.continuations.length === b.continuations.length &&\n            a.continuations.every(function (t, i) { return eqUPLCTerm(t, b.continuations[i]); }));\n    return false;\n}\nexports.eqUPLCTerm = eqUPLCTerm;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTermTag.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTermTag.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UPLCTermTag = void 0;\nvar UPLCTermTag;\n(function (UPLCTermTag) {\n    UPLCTermTag[UPLCTermTag[\"Var\"] = 0] = \"Var\";\n    UPLCTermTag[UPLCTermTag[\"Delay\"] = 1] = \"Delay\";\n    UPLCTermTag[UPLCTermTag[\"Lambda\"] = 2] = \"Lambda\";\n    UPLCTermTag[UPLCTermTag[\"Application\"] = 3] = \"Application\";\n    UPLCTermTag[UPLCTermTag[\"Const\"] = 4] = \"Const\";\n    UPLCTermTag[UPLCTermTag[\"Force\"] = 5] = \"Force\";\n    UPLCTermTag[UPLCTermTag[\"Error\"] = 6] = \"Error\";\n    UPLCTermTag[UPLCTermTag[\"Builtin\"] = 7] = \"Builtin\";\n    UPLCTermTag[UPLCTermTag[\"Constr\"] = 8] = \"Constr\";\n    UPLCTermTag[UPLCTermTag[\"Case\"] = 9] = \"Case\";\n})(UPLCTermTag = exports.UPLCTermTag || (exports.UPLCTermTag = {}));\nObject.freeze(UPLCTermTag);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTermTag.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/index.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./UPLCTerm.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js\"), exports);\n__exportStar(__webpack_require__(/*! ./parseUPLCText.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/parseUPLCText.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/parseUPLCText.js":
/*!************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/parseUPLCText.js ***!
  \************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getOffsetToNextClosingBracket = exports.parseUPLCText = exports.parseConstType = exports.parseConstValueOfType = exports._parseUPLCText = void 0;\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar UPLCTerms_1 = __webpack_require__(/*! ../UPLCTerms/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/index.js\");\nvar plutus_data_1 = __webpack_require__(/*! @harmoniclabs/plutus-data */ \"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar crypto_1 = __webpack_require__(/*! @harmoniclabs/crypto */ \"./node_modules/@harmoniclabs/crypto/dist/index.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar indexOfNextCommaOutsideParentesis_1 = __webpack_require__(/*! ../utils/indexOfNextCommaOutsideParentesis.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextCommaOutsideParentesis.js\");\nvar indexOfNextUnmatchedParentesis_1 = __webpack_require__(/*! ../utils/indexOfNextUnmatchedParentesis.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextUnmatchedParentesis.js\");\nvar getTextBetweenMatchingQuotes_1 = __webpack_require__(/*! ../utils/getTextBetweenMatchingQuotes.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/getTextBetweenMatchingQuotes.js\");\nvar indexOfMany_1 = __webpack_require__(/*! ../utils/indexOfMany.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/indexOfMany.js\");\nvar UPLCProgram_1 = __webpack_require__(/*! ../UPLCProgram/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/index.js\");\nfunction _parseUPLCText(str, env, dbn, version) {\n    // clone (other branches migh modify vars dbns)\n    env = __assign({}, env);\n    var offset = 0;\n    var sliceTrimIncr = function (n) {\n        if (n === void 0) { n = 0; }\n        var tmp = str.length;\n        str = str.slice(n).trimStart();\n        offset += tmp - str.length;\n    };\n    var throwIllFormed = function () {\n        // console.error( str );\n        throw new Error(\"ill formed uplc text\");\n    };\n    var getNextWord = function (s) {\n        if (s === void 0) { s = str; }\n        var fstSpaceIdx = s.search(/\\s/);\n        if (fstSpaceIdx < 0)\n            fstSpaceIdx = str.length - 1;\n        var varName = s.slice(0, fstSpaceIdx).trim();\n        while (varName.endsWith(\")\") ||\n            varName.endsWith(\"]\") ||\n            varName.endsWith(\" \") ||\n            varName.endsWith(\"\\n\")) {\n            varName = varName.slice(0, varName.length - 1);\n        }\n        return varName;\n    };\n    sliceTrimIncr(0);\n    var ch = str[0];\n    // drop the opening bracket;\n    if (ch === \"[\") {\n        sliceTrimIncr(1);\n        offset += getOffsetToNextClosingBracket(str, \"[\", \"]\");\n        var fn = _parseUPLCText(str, env, dbn, version);\n        str = str.slice(fn.offset + 1);\n        var arg = _parseUPLCText(str, env, dbn, version);\n        return {\n            term: new UPLCTerms_1.Application(fn.term, arg.term),\n            offset: offset\n        };\n    }\n    if (ch === \"(\") {\n        sliceTrimIncr(1);\n        if (str.startsWith(\"error\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            return {\n                term: new UPLCTerms_1.ErrorUPLC(),\n                offset: offset\n            };\n        }\n        if (str.startsWith(\"delay\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            return {\n                term: new UPLCTerms_1.Delay(_parseUPLCText(str.slice(5), env, dbn, version).term),\n                offset: offset\n            };\n        }\n        if (str.startsWith(\"force\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            var directChild = _parseUPLCText(str.slice(5), env, dbn, version).term;\n            if (directChild instanceof UPLCTerms_1.Builtin &&\n                (0, UPLCTerms_1.getNRequiredForces)(directChild.tag) === 1)\n                return {\n                    term: directChild,\n                    offset: offset\n                };\n            if (directChild instanceof UPLCTerms_1.Force &&\n                directChild.termToForce instanceof UPLCTerms_1.Builtin &&\n                (0, UPLCTerms_1.getNRequiredForces)(directChild.termToForce.tag) === 2)\n                return {\n                    term: directChild.termToForce,\n                    offset: offset\n                };\n            return {\n                term: new UPLCTerms_1.Force(directChild),\n                offset: offset\n            };\n        }\n        if (str.startsWith(\"builtin\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            str = str.slice(7).trimStart();\n            return {\n                term: new UPLCTerms_1.Builtin((0, UPLCTerms_1.builtinTagFromString)(getNextWord())),\n                offset: offset\n            };\n        }\n        if (str.startsWith(\"lam\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            str = str.slice(3).trimStart();\n            var varName_1 = getNextWord();\n            str = str.slice(varName_1.length).trimStart();\n            env[varName_1] = dbn;\n            return {\n                term: new UPLCTerms_1.Lambda(_parseUPLCText(str, env, dbn + 1, version).term),\n                offset: offset\n            };\n        }\n        if (str.startsWith(\"case\")) {\n            if (!version.isV3Friendly())\n                throw new Error(\"case uplc node found on program version: \" + version.toString());\n            sliceTrimIncr(4);\n            var closeIdx = (0, indexOfNextUnmatchedParentesis_1.indexOfNextUnmatchedParentesis)(str);\n            str = str.slice(0, closeIdx).trim();\n            var terms = [];\n            while (str.length > 0) {\n                var _a = _parseUPLCText(str, env, dbn, version), term = _a.term, offset_1 = _a.offset;\n                terms.push(term);\n                str = str.slice(offset_1).trim();\n            }\n            if (terms.length < 1)\n                throw new Error(\"ill formed uplc, missing constr term on case\");\n            return {\n                term: new UPLCTerms_1.Case(terms.shift(), terms),\n                offset: offset + closeIdx + 1\n            };\n        }\n        // \"constr\" MUST BE before \"con\"\n        if (str.startsWith(\"constr\")) {\n            if (!version.isV3Friendly())\n                throw new Error(\"case uplc node found on program version: \" + version.toString());\n            sliceTrimIncr(6);\n            var closeIdx = (0, indexOfNextUnmatchedParentesis_1.indexOfNextUnmatchedParentesis)(str);\n            str = str.slice(0, closeIdx);\n            var _b = parseConstValueOfType(str, UPLCTerms_1.constT.int), idx = _b.value, idxOffset = _b.offset;\n            str = str.slice(idxOffset);\n            if (typeof idx !== \"bigint\")\n                throw new Error(\"ill formed uplc; constr expects u64 index\");\n            var terms = [];\n            str = str.trim();\n            while (str.length > 0) {\n                var _c = _parseUPLCText(str, env, dbn, version), term = _c.term, offset_2 = _c.offset;\n                terms.push(term);\n                str = str.slice(offset_2).trim();\n            }\n            return {\n                term: new UPLCTerms_1.Constr(idx, terms),\n                offset: offset + closeIdx + 1\n            };\n        }\n        if (str.startsWith(\"con\")) {\n            offset += getOffsetToNextClosingBracket(str, \"(\", \")\");\n            str = str.slice(3).trimStart();\n            var t = parseConstType(str);\n            str = str.slice(t.offset).trimStart();\n            var v = parseConstValueOfType(str, t.type);\n            str = str.slice(v.offset).trimStart();\n            return {\n                term: new UPLCTerms_1.UPLCConst(t.type, v.value),\n                offset: offset\n            };\n        }\n    }\n    // else var\n    offset--;\n    var varName = getNextWord();\n    offset += varName.length;\n    if (varName.startsWith(\"-\")) { // out of bound var\n        return {\n            term: new UPLCTerms_1.UPLCVar(dbn + parseInt(varName.slice(1)) - 1),\n            offset: offset\n        };\n    }\n    var varDbn = env[varName];\n    if (varDbn === undefined) {\n        // console.log( env, `\"${varName}\"`, Object.keys( env )[0] === varName )\n        // throwIllFormed();\n        throw new Error(\"unbound variable found\");\n    }\n    return {\n        term: new UPLCTerms_1.UPLCVar(dbn - 1 - varDbn),\n        offset: offset\n    };\n}\nexports._parseUPLCText = _parseUPLCText;\nvar hexChars = Array.from(\"0123456789abcdef\");\nfunction isHexChar(ch) {\n    return hexChars.includes(ch[0].toLowerCase());\n}\nfunction isLowestNonNegative(a, b) {\n    return a >= 0 && (b < 0 || a < b);\n}\nfunction parseConstValueOfType(str, t) {\n    var offset = 0;\n    var sliceTrimIncr = function (n) {\n        if (n === void 0) { n = 0; }\n        var tmp = str.length;\n        str = str.slice(n).trimStart();\n        offset += tmp - str.length;\n    };\n    sliceTrimIncr(0);\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.unit)) {\n        sliceTrimIncr(str.indexOf(\"()\") + 2);\n        return {\n            value: undefined,\n            offset: offset\n        };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.int)) {\n        var closeIndex = str.indexOf(\")\");\n        var regExpRes = str\n            .slice(0, closeIndex < 0 ? undefined : closeIndex)\n            // \\+?\\-?           -> may or may nost start with \"+\" or \"-\"\n            // (?<!\\.)          -> MUST NOT have dots before\n            // (?<!(#|x)\\d*)    -> MUST NOT have before \"#\" or \"x\" with 0 or more digits (escluded bls elements and bytestrings)\n            // \\d+              -> one or more digits\n            // (?!(\\.|x))       -> MUST NOT have dots after or \"x\" (x excludes \"0x\" which are bls elems)\n            .match(/\\+?\\-?(?<!\\.)(?<!(#|x)\\d*)\\d+(?!(\\.|x))/);\n        if (regExpRes === null)\n            throw new Error(\"could not find integer for constant uplc\");\n        var nStr = regExpRes[0];\n        var value = BigInt(nStr);\n        sliceTrimIncr(str.indexOf(nStr) + nStr.length);\n        return {\n            value: value,\n            offset: offset\n        };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.str)) {\n        var quoteIdx = str.indexOf('\"');\n        if (!/^\\s*$/.test(str.slice(0, quoteIdx)))\n            throw new Error(\"ill formed uplc\");\n        sliceTrimIncr(quoteIdx);\n        var value = (0, getTextBetweenMatchingQuotes_1.getTextBetweenMatchingQuotes)(str);\n        if (typeof value !== \"string\")\n            throw new Error(\"missing constant string value\");\n        sliceTrimIncr(value.length + 2);\n        return {\n            value: value,\n            offset: offset\n        };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.bool)) {\n        var trueIdx = str.indexOf(\"True\");\n        var falseIdx = str.indexOf(\"False\");\n        if (trueIdx < 0 && falseIdx < 0)\n            throw new Error(\"expected boolean value; found none\");\n        var isTrue = isLowestNonNegative(trueIdx, falseIdx);\n        if (isTrue) {\n            sliceTrimIncr(trueIdx + 4);\n            return {\n                value: true,\n                offset: offset\n            };\n        }\n        else {\n            sliceTrimIncr(falseIdx + 5);\n            return {\n                value: false,\n                offset: offset\n            };\n        }\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.byteStr)) {\n        sliceTrimIncr(str.indexOf(\"#\") + 1);\n        var i = 0;\n        while (i < str.length && isHexChar(str[i++]))\n            ;\n        !isHexChar(str[i - 1]) && i--;\n        var hex = str.slice(0, i);\n        // we can handle it but plutus conformance doesn't allow it\n        if (hex.length % 2 === 1) {\n            throw new Error(\"invalid bytestring value: received: \" + hex);\n        }\n        sliceTrimIncr(i);\n        return {\n            value: new bytestring_1.ByteString(hex),\n            offset: offset\n        };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.data)) {\n        sliceTrimIncr(0);\n        var _a = (0, plutus_data_1.dataFromStringWithOffset)(str), data = _a.data, dataOffset = _a.offset;\n        offset += dataOffset;\n        return {\n            value: data,\n            offset: offset\n        };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.bls12_381_G1_element)) {\n        var original = str;\n        str = str.slice(0, str.indexOf(\")\") + 1).trimStart();\n        offset += (original.length - original.indexOf(str)) + 2 /*0x*/ + 96;\n        var match = str.match(/^0x[0-9a-fA-F]{96}(?![0-9a-fA-F]+)/); // 48 bytes; 96 hex chars\n        if (!match)\n            throw new Error(\"missing bls g1 compressed elem\");\n        var value = (0, crypto_1.bls12_381_G1_uncompress)((0, uint8array_utils_1.fromHex)(match[0].slice(2)));\n        return { value: value, offset: offset };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.bls12_381_G2_element)) {\n        var original = str;\n        str = str.slice(0, str.indexOf(\")\") + 1).trimStart();\n        offset += (original.length - original.indexOf(str)) + 2 /*0x*/ + 192;\n        var match = str.match(/^0x[0-9a-fA-F]{192}(?![0-9a-fA-F]+)/); // 96 bytes; 192 hex chars\n        if (!match)\n            throw new Error(\"missing bls g2 compressed elem\");\n        var value = (0, crypto_1.bls12_381_G2_uncompress)((0, uint8array_utils_1.fromHex)(match[0].slice(2)));\n        return { value: value, offset: offset };\n    }\n    if ((0, UPLCTerms_1.constTypeEq)(t, UPLCTerms_1.constT.bls12_381_MlResult)) {\n        throw new Error(\"bls12_381_MlResult const type not supported\");\n    }\n    if (t[0] === UPLCTerms_1.ConstTyTag.pair) {\n        sliceTrimIncr(str.indexOf(\"(\") + 1);\n        var commaIdx = (0, indexOfNextCommaOutsideParentesis_1.indexOfNextCommaOutsideParentesis)(str);\n        var fst = parseConstValueOfType(str.slice(0, commaIdx), UPLCTerms_1.constPairTypeUtils.getFirstTypeArgument(t));\n        sliceTrimIncr(commaIdx + 1);\n        var closeIdx = (0, indexOfNextUnmatchedParentesis_1.indexOfNextUnmatchedParentesis)(str);\n        var snd = parseConstValueOfType(str.slice(0, closeIdx), UPLCTerms_1.constPairTypeUtils.getSecondTypeArgument(t));\n        sliceTrimIncr(closeIdx + 1);\n        return {\n            value: new pair_1.Pair(fst.value, snd.value),\n            offset: offset\n        };\n    }\n    if (t[0] === UPLCTerms_1.ConstTyTag.list) {\n        sliceTrimIncr(str.indexOf(\"[\") + 1);\n        var elemsT = UPLCTerms_1.constListTypeUtils.getTypeArgument(t);\n        var elems = [];\n        while (!str.startsWith(\"]\")) {\n            var elem = parseConstValueOfType(str, elemsT);\n            sliceTrimIncr(elem.offset);\n            sliceTrimIncr(str.indexOf(\",\") + 1);\n            elems.push(elem.value);\n        }\n        return {\n            value: elems,\n            offset: offset\n        };\n    }\n    throw new Error(\"unknown const type\");\n}\nexports.parseConstValueOfType = parseConstValueOfType;\nfunction parseConstType(str) {\n    var offset = 0;\n    var sliceTrimIncr = function (n) {\n        if (n === void 0) { n = 0; }\n        var tmp = str.length;\n        str = str.slice(n).trimStart();\n        offset += tmp - str.length;\n    };\n    sliceTrimIncr(0);\n    if (str.startsWith(\"integer\")) {\n        sliceTrimIncr(7);\n        return {\n            type: UPLCTerms_1.constT.int,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"bytestring\")) {\n        sliceTrimIncr(10);\n        return {\n            type: UPLCTerms_1.constT.byteStr,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"string\")) {\n        sliceTrimIncr(6);\n        return {\n            type: UPLCTerms_1.constT.str,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"unit\")) {\n        sliceTrimIncr(4);\n        return {\n            type: UPLCTerms_1.constT.unit,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"bool\")) {\n        if (str.startsWith(\"boolean\"))\n            sliceTrimIncr(7);\n        else\n            sliceTrimIncr(4);\n        return {\n            type: UPLCTerms_1.constT.bool,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"data\")) {\n        sliceTrimIncr(4);\n        return {\n            type: UPLCTerms_1.constT.data,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"bls12_381_G1_element\")) {\n        sliceTrimIncr(\"bls12_381_G1_element\".length);\n        return {\n            type: UPLCTerms_1.constT.bls12_381_G1_element,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"bls12_381_G2_element\")) {\n        sliceTrimIncr(\"bls12_381_G2_element\".length);\n        return {\n            type: UPLCTerms_1.constT.bls12_381_G2_element,\n            offset: offset\n        };\n    }\n    if (str.startsWith(\"bls12_381_MlResult\"))\n        throw new Error(\"bls12_381_MlResult const not supported in textual UPLC\");\n    if (str.startsWith(\"(\")) {\n        sliceTrimIncr(1);\n        var listIdx = str.indexOf(\"list\");\n        var pairIdx = str.indexOf(\"pair\");\n        if (listIdx < 0 && pairIdx < 0)\n            throw new Error(\"invalid constant type; expected list or pair\");\n        var isList = isLowestNonNegative(listIdx, pairIdx);\n        var isPair = isLowestNonNegative(pairIdx, listIdx);\n        if (isList) {\n            sliceTrimIncr(listIdx + 4);\n            var elems = parseConstType(str);\n            sliceTrimIncr(elems.offset);\n            while (!str.startsWith(\")\"))\n                sliceTrimIncr(1);\n            sliceTrimIncr(1);\n            return {\n                type: UPLCTerms_1.constT.listOf(elems.type),\n                offset: offset\n            };\n        }\n        else if (isPair) {\n            sliceTrimIncr(pairIdx + 4);\n            var fst = parseConstType(str);\n            sliceTrimIncr(fst.offset);\n            while (str.startsWith(\" \") ||\n                str.startsWith(\"\\n\"))\n                sliceTrimIncr(1);\n            var snd = parseConstType(str);\n            sliceTrimIncr(snd.offset);\n            while (!str.startsWith(\")\"))\n                sliceTrimIncr(1);\n            sliceTrimIncr(1);\n            return {\n                type: UPLCTerms_1.constT.pairOf(fst.type, snd.type),\n                offset: offset\n            };\n        }\n        else {\n            console.log(str, listIdx, pairIdx);\n            throw new Error(\"invalid constant type; missing list or pair\");\n        }\n    }\n    throw new Error(\"unknown UPLC const type; src: \" + str);\n}\nexports.parseConstType = parseConstType;\nfunction parseUPLCText(str, version) {\n    if (version === void 0) { version = UPLCProgram_1.defaultUplcVersion; }\n    str = str.trim();\n    if (str.startsWith(\"(program\")) {\n        str = str.slice(8, str.lastIndexOf(\")\")).trim();\n        var verStr = str.match(/^\\d+\\.\\d+\\.\\d+(?!\\.)/);\n        if (!verStr)\n            throw new Error(\"uplc program without version\");\n        version = UPLCProgram_1.UPLCVersion.fromString(verStr[0]);\n        str = str.slice((0, indexOfMany_1.indexOfMany)(str, \"(\", \"[\"));\n    }\n    version = version instanceof UPLCProgram_1.UPLCVersion ? version : UPLCProgram_1.defaultUplcVersion;\n    return _parseUPLCText(str, {}, 0, version).term;\n}\nexports.parseUPLCText = parseUPLCText;\n/**\n *\n * @param {string} str string removed of the first opening bracket\n * @example\n * ```ts\n * const str = \"( hello )\";\n * const expectedInput = str.slice(1); // \" hello )\";\n * const offset = getOffsetToNextClosingBracket( expectedInput ); // 8\n * ```\n * @returns\n */\nfunction getOffsetToNextClosingBracket(str, openCh, closeCh) {\n    if (openCh === void 0) { openCh = \"(\"; }\n    if (closeCh === void 0) { closeCh = \")\"; }\n    var nBrackets = 1;\n    var offset = 0;\n    var ch = '';\n    while (nBrackets > 0) {\n        ch = str[offset++];\n        if (ch === openCh) {\n            nBrackets++;\n            continue;\n        }\n        if (ch === closeCh) {\n            nBrackets--;\n            continue;\n        }\n    }\n    return offset;\n}\nexports.getOffsetToNextClosingBracket = getOffsetToNextClosingBracket;\n// we have `dataFromString` from \"@harmoniclabs/plutus-data\"\n// but no way to reliably retreive the offset\n// seo\nfunction myDataFromStringWithOffset(str) {\n    var original = str;\n    var openIdx = str.indexOf(\"(\");\n    if (openIdx < 0)\n        throw new Error(\"missign opening wrapping parentesis for data\");\n    str = str.slice(openIdx + 1);\n    var offset = original.length - str.length;\n    var closeIdx = (0, indexOfNextUnmatchedParentesis_1.indexOfNextUnmatchedParentesis)(str);\n    if (closeIdx < 0)\n        throw new Error(\"missign closing wrapping parentesis for data\");\n    offset += closeIdx + 1;\n    return {\n        data: (0, plutus_data_1.dataFromString)(str.slice(0, closeIdx).trim()),\n        offset: offset\n    };\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/parseUPLCText.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js":
/*!***********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js ***!
  \***********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Application = exports.isUPLCApplicationBody = void 0;\nvar UPLCVar_1 = __webpack_require__(/*! ./UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\");\nvar Lambda_1 = __webpack_require__(/*! ./Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\");\nvar Builtin_1 = __webpack_require__(/*! ./Builtin/Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\");\nvar Force_1 = __webpack_require__(/*! ./Force.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js\");\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nfunction isUPLCApplicationBody(uplc) {\n    var proto = Object.getPrototypeOf(uplc);\n    // only strict instances\n    return (proto === UPLCVar_1.UPLCVar.prototype ||\n        proto === Lambda_1.Lambda.prototype ||\n        proto === Application.prototype ||\n        proto === Force_1.Force.prototype ||\n        proto === Builtin_1.Builtin.prototype);\n}\nexports.isUPLCApplicationBody = isUPLCApplicationBody;\nvar Application = /** @class */ (function () {\n    function Application(func, arg) {\n        this.funcTerm = func;\n        this.argTerm = arg;\n    }\n    Object.defineProperty(Application, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0011\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Application.prototype.clone = function () {\n        return new Application(this.funcTerm.clone(), this.argTerm.clone());\n    };\n    return Application;\n}());\nexports.Application = Application;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js ***!
  \***************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Builtin = void 0;\n/**\n * # 5 Built in types, functions, and values\n *\n * Plutus Core comes with a predefined set of built-in types and functions which will be useful\n * for blockchain applications.\n *\n * The set of built-ins is fixed, although in future we may provide a\n * framework to allow customisation for specialised blockchains.\n *\n * There are four basic types: unit, bool, integer, and bytestring (and strings only for debugging purposes)\n *\n * These types are given in Figure 13:\n *\n * for example (con integer) is the type of signed integers.\n *\n * We provide standard arithmetic and comparison operations for integers and a number of list-like functions for bytestrings.\n *\n * The details are given in Figure 14, using a number of abbreviations given in Figure 12.\n *\n * Note the following:\n *\n *  •   Some of the entries in Figure 14 contain success conditions. If a success condition is violated\n *      then the function immediately returns (error).\n *\n *  •   Every built-in function returns either a value or the term (error).\n *\n *  •   The ifThenElse operation is polymorphic and must be instantiated with the type of its\n *      branches before being applied: see the example below.\n *\n *  •   We provide two versions of the division and remainder operations for integers. These differ\n *      in their treatment of negative arguments.\n */\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar UPLCBuiltinTag_1 = __webpack_require__(/*! ./UPLCBuiltinTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js\");\nvar assert_1 = __webpack_require__(/*! ../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar Builtin = /** @class */ (function () {\n    function Builtin(tag) {\n        (0, assert_1.assert)((0, UPLCBuiltinTag_1.isUPLCBuiltinTag)(tag), \"cannot instatinitate a 'Builtin' using tag: \" + tag.toString());\n        this._tag = tag;\n    }\n    Object.defineProperty(Builtin, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0111\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin.prototype, \"tag\", {\n        get: function () {\n            return this._tag;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Builtin.prototype.clone = function () {\n        return new Builtin(this.tag);\n    };\n    Object.defineProperty(Builtin, \"addInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.addInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"subtractInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.subtractInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"multiplyInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.multiplyInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"divideInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.divideInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"quotientInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.quotientInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"remainderInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.remainderInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"modInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.modInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"equalsInteger\", {\n        // integers comparison operaitons\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.equalsInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"lessThanInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.lessThanInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"lessThanEqualInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.lessThanEqualInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"appendByteString\", {\n        // bytestring operations\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.appendByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"consByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.consByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"sliceByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.sliceByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"lengthOfByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.lengthOfByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"indexByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.indexByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"equalsByteString\", {\n        // bytestring comparison operations\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.equalsByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"lessThanByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.lessThanByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"lessThanEqualsByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.lessThanEqualsByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"sha2_256\", {\n        // hashes\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.sha2_256); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"sha3_256\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.sha3_256); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"blake2b_256\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.blake2b_256); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"verifyEd25519Signature\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.verifyEd25519Signature); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"appendString\", {\n        // string operations\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.appendString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"equalsString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.equalsString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"encodeUtf8\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.encodeUtf8); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"decodeUtf8\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.decodeUtf8); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"ifThenElse\", {\n        // control flow\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.ifThenElse); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"chooseUnit\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.chooseUnit); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"trace\", {\n        // tracing\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.trace); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"fstPair\", {\n        // data\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.fstPair); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"sndPair\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.sndPair); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"chooseList\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.chooseList); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"mkCons\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.mkCons); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"headList\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.headList); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"tailList\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.tailList); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"nullList\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.nullList); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"chooseData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.chooseData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"constrData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.constrData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"mapData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.mapData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"listData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.listData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"iData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.iData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"unConstrData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.unConstrData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"unMapData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.unMapData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"unListData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.unListData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"unIData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.unIData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"unBData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.unBData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"equalsData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.equalsData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"mkPairData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.mkPairData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"mkNilData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.mkNilData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"mkNilPairData\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.mkNilPairData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"serialiseData\", {\n        // Vasil (Plutus V2: Builtin)\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.serialiseData); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"verifyEcdsaSecp256k1Signature\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.verifyEcdsaSecp256k1Signature); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"verifySchnorrSecp256k1Signature\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.verifySchnorrSecp256k1Signature); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_add\", {\n        // PlutusV3\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_add); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_neg\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_neg); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_scalarMul\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_scalarMul); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_equal\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_equal); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_hashToGroup\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_hashToGroup); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_compress\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_compress); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G1_uncompress\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G1_uncompress); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_add\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_add); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_neg\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_neg); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_scalarMul\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_scalarMul); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_equal\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_equal); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_hashToGroup\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_hashToGroup); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_compress\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_compress); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_G2_uncompress\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_G2_uncompress); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_millerLoop\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_millerLoop); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_mulMlResult\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_mulMlResult); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"bls12_381_finalVerify\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.bls12_381_finalVerify); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"keccak_256\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.keccak_256); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"blake2b_224\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.blake2b_224); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"integerToByteString\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.integerToByteString); },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(Builtin, \"byteStringToInteger\", {\n        get: function () { return new Builtin(UPLCBuiltinTag_1.UPLCBuiltinTag.byteStringToInteger); },\n        enumerable: false,\n        configurable: true\n    });\n    return Builtin;\n}());\nexports.Builtin = Builtin;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js":
/*!**********************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js ***!
  \**********************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.builtinTagFromString = exports.builtinTagToString = exports.isV2Supported = exports.isV1Supported = exports.getNRequiredForces = exports.isUPLCBuiltinTag = exports.UPLCBuiltinTag = void 0;\nvar assert_1 = __webpack_require__(/*! ../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\n/**\n * to encode as 7-bits\n */\nvar UPLCBuiltinTag;\n(function (UPLCBuiltinTag) {\n    // integers monoidal operations\n    UPLCBuiltinTag[UPLCBuiltinTag[\"addInteger\"] = 0] = \"addInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"subtractInteger\"] = 1] = \"subtractInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"multiplyInteger\"] = 2] = \"multiplyInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"divideInteger\"] = 3] = \"divideInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"quotientInteger\"] = 4] = \"quotientInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"remainderInteger\"] = 5] = \"remainderInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"modInteger\"] = 6] = \"modInteger\";\n    // integers comparison operaitons\n    UPLCBuiltinTag[UPLCBuiltinTag[\"equalsInteger\"] = 7] = \"equalsInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"lessThanInteger\"] = 8] = \"lessThanInteger\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"lessThanEqualInteger\"] = 9] = \"lessThanEqualInteger\";\n    // bytestring operations\n    UPLCBuiltinTag[UPLCBuiltinTag[\"appendByteString\"] = 10] = \"appendByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"consByteString\"] = 11] = \"consByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"sliceByteString\"] = 12] = \"sliceByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"lengthOfByteString\"] = 13] = \"lengthOfByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"indexByteString\"] = 14] = \"indexByteString\";\n    // bytestring comparison operations\n    UPLCBuiltinTag[UPLCBuiltinTag[\"equalsByteString\"] = 15] = \"equalsByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"lessThanByteString\"] = 16] = \"lessThanByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"lessThanEqualsByteString\"] = 17] = \"lessThanEqualsByteString\";\n    // hashes\n    UPLCBuiltinTag[UPLCBuiltinTag[\"sha2_256\"] = 18] = \"sha2_256\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"sha3_256\"] = 19] = \"sha3_256\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"blake2b_256\"] = 20] = \"blake2b_256\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"verifyEd25519Signature\"] = 21] = \"verifyEd25519Signature\";\n    // string operations\n    UPLCBuiltinTag[UPLCBuiltinTag[\"appendString\"] = 22] = \"appendString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"equalsString\"] = 23] = \"equalsString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"encodeUtf8\"] = 24] = \"encodeUtf8\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"decodeUtf8\"] = 25] = \"decodeUtf8\";\n    // control flow\n    UPLCBuiltinTag[UPLCBuiltinTag[\"ifThenElse\"] = 26] = \"ifThenElse\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"chooseUnit\"] = 27] = \"chooseUnit\";\n    // tracing\n    UPLCBuiltinTag[UPLCBuiltinTag[\"trace\"] = 28] = \"trace\";\n    // data\n    UPLCBuiltinTag[UPLCBuiltinTag[\"fstPair\"] = 29] = \"fstPair\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"sndPair\"] = 30] = \"sndPair\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"chooseList\"] = 31] = \"chooseList\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"mkCons\"] = 32] = \"mkCons\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"headList\"] = 33] = \"headList\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"tailList\"] = 34] = \"tailList\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"nullList\"] = 35] = \"nullList\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"chooseData\"] = 36] = \"chooseData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"constrData\"] = 37] = \"constrData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"mapData\"] = 38] = \"mapData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"listData\"] = 39] = \"listData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"iData\"] = 40] = \"iData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bData\"] = 41] = \"bData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"unConstrData\"] = 42] = \"unConstrData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"unMapData\"] = 43] = \"unMapData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"unListData\"] = 44] = \"unListData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"unIData\"] = 45] = \"unIData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"unBData\"] = 46] = \"unBData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"equalsData\"] = 47] = \"equalsData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"mkPairData\"] = 48] = \"mkPairData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"mkNilData\"] = 49] = \"mkNilData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"mkNilPairData\"] = 50] = \"mkNilPairData\";\n    // Vasil (Plutus V2)\n    UPLCBuiltinTag[UPLCBuiltinTag[\"serialiseData\"] = 51] = \"serialiseData\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"verifyEcdsaSecp256k1Signature\"] = 52] = \"verifyEcdsaSecp256k1Signature\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"verifySchnorrSecp256k1Signature\"] = 53] = \"verifySchnorrSecp256k1Signature\";\n    // Plutus V3\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_add\"] = 54] = \"bls12_381_G1_add\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_neg\"] = 55] = \"bls12_381_G1_neg\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_scalarMul\"] = 56] = \"bls12_381_G1_scalarMul\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_equal\"] = 57] = \"bls12_381_G1_equal\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_hashToGroup\"] = 58] = \"bls12_381_G1_hashToGroup\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_compress\"] = 59] = \"bls12_381_G1_compress\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G1_uncompress\"] = 60] = \"bls12_381_G1_uncompress\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_add\"] = 61] = \"bls12_381_G2_add\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_neg\"] = 62] = \"bls12_381_G2_neg\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_scalarMul\"] = 63] = \"bls12_381_G2_scalarMul\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_equal\"] = 64] = \"bls12_381_G2_equal\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_hashToGroup\"] = 65] = \"bls12_381_G2_hashToGroup\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_compress\"] = 66] = \"bls12_381_G2_compress\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_G2_uncompress\"] = 67] = \"bls12_381_G2_uncompress\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_millerLoop\"] = 68] = \"bls12_381_millerLoop\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_mulMlResult\"] = 69] = \"bls12_381_mulMlResult\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"bls12_381_finalVerify\"] = 70] = \"bls12_381_finalVerify\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"keccak_256\"] = 71] = \"keccak_256\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"blake2b_224\"] = 72] = \"blake2b_224\";\n    // bitwise\n    UPLCBuiltinTag[UPLCBuiltinTag[\"integerToByteString\"] = 73] = \"integerToByteString\";\n    UPLCBuiltinTag[UPLCBuiltinTag[\"byteStringToInteger\"] = 74] = \"byteStringToInteger\";\n})(UPLCBuiltinTag = exports.UPLCBuiltinTag || (exports.UPLCBuiltinTag = {}));\nfunction isUPLCBuiltinTag(tag) {\n    return (Math.round(Math.abs(tag)) === tag // tag is a non-negative integer\n        &&\n            (tag >= 0 && tag <= 74));\n}\nexports.isUPLCBuiltinTag = isUPLCBuiltinTag;\nfunction getNRequiredForces(tag) {\n    (0, assert_1.assert)(isUPLCBuiltinTag(tag), \"in getNRequiredForces; the function is specific for UPLCBuiltinTags; input was: \".concat(tag));\n    // tags from 0 to 25 and from 37 to 53 are all fixed in type; no forces requred\n    if (tag <= 25 ||\n        // all fixed type after constrData \n        tag >= UPLCBuiltinTag.constrData) {\n        return 0;\n    }\n    // tags that do have one type parameter; 1 force\n    if (tag === UPLCBuiltinTag.ifThenElse ||\n        tag === UPLCBuiltinTag.chooseUnit ||\n        tag === UPLCBuiltinTag.trace ||\n        tag === UPLCBuiltinTag.mkCons ||\n        tag === UPLCBuiltinTag.headList ||\n        tag === UPLCBuiltinTag.tailList ||\n        tag === UPLCBuiltinTag.nullList ||\n        tag === UPLCBuiltinTag.chooseData) {\n        return 1;\n    }\n    // tags that do have two types paramters; two forces\n    if (tag === UPLCBuiltinTag.fstPair ||\n        tag === UPLCBuiltinTag.sndPair ||\n        tag === UPLCBuiltinTag.chooseList) {\n        return 2;\n    }\n    throw new Error(\"'getNRequiredForces' did not match any tag; the input was: \" + tag);\n}\nexports.getNRequiredForces = getNRequiredForces;\nfunction isV1Supported(tag) {\n    return (isUPLCBuiltinTag(tag) &&\n        tag <= 50);\n}\nexports.isV1Supported = isV1Supported;\nfunction isV2Supported(tag) {\n    return (isUPLCBuiltinTag(tag));\n}\nexports.isV2Supported = isV2Supported;\nfunction builtinTagToString(tag) {\n    switch (tag) {\n        case UPLCBuiltinTag.addInteger: return \"addInteger\";\n        case UPLCBuiltinTag.subtractInteger: return \"subtractInteger\";\n        case UPLCBuiltinTag.multiplyInteger: return \"multiplyInteger\";\n        case UPLCBuiltinTag.divideInteger: return \"divideInteger\";\n        case UPLCBuiltinTag.quotientInteger: return \"quotientInteger\";\n        case UPLCBuiltinTag.remainderInteger: return \"remainderInteger\";\n        case UPLCBuiltinTag.modInteger: return \"modInteger\";\n        case UPLCBuiltinTag.equalsInteger: return \"equalsInteger\";\n        case UPLCBuiltinTag.lessThanInteger: return \"lessThanInteger\";\n        case UPLCBuiltinTag.lessThanEqualInteger: return \"lessThanEqualsInteger\";\n        case UPLCBuiltinTag.appendByteString: return \"appendByteString\";\n        case UPLCBuiltinTag.consByteString: return \"consByteString\";\n        case UPLCBuiltinTag.sliceByteString: return \"sliceByteString\";\n        case UPLCBuiltinTag.lengthOfByteString: return \"lengthOfByteString\";\n        case UPLCBuiltinTag.indexByteString: return \"indexByteString\";\n        case UPLCBuiltinTag.equalsByteString: return \"equalsByteString\";\n        case UPLCBuiltinTag.lessThanByteString: return \"lessThanByteString\";\n        case UPLCBuiltinTag.lessThanEqualsByteString: return \"lessThanEqualsByteString\";\n        case UPLCBuiltinTag.sha2_256: return \"sha2_256\";\n        case UPLCBuiltinTag.sha3_256: return \"sha3_256\";\n        case UPLCBuiltinTag.blake2b_256: return \"blake2b_256\";\n        case UPLCBuiltinTag.verifyEd25519Signature: return \"verifyEd25519Signature\";\n        case UPLCBuiltinTag.appendString: return \"appendString\";\n        case UPLCBuiltinTag.equalsString: return \"equalsString\";\n        case UPLCBuiltinTag.encodeUtf8: return \"encodeUtf8\";\n        case UPLCBuiltinTag.decodeUtf8: return \"decodeUtf8\";\n        case UPLCBuiltinTag.ifThenElse: return \"ifThenElse\";\n        case UPLCBuiltinTag.chooseUnit: return \"chooseUnit\";\n        case UPLCBuiltinTag.trace: return \"trace\";\n        case UPLCBuiltinTag.fstPair: return \"fstPair\";\n        case UPLCBuiltinTag.sndPair: return \"sndPair\";\n        case UPLCBuiltinTag.chooseList: return \"chooseList\";\n        case UPLCBuiltinTag.mkCons: return \"mkCons\";\n        case UPLCBuiltinTag.headList: return \"headList\";\n        case UPLCBuiltinTag.tailList: return \"tailList\";\n        case UPLCBuiltinTag.nullList: return \"nullList\";\n        case UPLCBuiltinTag.chooseData: return \"chooseData\";\n        case UPLCBuiltinTag.constrData: return \"constrData\";\n        case UPLCBuiltinTag.mapData: return \"mapData\";\n        case UPLCBuiltinTag.listData: return \"listData\";\n        case UPLCBuiltinTag.iData: return \"iData\";\n        case UPLCBuiltinTag.bData: return \"bData\";\n        case UPLCBuiltinTag.unConstrData: return \"unConstrData\";\n        case UPLCBuiltinTag.unMapData: return \"unMapData\";\n        case UPLCBuiltinTag.unListData: return \"unListData\";\n        case UPLCBuiltinTag.unIData: return \"unIData\";\n        case UPLCBuiltinTag.unBData: return \"unBData\";\n        case UPLCBuiltinTag.equalsData: return \"equalsData\";\n        case UPLCBuiltinTag.mkPairData: return \"mkPairData\";\n        case UPLCBuiltinTag.mkNilData: return \"mkNilData\";\n        case UPLCBuiltinTag.mkNilPairData: return \"mkNilPairData\";\n        case UPLCBuiltinTag.serialiseData: return \"serialiseData\";\n        case UPLCBuiltinTag.verifyEcdsaSecp256k1Signature: return \"verifyEcdsaSecp256k1Signature\";\n        case UPLCBuiltinTag.verifySchnorrSecp256k1Signature: return \"verifySchnorrSecp256k1Signature\";\n        case UPLCBuiltinTag.bls12_381_G1_add: return \"bls12_381_G1_add\";\n        case UPLCBuiltinTag.bls12_381_G1_neg: return \"bls12_381_G1_neg\";\n        case UPLCBuiltinTag.bls12_381_G1_scalarMul: return \"bls12_381_G1_scalarMul\";\n        case UPLCBuiltinTag.bls12_381_G1_equal: return \"bls12_381_G1_equal\";\n        case UPLCBuiltinTag.bls12_381_G1_hashToGroup: return \"bls12_381_G1_hashToGroup\";\n        case UPLCBuiltinTag.bls12_381_G1_compress: return \"bls12_381_G1_compress\";\n        case UPLCBuiltinTag.bls12_381_G1_uncompress: return \"bls12_381_G1_uncompress\";\n        case UPLCBuiltinTag.bls12_381_G2_add: return \"bls12_381_G2_add\";\n        case UPLCBuiltinTag.bls12_381_G2_neg: return \"bls12_381_G2_neg\";\n        case UPLCBuiltinTag.bls12_381_G2_scalarMul: return \"bls12_381_G2_scalarMul\";\n        case UPLCBuiltinTag.bls12_381_G2_equal: return \"bls12_381_G2_equal\";\n        case UPLCBuiltinTag.bls12_381_G2_hashToGroup: return \"bls12_381_G2_hashToGroup\";\n        case UPLCBuiltinTag.bls12_381_G2_compress: return \"bls12_381_G2_compress\";\n        case UPLCBuiltinTag.bls12_381_G2_uncompress: return \"bls12_381_G2_uncompress\";\n        case UPLCBuiltinTag.bls12_381_millerLoop: return \"bls12_381_millerLoop\";\n        case UPLCBuiltinTag.bls12_381_mulMlResult: return \"bls12_381_mulMlResult\";\n        case UPLCBuiltinTag.bls12_381_finalVerify: return \"bls12_381_finalVerify\";\n        case UPLCBuiltinTag.keccak_256: return \"keccak_256\";\n        case UPLCBuiltinTag.blake2b_224: return \"blake2b_224\";\n        case UPLCBuiltinTag.integerToByteString: return \"integerToByteString\";\n        case UPLCBuiltinTag.byteStringToInteger: return \"byteStringToInteger\";\n        default:\n            // tag; // check that is of type 'never'\n            return \"\";\n    }\n}\nexports.builtinTagToString = builtinTagToString;\nfunction builtinTagFromString(tag) {\n    switch (tag.trim()) {\n        case \"addInteger\": return UPLCBuiltinTag.addInteger;\n        case \"subtractInteger\": return UPLCBuiltinTag.subtractInteger;\n        case \"multiplyInteger\": return UPLCBuiltinTag.multiplyInteger;\n        case \"divideInteger\": return UPLCBuiltinTag.divideInteger;\n        case \"quotientInteger\": return UPLCBuiltinTag.quotientInteger;\n        case \"remainderInteger\": return UPLCBuiltinTag.remainderInteger;\n        case \"modInteger\": return UPLCBuiltinTag.modInteger;\n        case \"equalsInteger\": return UPLCBuiltinTag.equalsInteger;\n        case \"lessThanInteger\": return UPLCBuiltinTag.lessThanInteger;\n        case \"lessThanEqualInteger\": return UPLCBuiltinTag.lessThanEqualInteger;\n        case \"lessThanEqualsInteger\": return UPLCBuiltinTag.lessThanEqualInteger;\n        case \"appendByteString\": return UPLCBuiltinTag.appendByteString;\n        case \"consByteString\": return UPLCBuiltinTag.consByteString;\n        case \"sliceByteString\": return UPLCBuiltinTag.sliceByteString;\n        case \"lengthOfByteString\": return UPLCBuiltinTag.lengthOfByteString;\n        case \"indexByteString\": return UPLCBuiltinTag.indexByteString;\n        case \"equalsByteString\": return UPLCBuiltinTag.equalsByteString;\n        case \"lessThanByteString\": return UPLCBuiltinTag.lessThanByteString;\n        case \"lessThanEqualsByteString\": return UPLCBuiltinTag.lessThanEqualsByteString;\n        case \"sha2_256\": return UPLCBuiltinTag.sha2_256;\n        case \"sha3_256\": return UPLCBuiltinTag.sha3_256;\n        case \"blake2b_256\": return UPLCBuiltinTag.blake2b_256;\n        case \"verifyEd25519Signature\": return UPLCBuiltinTag.verifyEd25519Signature;\n        case \"appendString\": return UPLCBuiltinTag.appendString;\n        case \"equalsString\": return UPLCBuiltinTag.equalsString;\n        case \"encodeUtf8\": return UPLCBuiltinTag.encodeUtf8;\n        case \"decodeUtf8\": return UPLCBuiltinTag.decodeUtf8;\n        case \"ifThenElse\": return UPLCBuiltinTag.ifThenElse;\n        case \"chooseUnit\": return UPLCBuiltinTag.chooseUnit;\n        case \"trace\": return UPLCBuiltinTag.trace;\n        case \"fstPair\": return UPLCBuiltinTag.fstPair;\n        case \"sndPair\": return UPLCBuiltinTag.sndPair;\n        case \"chooseList\": return UPLCBuiltinTag.chooseList;\n        case \"mkCons\": return UPLCBuiltinTag.mkCons;\n        case \"headList\": return UPLCBuiltinTag.headList;\n        case \"tailList\": return UPLCBuiltinTag.tailList;\n        case \"nullList\": return UPLCBuiltinTag.nullList;\n        case \"chooseData\": return UPLCBuiltinTag.chooseData;\n        case \"constrData\": return UPLCBuiltinTag.constrData;\n        case \"mapData\": return UPLCBuiltinTag.mapData;\n        case \"listData\": return UPLCBuiltinTag.listData;\n        case \"iData\": return UPLCBuiltinTag.iData;\n        case \"bData\": return UPLCBuiltinTag.bData;\n        case \"unConstrData\": return UPLCBuiltinTag.unConstrData;\n        case \"unMapData\": return UPLCBuiltinTag.unMapData;\n        case \"unListData\": return UPLCBuiltinTag.unListData;\n        case \"unIData\": return UPLCBuiltinTag.unIData;\n        case \"unBData\": return UPLCBuiltinTag.unBData;\n        case \"equalsData\": return UPLCBuiltinTag.equalsData;\n        case \"mkPairData\": return UPLCBuiltinTag.mkPairData;\n        case \"mkNilData\": return UPLCBuiltinTag.mkNilData;\n        case \"mkNilPairData\": return UPLCBuiltinTag.mkNilPairData;\n        case \"serialiseData\": return UPLCBuiltinTag.serialiseData;\n        case \"verifyEcdsaSecp256k1Signature\": return UPLCBuiltinTag.verifyEcdsaSecp256k1Signature;\n        case \"verifySchnorrSecp256k1Signature\": return UPLCBuiltinTag.verifySchnorrSecp256k1Signature;\n        case \"bls12_381_G1_add\": return UPLCBuiltinTag.bls12_381_G1_add;\n        case \"bls12_381_G1_neg\": return UPLCBuiltinTag.bls12_381_G1_neg;\n        case \"bls12_381_G1_scalarMul\": return UPLCBuiltinTag.bls12_381_G1_scalarMul;\n        case \"bls12_381_G1_equal\": return UPLCBuiltinTag.bls12_381_G1_equal;\n        case \"bls12_381_G1_hashToGroup\": return UPLCBuiltinTag.bls12_381_G1_hashToGroup;\n        case \"bls12_381_G1_compress\": return UPLCBuiltinTag.bls12_381_G1_compress;\n        case \"bls12_381_G1_uncompress\": return UPLCBuiltinTag.bls12_381_G1_uncompress;\n        case \"bls12_381_G2_add\": return UPLCBuiltinTag.bls12_381_G2_add;\n        case \"bls12_381_G2_neg\": return UPLCBuiltinTag.bls12_381_G2_neg;\n        case \"bls12_381_G2_scalarMul\": return UPLCBuiltinTag.bls12_381_G2_scalarMul;\n        case \"bls12_381_G2_equal\": return UPLCBuiltinTag.bls12_381_G2_equal;\n        case \"bls12_381_G2_hashToGroup\": return UPLCBuiltinTag.bls12_381_G2_hashToGroup;\n        case \"bls12_381_G2_compress\": return UPLCBuiltinTag.bls12_381_G2_compress;\n        case \"bls12_381_G2_uncompress\": return UPLCBuiltinTag.bls12_381_G2_uncompress;\n        case \"bls12_381_millerLoop\": return UPLCBuiltinTag.bls12_381_millerLoop;\n        case \"bls12_381_mulMlResult\": return UPLCBuiltinTag.bls12_381_mulMlResult;\n        case \"bls12_381_finalVerify\": return UPLCBuiltinTag.bls12_381_finalVerify;\n        case \"keccak_256\": return UPLCBuiltinTag.keccak_256;\n        case \"blake2b_224\": return UPLCBuiltinTag.blake2b_224;\n        case \"integerToByteString\": return UPLCBuiltinTag.integerToByteString;\n        case \"byteStringToInteger\": return UPLCBuiltinTag.byteStringToInteger;\n        default:\n            // tag; // check that is of type 'never'\n            throw new Error(\"unknow builtin: \" + tag);\n    }\n}\nexports.builtinTagFromString = builtinTagFromString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/index.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/index.js ***!
  \*************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCBuiltinTag.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/UPLCBuiltinTag.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js":
/*!****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js ***!
  \****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Case = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar Case = /** @class */ (function () {\n    function Case(constrTerm, continuations) {\n        this.constrTerm = constrTerm;\n        this.continuations = continuations;\n    }\n    Object.defineProperty(Case, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"1001\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Case.prototype.clone = function () {\n        return new Case(this.constrTerm.clone(), this.continuations.map(function (term) { return term.clone(); }));\n    };\n    return Case;\n}());\nexports.Case = Case;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Constr = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar Constr = /** @class */ (function () {\n    function Constr(index, terms) {\n        this.index = BigInt(index);\n        this.terms = terms;\n    }\n    Object.defineProperty(Constr, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"1000\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Constr.prototype.clone = function () {\n        return new Constr(this.index, this.terms.map(function (term) { return term.clone(); }));\n    };\n    return Constr;\n}());\nexports.Constr = Constr;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Delay = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar Delay = /** @class */ (function () {\n    function Delay(toDelay) {\n        this.delayedTerm = toDelay;\n    }\n    Object.defineProperty(Delay, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0001\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Delay.prototype.clone = function () {\n        return new Delay(this.delayedTerm.clone());\n    };\n    return Delay;\n}());\nexports.Delay = Delay;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js":
/*!*********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js ***!
  \*********************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ErrorUPLC = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar ErrorUPLC = /** @class */ (function () {\n    function ErrorUPLC(msg, addInfos) {\n        this.msg = msg;\n        this.addInfos = addInfos;\n    }\n    Object.defineProperty(ErrorUPLC, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0110\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    ErrorUPLC.prototype.clone = function () {\n        return new ErrorUPLC(this.msg, this.addInfos);\n    };\n    return ErrorUPLC;\n}());\nexports.ErrorUPLC = ErrorUPLC;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js ***!
  \*****************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isUPLCForce = exports.Force = exports.isForceableTerm = void 0;\nvar UPLCTerm_1 = __webpack_require__(/*! ../UPLCTerm/UPLCTerm.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/UPLCTerm.js\");\nvar Delay_1 = __webpack_require__(/*! ./Delay.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js\");\nvar UPLCVar_1 = __webpack_require__(/*! ./UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\");\nvar Lambda_1 = __webpack_require__(/*! ./Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\");\nvar Application_1 = __webpack_require__(/*! ./Application.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js\");\nvar UPLCConst_1 = __webpack_require__(/*! ./UPLCConst/UPLCConst.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js\");\nvar ErrorUPLC_1 = __webpack_require__(/*! ./ErrorUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js\");\nvar Builtin_1 = __webpack_require__(/*! ./Builtin/Builtin.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/Builtin.js\");\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nfunction isForceableTerm(term) {\n    if (!(0, UPLCTerm_1.isUPLCTerm)(term))\n        return false;\n    if (term instanceof UPLCVar_1.UPLCVar)\n        return true;\n    if (term instanceof Delay_1.Delay)\n        return true;\n    if (term instanceof Lambda_1.Lambda)\n        return false;\n    // needs evaluation\n    if (term instanceof Application_1.Application)\n        return true;\n    if (term instanceof UPLCConst_1.UPLCConst)\n        return false;\n    // needs evaluation\n    if (term instanceof Force)\n        return true;\n    if (term instanceof ErrorUPLC_1.ErrorUPLC)\n        return false;\n    // builtins that do require forces are handled in UPLC compilation\n    // applied builtins are handled in the Applicaiton case\n    if (term instanceof Builtin_1.Builtin)\n        return false;\n    return false;\n}\nexports.isForceableTerm = isForceableTerm;\nvar Force = /** @class */ (function () {\n    function Force(term) {\n        //JsRuntime.assert(\n        //    isForceableTerm( term ),\n        //    \"while constructing 'Force'; UPLCTerm is not Forceable\"\n        //);\n        this.termToForce = term;\n    }\n    Object.defineProperty(Force, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0101\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Force.prototype.clone = function () {\n        return new Force(this.termToForce.clone());\n    };\n    return Force;\n}());\nexports.Force = Force;\nfunction isUPLCForce(any) {\n    return Object.getPrototypeOf(any) === Force.prototype;\n}\nexports.isUPLCForce = isUPLCForce;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js ***!
  \******************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Lambda = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar Lambda = /** @class */ (function () {\n    function Lambda(body) {\n        this.body = body;\n    }\n    Object.defineProperty(Lambda, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0010\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Lambda.prototype.clone = function () {\n        return new Lambda(this.body.clone());\n    };\n    return Lambda;\n}());\nexports.Lambda = Lambda;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js":
/*!*************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js ***!
  \*************************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.constPairTypeUtils = exports.constListTypeUtils = exports.constTypeToStirng = exports.constTypeTagToStirng = exports.isConstTypeTag = exports.constT = exports.constTypeEq = exports.isWellFormedConstType = exports.ConstTyTag = void 0;\nvar assert_1 = __webpack_require__(/*! ../../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar ConstTyTag;\n(function (ConstTyTag) {\n    ConstTyTag[ConstTyTag[\"int\"] = 0] = \"int\";\n    ConstTyTag[ConstTyTag[\"byteStr\"] = 1] = \"byteStr\";\n    ConstTyTag[ConstTyTag[\"str\"] = 2] = \"str\";\n    ConstTyTag[ConstTyTag[\"unit\"] = 3] = \"unit\";\n    ConstTyTag[ConstTyTag[\"bool\"] = 4] = \"bool\";\n    ConstTyTag[ConstTyTag[\"list\"] = 5] = \"list\";\n    ConstTyTag[ConstTyTag[\"pair\"] = 6] = \"pair\";\n    // tyApp = 7, // only used internally for types like list and pair\n    ConstTyTag[ConstTyTag[\"data\"] = 8] = \"data\";\n    /** NEVER ENCODED; still needed for plutus-machine values */\n    ConstTyTag[ConstTyTag[\"bls12_381_G1_element\"] = 9] = \"bls12_381_G1_element\";\n    ConstTyTag[ConstTyTag[\"bls12_381_G2_element\"] = 10] = \"bls12_381_G2_element\";\n    ConstTyTag[ConstTyTag[\"bls12_381_MlResult\"] = 11] = \"bls12_381_MlResult\";\n})(ConstTyTag = exports.ConstTyTag || (exports.ConstTyTag = {}));\nfunction isWellFormedConstType(type /*ConstType | ConstTyTag[]*/) {\n    if (!Array.isArray(type))\n        return false;\n    if (type.length === 0)\n        return false;\n    if (!type.every(isConstTypeTag))\n        return false;\n    if (type[0] !== ConstTyTag.list &&\n        type[0] !== ConstTyTag.pair)\n        return (type.length === 1);\n    // keeps track of the missing terms to provide as argument\n    // well formed types from this point must start with either 'ConstTyTag.list' of 'ConstTyTag.pair'\n    // in any case the stack must count that tag as top level\n    var stack = [1];\n    if (type[0] !== ConstTyTag.list &&\n        type[0] !== ConstTyTag.pair) {\n        // returning false anyway, type has too many arguments, not well-formed\n        return false;\n    }\n    function topStackMinusOne() {\n        (0, assert_1.assert)(stack.length > 0, new Error(\"while calling 'topStackMinusOne' in 'ConstEmptyList._isWellFormedListType'; stack was empty\"));\n        var missingTyArgsToProvide = stack[stack.length - 1] - 1;\n        if (missingTyArgsToProvide < 0) {\n            throw new Error(\"while checking for type correctness in empty constant list; stack element was less than 0\");\n        }\n        stack[stack.length - 1] = missingTyArgsToProvide;\n    }\n    for (var i = 0; i < type.length; i++) {\n        var ty = type[i];\n        if (ty === ConstTyTag.list) {\n            if (!((i + 1) < type.length))\n                return false;\n            topStackMinusOne();\n            stack.push(1); // add new layer\n        }\n        else if (ty === ConstTyTag.pair) {\n            if (!((i + 2) < type.length))\n                return false;\n            topStackMinusOne();\n            stack.push(2); // add new layer for pair\n        }\n        else {\n            topStackMinusOne(); // got an argument\n        }\n        // clear fulfilled layers\n        while (stack.length > 0 &&\n            stack[stack.length - 1] === 0) {\n            stack.pop(); // clear layer\n        }\n        if ( // if\n        stack.length === 0 && // stack is empty\n            i !== (type.length - 1) // and we are not at the end of the type\n        ) {\n            return false; // addtional types provided\n        }\n        if ( // if\n        i === (type.length - 1) && // we are at the end of the type\n            stack.length !== 0 // and the stack expects some more arguments\n        ) {\n            return false; // missing some arguments\n        }\n    }\n    return true;\n}\nexports.isWellFormedConstType = isWellFormedConstType;\n/**\n * **does NOT require the types to be well-formed**\n *\n * merly checks to have the same tags at the same place\n */\nfunction constTypeEq(a, b) {\n    if (a.length !== b.length)\n        return false;\n    return a.every(function (tyTag, i) { return tyTag === b[i]; });\n}\nexports.constTypeEq = constTypeEq;\n/**\n * well formed types\n */\nexports.constT = Object.freeze({\n    int: Object.freeze([ConstTyTag.int]),\n    byteStr: Object.freeze([ConstTyTag.byteStr]),\n    str: Object.freeze([ConstTyTag.str]),\n    unit: Object.freeze([ConstTyTag.unit]),\n    bool: Object.freeze([ConstTyTag.bool]),\n    listOf: function (tyArg) {\n        (0, assert_1.assert)(isWellFormedConstType(tyArg), \"provided argument to 'constT.listOf' should be a well formed type, try using types exposed by  the 'constT' object itself\");\n        return Object.freeze(__spreadArray([ConstTyTag.list], __read(tyArg), false));\n    },\n    pairOf: function (tyArg1, tyArg2) {\n        (0, assert_1.assert)(isWellFormedConstType(tyArg1) && isWellFormedConstType(tyArg2), \"provided argument to 'constT.pairOf' should be a well formed type, try using types exposed by  the 'constT' object itself\");\n        return Object.freeze(__spreadArray(__spreadArray([ConstTyTag.pair], __read(tyArg1), false), __read(tyArg2), false));\n    },\n    data: Object.freeze([ConstTyTag.data]),\n    bls12_381_G1_element: Object.freeze([ConstTyTag.bls12_381_G1_element]),\n    bls12_381_G2_element: Object.freeze([ConstTyTag.bls12_381_G2_element]),\n    bls12_381_MlResult: Object.freeze([ConstTyTag.bls12_381_MlResult])\n});\nfunction isConstTypeTag(constTy) {\n    constTy = constTy;\n    return (constTy === ConstTyTag.int ||\n        constTy === ConstTyTag.byteStr ||\n        constTy === ConstTyTag.str ||\n        constTy === ConstTyTag.unit ||\n        constTy === ConstTyTag.bool ||\n        constTy === ConstTyTag.list ||\n        constTy === ConstTyTag.pair ||\n        // (constTyTag as number) === 7   || // uncomment if tyApp should be considered\n        constTy === ConstTyTag.data ||\n        constTy === ConstTyTag.bls12_381_G1_element ||\n        constTy === ConstTyTag.bls12_381_G2_element ||\n        constTy === ConstTyTag.bls12_381_MlResult);\n}\nexports.isConstTypeTag = isConstTypeTag;\nfunction constTypeTagToStirng(ty) {\n    switch (ty) {\n        case ConstTyTag.int: return \"integer\";\n        case ConstTyTag.byteStr: return \"bytestring\";\n        case ConstTyTag.str: return \"string\";\n        case ConstTyTag.unit: return \"unit\";\n        case ConstTyTag.bool: return \"boolean\";\n        case ConstTyTag.list: return \"list\";\n        case ConstTyTag.pair: return \"pair\";\n        case ConstTyTag.data: return \"data\";\n        case ConstTyTag.bls12_381_G1_element: return \"bls12_381_G1_element\";\n        case ConstTyTag.bls12_381_G2_element: return \"bls12_381_G2_element\";\n        case ConstTyTag.bls12_381_MlResult: return \"bls12_381_MlResult\";\n        default:\n            throw new Error(\"'constTypeTAgToStirng' is supposed to have a member of the 'ConstTy' enum as input but got: \" + ty);\n    }\n}\nexports.constTypeTagToStirng = constTypeTagToStirng;\nfunction constTypeToStirng(ty) {\n    return ty.map(constTypeTagToStirng).join(' ');\n}\nexports.constTypeToStirng = constTypeToStirng;\n// -------------------------------------------------- ConstListType Utils -------------------------------------------------- //\nfunction getConstListTypeArgument(listTy) {\n    (0, assert_1.assert)(listTy.length > 0 && listTy[0] === ConstTyTag.list && isWellFormedConstType(listTy), \"in 'constListTypeUtils.getTypeArgument', input type was not a valid list type\");\n    return listTy.slice(1);\n}\n;\nfunction getNonWellFormedConstListTypeArgument(listTy) {\n    (0, assert_1.assert)(listTy.length > 0 && listTy[0] === ConstTyTag.list, \"in 'constListTypeUtils.getTypeArgument', input type was not a valid list type\");\n    var rawArg = listTy.slice(1);\n    if (rawArg.length === 0)\n        return undefined;\n    if (isWellFormedConstType(rawArg))\n        return rawArg;\n    if (rawArg[0] !== ConstTyTag.list &&\n        rawArg[0] !== ConstTyTag.pair) {\n        return [rawArg[0]];\n    }\n    if (rawArg[0] === ConstTyTag.list) {\n        var tyArgOfList = getNonWellFormedConstListTypeArgument(rawArg);\n        if (tyArgOfList === undefined)\n            return undefined;\n        return __spreadArray([ConstTyTag.list], __read(tyArgOfList), false);\n    }\n    if (rawArg[0] === ConstTyTag.pair) {\n        var firstArg = getNonWellFormedConstPairFirstTypeArgument(rawArg);\n        if (firstArg === undefined) {\n            return undefined;\n        }\n        var secondArg = getNonWellFormedConstPairSecondTypeArgument(rawArg);\n        if (secondArg === undefined) {\n            return undefined;\n        }\n        return exports.constT.pairOf(firstArg, secondArg);\n    }\n}\nexports.constListTypeUtils = Object.freeze({\n    getTypeArgument: getConstListTypeArgument,\n    nonWellFormed: Object.freeze({\n        /**\n         *\n         * @param listTy\n         * @returns\n         *      ```undefined``` only if the type argument was not complete\n         *      returns the sliced type argument if too many where provided\n         *      same of ```constListTypeUtils.getTypeArgument``` if the type argument was well formed\n         */\n        getNonWellFormedTypeArgument: getNonWellFormedConstListTypeArgument,\n    }),\n});\n// -------------------------------------------------- ConstPairType Utils -------------------------------------------------- //\nfunction getConstPairFirstTypeArgument(pairTy) {\n    (0, assert_1.assert)(pairTy.length > 0 && pairTy[0] === ConstTyTag.pair && isWellFormedConstType(pairTy), \"in 'constPairTypeUtils.getFirstTypeArgument', input type was not a valid pair type\");\n    var rawArg = pairTy.slice(1);\n    if (rawArg.length === 0) {\n        throw new Error(\"'pairTy' was supposed to be well formed but is missing arguments for 'ConstTyTag.pair'\");\n    }\n    if (rawArg[0] !== ConstTyTag.list &&\n        rawArg[0] !== ConstTyTag.pair) {\n        // argument takes no more arguments\n        return [pairTy[1]];\n    }\n    if (rawArg[0] === ConstTyTag.list) {\n        // non well formed in order to ignore the second argument\n        var listTyArg = getNonWellFormedConstListTypeArgument(rawArg);\n        if (listTyArg === undefined) {\n            throw new Error(\"in 'getConstPairFirstTypeArgument' (exported as 'constPairTypeUtils.getFirstTypeArgument'); \" +\n                \"'listTyArg' was expected to be a well formed type but was missing some arguments to be well formed; \" +\n                \"this case sould have trown while checking for the 'pairTy' to be well formed\");\n        }\n        return __spreadArray([ConstTyTag.list], __read(listTyArg), false);\n    }\n    if (rawArg[0] === ConstTyTag.pair) {\n        var firstArg = getNonWellFormedConstPairFirstTypeArgument(rawArg);\n        if (firstArg === undefined) {\n            throw new Error(\"in 'getConstPairFirstTypeArgument'; \" +\n                \"'firstArg' was expected to be a well formed type but was missing some arguments to be well formed; \" +\n                \"this case sould have trown while checking for the 'pairTy' to be well formed\");\n        }\n        var secondArg = getNonWellFormedConstPairSecondTypeArgument(rawArg);\n        if (secondArg === undefined) {\n            throw new Error(\"in 'getConstPairFirstTypeArgument'; \" +\n                \"'secondArg' was expected to be a well formed type but was missing some arguments to be well formed; \" +\n                \"this case sould have trown while checking for the 'pairTy' to be well formed\");\n        }\n        return exports.constT.pairOf(firstArg, secondArg);\n    }\n    throw new Error(\"unexpected execution flow; 'getConstPairFirstTypeArgument' did not match any `ConstTyTag` as first argument\");\n}\nfunction getConstPairSecondTypeArgument(pairTy) {\n    /*\n    assert(\n        pairTy.length > 0 && pairTy[0] === ConstTyTag.pair && isWellFormedConstType( pairTy ),\n        \"in 'constPairTypeUtils.getFirstTypeArgument', input type was not a valid pair type\"\n    );*/ // made in the 'getConstPairFirstTypeArgument'call\n    // if pairTy is not well formed throws\n    // if doesn't throw is well formed\n    // if it is well formed the sliced part is the well formed type\n    return pairTy.slice(1 + getConstPairFirstTypeArgument(pairTy).length);\n}\nfunction getNonWellFormedConstPairFirstTypeArgument(pairTy) {\n    (0, assert_1.assert)(pairTy.length > 0 && pairTy[0] === ConstTyTag.pair, \"in 'constPairTypeUtils.getFirstTypeArgument', input type was not a valid pair type\");\n    var rawArg = pairTy.slice(1);\n    // at least two tags mus follow in order to be fulfilled\n    if (rawArg.length < 2) {\n        return undefined;\n    }\n    if (rawArg[0] !== ConstTyTag.list &&\n        rawArg[0] !== ConstTyTag.pair) {\n        // argument takes no more arguments\n        return [pairTy[1]];\n    }\n    if (rawArg[0] === ConstTyTag.list) {\n        // non well formed in order to ignore the second argument\n        var listTyArg = getNonWellFormedConstListTypeArgument(rawArg);\n        if (listTyArg === undefined)\n            return undefined;\n        return __spreadArray([ConstTyTag.list], __read(listTyArg), false);\n    }\n    if (rawArg[0] === ConstTyTag.pair) {\n        var firstArg = getNonWellFormedConstPairFirstTypeArgument(rawArg);\n        if (firstArg === undefined) {\n            return undefined;\n        }\n        var secondArg = getNonWellFormedConstPairSecondTypeArgument(rawArg);\n        if (secondArg === undefined) {\n            return undefined;\n        }\n        return exports.constT.pairOf(firstArg, secondArg);\n    }\n    throw new Error(\"unexpected execution flow; 'getNonWellFormedConstPairFirstTypeArgument' did not match any `ConstTyTag` as first argument\");\n}\nfunction getNonWellFormedConstPairSecondTypeArgument(pairTy) {\n    /*\n    assert(\n        pairTy.length > 0 && pairTy[0] === ConstTyTag.pair,\n        \"in 'constPairTypeUtils.getFirstTypeArgument', input type was not a valid pair type\"\n    );\n    */ // made in the 'getNonWellFormedConstPairFirstTypeArgument' call\n    var pairFirstTyArg = getNonWellFormedConstPairFirstTypeArgument(pairTy);\n    if (pairFirstTyArg === undefined)\n        return undefined;\n    var rawSecondArg = pairTy.slice(1 + pairFirstTyArg.length);\n    if (rawSecondArg.length === 0)\n        return undefined;\n    if (rawSecondArg[0] !== ConstTyTag.list &&\n        rawSecondArg[0] !== ConstTyTag.pair) {\n        // argument takes no more arguments\n        return [rawSecondArg[0]];\n    }\n    if (rawSecondArg[0] === ConstTyTag.list) {\n        // non well formed in order to ignore the second argument\n        var listTyArg = getNonWellFormedConstListTypeArgument(rawSecondArg);\n        if (listTyArg === undefined)\n            return undefined;\n        return __spreadArray([ConstTyTag.list], __read(listTyArg), false);\n    }\n    if (rawSecondArg[0] === ConstTyTag.pair) {\n        var firstArg = getNonWellFormedConstPairFirstTypeArgument(rawSecondArg);\n        if (firstArg === undefined) {\n            return undefined;\n        }\n        var secondArg = getNonWellFormedConstPairSecondTypeArgument(rawSecondArg);\n        if (secondArg === undefined) {\n            return undefined;\n        }\n        return exports.constT.pairOf(firstArg, secondArg);\n    }\n    throw new Error(\"unexpected execution flow; 'getNonWellFormedConstPairFirstTypeArgument' did not match any `ConstTyTag` as first argument\");\n}\nexports.constPairTypeUtils = Object.freeze({\n    getFirstTypeArgument: getConstPairFirstTypeArgument,\n    getSecondTypeArgument: getConstPairSecondTypeArgument,\n    nonWellFormed: Object.freeze({\n        /**\n         *\n         * @param listTy\n         * @returns\n         *      ```undefined``` only if the type argument was not complete\n         *      returns the sliced type argument if too many where provided\n         *      same of ```constPairTypeUtils.getFirstTypeArgument``` if the type argument was well formed\n         */\n        getFirstTypeArgument: getNonWellFormedConstPairFirstTypeArgument,\n        /**\n         *\n         * @param listTy\n         * @returns\n         *      ```undefined``` only if the type argument was not complete\n         *      returns the sliced type argument if too many where provided\n         *      same of ```constPairTypeUtils.getSecondTypeArgument``` if the type argument was well formed\n         */\n        getSecondTypeArgument: getNonWellFormedConstPairSecondTypeArgument\n    }),\n});\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isConstValueList = exports.canConstValueBeOfConstType = exports.inferConstTypeFromConstValueOrDefault = exports.inferConstTypeFromConstValue = exports.eqConstValue = exports.isConstValue = exports.isConstValueInt = void 0;\nvar bytestring_1 = __webpack_require__(/*! @harmoniclabs/bytestring */ \"./node_modules/@harmoniclabs/bytestring/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar plutus_data_1 = __webpack_require__(/*! @harmoniclabs/plutus-data */ \"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\nvar ConstType_1 = __webpack_require__(/*! ../ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\");\nvar uint8array_utils_1 = __webpack_require__(/*! @harmoniclabs/uint8array-utils */ \"./node_modules/@harmoniclabs/uint8array-utils/dist/index.js\");\nvar assert_1 = __webpack_require__(/*! ../../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar crypto_1 = __webpack_require__(/*! @harmoniclabs/crypto */ \"./node_modules/@harmoniclabs/crypto/dist/index.js\");\nfunction isConstValueInt(n) {\n    return (typeof n === \"bigint\" ||\n        (typeof n === \"number\" && Number.isSafeInteger(n)));\n}\nexports.isConstValueInt = isConstValueInt;\nfunction isConstValue(value) {\n    return (value === undefined ||\n        isConstValueInt(value) ||\n        (value instanceof bytestring_1.ByteString && bytestring_1.ByteString.isStrictInstance(value)) ||\n        typeof value === \"string\" ||\n        typeof value === \"boolean\" ||\n        isConstValueList(value) ||\n        (pair_1.Pair.isStrictInstance(value) &&\n            isConstValue(value.fst) && isConstValue(value.snd)) ||\n        (0, plutus_data_1.isData)(value) ||\n        (0, crypto_1.isBlsG1)(value) ||\n        (0, crypto_1.isBlsG2)(value) ||\n        (0, crypto_1.isBlsResult)(value));\n}\nexports.isConstValue = isConstValue;\nfunction eqConstValue(a, b) {\n    if (a === undefined)\n        return b === undefined;\n    if (!(isConstValue(a) ||\n        isConstValue(b)))\n        return false;\n    if ((typeof a === \"number\" || typeof a == \"bigint\"))\n        return ((typeof b === \"number\" || typeof b == \"bigint\") &&\n            BigInt(a) === BigInt(b));\n    if (a instanceof bytestring_1.ByteString)\n        return (b instanceof bytestring_1.ByteString &&\n            (0, uint8array_utils_1.uint8ArrayEq)(a.toBuffer(), b.toBuffer()));\n    if (typeof a === \"string\")\n        return (typeof b === \"string\" &&\n            a === b);\n    if (typeof a === \"boolean\")\n        return (typeof b === \"boolean\" &&\n            (a === b));\n    if ((0, crypto_1.isBlsG1)(a))\n        return (0, crypto_1.isBlsG1)(b) && (0, crypto_1.bls12_381_G1_equal)(a, b);\n    if ((0, crypto_1.isBlsG2)(a))\n        return (0, crypto_1.isBlsG2)(b) && (0, crypto_1.bls12_381_G2_equal)(a, b);\n    if ((0, crypto_1.isBlsResult)(a))\n        return (0, crypto_1.isBlsResult)(b) && (0, crypto_1.bls12_381_eqMlResult)(a, b);\n    if ((0, plutus_data_1.isData)(a))\n        return ((0, plutus_data_1.isData)(b) && (0, plutus_data_1.eqData)(a, b));\n    if (a instanceof pair_1.Pair)\n        return (b instanceof pair_1.Pair &&\n            eqConstValue(a.fst, b.fst) &&\n            eqConstValue(a.snd, b.snd));\n    if (Array.isArray(a))\n        return (Array.isArray(b) &&\n            a.length === b.length &&\n            a.every(function (v, i) { return eqConstValue(v, b[i]); }));\n    return false;\n}\nexports.eqConstValue = eqConstValue;\n// mutually recursive on arrays (list values)\n// inferConstTypeFromConstValue -> isConstValue -> isConstValueList (on list element) -> inferConstTypeFromConstValue\n/**\n *\n * @param val\n * @returns the type of the ```ConstValue``` input ```undefined``` if it is not possible to infer the type ( eg. [] :: list ? )\n */\nfunction inferConstTypeFromConstValue(val) {\n    (0, assert_1.assert)(isConstValue(val), \"'inferConstTypeFromConstValue' expects a valid 'ConstValue' type, input was: \" + val);\n    if (val === undefined)\n        return ConstType_1.constT.unit;\n    if (isConstValueInt(val))\n        return ConstType_1.constT.int;\n    if (val instanceof bytestring_1.ByteString && bytestring_1.ByteString.isStrictInstance(val))\n        return ConstType_1.constT.byteStr;\n    if (typeof val === \"string\")\n        return ConstType_1.constT.str;\n    if (typeof val === \"boolean\")\n        return ConstType_1.constT.bool;\n    if ((0, crypto_1.isBlsG1)(val))\n        return ConstType_1.constT.bls12_381_G1_element;\n    if ((0, crypto_1.isBlsG2)(val))\n        return ConstType_1.constT.bls12_381_G2_element;\n    if ((0, crypto_1.isBlsResult)(val))\n        return ConstType_1.constT.bls12_381_MlResult;\n    if (Array.isArray(val)) {\n        if (val.length === 0)\n            return undefined;\n        var firstElemTy_1 = undefined;\n        for (var i = 0; i < val.length && firstElemTy_1 === undefined; i++) {\n            firstElemTy_1 = inferConstTypeFromConstValue(val[i]);\n        }\n        if (firstElemTy_1 === undefined)\n            return undefined;\n        (0, assert_1.assert)(val.every(function (listElem) { return canConstValueBeOfConstType(listElem, firstElemTy_1); }), \"'inferConstTypeFromConstValue': incongruent elements of constant list\");\n        return ConstType_1.constT.listOf(firstElemTy_1);\n    }\n    if (val instanceof pair_1.Pair && pair_1.Pair.isStrictInstance(val)) {\n        var fstTy = inferConstTypeFromConstValue(val.fst);\n        if (fstTy === undefined)\n            return undefined;\n        var sndTy = inferConstTypeFromConstValue(val.snd);\n        if (sndTy === undefined)\n            return undefined;\n        return ConstType_1.constT.pairOf(fstTy, sndTy);\n    }\n    if ((0, plutus_data_1.isData)(val))\n        return ConstType_1.constT.data;\n    throw new Error(\"'inferConstTypeFromConstValue' did not match any possible value\");\n}\nexports.inferConstTypeFromConstValue = inferConstTypeFromConstValue;\n/**\n * same as ```inferConstTypeFromConstValue``` but with a default Type if it is not possible to infer\n */\nfunction inferConstTypeFromConstValueOrDefault(value, defaultTy) {\n    var _a;\n    var inferredTy = inferConstTypeFromConstValue(value);\n    if (inferredTy !== undefined) {\n        return inferredTy;\n    }\n    // it was not possible to infer the value;\n    // assert the provided default can actually have values\n    (0, assert_1.assert)((0, ConstType_1.isWellFormedConstType)(defaultTy), \"the provided 'defaultTy' is not a well formed constant type; try using the exported 'constT' object to be sure it is well formed\");\n    // assert the default type is ok for the provided value\n    (0, assert_1.assert)(canConstValueBeOfConstType(value, defaultTy), \"the provided default ConstType is not adeguate for the provided ConstValue, given inputs: [ \" +\n        ((_a = value === null || value === void 0 ? void 0 : value.toString()) !== null && _a !== void 0 ? _a : \"undefined\") + \" , \" +\n        (0, ConstType_1.constTypeToStirng)(defaultTy) + \" ]\");\n    return defaultTy;\n}\nexports.inferConstTypeFromConstValueOrDefault = inferConstTypeFromConstValueOrDefault;\nfunction canConstValueBeOfConstType(val, ty) {\n    if (!(0, ConstType_1.isWellFormedConstType)(ty))\n        return false;\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.unit))\n        return val === undefined;\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.bool))\n        return typeof val === \"boolean\";\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.byteStr))\n        return (val instanceof bytestring_1.ByteString && bytestring_1.ByteString.isStrictInstance(val));\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.data))\n        return val === undefined ? false : (0, plutus_data_1.isData)(val);\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.int))\n        return isConstValueInt(val);\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.str))\n        return typeof val === \"string\";\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.bls12_381_G1_element))\n        return (0, crypto_1.isBlsG1)(val);\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.bls12_381_G2_element))\n        return (0, crypto_1.isBlsG2)(val);\n    if ((0, ConstType_1.constTypeEq)(ty, ConstType_1.constT.bls12_381_MlResult))\n        return (0, crypto_1.isBlsResult)(val);\n    if (ty[0] === ConstType_1.ConstTyTag.list)\n        return (Array.isArray(val) &&\n            val.every(function (valueElement) {\n                return canConstValueBeOfConstType(valueElement, ConstType_1.constListTypeUtils.getTypeArgument(ty));\n            }));\n    if (ty[0] === ConstType_1.ConstTyTag.pair)\n        return (val instanceof pair_1.Pair && pair_1.Pair.isStrictInstance(val) &&\n            canConstValueBeOfConstType(val.fst, ConstType_1.constPairTypeUtils.getFirstTypeArgument(ty)) &&\n            canConstValueBeOfConstType(val.snd, ConstType_1.constPairTypeUtils.getSecondTypeArgument(ty)));\n    throw new Error(\"'canConstValueBeOfConstType' did not match any type tag\");\n}\nexports.canConstValueBeOfConstType = canConstValueBeOfConstType;\nfunction isConstValueList(val) {\n    if (!Array.isArray(val))\n        return false;\n    // [] is a valid value for any list type\n    if (val.length === 0)\n        return true;\n    var firstElemTy = undefined;\n    for (var i = 0; i < val.length && firstElemTy === undefined; i++) {\n        firstElemTy = inferConstTypeFromConstValue(val[i]);\n    }\n    function isArrayOfEmptyArray(arr) {\n        if (!Array.isArray(arr))\n            return false;\n        return arr.every(function (elem) { return Array.isArray(elem) && elem.length === 0 || isArrayOfEmptyArray(elem); });\n    }\n    if (firstElemTy === undefined) {\n        return isArrayOfEmptyArray(val);\n    }\n    return val.every(function (listElem) { return canConstValueBeOfConstType(listElem, firstElemTy); });\n}\nexports.isConstValueList = isConstValueList;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js":
/*!*******************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js ***!
  \*******************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UPLCConst = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar pair_1 = __webpack_require__(/*! @harmoniclabs/pair */ \"./node_modules/@harmoniclabs/pair/dist/index.js\");\nvar ConstType_1 = __webpack_require__(/*! ./ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\");\nvar ConstValue_1 = __webpack_require__(/*! ./ConstValue/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js\");\nvar assert_1 = __webpack_require__(/*! ../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar UPLCConst = /** @class */ (function () {\n    function UPLCConst(typeTag, value) {\n        (0, assert_1.assert)((0, ConstType_1.isWellFormedConstType)(typeTag), \"trying to construct an UPLC constant with an invalid type; input type: \" + (0, ConstType_1.constTypeToStirng)(typeTag));\n        (0, assert_1.assert)((0, ConstValue_1.canConstValueBeOfConstType)(value, typeTag), \"trying to construct an UPLC constant with an invalid value for type \\\"\".concat((0, ConstType_1.constTypeToStirng)(typeTag), \"\\\";\\n             input value was: \").concat(value));\n        if ((0, ConstType_1.constTypeEq)(typeTag, ConstType_1.constT.int))\n            value = BigInt(value);\n        if ((0, ConstType_1.constTypeEq)(typeTag, ConstType_1.constT.listOf(ConstType_1.constT.int)))\n            value = value.map(function (n) { return BigInt(n); });\n        if (typeTag[0] === ConstType_1.ConstTyTag.pair) {\n            if ((0, ConstType_1.constTypeEq)(ConstType_1.constPairTypeUtils.getFirstTypeArgument(typeTag), ConstType_1.constT.int))\n                value.fst = BigInt(value.fst);\n            if ((0, ConstType_1.constTypeEq)(ConstType_1.constPairTypeUtils.getSecondTypeArgument(typeTag), ConstType_1.constT.int))\n                value.snd = BigInt(value.snd);\n        }\n        this._type = typeTag;\n        this._value = value;\n    }\n    Object.defineProperty(UPLCConst, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0100\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    ;\n    Object.defineProperty(UPLCConst.prototype, \"type\", {\n        get: function () {\n            // clone\n            return this._type.map(function (tag) { return tag; });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(UPLCConst.prototype, \"value\", {\n        get: function () {\n            return this._value;\n        },\n        enumerable: false,\n        configurable: true\n    });\n    UPLCConst.prototype.clone = function () {\n        return new UPLCConst(this.type, this.value);\n    };\n    UPLCConst.int = function (int) {\n        int = BigInt(int);\n        return new UPLCConst(ConstType_1.constT.int, int);\n    };\n    UPLCConst.byteString = function (bs) {\n        return new UPLCConst(ConstType_1.constT.byteStr, bs);\n    };\n    UPLCConst.str = function (str) {\n        return new UPLCConst(ConstType_1.constT.str, str);\n    };\n    Object.defineProperty(UPLCConst, \"unit\", {\n        get: function () {\n            return new UPLCConst(ConstType_1.constT.unit, undefined);\n        },\n        enumerable: false,\n        configurable: true\n    });\n    UPLCConst.bool = function (bool) {\n        return new UPLCConst(ConstType_1.constT.bool, bool);\n    };\n    UPLCConst.listOf = function (typeArg) {\n        return function (values) {\n            return new UPLCConst(ConstType_1.constT.listOf(typeArg), values);\n        };\n    };\n    UPLCConst.pairOf = function (typeArgFirst, typeArgSecond) {\n        return function (first, second) {\n            return new UPLCConst(ConstType_1.constT.pairOf(typeArgFirst, typeArgSecond), new pair_1.Pair(first, second));\n        };\n    };\n    UPLCConst.data = function (data) {\n        return new UPLCConst(ConstType_1.constT.data, data);\n    };\n    UPLCConst.bls12_381_G1_element = function (g1) {\n        return new UPLCConst(ConstType_1.constT.bls12_381_G1_element, g1);\n    };\n    UPLCConst.bls12_381_G2_element = function (g2) {\n        return new UPLCConst(ConstType_1.constT.bls12_381_G2_element, g2);\n    };\n    UPLCConst.bls12_381_MlResult = function (mlResult) {\n        return new UPLCConst(ConstType_1.constT.bls12_381_MlResult, mlResult);\n    };\n    return UPLCConst;\n}());\nexports.UPLCConst = UPLCConst;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/index.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/index.js ***!
  \***************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./UPLCConst.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/UPLCConst.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ConstType/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstType/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ConstValue/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/ConstValue/index.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js":
/*!*************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js ***!
  \*************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.UPLCVar = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar ints_1 = __webpack_require__(/*! ../../utils/ints.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/ints.js\");\nvar assert_1 = __webpack_require__(/*! ../../utils/assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nvar UPLCVar = /** @class */ (function () {\n    function UPLCVar(deBruijn) {\n        this._deBruijn = (0, ints_1.forceBigUInt)(deBruijn);\n        (0, assert_1.assert)(this._deBruijn >= BigInt(0), \"invalid deBruijn index; while creating 'UPLCVar' instance, deBruijn index was: \"\n            + this._deBruijn);\n    }\n    Object.defineProperty(UPLCVar, \"UPLCTag\", {\n        get: function () {\n            return bitstream_1.BitStream.fromBinStr(\"0000\");\n        },\n        enumerable: false,\n        configurable: true\n    });\n    Object.defineProperty(UPLCVar.prototype, \"deBruijn\", {\n        get: function () { return this._deBruijn; },\n        enumerable: false,\n        configurable: true\n    });\n    UPLCVar.prototype.clone = function () {\n        return new UPLCVar(this.deBruijn);\n    };\n    return UPLCVar;\n}());\nexports.UPLCVar = UPLCVar;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/index.js":
/*!*****************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/index.js ***!
  \*****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./Application.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Application.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Builtin/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Builtin/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Delay.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Delay.js\"), exports);\n__exportStar(__webpack_require__(/*! ./ErrorUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/ErrorUPLC.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Force.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Force.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Lambda.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Lambda.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCConst/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCConst/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCVar/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/UPLCVar/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Constr.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Constr.js\"), exports);\n__exportStar(__webpack_require__(/*! ./Case.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/Case.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/index.js ***!
  \*******************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./interfaces/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/interfaces/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCDecoder/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCDecoder/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCEncoder/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCEncoder/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCProgram/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCProgram/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCTerm/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerm/index.js\"), exports);\n__exportStar(__webpack_require__(/*! ./UPLCTerms/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/UPLCTerms/index.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/interfaces/ToUPLC.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/interfaces/ToUPLC.js ***!
  \*******************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/interfaces/ToUPLC.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/interfaces/index.js":
/*!******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/interfaces/index.js ***!
  \******************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n__exportStar(__webpack_require__(/*! ./ToUPLC.js */ \"./node_modules/@harmoniclabs/uplc/dist/interfaces/ToUPLC.js\"), exports);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/interfaces/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/BitUtils/index.js":
/*!**********************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/BitUtils/index.js ***!
  \**********************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n/**\n * @static\n */\nvar BitUtils = /** @class */ (function () {\n    function BitUtils() {\n    }\n    /**\n     * @deprecated not sure it has ever made sense to have it\n     * @returns a number in range ```[ 0 , 255 ]``` ( ```[ 0b0000_0000, 0b1111_1111 ]``` ) based on the first byte\n     */\n    BitUtils.getFirstByte = function (bits) {\n        return Number(\"0x\".concat(bits.toString(16).slice(0, 2)));\n    };\n    /**\n     * @deprecated use ```andMaskOfLength``` instead\n     */\n    BitUtils.andMaskOfLengthInt = function (n) {\n        n = Math.round(Math.abs(n));\n        // operatons used are valid on singed int32\n        if (n >= 30) {\n            return BitUtils.andMaskOfLength(BigInt(n));\n        }\n        return BigInt((1 << n) - 1);\n    };\n    /**\n     * returns a ```bigint``` of that as the last ```n``` bits setted to ones;\n     *\n     * example\n     * ```ts\n     * BitUtils.getMaskOfLength( 7 ) === Bigint( 0b0111_1111 ); // true\n     * ```\n     */\n    BitUtils.andMaskOfLength = function (n) {\n        return BigInt((BigInt(1)\n            << n)\n            - BigInt(1));\n    };\n    BitUtils.getNLastBits = function (fromNuber, nBits) {\n        return (fromNuber & BitUtils.andMaskOfLength(nBits));\n    };\n    /**\n     * @returns the number of bits from the first setted to ```1``` on the left up until the end\n     */\n    BitUtils.getNOfUsedBits = function (bits) {\n        if (bits === BigInt(0))\n            return 0;\n        return bits.toString(2).length;\n    };\n    BitUtils.minBytesRequired = function (bigint) {\n        if (bigint < BigInt(0))\n            throw new Error(\"BitUtils.minBytesRequired works for positives integers only\");\n        var fullByteOnes = BigInt(255);\n        var mask = fullByteOnes;\n        var bytesRequired = 1;\n        while (bigint !== (bigint & mask)) {\n            mask = (mask << BigInt(8)) | fullByteOnes;\n            bytesRequired++;\n        }\n        return bytesRequired;\n    };\n    return BitUtils;\n}());\nexports[\"default\"] = BitUtils;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/BitUtils/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/UPLCFlatUtils/index.js":
/*!***************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/UPLCFlatUtils/index.js ***!
  \***************************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __assign = (this && this.__assign) || function () {\n    __assign = Object.assign || function(t) {\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\n            s = arguments[i];\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n                t[p] = s[p];\n        }\n        return t;\n    };\n    return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n    return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isInByteOffset = void 0;\nvar bitstream_1 = __webpack_require__(/*! @harmoniclabs/bitstream */ \"./node_modules/@harmoniclabs/bitstream/dist/index.js\");\nvar BitUtils_1 = __importDefault(__webpack_require__(/*! ../BitUtils/index.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/BitUtils/index.js\"));\nvar assert_1 = __webpack_require__(/*! ../assert.js */ \"./node_modules/@harmoniclabs/uplc/dist/utils/assert.js\");\nfunction isInByteOffset(offset) {\n    return (offset === 0 ||\n        offset === 1 ||\n        offset === 2 ||\n        offset === 3 ||\n        offset === 4 ||\n        offset === 5 ||\n        offset === 6 ||\n        offset === 7);\n}\nexports.isInByteOffset = isInByteOffset;\n/**\n * @static\n */\nvar UPLCFlatUtils = /** @class */ (function () {\n    /**\n     * @deprecated this is a @static class, it is not supposed to have instances\n     */\n    function UPLCFlatUtils() {\n    }\n    ;\n    UPLCFlatUtils.zigzagBigint = function (bigint) {\n        return (bigint >>\n            (BigInt(BitUtils_1.default.getNOfUsedBits(bigint)))) ^ // XOR\n            (bigint << BigInt(1));\n    };\n    UPLCFlatUtils.unzigzagBigint = function (bigint) {\n        return (((bigint >> BigInt(1))) ^ // XOR\n            -(bigint & BigInt(1)));\n    };\n    /**\n     * source: https://hydra.iohk.io/build/5988492/download/1/plutus-core-specification.pdf#Variable%20length%20data\n     *\n     * Non-empty lists are encoded by prefixing the element stored with ‘0’ if this is the last element\n     * or ‘1’ if there is more data following.\n     *\n     * We encode Integers as a non-empty list of chunks, 7 bits each, with the least significant chunk\n     * first and the most significant bit first in the chunk.\n     */\n    UPLCFlatUtils.encodeBigIntAsVariableLengthBitStream = function (integer) {\n        (0, assert_1.assert)(typeof integer === \"bigint\", \"expected a bigint as input; got instance of type: \" + typeof integer);\n        if (integer === BigInt(0))\n            return bitstream_1.BitStream.fromBinStr(\"00000000\");\n        (0, assert_1.assert)(integer > BigInt(0), \"'UPLCFlatUtils.encodeBigIntAsVariableLengthBitStream' can only encode non-negative integers; the given input was: \" + integer.toString());\n        // store binary string for easy BitStream creation\n        var chunks = [];\n        var mask = BigInt(127);\n        // 1. Converting to binary\n        var nBits = BitUtils_1.default.getNOfUsedBits(integer);\n        for (var nAddedBits = 0; nAddedBits < nBits; nAddedBits += 7) {\n            // 3. Reorder chunks (least significant chunk first)\n            // \n            // push at the end because the mask starts from the last signigficat chunk first\n            // so chunk[1] is the second least significant and so on\n            chunks.push(\n            // 2. Split into 7 bit chunks\n            // take 7 bits\n            ((integer & mask)\n                // allign to the start \n                >> BigInt(nAddedBits))\n                // translate to biinary\n                .toString(2)\n                // make sure the bits are 7 in total\n                .padStart(7, '0'));\n            mask = mask << BigInt(7);\n        }\n        // 4. Add list constructor tags\n        for (var i = 0; i < chunks.length; i++) {\n            chunks[i] = (i === chunks.length - 1 ? '0' : '1') + chunks[i];\n        }\n        return bitstream_1.BitStream.fromBinStr(chunks.join(''));\n    };\n    UPLCFlatUtils.getPadBitStream = function (n) {\n        (0, assert_1.assert)(isInByteOffset(n), \"addPadTo only works for pads from 0 inclusive to 7 inclusive\");\n        if (n === 0) {\n            return bitstream_1.BitStream.fromBinStr(\"1\".padStart(8, '0'));\n        }\n        return bitstream_1.BitStream.fromBinStr(\"1\".padStart(n, '0'));\n    };\n    /**\n     * **_SIDE EFFECT_**: modifies the ```toPad``` ```BitStream``` passed as first argument\n     *\n     * @param toPad\n     * @param n\n     * @returns\n     */\n    UPLCFlatUtils.addPadTo = function (toPad, n) {\n        (0, assert_1.assert)(bitstream_1.BitStream.isStrictInstance(toPad), \"BitStream strict instance expected as first argument in 'UPLCFlatUtils.addPadTo'\");\n        toPad.append(UPLCFlatUtils.getPadBitStream(n));\n        return;\n    };\n    Object.defineProperty(UPLCFlatUtils, \"padToByteDefaultOptions\", {\n        get: function () {\n            return Object.freeze({\n                onByteAllignedAddNewByte: true,\n                withOneAsEndPadding: true\n            });\n        },\n        enumerable: false,\n        configurable: true\n    });\n    /**\n     * **_SIDE EFFECT_**: modifies the ```toPad``` ```BitStream``` passed as first argument\n     *\n     * @param toPad\n     * @param options\n     * @returns\n     */\n    UPLCFlatUtils.padToByte = function (toPad, options) {\n        var opts = __assign(__assign({}, UPLCFlatUtils.padToByteDefaultOptions), (options === undefined ? {} : options));\n        var nBitsMissingToByte = toPad.getNBitsMissingToByte();\n        if (nBitsMissingToByte === 0) {\n            if (opts.onByteAllignedAddNewByte) {\n                toPad.append(bitstream_1.BitStream.fromBinStr((opts.withOneAsEndPadding ? \"1\" : \"0\").padStart(8, '0')));\n            }\n            else {\n                // do nothing, already alligned\n            }\n            return;\n        }\n        toPad.append(bitstream_1.BitStream.fromBinStr((opts.withOneAsEndPadding ? \"1\" : \"0\").padStart(nBitsMissingToByte, '0')));\n        return;\n    };\n    return UPLCFlatUtils;\n}());\nexports[\"default\"] = UPLCFlatUtils;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/UPLCFlatUtils/index.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/assert.js":
/*!**************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/assert.js ***!
  \**************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.assert = void 0;\nfunction assert(condition, errorMessage, addInfos) {\n    var args = [];\n    for (var _i = 3; _i < arguments.length; _i++) {\n        args[_i - 3] = arguments[_i];\n    }\n    if (condition)\n        return;\n    args.length > 0 && console.error.apply(console, __spreadArray([], __read(args), false));\n    addInfos && console.error(addInfos);\n    if (errorMessage instanceof Error) {\n        throw errorMessage;\n    }\n    ;\n    throw new Error(errorMessage);\n}\nexports.assert = assert;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/assert.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/getTextBetweenMatchingQuotes.js":
/*!************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/getTextBetweenMatchingQuotes.js ***!
  \************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getTextBetweenMatchingQuotes = void 0;\nfunction getTextBetweenMatchingQuotes(str) {\n    for (var i = 0, ch = \"\", openIdx = -1; i < str.length; i++) {\n        ch = str[i];\n        if (ch === '\"') {\n            if (openIdx < 0)\n                openIdx = i;\n            else\n                return str.slice(openIdx + 1, i);\n        }\n        else if (ch === \"\\\\\")\n            i++; // grab whatever is next\n    }\n    return undefined;\n}\nexports.getTextBetweenMatchingQuotes = getTextBetweenMatchingQuotes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/getTextBetweenMatchingQuotes.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/indexOfMany.js":
/*!*******************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/indexOfMany.js ***!
  \*******************************************************************/
/***/ (function(__unused_webpack_module, exports) {

"use strict";
eval("\nvar __read = (this && this.__read) || function (o, n) {\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n    if (!m) return o;\n    var i = m.call(o), r, ar = [], e;\n    try {\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n    }\n    catch (error) { e = { error: error }; }\n    finally {\n        try {\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\n        }\n        finally { if (e) throw e.error; }\n    }\n    return ar;\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n        if (ar || !(i in from)) {\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n            ar[i] = from[i];\n        }\n    }\n    return to.concat(ar || Array.prototype.slice.call(from));\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.indexOfMany = void 0;\nfunction indexOfMany(str) {\n    var search = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        search[_i - 1] = arguments[_i];\n    }\n    var idxs = search.map(function (toSearch) { return str.indexOf(toSearch); }).filter(function (idx) { return idx >= 0; });\n    return idxs.length === 0 ? -1 : Math.min.apply(Math, __spreadArray([], __read(idxs), false));\n}\nexports.indexOfMany = indexOfMany;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/indexOfMany.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextCommaOutsideParentesis.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextCommaOutsideParentesis.js ***!
  \*****************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.indexOfNextCommaOutsideParentesis = void 0;\nfunction indexOfNextCommaOutsideParentesis(str) {\n    for (var i = 0, ch = \"\", nOpen = 0, nBrackets = 0; i < str.length; i++) {\n        ch = str[i];\n        if (ch === \"(\")\n            nOpen++;\n        else if (ch === \")\")\n            nOpen--;\n        else if (ch === \"[\")\n            nBrackets++;\n        else if (ch === \"]\")\n            nBrackets--;\n        else if (ch === \",\" &&\n            nOpen <= 0 &&\n            nBrackets <= 0)\n            return i;\n    }\n    return -1;\n}\nexports.indexOfNextCommaOutsideParentesis = indexOfNextCommaOutsideParentesis;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextCommaOutsideParentesis.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextUnmatchedParentesis.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextUnmatchedParentesis.js ***!
  \**************************************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.indexOfNextUnmatchedParentesis = void 0;\nfunction indexOfNextUnmatchedParentesis(str) {\n    for (var i = 0, ch = \"\", nOpen = 0; i < str.length; i++) {\n        ch = str[i];\n        if (ch === \"(\")\n            nOpen++;\n        else if (ch === \")\")\n            nOpen--;\n        if (nOpen < 0)\n            return i;\n    }\n    return -1;\n}\nexports.indexOfNextUnmatchedParentesis = indexOfNextUnmatchedParentesis;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/indexOfNextUnmatchedParentesis.js?");

/***/ }),

/***/ "./node_modules/@harmoniclabs/uplc/dist/utils/ints.js":
/*!************************************************************!*\
  !*** ./node_modules/@harmoniclabs/uplc/dist/utils/ints.js ***!
  \************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.unsafeForceUInt = exports.forceBigUInt = exports.canBeUInteger = void 0;\nfunction canBeUInteger(something) {\n    return ((typeof something === \"bigint\" && something >= BigInt(0)) ||\n        (typeof something === \"number\" && something === Math.round(Math.abs(something))));\n}\nexports.canBeUInteger = canBeUInteger;\nfunction forceBigUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return BigInt(toForce);\n}\nexports.forceBigUInt = forceBigUInt;\n;\nfunction unsafeForceUInt(toForce) {\n    if (!canBeUInteger(toForce)) {\n        // console.error( toForce );\n        throw new Error(\"trying to convert an integer to an unsigned Integer, the number was negative\");\n    }\n    return Number(toForce);\n}\nexports.unsafeForceUInt = unsafeForceUInt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@harmoniclabs/uplc/dist/utils/ints.js?");

/***/ }),

/***/ "./node_modules/@meshsdk/core/dist/index.js":
/*!****************************************************************!*\
  !*** ./node_modules/@meshsdk/core/dist/index.js + 346 modules ***!
  \****************************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  AppWallet: () => (/* reexport */ AppWallet),\n  AssetFingerprint: () => (/* reexport */ dist_AssetFingerprint),\n  BeginProvider: () => (/* reexport */ BeginProvider),\n  BigNum: () => (/* reexport */ BigNum),\n  BlockfrostProvider: () => (/* reexport */ BlockfrostProvider),\n  BrowserWallet: () => (/* reexport */ BrowserWallet),\n  CIP68_100: () => (/* reexport */ CIP68_100),\n  CIP68_222: () => (/* reexport */ CIP68_222),\n  DEFAULT_FETCHER_OPTIONS: () => (/* reexport */ DEFAULT_FETCHER_OPTIONS),\n  DEFAULT_PROTOCOL_PARAMETERS: () => (/* reexport */ DEFAULT_PROTOCOL_PARAMETERS),\n  DEFAULT_REDEEMER_BUDGET: () => (/* reexport */ DEFAULT_REDEEMER_BUDGET),\n  DEFAULT_V1_COST_MODEL_LIST: () => (/* reexport */ DEFAULT_V1_COST_MODEL_LIST),\n  DEFAULT_V2_COST_MODEL_LIST: () => (/* reexport */ DEFAULT_V2_COST_MODEL_LIST),\n  DEFAULT_V3_COST_MODEL_LIST: () => (/* reexport */ DEFAULT_V3_COST_MODEL_LIST),\n  DREP_DEPOSIT: () => (/* reexport */ DREP_DEPOSIT),\n  EmbeddedWallet: () => (/* reexport */ EmbeddedWallet),\n  ForgeScript: () => (/* reexport */ ForgeScript),\n  HARDENED_KEY_START: () => (/* reexport */ HARDENED_KEY_START),\n  KoiosProvider: () => (/* reexport */ KoiosProvider),\n  LANGUAGE_VERSIONS: () => (/* reexport */ LANGUAGE_VERSIONS),\n  MaestroProvider: () => (/* reexport */ MaestroProvider),\n  MeshTxBuilder: () => (/* reexport */ MeshTxBuilder),\n  MeshValue: () => (/* reexport */ MeshValue),\n  MeshWallet: () => (/* reexport */ MeshWallet),\n  MintingBlueprint: () => (/* binding */ MintingBlueprint),\n  OfflineFetcher: () => (/* reexport */ OfflineFetcher),\n  OgmiosProvider: () => (/* reexport */ OgmiosProvider),\n  POLICY_ID_LENGTH: () => (/* reexport */ POLICY_ID_LENGTH),\n  SLOT_CONFIG_NETWORK: () => (/* reexport */ SLOT_CONFIG_NETWORK),\n  SUPPORTED_CLOCKS: () => (/* reexport */ SUPPORTED_CLOCKS),\n  SUPPORTED_HANDLES: () => (/* reexport */ SUPPORTED_HANDLES),\n  SUPPORTED_LANGUAGE_VIEWS: () => (/* reexport */ SUPPORTED_LANGUAGE_VIEWS),\n  SUPPORTED_OGMIOS_LINKS: () => (/* reexport */ SUPPORTED_OGMIOS_LINKS),\n  SUPPORTED_TOKENS: () => (/* reexport */ SUPPORTED_TOKENS),\n  SUPPORTED_WALLETS: () => (/* reexport */ SUPPORTED_WALLETS),\n  SpendingBlueprint: () => (/* binding */ SpendingBlueprint),\n  Transaction: () => (/* reexport */ transaction_dist_Transaction),\n  U5CProvider: () => (/* reexport */ U5CProvider),\n  UtxoSelection: () => (/* reexport */ UtxoSelection),\n  WalletStaticMethods: () => (/* reexport */ WalletStaticMethods),\n  WithdrawalBlueprint: () => (/* binding */ WithdrawalBlueprint),\n  YaciProvider: () => (/* reexport */ YaciProvider),\n  applyCborEncoding: () => (/* binding */ dist_applyCborEncoding),\n  applyParamsToScript: () => (/* binding */ applyParamsToScript2),\n  assetClass: () => (/* reexport */ assetClass),\n  assetName: () => (/* reexport */ assetName),\n  assocMap: () => (/* reexport */ assocMap),\n  bool: () => (/* reexport */ bool),\n  builtinByteString: () => (/* reexport */ builtinByteString),\n  byteString: () => (/* reexport */ byteString),\n  bytesToHex: () => (/* reexport */ dist_bytesToHex),\n  castProtocol: () => (/* reexport */ castProtocol),\n  checkSignature: () => (/* reexport */ checkSignature),\n  cloneTxBuilderBody: () => (/* reexport */ cloneTxBuilderBody),\n  conStr: () => (/* reexport */ conStr),\n  conStr0: () => (/* reexport */ conStr0),\n  conStr1: () => (/* reexport */ conStr1),\n  conStr2: () => (/* reexport */ conStr2),\n  conStr3: () => (/* reexport */ conStr3),\n  connect: () => (/* reexport */ connect),\n  core: () => (/* reexport */ core_cst_dist_namespaceObject),\n  credential: () => (/* reexport */ credential),\n  cst: () => (/* reexport */ core_cst_dist_namespaceObject),\n  currencySymbol: () => (/* reexport */ currencySymbol),\n  deserializeAddress: () => (/* binding */ dist_deserializeAddress),\n  deserializeDatum: () => (/* binding */ deserializeDatum),\n  deserializePoolId: () => (/* binding */ deserializePoolId),\n  dict: () => (/* reexport */ dict),\n  emptyTxBuilderBody: () => (/* reexport */ emptyTxBuilderBody),\n  experimentalSelectUtxos: () => (/* reexport */ experimentalSelectUtxos),\n  fromUTF8: () => (/* reexport */ fromUTF8),\n  fungibleAssetKeys: () => (/* reexport */ fungibleAssetKeys),\n  generateMnemonic: () => (/* reexport */ src.generateMnemonic),\n  generateNonce: () => (/* reexport */ generateNonce),\n  getFile: () => (/* reexport */ getFile),\n  hashByteString: () => (/* reexport */ hashByteString),\n  hashDrepAnchor: () => (/* reexport */ hashDrepAnchor),\n  hexToBytes: () => (/* reexport */ dist_hexToBytes),\n  hexToString: () => (/* reexport */ hexToString),\n  integer: () => (/* reexport */ integer),\n  isNetwork: () => (/* reexport */ isNetwork),\n  jsonProofToPlutusData: () => (/* reexport */ jsonProofToPlutusData),\n  keepRelevant: () => (/* reexport */ keepRelevant),\n  largestFirst: () => (/* reexport */ largestFirst),\n  largestFirstMultiAsset: () => (/* reexport */ largestFirstMultiAsset),\n  list: () => (/* reexport */ list),\n  login: () => (/* reexport */ login),\n  mAssetClass: () => (/* reexport */ mAssetClass),\n  mBool: () => (/* reexport */ mBool),\n  mConStr: () => (/* reexport */ mConStr),\n  mConStr0: () => (/* reexport */ mConStr0),\n  mConStr1: () => (/* reexport */ mConStr1),\n  mConStr2: () => (/* reexport */ mConStr2),\n  mConStr3: () => (/* reexport */ mConStr3),\n  mCredential: () => (/* reexport */ mCredential),\n  mMaybeStakingHash: () => (/* reexport */ mMaybeStakingHash),\n  mNone: () => (/* reexport */ mNone),\n  mOption: () => (/* reexport */ mOption),\n  mOutputReference: () => (/* reexport */ mOutputReference),\n  mPlutusBSArrayToString: () => (/* reexport */ mPlutusBSArrayToString),\n  mPubKeyAddress: () => (/* reexport */ mPubKeyAddress),\n  mScript: () => (/* reexport */ mScript),\n  mScriptAddress: () => (/* reexport */ mScriptAddress),\n  mSome: () => (/* reexport */ mSome),\n  mStringToPlutusBSArray: () => (/* reexport */ mStringToPlutusBSArray),\n  mTuple: () => (/* reexport */ mTuple),\n  mTxOutRef: () => (/* reexport */ mTxOutRef),\n  mValue: () => (/* reexport */ mValue),\n  mVerificationKey: () => (/* reexport */ mVerificationKey),\n  maybeStakingHash: () => (/* reexport */ maybeStakingHash),\n  mergeAssets: () => (/* reexport */ mergeAssets),\n  mergeContents: () => (/* reexport */ mergeContents),\n  metadataObjToMap: () => (/* reexport */ metadataObjToMap),\n  metadataStandardKeys: () => (/* reexport */ metadataStandardKeys),\n  metadataToCip68: () => (/* reexport */ metadataToCip68),\n  mnemonicToEntropy: () => (/* reexport */ src.mnemonicToEntropy),\n  none: () => (/* reexport */ none),\n  option: () => (/* reexport */ dist_option),\n  outputReference: () => (/* reexport */ outputReference),\n  pairs: () => (/* reexport */ pairs),\n  parseAssetUnit: () => (/* reexport */ parseAssetUnit),\n  plutusBSArrayToString: () => (/* reexport */ plutusBSArrayToString),\n  policyId: () => (/* reexport */ policyId),\n  posixTime: () => (/* reexport */ posixTime),\n  pubKeyAddress: () => (/* reexport */ pubKeyAddress),\n  pubKeyHash: () => (/* reexport */ pubKeyHash),\n  register: () => (/* reexport */ register),\n  resolveDataHash: () => (/* binding */ dist_resolveDataHash),\n  resolveEpochNo: () => (/* reexport */ resolveEpochNo),\n  resolveFingerprint: () => (/* reexport */ resolveFingerprint),\n  resolveLanguageView: () => (/* reexport */ resolveLanguageView),\n  resolveNativeScriptAddress: () => (/* binding */ dist_resolveNativeScriptAddress),\n  resolveNativeScriptHash: () => (/* binding */ dist_resolveNativeScriptHash),\n  resolveNativeScriptHex: () => (/* binding */ resolveNativeScriptHex),\n  resolvePaymentKeyHash: () => (/* binding */ dist_resolvePaymentKeyHash),\n  resolvePlutusScriptAddress: () => (/* binding */ dist_resolvePlutusScriptAddress),\n  resolvePlutusScriptHash: () => (/* binding */ dist_resolvePlutusScriptHash),\n  resolvePoolId: () => (/* binding */ dist_resolvePoolId),\n  resolvePrivateKey: () => (/* binding */ dist_resolvePrivateKey),\n  resolveRewardAddress: () => (/* binding */ dist_resolveRewardAddress),\n  resolveScriptHash: () => (/* binding */ resolveScriptHash),\n  resolveScriptHashDRepId: () => (/* binding */ dist_resolveScriptHashDRepId),\n  resolveScriptRef: () => (/* binding */ dist_resolveScriptRef),\n  resolveSlotNo: () => (/* reexport */ resolveSlotNo),\n  resolveStakeKeyHash: () => (/* binding */ dist_resolveStakeKeyHash),\n  resolveTxFees: () => (/* reexport */ resolveTxFees),\n  resolveTxHash: () => (/* binding */ dist_resolveTxHash),\n  royaltiesStandardKeys: () => (/* reexport */ royaltiesStandardKeys),\n  script: () => (/* reexport */ script),\n  scriptAddress: () => (/* reexport */ scriptAddress),\n  scriptHash: () => (/* reexport */ scriptHash),\n  serializeAddressObj: () => (/* binding */ dist_serializeAddressObj),\n  serializeData: () => (/* binding */ serializeData),\n  serializeNativeScript: () => (/* binding */ serializeNativeScript),\n  serializePlutusScript: () => (/* binding */ serializePlutusScript),\n  serializePoolId: () => (/* binding */ serializePoolId),\n  serializeRewardAddress: () => (/* binding */ serializeRewardAddress),\n  signData: () => (/* reexport */ signData),\n  slotToBeginUnixTime: () => (/* reexport */ slotToBeginUnixTime),\n  some: () => (/* reexport */ some),\n  stringToBSArray: () => (/* reexport */ stringToBSArray),\n  stringToHex: () => (/* reexport */ stringToHex),\n  toBytes: () => (/* reexport */ toBytes),\n  toUTF8: () => (/* reexport */ toUTF8),\n  tokenName: () => (/* reexport */ tokenName),\n  tuple: () => (/* reexport */ tuple),\n  txInToUtxo: () => (/* reexport */ txInToUtxo),\n  txOutRef: () => (/* reexport */ txOutRef),\n  unixTimeToEnclosingSlot: () => (/* reexport */ unixTimeToEnclosingSlot),\n  utxoToTxIn: () => (/* reexport */ utxoToTxIn),\n  validityRangeToObj: () => (/* reexport */ validityRangeToObj),\n  value: () => (/* reexport */ value),\n  verificationKey: () => (/* reexport */ verificationKey)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/index.js\nvar util_namespaceObject = {};\n__webpack_require__.r(util_namespaceObject);\n__webpack_require__.d(util_namespaceObject, {\n  addressesShareAnyKey: () => (addressesShareAnyKey),\n  computeImplicitCoin: () => (computeImplicitCoin),\n  computeMinUtxoValue: () => (computeMinUtxoValue),\n  estimateStakePoolAPY: () => (estimateStakePoolAPY),\n  isAnyPlutusDataCollection: () => (isAnyPlutusDataCollection),\n  isConstrPlutusData: () => (isConstrPlutusData),\n  isPhase2ValidationErrTx: () => (isPhase2ValidationErrTx),\n  isPlutusBigInt: () => (isPlutusBigInt),\n  isPlutusBoundedBytes: () => (isPlutusBoundedBytes),\n  isPlutusList: () => (isPlutusList),\n  isPlutusMap: () => (isPlutusMap),\n  isScriptAddress: () => (isScriptAddress),\n  resolveInputValue: () => (resolveInputValue),\n  tryConvertPlutusMapToUtf8Record: () => (tryConvertPlutusMapToUtf8Record)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/util/metadatum.js\nvar metadatum_namespaceObject = {};\n__webpack_require__.r(metadatum_namespaceObject);\n__webpack_require__.d(metadatum_namespaceObject, {\n  asMetadatumArray: () => (asMetadatumArray),\n  asMetadatumMap: () => (asMetadatumMap),\n  jsonToMetadatum: () => (jsonToMetadatum),\n  metadatumToJson: () => (metadatumToJson)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Cardano/index.js\nvar Cardano_namespaceObject = {};\n__webpack_require__.r(Cardano_namespaceObject);\n__webpack_require__.d(Cardano_namespaceObject, {\n  Address: () => (Address),\n  AddressType: () => (AddressType),\n  AssetFingerprint: () => (AssetFingerprint),\n  AssetId: () => (AssetId),\n  AssetName: () => (AssetName),\n  BaseAddress: () => (BaseAddress),\n  BlockId: () => (BlockId),\n  BlockNo: () => (BlockNo),\n  BlockSize: () => (BlockSize),\n  ByronAddress: () => (ByronAddress),\n  ByronAddressType: () => (ByronAddressType),\n  CertIndex: () => (CertIndex),\n  CertificateType: () => (CertificateType),\n  ChainIds: () => (ChainIds),\n  Cip1854ExtendedAccountPublicKey: () => (Cip1854ExtendedAccountPublicKey),\n  CredentialType: () => (CredentialType),\n  DRepID: () => (DRepID),\n  DelegationMetadataLabel: () => (DelegationMetadataLabel),\n  EnterpriseAddress: () => (EnterpriseAddress),\n  EpochNo: () => (EpochNo),\n  ExtendedPoolStatus: () => (ExtendedPoolStatus),\n  FractionUtils: () => (FractionUtils),\n  GenesisDelegate: () => (GenesisDelegate),\n  GovernanceActionType: () => (GovernanceActionType),\n  InputSource: () => (InputSource),\n  MirCertificateKind: () => (MirCertificateKind),\n  MirCertificatePot: () => (MirCertificatePot),\n  NativeScriptKind: () => (NativeScriptKind),\n  NetworkId: () => (NetworkId),\n  NetworkMagics: () => (NetworkMagics),\n  PaymentAddress: () => (PaymentAddress),\n  PlutusLanguageVersion: () => (PlutusLanguageVersion),\n  PlutusListEncoding: () => (PlutusListEncoding),\n  PlutusMapEncoding: () => (PlutusMapEncoding),\n  PointerAddress: () => (PointerAddress),\n  PolicyId: () => (PolicyId),\n  PoolId: () => (PoolId),\n  PoolIdHex: () => (PoolIdHex),\n  PoolMdVk: () => (PoolMdVk),\n  PostConwayStakeRegistrationCertificateTypes: () => (PostConwayStakeRegistrationCertificateTypes),\n  RedeemerPurpose: () => (RedeemerPurpose),\n  RegAndDeregCertificateTypes: () => (RegAndDeregCertificateTypes),\n  RewardAccount: () => (RewardAccount),\n  RewardAddress: () => (RewardAddress),\n  ScriptType: () => (ScriptType),\n  Slot: () => (Slot),\n  SlotLeader: () => (SlotLeader),\n  StakeCredentialCertificateTypes: () => (StakeCredentialCertificateTypes),\n  StakeCredentialStatus: () => (StakeCredentialStatus),\n  StakeDelegationCertificateTypes: () => (StakeDelegationCertificateTypes),\n  StakePoolEpochRewards: () => (StakePoolEpochRewards),\n  StakePoolStatus: () => (StakePoolStatus),\n  StakeRegistrationCertificateTypes: () => (StakeRegistrationCertificateTypes),\n  TransactionId: () => (TransactionId),\n  TxIndex: () => (TxIndex),\n  Vote: () => (Vote),\n  VoteDelegationCredentialCertificateTypes: () => (VoteDelegationCredentialCertificateTypes),\n  VoterType: () => (VoterType),\n  VrfVkBech32: () => (VrfVkBech32),\n  VrfVkHex: () => (VrfVkHex),\n  addressNetworkId: () => (addressNetworkId),\n  cip17FromMetadatum: () => (cip17FromMetadatum),\n  computeAuxiliaryDataHash: () => (computeAuxiliaryDataHash),\n  createDelegationCert: () => (createDelegationCert),\n  createRewardAccount: () => (createRewardAccount),\n  createStakeDeregistrationCert: () => (createStakeDeregistrationCert),\n  createStakeRegistrationCert: () => (createStakeRegistrationCert),\n  includesAnyCertificate: () => (includesAnyCertificate),\n  inputsWithAddresses: () => (inputsWithAddresses),\n  isAddress: () => (isAddress),\n  isAddressWithin: () => (isAddressWithin),\n  isCertType: () => (isCertType),\n  isDRepAlwaysAbstain: () => (isDRepAlwaysAbstain),\n  isDRepAlwaysNoConfidence: () => (isDRepAlwaysNoConfidence),\n  isDRepCredential: () => (isDRepCredential),\n  isDrepInfo: () => (isDrepInfo),\n  isNativeScript: () => (isNativeScript),\n  isPlutusScript: () => (isPlutusScript),\n  isRewardAccount: () => (isRewardAccount),\n  portfolioMetadataFromCip17: () => (portfolioMetadataFromCip17),\n  stakeKeyCertificates: () => (stakeKeyCertificates),\n  util: () => (util_namespaceObject)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Serialization/index.js\nvar Serialization_namespaceObject = {};\n__webpack_require__.r(Serialization_namespaceObject);\n__webpack_require__.d(Serialization_namespaceObject, {\n  ALONZO_AUX_TAG: () => (ALONZO_AUX_TAG),\n  Anchor: () => (Anchor),\n  AuthCommitteeHot: () => (AuthCommitteeHot),\n  AuxiliaryData: () => (AuxiliaryData),\n  BootstrapWitness: () => (BootstrapWitness),\n  CborAdditionalInfo: () => (CborAdditionalInfo),\n  CborContentException: () => (CborContentException),\n  CborInitialByte: () => (CborInitialByte),\n  CborInvalidOperationException: () => (CborInvalidOperationException),\n  CborMajorType: () => (CborMajorType),\n  CborReader: () => (CborReader),\n  CborReaderState: () => (CborReaderState),\n  CborSet: () => (CborSet),\n  CborSimpleValue: () => (CborSimpleValue),\n  CborTag: () => (CborTag),\n  CborWriter: () => (CborWriter),\n  Certificate: () => (Certificate),\n  Committee: () => (Committee),\n  Constitution: () => (Constitution),\n  ConstrPlutusData: () => (ConstrPlutusData),\n  CostModel: () => (CostModel),\n  Costmdls: () => (Costmdls),\n  Credential: () => (Credential),\n  DRep: () => (DRep),\n  DRepKind: () => (DRepKind),\n  Datum: () => (Datum),\n  DatumKind: () => (DatumKind),\n  DrepVotingThresholds: () => (DrepVotingThresholds),\n  ExUnitPrices: () => (ExUnitPrices),\n  ExUnits: () => (ExUnits),\n  GeneralTransactionMetadata: () => (GeneralTransactionMetadata),\n  GenesisKeyDelegation: () => (GenesisKeyDelegation),\n  GovernanceActionId: () => (GovernanceActionId),\n  GovernanceActionKind: () => (GovernanceActionKind),\n  HardForkInitiationAction: () => (HardForkInitiationAction),\n  Hash: () => (Hash),\n  InfoAction: () => (InfoAction),\n  LossOfPrecisionException: () => (LossOfPrecisionException),\n  MetadatumList: () => (MetadatumList),\n  MetadatumMap: () => (MetadatumMap),\n  MoveInstantaneousReward: () => (MoveInstantaneousReward),\n  MoveInstantaneousRewardToOtherPot: () => (MoveInstantaneousRewardToOtherPot),\n  MoveInstantaneousRewardToStakeCreds: () => (MoveInstantaneousRewardToStakeCreds),\n  MultiHostName: () => (MultiHostName),\n  NativeScript: () => (NativeScript),\n  NewConstitution: () => (NewConstitution),\n  NoConfidence: () => (NoConfidence),\n  ParameterChangeAction: () => (ParameterChangeAction),\n  PlutusData: () => (PlutusData),\n  PlutusDataKind: () => (PlutusDataKind),\n  PlutusList: () => (PlutusList),\n  PlutusMap: () => (PlutusMap),\n  PlutusV1Script: () => (PlutusV1Script),\n  PlutusV2Script: () => (PlutusV2Script),\n  PlutusV3Script: () => (PlutusV3Script),\n  PoolMetadata: () => (PoolMetadata),\n  PoolParams: () => (PoolParams),\n  PoolRegistration: () => (PoolRegistration),\n  PoolRetirement: () => (PoolRetirement),\n  PoolVotingThresholds: () => (PoolVotingThresholds),\n  ProposalProcedure: () => (ProposalProcedure),\n  ProposedProtocolParameterUpdates: () => (ProposedProtocolParameterUpdates),\n  ProtocolParamUpdate: () => (ProtocolParamUpdate),\n  ProtocolVersion: () => (ProtocolVersion),\n  REQUIRED_FIELDS_COUNT: () => (REQUIRED_FIELDS_COUNT),\n  Redeemer: () => (Redeemer),\n  RedeemerTag: () => (RedeemerTag),\n  Redeemers: () => (Redeemers),\n  RegisterDelegateRepresentative: () => (RegisterDelegateRepresentative),\n  Registration: () => (Registration),\n  Relay: () => (Relay),\n  RelayKind: () => (RelayKind),\n  ResignCommitteeCold: () => (ResignCommitteeCold),\n  SHELLEY_ERA_FIELDS_COUNT: () => (SHELLEY_ERA_FIELDS_COUNT),\n  Script: () => (Script),\n  ScriptAll: () => (ScriptAll),\n  ScriptAny: () => (ScriptAny),\n  ScriptNOfK: () => (ScriptNOfK),\n  ScriptPubkey: () => (ScriptPubkey),\n  SingleHostAddr: () => (SingleHostAddr),\n  SingleHostName: () => (SingleHostName),\n  StakeDelegation: () => (StakeDelegation),\n  StakeDeregistration: () => (StakeDeregistration),\n  StakeRegistration: () => (StakeRegistration),\n  StakeRegistrationDelegation: () => (StakeRegistrationDelegation),\n  StakeVoteDelegation: () => (StakeVoteDelegation),\n  StakeVoteRegistrationDelegation: () => (StakeVoteRegistrationDelegation),\n  TimelockExpiry: () => (TimelockExpiry),\n  TimelockStart: () => (TimelockStart),\n  Transaction: () => (Transaction),\n  TransactionBody: () => (TransactionBody),\n  TransactionInput: () => (TransactionInput),\n  TransactionMetadatum: () => (TransactionMetadatum),\n  TransactionMetadatumKind: () => (TransactionMetadatumKind),\n  TransactionOutput: () => (TransactionOutput),\n  TransactionUnspentOutput: () => (TransactionUnspentOutput),\n  TransactionWitnessSet: () => (TransactionWitnessSet),\n  TreasuryWithdrawalsAction: () => (TreasuryWithdrawalsAction),\n  TxBodyCBOR: () => (TxBodyCBOR),\n  TxCBOR: () => (TxCBOR),\n  UnitInterval: () => (UnitInterval),\n  UnregisterDelegateRepresentative: () => (UnregisterDelegateRepresentative),\n  Unregistration: () => (Unregistration),\n  Update: () => (Update),\n  UpdateCommittee: () => (UpdateCommittee),\n  UpdateDelegateRepresentative: () => (UpdateDelegateRepresentative),\n  Value: () => (Value),\n  VkeyWitness: () => (VkeyWitness),\n  VoteDelegation: () => (VoteDelegation),\n  VoteRegistrationDelegation: () => (VoteRegistrationDelegation),\n  Voter: () => (Voter),\n  VoterKind: () => (VoterKind),\n  VotingProcedure: () => (VotingProcedure),\n  VotingProcedures: () => (VotingProcedures),\n  deserializeTx: () => (deserializeTx),\n  isDatumHash: () => (isDatumHash)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/crypto/dist/esm/index.js\nvar dist_esm_namespaceObject = {};\n__webpack_require__.r(dist_esm_namespaceObject);\n__webpack_require__.d(dist_esm_namespaceObject, {\n  BIP32_ED25519_PRIVATE_KEY_LENGTH: () => (BIP32_ED25519_PRIVATE_KEY_LENGTH),\n  BIP32_ED25519_PUBLIC_KEY_LENGTH: () => (BIP32_ED25519_PUBLIC_KEY_LENGTH),\n  BIP32_PUBLIC_KEY_HASH_LENGTH: () => (BIP32_PUBLIC_KEY_HASH_LENGTH),\n  Bip32PrivateKey: () => (Bip32PrivateKey),\n  Bip32PrivateKeyHex: () => (Bip32PrivateKeyHex),\n  Bip32PublicKey: () => (Bip32PublicKey),\n  Bip32PublicKeyHashHex: () => (Bip32PublicKeyHashHex),\n  Bip32PublicKeyHex: () => (Bip32PublicKeyHex),\n  CmlBip32Ed25519: () => (CmlBip32Ed25519),\n  ED25519_PUBLIC_KEY_HASH_LENGTH: () => (ED25519_PUBLIC_KEY_HASH_LENGTH),\n  ED25519_PUBLIC_KEY_LENGTH: () => (ED25519_PUBLIC_KEY_LENGTH),\n  ED25519_SIGNATURE_LENGTH: () => (ED25519_SIGNATURE_LENGTH),\n  EXTENDED_ED25519_PRIVATE_KEY_LENGTH: () => (EXTENDED_ED25519_PRIVATE_KEY_LENGTH),\n  Ed25519KeyHash: () => (Ed25519KeyHash),\n  Ed25519KeyHashHex: () => (Ed25519KeyHashHex),\n  Ed25519PrivateExtendedKeyHex: () => (Ed25519PrivateExtendedKeyHex),\n  Ed25519PrivateKey: () => (Ed25519PrivateKey),\n  Ed25519PrivateKeyType: () => (Ed25519PrivateKeyType),\n  Ed25519PrivateNormalKeyHex: () => (Ed25519PrivateNormalKeyHex),\n  Ed25519PublicKey: () => (Ed25519PublicKey),\n  Ed25519PublicKeyHex: () => (Ed25519PublicKeyHex),\n  Ed25519Signature: () => (Ed25519Signature),\n  Ed25519SignatureHex: () => (Ed25519SignatureHex),\n  Hash28ByteBase16: () => (Hash28ByteBase16),\n  Hash32ByteBase16: () => (Hash32ByteBase16),\n  NORMAL_ED25519_PRIVATE_KEY_LENGTH: () => (NORMAL_ED25519_PRIVATE_KEY_LENGTH),\n  SodiumBip32Ed25519: () => (SodiumBip32Ed25519),\n  add256bits: () => (add256bits),\n  add28Mul8: () => (add28Mul8),\n  blake2b: () => (blake2b),\n  le32: () => (le32),\n  ready: () => (ready)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/util/dist/esm/index.js\nvar util_dist_esm_namespaceObject = {};\n__webpack_require__.r(util_dist_esm_namespaceObject);\n__webpack_require__.d(util_dist_esm_namespaceObject, {\n  Base64Blob: () => (esm_primitives_Base64Blob),\n  BigIntMath: () => (BigIntMath_BigIntMath),\n  ComposableError: () => (esm_errors_ComposableError),\n  Environment: () => (Environment),\n  HexBlob: () => (esm_primitives_HexBlob),\n  InvalidArgumentError: () => (esm_errors_InvalidArgumentError),\n  InvalidModuleState: () => (InvalidModuleState),\n  InvalidRangeError: () => (InvalidRangeError),\n  InvalidStateError: () => (esm_errors_InvalidStateError),\n  InvalidStringError: () => (esm_errors_InvalidStringError),\n  ManagedFreeableScope: () => (freeable_ManagedFreeableScope),\n  OutsideRangeError: () => (OutsideRangeError),\n  Percent: () => (Percent_Percent),\n  RunnableModule: () => (RunnableModule),\n  StringUtils: () => (StringUtils),\n  areNumbersEqualInConstantTime: () => (areNumbersEqualInConstantTime),\n  areStringsEqualInConstantTime: () => (areStringsEqualInConstantTime),\n  assertIsBech32WithPrefix: () => (esm_primitives_assertIsBech32WithPrefix),\n  assertIsHexString: () => (esm_primitives_assertIsHexString),\n  bufferToHexString: () => (bufferToHexString),\n  calcPercentages: () => (Percent_calcPercentages),\n  castHexBlob: () => (esm_primitives_castHexBlob),\n  contextLogger: () => (contextLogger),\n  deepEquals: () => (deepEquals),\n  formatErrorMessage: () => (esm_errors_formatErrorMessage),\n  fromSerializableObject: () => (fromSerializableObject),\n  getEnvironmentConfiguration: () => (getEnvironmentConfiguration),\n  hexStringToBuffer: () => (hexStringToBuffer),\n  inRange: () => (inRange),\n  isConnectionError: () => (isConnectionError),\n  isNotNil: () => (isNotNil_isNotNil),\n  isProductionEnvironment: () => (isProductionEnvironment),\n  isPromise: () => (isPromise_isPromise),\n  loggerMethodNames: () => (loggerMethodNames),\n  patchObject: () => (patchObject),\n  replaceNullsWithUndefineds: () => (replaceNullsWithUndefineds),\n  resolveObjectValues: () => (resolveObjectValues),\n  sameArrayItems: () => (sameArrayItems),\n  strictEquals: () => (strictEquals),\n  stripStackTrace: () => (esm_errors_stripStackTrace),\n  throwIfInvalidRange: () => (throwIfInvalidRange),\n  throwIfOutsideRange: () => (throwIfOutsideRange),\n  toSerializableObject: () => (toSerializableObject),\n  transformObj: () => (transformObj),\n  typedBech32: () => (esm_primitives_typedBech32),\n  typedHex: () => (esm_primitives_typedHex),\n  usingAutoFree: () => (freeable_usingAutoFree)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/index.js\nvar Asset_util_namespaceObject = {};\n__webpack_require__.r(Asset_util_namespaceObject);\n__webpack_require__.d(Asset_util_namespaceObject, {\n  coalesceTokenMaps: () => (coalesceTokenMaps),\n  getAssetNameAsText: () => (getAssetNameAsText),\n  isValidHandle: () => (isValidHandle),\n  removeNegativesFromTokenMap: () => (removeNegativesFromTokenMap),\n  subtractMaps: () => (subtractMaps),\n  subtractTokenMaps: () => (subtractTokenMaps)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Asset/index.js\nvar esm_Asset_namespaceObject = {};\n__webpack_require__.r(esm_Asset_namespaceObject);\n__webpack_require__.d(esm_Asset_namespaceObject, {\n  AssetNameLabel: () => (AssetNameLabel),\n  AssetNameLabelNum: () => (AssetNameLabelNum),\n  ImageMediaType: () => (ImageMediaType),\n  InvalidFileError: () => (InvalidFileError),\n  MediaType: () => (MediaType),\n  NftMetadata: () => (NftMetadata),\n  Uri: () => (Uri),\n  util: () => (Asset_util_namespaceObject)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/Provider/providerUtil.js\nvar providerUtil_namespaceObject = {};\n__webpack_require__.r(providerUtil_namespaceObject);\n__webpack_require__.d(providerUtil_namespaceObject, {\n  jsonToMetadatum: () => (providerUtil_jsonToMetadatum),\n  withProviderErrors: () => (withProviderErrors)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/util/misc/index.js\nvar misc_namespaceObject = {};\n__webpack_require__.r(misc_namespaceObject);\n__webpack_require__.d(misc_namespaceObject, {\n  bytesToHex: () => (bytesToHex),\n  hexToBytes: () => (hexToBytes),\n  utf8ToBytes: () => (utf8ToBytes),\n  utf8ToHex: () => (utf8ToHex)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/util/index.js\nvar CardanoNode_util_namespaceObject = {};\n__webpack_require__.r(CardanoNode_util_namespaceObject);\n__webpack_require__.d(CardanoNode_util_namespaceObject, {\n  asCardanoNodeError: () => (asCardanoNodeError),\n  asChainSyncError: () => (asChainSyncError),\n  asChainSyncErrorCode: () => (asChainSyncErrorCode),\n  asGeneralCardanoNodeError: () => (asGeneralCardanoNodeError),\n  asGeneralCardanoNodeErrorCode: () => (asGeneralCardanoNodeErrorCode),\n  asStateQueryError: () => (asStateQueryError),\n  asStateQueryErrorCode: () => (asStateQueryErrorCode),\n  asTxSubmissionError: () => (asTxSubmissionError),\n  asTxSubmissionErrorCode: () => (asTxSubmissionErrorCode),\n  isChainSyncErrorCode: () => (isChainSyncErrorCode),\n  isCredentialAlreadyRegistered: () => (isCredentialAlreadyRegistered),\n  isDrepAlreadyRegistered: () => (isDrepAlreadyRegistered),\n  isDrepNotRegistered: () => (isDrepNotRegistered),\n  isGeneralCardanoNodeErrorCode: () => (isGeneralCardanoNodeErrorCode),\n  isIncompleteWithdrawalsError: () => (isIncompleteWithdrawalsError),\n  isOutsideOfValidityIntervalError: () => (isOutsideOfValidityIntervalError),\n  isProviderError: () => (isProviderError),\n  isStateQueryErrorCode: () => (isStateQueryErrorCode),\n  isTxSubmissionErrorCode: () => (isTxSubmissionErrorCode),\n  isUnknownCredential: () => (isUnknownCredential),\n  isUnknownOutputReferences: () => (isUnknownOutputReferences),\n  isValueNotConservedError: () => (isValueNotConservedError),\n  toLiveStake: () => (toLiveStake)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@cardano-sdk/core/dist/esm/index.js\nvar core_dist_esm_namespaceObject = {};\n__webpack_require__.r(core_dist_esm_namespaceObject);\n__webpack_require__.d(core_dist_esm_namespaceObject, {\n  Asset: () => (esm_Asset_namespaceObject),\n  Cardano: () => (Cardano_namespaceObject),\n  CardanoNodeError: () => (CardanoNodeError),\n  CardanoNodeUtil: () => (CardanoNode_util_namespaceObject),\n  ChainSyncError: () => (ChainSyncError),\n  ChainSyncErrorCode: () => (ChainSyncErrorCode),\n  Days: () => (Days),\n  EraSummaryError: () => (EraSummaryError),\n  GeneralCardanoNodeError: () => (GeneralCardanoNodeError),\n  GeneralCardanoNodeErrorCode: () => (GeneralCardanoNodeErrorCode),\n  HD_WALLET_CIP_ID: () => (HD_WALLET_CIP_ID),\n  HandleOwnerChangeError: () => (HandleOwnerChangeError),\n  Hours: () => (Hours),\n  InvalidProtocolParametersError: () => (InvalidProtocolParametersError),\n  MULTISIG_CIP_ID: () => (MULTISIG_CIP_ID),\n  Milliseconds: () => (Milliseconds),\n  Minutes: () => (Minutes),\n  NotImplementedError: () => (NotImplementedError),\n  PoolAPYSortFields: () => (PoolAPYSortFields),\n  PoolDataSortFields: () => (PoolDataSortFields),\n  PoolMetricsSortFields: () => (PoolMetricsSortFields),\n  PoolROSSortFields: () => (PoolROSSortFields),\n  ProviderError: () => (ProviderError),\n  ProviderFactory: () => (ProviderFactory),\n  ProviderFailure: () => (ProviderFailure),\n  ProviderUtil: () => (providerUtil_namespaceObject),\n  Seconds: () => (Seconds),\n  Serialization: () => (Serialization_namespaceObject),\n  SerializationError: () => (SerializationError),\n  SerializationFailure: () => (SerializationFailure),\n  SortFields: () => (SortFields),\n  StateQueryError: () => (StateQueryError),\n  StateQueryErrorCode: () => (StateQueryErrorCode),\n  TimeSpan: () => (TimeSpan),\n  TimeoutError: () => (TimeoutError),\n  TxSubmissionError: () => (TxSubmissionError),\n  TxSubmissionErrorCode: () => (TxSubmissionErrorCode),\n  assetsBurnedInspector: () => (assetsBurnedInspector),\n  assetsMintedInspector: () => (assetsMintedInspector),\n  calculateStabilityWindowSlotsCount: () => (calculateStabilityWindowSlotsCount),\n  coalesceValueQuantities: () => (coalesceValueQuantities),\n  createSlotEpochCalc: () => (createSlotEpochCalc),\n  createSlotEpochInfoCalc: () => (createSlotEpochInfoCalc),\n  createSlotTimeCalc: () => (createSlotTimeCalc),\n  createTxInspector: () => (createTxInspector),\n  createUtxoId: () => (createUtxoId),\n  delegationInspector: () => (delegationInspector),\n  epochSlotsCalc: () => (epochSlotsCalc),\n  epochSlotsCalcFactory: () => (epochSlotsCalcFactory),\n  getCertificatesByType: () => (getCertificatesByType),\n  getCollateral: () => (getCollateral),\n  handleProviderPaths: () => (handleProviderPaths),\n  inConwayEra: () => (inConwayEra),\n  isPoolAPYSortField: () => (isPoolAPYSortField),\n  isPoolDataSortField: () => (isPoolDataSortField),\n  isPoolMetricsSortField: () => (isPoolMetricsSortField),\n  isPoolROSSortField: () => (isPoolROSSortField),\n  jsonToNativeScript: () => (jsonToNativeScript),\n  metadataInspector: () => (metadataInspector),\n  metadatum: () => (metadatum_namespaceObject),\n  mintInspector: () => (mintInspector),\n  nativeScriptPolicyId: () => (nativeScriptPolicyId),\n  poolRegistrationInspector: () => (poolRegistrationInspector),\n  poolRetirementInspector: () => (poolRetirementInspector),\n  providerFailureToStatusCodeMap: () => (providerFailureToStatusCodeMap),\n  reasonToProviderFailure: () => (reasonToProviderFailure),\n  resolveInputs: () => (resolveInputs),\n  sentInspector: () => (sentInspector),\n  setInConwayEra: () => (setInConwayEra),\n  signedCertificatesInspector: () => (signedCertificatesInspector),\n  stakeKeyDeregistrationInspector: () => (stakeKeyDeregistrationInspector),\n  stakeKeyRegistrationInspector: () => (stakeKeyRegistrationInspector),\n  statusCodeMapToProviderFailure: () => (statusCodeMapToProviderFailure),\n  subtractValueQuantities: () => (subtractValueQuantities),\n  tokenTransferInspector: () => (tokenTransferInspector),\n  totalAddressInputsValueInspector: () => (totalAddressInputsValueInspector),\n  totalAddressOutputsValueInspector: () => (totalAddressOutputsValueInspector),\n  transactionSummaryInspector: () => (transactionSummaryInspector),\n  util: () => (misc_namespaceObject),\n  valueReceivedInspector: () => (valueReceivedInspector),\n  valueSentInspector: () => (valueSentInspector),\n  withdrawalInspector: () => (withdrawalInspector)\n});\n\n// NAMESPACE OBJECT: ./node_modules/@meshsdk/core-cst/dist/index.js\nvar core_cst_dist_namespaceObject = {};\n__webpack_require__.r(core_cst_dist_namespaceObject);\n__webpack_require__.d(core_cst_dist_namespaceObject, {\n  Address: () => (dist_Address),\n  AddressType: () => (dist_AddressType),\n  AssetFingerprint: () => (core_cst_dist_AssetFingerprint),\n  AssetId: () => (dist_AssetId),\n  AssetName: () => (dist_AssetName),\n  AuxilliaryData: () => (AuxilliaryData),\n  BaseAddress: () => (dist_BaseAddress),\n  Bip32PrivateKey: () => (Bip32PrivateKey2),\n  Bip32PrivateKeyHex: () => (Bip32PrivateKeyHex2),\n  Bip32PublicKey: () => (Bip32PublicKey2),\n  Bip32PublicKeyHex: () => (Bip32PublicKeyHex2),\n  BootstrapWitness: () => (dist_BootstrapWitness),\n  Cardano: () => (Cardano_namespaceObject),\n  CardanoSDK: () => (core_dist_esm_namespaceObject),\n  CardanoSDKSerializer: () => (CardanoSDKSerializer),\n  CardanoSDKUtil: () => (util_dist_esm_namespaceObject),\n  CborSet: () => (dist_CborSet),\n  CborWriter: () => (dist_CborWriter),\n  CertIndex: () => (dist_CertIndex),\n  Certificate: () => (dist_Certificate),\n  CertificateType: () => (dist_CertificateType),\n  ConstrPlutusData: () => (dist_ConstrPlutusData),\n  CoseSign1: () => (CoseSign1),\n  CostModel: () => (dist_CostModel),\n  Costmdls: () => (dist_Costmdls),\n  Credential: () => (dist_Credential),\n  CredentialType: () => (dist_CredentialType),\n  Crypto: () => (dist_esm_namespaceObject),\n  DRep: () => (dist_DRep),\n  DRepID: () => (dist_DRepID),\n  Datum: () => (dist_Datum),\n  DatumHash: () => (DatumHash),\n  DatumKind: () => (dist_DatumKind),\n  Ed25519KeyHash: () => (Ed25519KeyHash2),\n  Ed25519KeyHashHex: () => (Ed25519KeyHashHex2),\n  Ed25519PrivateExtendedKeyHex: () => (dist_Ed25519PrivateExtendedKeyHex),\n  Ed25519PrivateKey: () => (Ed25519PrivateKey2),\n  Ed25519PrivateNormalKeyHex: () => (dist_Ed25519PrivateNormalKeyHex),\n  Ed25519PublicKey: () => (Ed25519PublicKey2),\n  Ed25519PublicKeyHex: () => (Ed25519PublicKeyHex2),\n  Ed25519Signature: () => (Ed25519Signature2),\n  Ed25519SignatureHex: () => (Ed25519SignatureHex2),\n  EnterpriseAddress: () => (dist_EnterpriseAddress),\n  ExUnits: () => (dist_ExUnits),\n  Hash: () => (dist_Hash),\n  Hash28ByteBase16: () => (Hash28ByteBase162),\n  Hash32ByteBase16: () => (Hash32ByteBase162),\n  HexBlob: () => (dist_HexBlob),\n  MetadatumList: () => (dist_MetadatumList),\n  MetadatumMap: () => (dist_MetadatumMap),\n  NativeScript: () => (dist_NativeScript),\n  NetworkId: () => (dist_NetworkId),\n  PaymentAddress: () => (dist_PaymentAddress),\n  PlutusData: () => (dist_PlutusData),\n  PlutusDataKind: () => (dist_PlutusDataKind),\n  PlutusLanguageVersion: () => (dist_PlutusLanguageVersion),\n  PlutusList: () => (dist_PlutusList),\n  PlutusMap: () => (dist_PlutusMap),\n  PlutusV1Script: () => (dist_PlutusV1Script),\n  PlutusV2Script: () => (dist_PlutusV2Script),\n  PlutusV3Script: () => (dist_PlutusV3Script),\n  PointerAddress: () => (dist_PointerAddress),\n  PolicyId: () => (dist_PolicyId),\n  PoolId: () => (dist_PoolId),\n  Redeemer: () => (dist_Redeemer),\n  RedeemerPurpose: () => (dist_RedeemerPurpose),\n  RedeemerTag: () => (dist_RedeemerTag),\n  Redeemers: () => (dist_Redeemers),\n  RequireAllOf: () => (RequireAllOf),\n  RequireAnyOf: () => (RequireAnyOf),\n  RequireNOf: () => (RequireNOf),\n  RequireSignature: () => (RequireSignature),\n  RequireTimeAfter: () => (RequireTimeAfter),\n  RequireTimeBefore: () => (RequireTimeBefore),\n  RewardAccount: () => (dist_RewardAccount),\n  RewardAddress: () => (dist_RewardAddress),\n  Script: () => (dist_Script),\n  ScriptHash: () => (ScriptHash),\n  ScriptPubkey: () => (dist_ScriptPubkey),\n  Serialization: () => (Serialization_namespaceObject),\n  Slot: () => (dist_Slot),\n  StakeCredentialStatus: () => (dist_StakeCredentialStatus),\n  StakeDelegation: () => (dist_StakeDelegation),\n  StakeRegistration: () => (dist_StakeRegistration),\n  Transaction: () => (dist_Transaction),\n  TransactionBody: () => (dist_TransactionBody),\n  TransactionId: () => (dist_TransactionId),\n  TransactionInput: () => (dist_TransactionInput),\n  TransactionMetadatum: () => (dist_TransactionMetadatum),\n  TransactionOutput: () => (dist_TransactionOutput),\n  TransactionUnspentOutput: () => (dist_TransactionUnspentOutput),\n  TransactionWitnessSet: () => (dist_TransactionWitnessSet),\n  TxCBOR: () => (dist_TxCBOR),\n  TxIndex: () => (dist_TxIndex),\n  Value: () => (dist_Value),\n  VkeyWitness: () => (dist_VkeyWitness),\n  VrfVkBech32: () => (dist_VrfVkBech32),\n  addVKeyWitnessSetToTransaction: () => (addVKeyWitnessSetToTransaction),\n  addrBech32ToPlutusDataHex: () => (addrBech32ToPlutusDataHex),\n  addrBech32ToPlutusDataObj: () => (addrBech32ToPlutusDataObj),\n  addressToBech32: () => (addressToBech32),\n  applyEncoding: () => (applyEncoding),\n  applyParamsToScript: () => (applyParamsToScript),\n  assetTypes: () => (assetTypes),\n  blake2b: () => (blake2b2),\n  buildBaseAddress: () => (buildBaseAddress),\n  buildBip32PrivateKey: () => (buildBip32PrivateKey),\n  buildDRepID: () => (buildDRepID),\n  buildEd25519PrivateKeyFromSecretKey: () => (buildEd25519PrivateKeyFromSecretKey),\n  buildEnterpriseAddress: () => (buildEnterpriseAddress),\n  buildKeys: () => (buildKeys),\n  buildRewardAddress: () => (buildRewardAddress),\n  buildScriptPubkey: () => (buildScriptPubkey),\n  bytesToHex: () => (core_cst_dist_bytesToHex),\n  calculateFees: () => (calculateFees),\n  checkSignature: () => (checkSignature),\n  clampScalar: () => (dist_clampScalar),\n  computeAuxiliaryDataHash: () => (dist_computeAuxiliaryDataHash),\n  deserializeAddress: () => (deserializeAddress),\n  deserializeBech32Address: () => (deserializeBech32Address),\n  deserializeDataHash: () => (deserializeDataHash),\n  deserializeEd25519KeyHash: () => (deserializeEd25519KeyHash),\n  deserializeNativeScript: () => (deserializeNativeScript),\n  deserializePlutusData: () => (deserializePlutusData),\n  deserializePlutusScript: () => (deserializePlutusScript),\n  deserializeScriptHash: () => (deserializeScriptHash),\n  deserializeScriptRef: () => (deserializeScriptRef),\n  deserializeTx: () => (dist_deserializeTx),\n  deserializeTxHash: () => (deserializeTxHash),\n  deserializeTxUnspentOutput: () => (deserializeTxUnspentOutput),\n  deserializeValue: () => (deserializeValue),\n  empty: () => (dist_empty),\n  fromBuilderToPlutusData: () => (fromBuilderToPlutusData),\n  fromJsonToPlutusData: () => (fromJsonToPlutusData),\n  fromNativeScript: () => (fromNativeScript),\n  fromPlutusDataToJson: () => (fromPlutusDataToJson),\n  fromScriptRef: () => (fromScriptRef),\n  fromTxUnspentOutput: () => (fromTxUnspentOutput),\n  fromValue: () => (fromValue),\n  generateNonce: () => (generateNonce),\n  getCoseKeyFromPublicKey: () => (getCoseKeyFromPublicKey),\n  getDRepIds: () => (getDRepIds),\n  getPublicKeyFromCoseKey: () => (getPublicKeyFromCoseKey),\n  hexToBech32: () => (hexToBech32),\n  hexToBytes: () => (core_cst_dist_hexToBytes),\n  keyHashToRewardAddress: () => (keyHashToRewardAddress),\n  mergeValue: () => (mergeValue),\n  negateValue: () => (negateValue),\n  negatives: () => (negatives),\n  normalizePlutusScript: () => (normalizePlutusScript),\n  parseDatumCbor: () => (parseDatumCbor),\n  parseInlineDatum: () => (parseInlineDatum),\n  resolveDataHash: () => (resolveDataHash),\n  resolveEd25519KeyHash: () => (resolveEd25519KeyHash),\n  resolveNativeScriptAddress: () => (resolveNativeScriptAddress),\n  resolveNativeScriptHash: () => (resolveNativeScriptHash),\n  resolvePaymentKeyHash: () => (resolvePaymentKeyHash),\n  resolvePlutusScriptAddress: () => (resolvePlutusScriptAddress),\n  resolvePlutusScriptHash: () => (resolvePlutusScriptHash),\n  resolvePoolId: () => (resolvePoolId),\n  resolvePrivateKey: () => (resolvePrivateKey),\n  resolveRewardAddress: () => (resolveRewardAddress),\n  resolveScriptHashDRepId: () => (resolveScriptHashDRepId),\n  resolveScriptRef: () => (resolveScriptRef),\n  resolveStakeKeyHash: () => (resolveStakeKeyHash),\n  resolveTxHash: () => (resolveTxHash),\n  scriptHashToBech32: () => (scriptHashToBech32),\n  scriptHashToRewardAddress: () => (scriptHashToRewardAddress),\n  serializeAddressObj: () => (serializeAddressObj),\n  serializePlutusAddressToBech32: () => (serializePlutusAddressToBech32),\n  serialzeAddress: () => (serialzeAddress),\n  signData: () => (signData),\n  subValue: () => (subValue),\n  toAddress: () => (toAddress),\n  toBaseAddress: () => (toBaseAddress),\n  toCardanoAddress: () => (toCardanoAddress),\n  toDRep: () => (toDRep),\n  toEnterpriseAddress: () => (toEnterpriseAddress),\n  toNativeScript: () => (toNativeScript),\n  toPlutusData: () => (toPlutusData),\n  toRewardAddress: () => (toRewardAddress),\n  toScriptRef: () => (toScriptRef),\n  toTxUnspentOutput: () => (toTxUnspentOutput),\n  toValue: () => (toValue),\n  utf8ToBytes: () => (dist_utf8ToBytes),\n  utf8ToHex: () => (dist_utf8ToHex),\n  v2ScriptToBech32: () => (v2ScriptToBech32)\n});\n\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/ChainId.js\nvar NetworkId;\n(function (NetworkId) {\n    NetworkId[NetworkId[\"Mainnet\"] = 1] = \"Mainnet\";\n    NetworkId[NetworkId[\"Testnet\"] = 0] = \"Testnet\";\n})(NetworkId || (NetworkId = {}));\nvar NetworkMagics;\n(function (NetworkMagics) {\n    NetworkMagics[NetworkMagics[\"Mainnet\"] = 764824073] = \"Mainnet\";\n    NetworkMagics[NetworkMagics[\"Preprod\"] = 1] = \"Preprod\";\n    NetworkMagics[NetworkMagics[\"Preview\"] = 2] = \"Preview\";\n    NetworkMagics[NetworkMagics[\"Sanchonet\"] = 4] = \"Sanchonet\";\n})(NetworkMagics || (NetworkMagics = {}));\nconst ChainIds = {\n    Mainnet: {\n        networkId: NetworkId.Mainnet,\n        networkMagic: NetworkMagics.Mainnet\n    },\n    Preprod: {\n        networkId: NetworkId.Testnet,\n        networkMagic: NetworkMagics.Preprod\n    },\n    Preview: {\n        networkId: NetworkId.Testnet,\n        networkMagic: NetworkMagics.Preview\n    },\n    Sanchonet: {\n        networkId: NetworkId.Testnet,\n        networkMagic: NetworkMagics.Sanchonet\n    }\n};\n//# sourceMappingURL=ChainId.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/computeMinUtxoValue.js\nconst computeMinUtxoValue = (coinsPerUtxoWord) => coinsPerUtxoWord * 29n;\n//# sourceMappingURL=computeMinUtxoValue.js.map\n;// ./node_modules/@scure/base/lib/esm/index.js\n/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nfunction isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\nfunction isArrayOf(isString, arr) {\n    if (!Array.isArray(arr))\n        return false;\n    if (arr.length === 0)\n        return true;\n    if (isString) {\n        return arr.every((item) => typeof item === 'string');\n    }\n    else {\n        return arr.every((item) => Number.isSafeInteger(item));\n    }\n}\n// no abytes: seems to have 10% slowdown. Why?!\nfunction afn(input) {\n    if (typeof input !== 'function')\n        throw new Error('function expected');\n    return true;\n}\nfunction astr(label, input) {\n    if (typeof input !== 'string')\n        throw new Error(`${label}: string expected`);\n    return true;\n}\nfunction anumber(n) {\n    if (!Number.isSafeInteger(n))\n        throw new Error(`invalid integer: ${n}`);\n}\nconst assertNumber = anumber;\nfunction aArr(input) {\n    if (!Array.isArray(input))\n        throw new Error('array expected');\n}\nfunction astrArr(label, input) {\n    if (!isArrayOf(true, input))\n        throw new Error(`${label}: array of strings expected`);\n}\nfunction anumArr(label, input) {\n    if (!isArrayOf(false, input))\n        throw new Error(`${label}: array of numbers expected`);\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction chain(...args) {\n    const id = (a) => a;\n    // Wrap call in closure so JIT can inline calls\n    const wrap = (a, b) => (c) => a(b(c));\n    // Construct chain of args[-1].encode(args[-2].encode([...]))\n    const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n    // Construct chain of args[0].decode(args[1].decode(...))\n    const decode = args.map((x) => x.decode).reduce(wrap, id);\n    return { encode, decode };\n}\n/**\n * Encodes integer radix representation to array of strings using alphabet and back.\n * Could also be array of strings.\n * @__NO_SIDE_EFFECTS__\n */\nfunction alphabet(letters) {\n    // mapping 1 to \"b\"\n    const lettersA = typeof letters === 'string' ? letters.split('') : letters;\n    const len = lettersA.length;\n    astrArr('alphabet', lettersA);\n    // mapping \"b\" to 1\n    const indexes = new Map(lettersA.map((l, i) => [l, i]));\n    return {\n        encode: (digits) => {\n            aArr(digits);\n            return digits.map((i) => {\n                if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n                    throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n                return lettersA[i];\n            });\n        },\n        decode: (input) => {\n            aArr(input);\n            return input.map((letter) => {\n                astr('alphabet.decode', letter);\n                const i = indexes.get(letter);\n                if (i === undefined)\n                    throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n                return i;\n            });\n        },\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction join(separator = '') {\n    astr('join', separator);\n    return {\n        encode: (from) => {\n            astrArr('join.decode', from);\n            return from.join(separator);\n        },\n        decode: (to) => {\n            astr('join.decode', to);\n            return to.split(separator);\n        },\n    };\n}\n/**\n * Pad strings array so it has integer number of bits\n * @__NO_SIDE_EFFECTS__\n */\nfunction padding(bits, chr = '=') {\n    anumber(bits);\n    astr('padding', chr);\n    return {\n        encode(data) {\n            astrArr('padding.encode', data);\n            while ((data.length * bits) % 8)\n                data.push(chr);\n            return data;\n        },\n        decode(input) {\n            astrArr('padding.decode', input);\n            let end = input.length;\n            if ((end * bits) % 8)\n                throw new Error('padding: invalid, string should have whole number of bytes');\n            for (; end > 0 && input[end - 1] === chr; end--) {\n                const last = end - 1;\n                const byte = last * bits;\n                if (byte % 8 === 0)\n                    throw new Error('padding: invalid, string has too much padding');\n            }\n            return input.slice(0, end);\n        },\n    };\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction normalize(fn) {\n    afn(fn);\n    return { encode: (from) => from, decode: (to) => fn(to) };\n}\n/**\n * Slow: O(n^2) time complexity\n */\nfunction convertRadix(data, from, to) {\n    // base 1 is impossible\n    if (from < 2)\n        throw new Error(`convertRadix: invalid from=${from}, base cannot be less than 2`);\n    if (to < 2)\n        throw new Error(`convertRadix: invalid to=${to}, base cannot be less than 2`);\n    aArr(data);\n    if (!data.length)\n        return [];\n    let pos = 0;\n    const res = [];\n    const digits = Array.from(data, (d) => {\n        anumber(d);\n        if (d < 0 || d >= from)\n            throw new Error(`invalid integer: ${d}`);\n        return d;\n    });\n    const dlen = digits.length;\n    while (true) {\n        let carry = 0;\n        let done = true;\n        for (let i = pos; i < dlen; i++) {\n            const digit = digits[i];\n            const fromCarry = from * carry;\n            const digitBase = fromCarry + digit;\n            if (!Number.isSafeInteger(digitBase) ||\n                fromCarry / from !== carry ||\n                digitBase - digit !== fromCarry) {\n                throw new Error('convertRadix: carry overflow');\n            }\n            const div = digitBase / to;\n            carry = digitBase % to;\n            const rounded = Math.floor(div);\n            digits[i] = rounded;\n            if (!Number.isSafeInteger(rounded) || rounded * to + carry !== digitBase)\n                throw new Error('convertRadix: carry overflow');\n            if (!done)\n                continue;\n            else if (!rounded)\n                pos = i;\n            else\n                done = false;\n        }\n        res.push(carry);\n        if (done)\n            break;\n    }\n    for (let i = 0; i < data.length - 1 && data[i] === 0; i++)\n        res.push(0);\n    return res.reverse();\n}\nconst gcd = (a, b) => (b === 0 ? a : gcd(b, a % b));\nconst radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - gcd(from, to));\nconst powers = /* @__PURE__ */ (() => {\n    let res = [];\n    for (let i = 0; i < 40; i++)\n        res.push(2 ** i);\n    return res;\n})();\n/**\n * Implemented with numbers, because BigInt is 5x slower\n */\nfunction convertRadix2(data, from, to, padding) {\n    aArr(data);\n    if (from <= 0 || from > 32)\n        throw new Error(`convertRadix2: wrong from=${from}`);\n    if (to <= 0 || to > 32)\n        throw new Error(`convertRadix2: wrong to=${to}`);\n    if (radix2carry(from, to) > 32) {\n        throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${radix2carry(from, to)}`);\n    }\n    let carry = 0;\n    let pos = 0; // bitwise position in current element\n    const max = powers[from];\n    const mask = powers[to] - 1;\n    const res = [];\n    for (const n of data) {\n        anumber(n);\n        if (n >= max)\n            throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n        carry = (carry << from) | n;\n        if (pos + from > 32)\n            throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n        pos += from;\n        for (; pos >= to; pos -= to)\n            res.push(((carry >> (pos - to)) & mask) >>> 0);\n        const pow = powers[pos];\n        if (pow === undefined)\n            throw new Error('invalid carry');\n        carry &= pow - 1; // clean carry, otherwise it will cause overflow\n    }\n    carry = (carry << (to - pos)) & mask;\n    if (!padding && pos >= from)\n        throw new Error('Excess padding');\n    if (!padding && carry > 0)\n        throw new Error(`Non-zero padding: ${carry}`);\n    if (padding && pos > 0)\n        res.push(carry >>> 0);\n    return res;\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix(num) {\n    anumber(num);\n    const _256 = 2 ** 8;\n    return {\n        encode: (bytes) => {\n            if (!isBytes(bytes))\n                throw new Error('radix.encode input should be Uint8Array');\n            return convertRadix(Array.from(bytes), _256, num);\n        },\n        decode: (digits) => {\n            anumArr('radix.decode', digits);\n            return Uint8Array.from(convertRadix(digits, num, _256));\n        },\n    };\n}\n/**\n * If both bases are power of same number (like `2**8 <-> 2**64`),\n * there is a linear algorithm. For now we have implementation for power-of-two bases only.\n * @__NO_SIDE_EFFECTS__\n */\nfunction radix2(bits, revPadding = false) {\n    anumber(bits);\n    if (bits <= 0 || bits > 32)\n        throw new Error('radix2: bits should be in (0..32]');\n    if (radix2carry(8, bits) > 32 || radix2carry(bits, 8) > 32)\n        throw new Error('radix2: carry overflow');\n    return {\n        encode: (bytes) => {\n            if (!isBytes(bytes))\n                throw new Error('radix2.encode input should be Uint8Array');\n            return convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n        },\n        decode: (digits) => {\n            anumArr('radix2.decode', digits);\n            return Uint8Array.from(convertRadix2(digits, bits, 8, revPadding));\n        },\n    };\n}\nfunction unsafeWrapper(fn) {\n    afn(fn);\n    return function (...args) {\n        try {\n            return fn.apply(null, args);\n        }\n        catch (e) { }\n    };\n}\nfunction checksum(len, fn) {\n    anumber(len);\n    afn(fn);\n    return {\n        encode(data) {\n            if (!isBytes(data))\n                throw new Error('checksum.encode: input should be Uint8Array');\n            const sum = fn(data).slice(0, len);\n            const res = new Uint8Array(data.length + len);\n            res.set(data);\n            res.set(sum, data.length);\n            return res;\n        },\n        decode(data) {\n            if (!isBytes(data))\n                throw new Error('checksum.decode: input should be Uint8Array');\n            const payload = data.slice(0, -len);\n            const oldChecksum = data.slice(-len);\n            const newChecksum = fn(payload).slice(0, len);\n            for (let i = 0; i < len; i++)\n                if (newChecksum[i] !== oldChecksum[i])\n                    throw new Error('Invalid checksum');\n            return payload;\n        },\n    };\n}\n// prettier-ignore\nconst utils = {\n    alphabet, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,\n};\n// RFC 4648 aka RFC 3548\n// ---------------------\n/**\n * base16 encoding.\n */\nconst base16 = chain(radix2(4), alphabet('0123456789ABCDEF'), join(''));\nconst base32 = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), padding(5), join(''));\nconst base32nopad = chain(radix2(5), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'), join(''));\nconst base32hex = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), padding(5), join(''));\nconst base32hexnopad = chain(radix2(5), alphabet('0123456789ABCDEFGHIJKLMNOPQRSTUV'), join(''));\nconst base32crockford = chain(radix2(5), alphabet('0123456789ABCDEFGHJKMNPQRSTVWXYZ'), join(''), normalize((s) => s.toUpperCase().replace(/O/g, '0').replace(/[IL]/g, '1')));\n/**\n * base64 with padding. For no padding, use `base64nopad`.\n * @example\n * const b = base64.decode('A951'); // Uint8Array.from([ 3, 222, 117 ])\n * base64.encode(b); // 'A951'\n */\nconst base64 = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), padding(6), join(''));\n/**\n * base64 without padding.\n */\nconst base64nopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'), join(''));\nconst base64url = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), padding(6), join(''));\nconst base64urlnopad = chain(radix2(6), alphabet('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'), join(''));\n// base58 code\n// -----------\nconst genBase58 = /* @__NO_SIDE_EFFECTS__ */ (abc) => chain(radix(58), alphabet(abc), join(''));\n/**\n * Base58: base64 without characters +, /, 0, O, I, l.\n * Quadratic (O(n^2)) - so, can't be used on large inputs.\n */\nconst base58 = genBase58('123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz');\nconst base58flickr = genBase58('123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ');\nconst base58xrp = genBase58('rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz');\n// Data len (index) -> encoded block len\nconst XMR_BLOCK_LEN = [0, 2, 3, 5, 6, 7, 9, 10, 11];\n/**\n * XMR version of base58.\n * Done in 8-byte blocks (which equals 11 chars in decoding). Last (non-full) block padded with '1' to size in XMR_BLOCK_LEN.\n * Block encoding significantly reduces quadratic complexity of base58.\n */\nconst base58xmr = {\n    encode(data) {\n        let res = '';\n        for (let i = 0; i < data.length; i += 8) {\n            const block = data.subarray(i, i + 8);\n            res += base58.encode(block).padStart(XMR_BLOCK_LEN[block.length], '1');\n        }\n        return res;\n    },\n    decode(str) {\n        let res = [];\n        for (let i = 0; i < str.length; i += 11) {\n            const slice = str.slice(i, i + 11);\n            const blockLen = XMR_BLOCK_LEN.indexOf(slice.length);\n            const block = base58.decode(slice);\n            for (let j = 0; j < block.length - blockLen; j++) {\n                if (block[j] !== 0)\n                    throw new Error('base58xmr: wrong padding');\n            }\n            res = res.concat(Array.from(block.slice(block.length - blockLen)));\n        }\n        return Uint8Array.from(res);\n    },\n};\nconst createBase58check = (sha256) => chain(checksum(4, (data) => sha256(sha256(data))), base58);\n/**\n * Use `createBase58check` instead.\n * @deprecated\n */\nconst base58check = createBase58check;\nconst BECH_ALPHABET = chain(alphabet('qpzry9x8gf2tvdw0s3jn54khce6mua7l'), join(''));\nconst POLYMOD_GENERATORS = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];\nfunction bech32Polymod(pre) {\n    const b = pre >> 25;\n    let chk = (pre & 0x1ffffff) << 5;\n    for (let i = 0; i < POLYMOD_GENERATORS.length; i++) {\n        if (((b >> i) & 1) === 1)\n            chk ^= POLYMOD_GENERATORS[i];\n    }\n    return chk;\n}\nfunction bechChecksum(prefix, words, encodingConst = 1) {\n    const len = prefix.length;\n    let chk = 1;\n    for (let i = 0; i < len; i++) {\n        const c = prefix.charCodeAt(i);\n        if (c < 33 || c > 126)\n            throw new Error(`Invalid prefix (${prefix})`);\n        chk = bech32Polymod(chk) ^ (c >> 5);\n    }\n    chk = bech32Polymod(chk);\n    for (let i = 0; i < len; i++)\n        chk = bech32Polymod(chk) ^ (prefix.charCodeAt(i) & 0x1f);\n    for (let v of words)\n        chk = bech32Polymod(chk) ^ v;\n    for (let i = 0; i < 6; i++)\n        chk = bech32Polymod(chk);\n    chk ^= encodingConst;\n    return BECH_ALPHABET.encode(convertRadix2([chk % powers[30]], 30, 5, false));\n}\n/**\n * @__NO_SIDE_EFFECTS__\n */\nfunction genBech32(encoding) {\n    const ENCODING_CONST = encoding === 'bech32' ? 1 : 0x2bc830a3;\n    const _words = radix2(5);\n    const fromWords = _words.decode;\n    const toWords = _words.encode;\n    const fromWordsUnsafe = unsafeWrapper(fromWords);\n    function encode(prefix, words, limit = 90) {\n        astr('bech32.encode prefix', prefix);\n        if (isBytes(words))\n            words = Array.from(words);\n        anumArr('bech32.encode', words);\n        const plen = prefix.length;\n        if (plen === 0)\n            throw new TypeError(`Invalid prefix length ${plen}`);\n        const actualLength = plen + 7 + words.length;\n        if (limit !== false && actualLength > limit)\n            throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n        const lowered = prefix.toLowerCase();\n        const sum = bechChecksum(lowered, words, ENCODING_CONST);\n        return `${lowered}1${BECH_ALPHABET.encode(words)}${sum}`;\n    }\n    function decode(str, limit = 90) {\n        astr('bech32.decode input', str);\n        const slen = str.length;\n        if (slen < 8 || (limit !== false && slen > limit))\n            throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n        // don't allow mixed case\n        const lowered = str.toLowerCase();\n        if (str !== lowered && str !== str.toUpperCase())\n            throw new Error(`String must be lowercase or uppercase`);\n        const sepIndex = lowered.lastIndexOf('1');\n        if (sepIndex === 0 || sepIndex === -1)\n            throw new Error(`Letter \"1\" must be present between prefix and data only`);\n        const prefix = lowered.slice(0, sepIndex);\n        const data = lowered.slice(sepIndex + 1);\n        if (data.length < 6)\n            throw new Error('Data must be at least 6 characters long');\n        const words = BECH_ALPHABET.decode(data).slice(0, -6);\n        const sum = bechChecksum(prefix, words, ENCODING_CONST);\n        if (!data.endsWith(sum))\n            throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n        return { prefix, words };\n    }\n    const decodeUnsafe = unsafeWrapper(decode);\n    function decodeToBytes(str) {\n        const { prefix, words } = decode(str, false);\n        return { prefix, words, bytes: fromWords(words) };\n    }\n    function encodeFromBytes(prefix, bytes) {\n        return encode(prefix, toWords(bytes));\n    }\n    return {\n        encode,\n        decode,\n        encodeFromBytes,\n        decodeToBytes,\n        decodeUnsafe,\n        fromWords,\n        fromWordsUnsafe,\n        toWords,\n    };\n}\n/**\n * Low-level bech32 operations. Operates on words.\n */\nconst esm_bech32 = genBech32('bech32');\nconst bech32m = genBech32('bech32m');\n/**\n * UTF-8-to-byte decoder. Uses built-in TextDecoder / TextEncoder.\n * @example\n * const b = utf8.decode(\"hey\"); // => new Uint8Array([ 104, 101, 121 ])\n * const str = utf8.encode(b); // \"hey\"\n */\nconst utf8 = {\n    encode: (data) => new TextDecoder().decode(data),\n    decode: (str) => new TextEncoder().encode(str),\n};\n/**\n * hex string decoder.\n * @example\n * const b = hex.decode(\"0102ff\"); // => new Uint8Array([ 1, 2, 255 ])\n * const str = hex.encode(b); // \"0102ff\"\n */\nconst hex = chain(radix2(4), alphabet('0123456789abcdef'), join(''), normalize((s) => {\n    if (typeof s !== 'string' || s.length % 2 !== 0)\n        throw new TypeError(`hex.decode: expected string, got ${typeof s} with length ${s.length}`);\n    return s.toLowerCase();\n}));\n// prettier-ignore\nconst CODERS = {\n    utf8, hex, base16, base32, base64, base64url, base58, base58xmr\n};\nconst coderTypeError = 'Invalid encoding type. Available types: utf8, hex, base16, base32, base64, base64url, base58, base58xmr';\nconst bytesToString = (type, bytes) => {\n    if (typeof type !== 'string' || !CODERS.hasOwnProperty(type))\n        throw new TypeError(coderTypeError);\n    if (!isBytes(bytes))\n        throw new TypeError('bytesToString() expects Uint8Array');\n    return CODERS[type].encode(bytes);\n};\nconst str = bytesToString; // as in python, but for bytes only\nconst stringToBytes = (type, str) => {\n    if (!CODERS.hasOwnProperty(type))\n        throw new TypeError(coderTypeError);\n    if (typeof str !== 'string')\n        throw new TypeError('stringToBytes() expects string');\n    return CODERS[type].decode(str);\n};\nconst bytes = stringToBytes;\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/bech32/dist/index.js\nvar dist = __webpack_require__(\"./node_modules/bech32/dist/index.js\");\n;// ./node_modules/ts-custom-error/dist/custom-error.mjs\nfunction fixProto(target, prototype) {\n  var setPrototypeOf = Object.setPrototypeOf;\n  setPrototypeOf ? setPrototypeOf(target, prototype) : target.__proto__ = prototype;\n}\nfunction fixStack(target, fn) {\n  if (fn === void 0) {\n    fn = target.constructor;\n  }\n\n  var captureStackTrace = Error.captureStackTrace;\n  captureStackTrace && captureStackTrace(target, fn);\n}\n\nvar __extends =  false || function () {\n  var _extendStatics = function extendStatics(d, b) {\n    _extendStatics = Object.setPrototypeOf || {\n      __proto__: []\n    } instanceof Array && function (d, b) {\n      d.__proto__ = b;\n    } || function (d, b) {\n      for (var p in b) {\n        if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n      }\n    };\n\n    return _extendStatics(d, b);\n  };\n\n  return function (d, b) {\n    if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n    _extendStatics(d, b);\n\n    function __() {\n      this.constructor = d;\n    }\n\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n  };\n}();\n\nvar CustomError = function (_super) {\n  __extends(CustomError, _super);\n\n  function CustomError(message, options) {\n    var _newTarget = this.constructor;\n\n    var _this = _super.call(this, message, options) || this;\n\n    Object.defineProperty(_this, 'name', {\n      value: _newTarget.name,\n      enumerable: false,\n      configurable: true\n    });\n    fixProto(_this, _newTarget.prototype);\n    fixStack(_this);\n    return _this;\n  }\n\n  return CustomError;\n}(Error);\n\nvar __spreadArray =  false || function (to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n    if (ar || !(i in from)) {\n      if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n      ar[i] = from[i];\n    }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n};\nfunction customErrorFactory(fn, parent) {\n  if (parent === void 0) {\n    parent = Error;\n  }\n\n  function CustomError() {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (!(this instanceof CustomError)) return new (CustomError.bind.apply(CustomError, __spreadArray([void 0], args, false)))();\n    parent.apply(this, args);\n    Object.defineProperty(this, 'name', {\n      value: fn.name || parent.name,\n      enumerable: false,\n      configurable: true\n    });\n    fn.apply(this, args);\n    fixStack(this, CustomError);\n  }\n\n  return Object.defineProperties(CustomError, {\n    prototype: {\n      value: Object.create(parent.prototype, {\n        constructor: {\n          value: CustomError,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  });\n}\n\n\n//# sourceMappingURL=custom-error.mjs.map\n\n;// ./node_modules/@cardano-sdk/crypto/node_modules/@cardano-sdk/util/dist/esm/errors.js\n\nconst formatErrorMessage = (reason, detail) => reason + (detail ? ` (${detail})` : '');\nconst isWithInnerError = (error) => error !== null && typeof error === 'object' && 'innerError' in error;\nconst isErrorLike = (error) => {\n    if (!error || typeof error !== 'object' || !('message' in error && 'stack' in error))\n        return false;\n    const { message, stack } = error;\n    return typeof message === 'string' && typeof stack === 'string';\n};\nconst stripStackTrace = (error) => {\n    if (!error)\n        return;\n    if (isErrorLike(error)) {\n        delete error.stack;\n    }\n    if (isWithInnerError(error)) {\n        stripStackTrace(error.innerError);\n    }\n};\nclass ComposableError extends CustomError {\n    constructor(message, innerError) {\n        let firstLineOfInnerErrorStack = '';\n        let innerErrorStack = [];\n        if (isErrorLike(innerError) && innerError.stack) {\n            [firstLineOfInnerErrorStack, ...innerErrorStack] = innerError.stack.split(ComposableError.stackDelimiter);\n            message = `${message} due to\\n ${firstLineOfInnerErrorStack}`;\n        }\n        if (typeof innerError === 'string')\n            message = `${message} due to\\n ${innerError}`;\n        super(message);\n        this.innerError = innerError;\n        if (!this.stack || innerErrorStack.length === 0)\n            return;\n        const [firstLineOfStack] = this.stack.split(ComposableError.stackDelimiter);\n        Object.defineProperty(this, 'stack', {\n            configurable: true,\n            value: `${firstLineOfStack}${innerErrorStack.join(ComposableError.stackDelimiter)}`\n        });\n    }\n}\nComposableError.stackDelimiter = '\\n    at ';\nclass InvalidStringError extends ComposableError {\n    constructor(expectation, innerError) {\n        super(`Invalid string: \"${expectation}\"`, innerError);\n    }\n}\nclass InvalidArgumentError extends CustomError {\n    constructor(argName, message) {\n        super(`Invalid argument '${argName}': ${message}`);\n    }\n}\nclass InvalidStateError extends CustomError {\n    constructor(message) {\n        super(`Invalid state': ${message}`);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/crypto/node_modules/@cardano-sdk/util/dist/esm/primitives.js\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nconst MAX_BECH32_LENGTH_LIMIT = 1023;\nconst isOneOf = (target, options) => (Array.isArray(options) && options.includes(target)) || target === options;\nconst assertIsBech32WithPrefix = (target, prefix, expectedDecodedLength) => {\n    let decoded;\n    try {\n        decoded = dist.bech32.decode(target, MAX_BECH32_LENGTH_LIMIT);\n    }\n    catch (error) {\n        throw new InvalidStringError(`expected bech32-encoded string with '${prefix}' prefix`, error);\n    }\n    if (!isOneOf(decoded.prefix, prefix)) {\n        throw new InvalidStringError(`expected bech32 prefix '${prefix}', got '${decoded.prefix}''`);\n    }\n    if (expectedDecodedLength && !isOneOf(decoded.words.length, expectedDecodedLength)) {\n        throw new InvalidStringError(`expected decoded length of '${expectedDecodedLength}', got '${decoded.words.length}'`);\n    }\n};\nconst typedBech32 = (target, prefix, expectedDecodedLength) => {\n    assertIsBech32WithPrefix(target, prefix, expectedDecodedLength);\n    return target;\n};\nconst assertLength = (expectedLength, target) => {\n    if (expectedLength && target.length !== expectedLength) {\n        throw new InvalidStringError(`expected length '${expectedLength}', got ${target.length}`);\n    }\n};\nconst assertIsHexString = (target, expectedLength) => {\n    assertLength(expectedLength, target);\n    if (target.length > 0 && !/^[\\da-f]+$/i.test(target)) {\n        throw new InvalidStringError('expected hex string');\n    }\n};\nconst typedHex = (value, length) => {\n    assertIsHexString(value, length);\n    return value;\n};\nconst Base64Blob = (target) => {\n    if (/^(?:[\\d+/a-z]{4})*(?:[\\d+/a-z]{2}==|[\\d+/a-z]{3}=)?$/i.test(target)) {\n        return target;\n    }\n    throw new InvalidStringError('expected base64 string');\n};\nBase64Blob.fromBytes = (bytes) => Buffer.from(bytes).toString('base64');\nconst HexBlob = (target) => typedHex(target);\nHexBlob.fromBytes = (bytes) => Buffer.from(bytes).toString('hex');\nHexBlob.fromBase64 = (rawData) => Buffer.from(rawData, 'base64').toString('hex');\nHexBlob.toTypedBech32 = (prefix, hexString) => dist.bech32.encode(prefix, dist.bech32.toWords(Uint8Array.from(Buffer.from(hexString, 'hex'))));\nconst castHexBlob = (target, expectedLength) => {\n    assertLength(expectedLength, target);\n    return target;\n};\n//# sourceMappingURL=primitives.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/hexTypes.js\n\nconst BIP32_PUBLIC_KEY_HASH_LENGTH = 28;\nconst Ed25519SignatureHex = (value) => typedHex(value, 128);\nconst Bip32PublicKeyHex = (key) => typedHex(key, 128);\nconst Bip32PrivateKeyHex = (key) => typedHex(key, 192);\nconst Ed25519PublicKeyHex = (value) => typedHex(value, 64);\nconst Ed25519PrivateExtendedKeyHex = (value) => typedHex(value, 128);\nconst Ed25519PrivateNormalKeyHex = (value) => typedHex(value, 64);\nconst Ed25519KeyHashHex = (value) => typedHex(value, 56);\nconst Bip32PublicKeyHashHex = (value) => typedHex(value, BIP32_PUBLIC_KEY_HASH_LENGTH * 2);\nconst Hash32ByteBase16 = (value) => typedHex(value, 64);\nHash32ByteBase16.fromHexBlob = (value) => castHexBlob(value, 64);\nconst Hash28ByteBase16 = (value) => typedHex(value, 56);\nHash28ByteBase16.fromEd25519KeyHashHex = (value) => value;\n//# sourceMappingURL=hexTypes.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/errors.js\n\nconst errors_formatErrorMessage = (reason, detail) => reason + (detail ? ` (${detail})` : '');\nconst errors_isWithInnerError = (error) => error !== null && typeof error === 'object' && 'innerError' in error;\nconst errors_isErrorLike = (error) => {\n    if (!error || typeof error !== 'object' || !('message' in error && 'stack' in error))\n        return false;\n    const { message, stack } = error;\n    return typeof message === 'string' && typeof stack === 'string';\n};\nconst errors_stripStackTrace = (error) => {\n    if (!error)\n        return;\n    if (errors_isErrorLike(error)) {\n        delete error.stack;\n    }\n    if (errors_isWithInnerError(error)) {\n        errors_stripStackTrace(error.innerError);\n    }\n};\nclass errors_ComposableError extends CustomError {\n    constructor(message, innerError) {\n        let firstLineOfInnerErrorStack = '';\n        let innerErrorStack = [];\n        if (errors_isErrorLike(innerError) && innerError.stack) {\n            [firstLineOfInnerErrorStack, ...innerErrorStack] = innerError.stack.split(errors_ComposableError.stackDelimiter);\n            message = `${message} due to\\n ${firstLineOfInnerErrorStack}`;\n        }\n        if (typeof innerError === 'string')\n            message = `${message} due to\\n ${innerError}`;\n        super(message);\n        this.innerError = innerError;\n        if (!this.stack || innerErrorStack.length === 0)\n            return;\n        const [firstLineOfStack] = this.stack.split(errors_ComposableError.stackDelimiter);\n        Object.defineProperty(this, 'stack', {\n            configurable: true,\n            value: `${firstLineOfStack}${innerErrorStack.join(errors_ComposableError.stackDelimiter)}`\n        });\n    }\n}\nerrors_ComposableError.stackDelimiter = '\\n    at ';\nclass errors_InvalidStringError extends errors_ComposableError {\n    constructor(expectation, innerError) {\n        super(`Invalid string: \"${expectation}\"`, innerError);\n    }\n}\nclass errors_InvalidArgumentError extends CustomError {\n    constructor(argName, message) {\n        super(`Invalid argument '${argName}': ${message}`);\n    }\n}\nclass errors_InvalidStateError extends CustomError {\n    constructor(message) {\n        super(`Invalid state': ${message}`);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/BaseAddress.js\n/* provided dependency */ var BaseAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _BaseAddress_type, _BaseAddress_networkId, _BaseAddress_paymentPart, _BaseAddress_delegationPart;\n\n\n\nclass BaseAddress {\n    constructor(props) {\n        _BaseAddress_type.set(this, void 0);\n        _BaseAddress_networkId.set(this, void 0);\n        _BaseAddress_paymentPart.set(this, void 0);\n        _BaseAddress_delegationPart.set(this, void 0);\n        __classPrivateFieldSet(this, _BaseAddress_networkId, props.networkId, \"f\");\n        __classPrivateFieldSet(this, _BaseAddress_paymentPart, props.paymentPart, \"f\");\n        __classPrivateFieldSet(this, _BaseAddress_delegationPart, props.delegationPart, \"f\");\n        __classPrivateFieldSet(this, _BaseAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment, stake) {\n        let type = AddressType.BasePaymentKeyStakeKey;\n        if (payment.type === CredentialType.ScriptHash)\n            type |= 0b0001;\n        if (stake.type === CredentialType.ScriptHash)\n            type |= 0b0010;\n        return new BaseAddress({\n            delegationPart: stake,\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return __classPrivateFieldGet(this, _BaseAddress_paymentPart, \"f\");\n    }\n    getStakeCredential() {\n        return __classPrivateFieldGet(this, _BaseAddress_delegationPart, \"f\");\n    }\n    toAddress() {\n        return new Address({\n            delegationPart: __classPrivateFieldGet(this, _BaseAddress_delegationPart, \"f\"),\n            networkId: __classPrivateFieldGet(this, _BaseAddress_networkId, \"f\"),\n            paymentPart: __classPrivateFieldGet(this, _BaseAddress_paymentPart, \"f\"),\n            type: __classPrivateFieldGet(this, _BaseAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case AddressType.BasePaymentKeyStakeKey:\n            case AddressType.BasePaymentScriptStakeKey:\n            case AddressType.BasePaymentKeyStakeScript:\n            case AddressType.BasePaymentScriptStakeScript:\n                address = new BaseAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return BaseAddress_Buffer.concat([\n            BaseAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            BaseAddress_Buffer.from(props.paymentPart.hash, 'hex'),\n            BaseAddress_Buffer.from(props.delegationPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 57)\n            throw new errors_InvalidArgumentError('data', 'Base address data length should be 57 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = Hash28ByteBase16(BaseAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        const stakeCredential = Hash28ByteBase16(BaseAddress_Buffer.from(data.slice(29, 57)).toString('hex'));\n        const delegationCredType = type === AddressType.BasePaymentKeyStakeScript || type === AddressType.BasePaymentScriptStakeScript\n            ? CredentialType.ScriptHash\n            : CredentialType.KeyHash;\n        const paymentCredType = type === AddressType.BasePaymentScriptStakeKey || type === AddressType.BasePaymentScriptStakeScript\n            ? CredentialType.ScriptHash\n            : CredentialType.KeyHash;\n        return new Address({\n            delegationPart: {\n                hash: stakeCredential,\n                type: delegationCredType\n            },\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: paymentCredType\n            },\n            type\n        });\n    }\n}\n_BaseAddress_type = new WeakMap(), _BaseAddress_networkId = new WeakMap(), _BaseAddress_paymentPart = new WeakMap(), _BaseAddress_delegationPart = new WeakMap();\n//# sourceMappingURL=BaseAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborInitialByte.js\nvar CborInitialByte_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CborInitialByte_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CborInitialByte_initialByte;\nclass CborInitialByte {\n    constructor() {\n        _CborInitialByte_initialByte.set(this, void 0);\n    }\n    CborInitialByte(majorType, additionalInfo) {\n        CborInitialByte_classPrivateFieldSet(this, _CborInitialByte_initialByte, (majorType << 5) | additionalInfo, \"f\");\n    }\n    static from(initialByte) {\n        const init = new CborInitialByte();\n        CborInitialByte_classPrivateFieldSet(init, _CborInitialByte_initialByte, initialByte, \"f\");\n        return init;\n    }\n    getInitialByte() {\n        return CborInitialByte_classPrivateFieldGet(this, _CborInitialByte_initialByte, \"f\");\n    }\n    getMajorType() {\n        return CborInitialByte_classPrivateFieldGet(this, _CborInitialByte_initialByte, \"f\") >> 5;\n    }\n    getAdditionalInfo() {\n        return CborInitialByte_classPrivateFieldGet(this, _CborInitialByte_initialByte, \"f\") & CborInitialByte.AdditionalInformationMask;\n    }\n}\n_CborInitialByte_initialByte = new WeakMap();\nCborInitialByte.IndefiniteLengthBreakByte = 0xff;\nCborInitialByte.AdditionalInformationMask = 31;\n//# sourceMappingURL=CborInitialByte.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborMajorType.js\nvar CborMajorType;\n(function (CborMajorType) {\n    CborMajorType[CborMajorType[\"UnsignedInteger\"] = 0] = \"UnsignedInteger\";\n    CborMajorType[CborMajorType[\"NegativeInteger\"] = 1] = \"NegativeInteger\";\n    CborMajorType[CborMajorType[\"ByteString\"] = 2] = \"ByteString\";\n    CborMajorType[CborMajorType[\"Utf8String\"] = 3] = \"Utf8String\";\n    CborMajorType[CborMajorType[\"Array\"] = 4] = \"Array\";\n    CborMajorType[CborMajorType[\"Map\"] = 5] = \"Map\";\n    CborMajorType[CborMajorType[\"Tag\"] = 6] = \"Tag\";\n    CborMajorType[CborMajorType[\"Simple\"] = 7] = \"Simple\";\n})(CborMajorType || (CborMajorType = {}));\n//# sourceMappingURL=CborMajorType.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborTag.js\nvar CborTag;\n(function (CborTag) {\n    CborTag[CborTag[\"DateTimeString\"] = 0] = \"DateTimeString\";\n    CborTag[CborTag[\"UnixTimeSeconds\"] = 1] = \"UnixTimeSeconds\";\n    CborTag[CborTag[\"UnsignedBigNum\"] = 2] = \"UnsignedBigNum\";\n    CborTag[CborTag[\"NegativeBigNum\"] = 3] = \"NegativeBigNum\";\n    CborTag[CborTag[\"DecimalFraction\"] = 4] = \"DecimalFraction\";\n    CborTag[CborTag[\"BigFloat\"] = 5] = \"BigFloat\";\n    CborTag[CborTag[\"Base64UrlLaterEncoding\"] = 21] = \"Base64UrlLaterEncoding\";\n    CborTag[CborTag[\"Base64StringLaterEncoding\"] = 22] = \"Base64StringLaterEncoding\";\n    CborTag[CborTag[\"Base16StringLaterEncoding\"] = 23] = \"Base16StringLaterEncoding\";\n    CborTag[CborTag[\"EncodedCborDataItem\"] = 24] = \"EncodedCborDataItem\";\n    CborTag[CborTag[\"RationalNumber\"] = 30] = \"RationalNumber\";\n    CborTag[CborTag[\"Uri\"] = 32] = \"Uri\";\n    CborTag[CborTag[\"Base64Url\"] = 33] = \"Base64Url\";\n    CborTag[CborTag[\"Base64\"] = 34] = \"Base64\";\n    CborTag[CborTag[\"Regex\"] = 35] = \"Regex\";\n    CborTag[CborTag[\"MimeMessage\"] = 36] = \"MimeMessage\";\n    CborTag[CborTag[\"Set\"] = 258] = \"Set\";\n    CborTag[CborTag[\"SelfDescribeCbor\"] = 55799] = \"SelfDescribeCbor\";\n})(CborTag || (CborTag = {}));\n//# sourceMappingURL=CborTag.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/errors.js\n\nclass CborInvalidOperationException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\nclass CborContentException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\nclass LossOfPrecisionException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/Half.js\n/* provided dependency */ var Half_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\nconst LOSS_OF_PRECISION_MSG = 'Invalid conversion. Loss of precision';\nconst ldexp = (mantissa, exponent) => {\n    const steps = Math.min(3, Math.ceil(Math.abs(exponent) / 1023));\n    let result = mantissa;\n    for (let i = 0; i < steps; i++)\n        result *= Math.pow(2, Math.floor((exponent + i) / steps));\n    return result;\n};\nconst decodeHalf = (data) => {\n    const half = (data[0] << 8) + data[1];\n    const exp = (half >> 10) & 0x1f;\n    const mant = half & 1023;\n    let val;\n    if (exp === 0) {\n        val = ldexp(mant, -24);\n    }\n    else if (exp !== 31) {\n        val = ldexp(mant + 1024, exp - 25);\n    }\n    else {\n        val = mant === 0 ? Number.POSITIVE_INFINITY : Number.NaN;\n    }\n    return half & 32768 ? -val : val;\n};\nconst encodeHalf = (value) => {\n    const u32 = Half_Buffer.allocUnsafe(4);\n    u32.writeFloatBE(value, 0);\n    const u = u32.readUInt32BE(0);\n    if ((u & 8191) !== 0) {\n        throw new LossOfPrecisionException(LOSS_OF_PRECISION_MSG);\n    }\n    let s16 = (u >> 16) & 32768;\n    const exp = (u >> 23) & 0xff;\n    const mant = u & 8388607;\n    if (exp >= 113 && exp <= 142) {\n        s16 += ((exp - 112) << 10) + (mant >> 13);\n    }\n    else if (exp >= 103 && exp < 113) {\n        if (mant & ((1 << (126 - exp)) - 1)) {\n            throw new LossOfPrecisionException(LOSS_OF_PRECISION_MSG);\n        }\n        s16 += (mant + 8388608) >> (126 - exp);\n    }\n    else {\n        throw new LossOfPrecisionException(LOSS_OF_PRECISION_MSG);\n    }\n    const result = new Uint8Array(2);\n    result[0] = (s16 >>> 8) & 0xff;\n    result[1] = s16 & 0xff;\n    return result;\n};\n//# sourceMappingURL=Half.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborWriter.js\n/* provided dependency */ var CborWriter_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CborWriter_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar CborWriter_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _CborWriter_instances, _CborWriter_buffer, _CborWriter_writeTypeValue, _CborWriter_pushUInt8, _CborWriter_pushUInt16, _CborWriter_pushUInt32;\n\n\n\n\nconst MINUS_ONE = BigInt(-1);\nconst SHIFT32 = BigInt('0x100000000');\nconst ONE = 24;\nconst TWO = 25;\nconst FOUR = 26;\nconst EIGHT = 27;\nconst FALSE = 0xf4;\nconst TRUE = 0xf5;\nconst NULL = 0xf6;\nconst UNDEFINED = 0xf7;\nconst INDEFINITE_LENGTH_ARRAY = 0x9f;\nconst INDEFINITE_LENGTH_MAP = 0xbf;\nconst HALF = (7 << 5) | 25;\nconst FLOAT = (7 << 5) | 26;\nconst DOUBLE = (7 << 5) | 27;\nconst BUF_NAN = CborWriter_Buffer.from('ffc00000', 'hex');\nconst BUF_INF_NEG = CborWriter_Buffer.from('fff0000000000000', 'hex');\nconst BUF_INF_POS = CborWriter_Buffer.from('7ff0000000000000', 'hex');\nclass CborWriter {\n    constructor() {\n        _CborWriter_instances.add(this);\n        _CborWriter_buffer.set(this, CborWriter_Buffer.from([]));\n    }\n    writeBigInteger(value) {\n        let tag = CborTag.UnsignedBigNum;\n        if (value < 0) {\n            value = -value + MINUS_ONE;\n            tag = CborTag.NegativeBigNum;\n        }\n        let str = value.toString(16);\n        if (str.length % 2) {\n            str = `0${str}`;\n        }\n        const buffer = CborWriter_Buffer.from(str, 'hex');\n        this.writeTag(tag);\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.ByteString, buffer.length);\n        CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), buffer]), \"f\");\n        return this;\n    }\n    writeBoolean(value) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, value ? TRUE : FALSE);\n        return this;\n    }\n    writeByteString(value) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.ByteString, value.length);\n        CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), value]), \"f\");\n        return this;\n    }\n    writeTextString(value) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.Utf8String, CborWriter_Buffer.from(value, 'utf8').length);\n        CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), CborWriter_Buffer.from(value, 'utf8')]), \"f\");\n        return this;\n    }\n    writeEncodedValue(value) {\n        CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), value]), \"f\");\n        return this;\n    }\n    writeStartArray(length) {\n        if (length !== undefined) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.Array, length);\n        }\n        else {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, INDEFINITE_LENGTH_ARRAY);\n        }\n        return this;\n    }\n    writeEndArray() {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, CborInitialByte.IndefiniteLengthBreakByte);\n        return this;\n    }\n    writeStartMap(length) {\n        if (length !== undefined) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.Map, length);\n        }\n        else {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, INDEFINITE_LENGTH_MAP);\n        }\n        return this;\n    }\n    writeEndMap() {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, CborInitialByte.IndefiniteLengthBreakByte);\n        return this;\n    }\n    writeInt(value) {\n        if (value < 0) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.NegativeInteger, -(BigInt(value) + 1n));\n        }\n        else {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.UnsignedInteger, value);\n        }\n        return this;\n    }\n    writeFloat(value) {\n        let val;\n        if (value === Number.NEGATIVE_INFINITY) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, DOUBLE);\n            this.writeEncodedValue(BUF_INF_NEG);\n            return this;\n        }\n        if (value === Number.POSITIVE_INFINITY) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, DOUBLE);\n            this.writeEncodedValue(BUF_INF_POS);\n            return this;\n        }\n        if (Number.isNaN(value)) {\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, FLOAT);\n            this.writeEncodedValue(BUF_NAN);\n            return this;\n        }\n        try {\n            val = encodeHalf(value);\n            CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, HALF);\n            this.writeEncodedValue(val);\n        }\n        catch {\n            const b4 = CborWriter_Buffer.allocUnsafe(4);\n            b4.writeFloatBE(value, 0);\n            if (b4.readFloatBE(0) === value) {\n                CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, FLOAT);\n                this.writeEncodedValue(b4.valueOf());\n            }\n            else {\n                const b8 = CborWriter_Buffer.allocUnsafe(8);\n                b8.writeFloatBE(value, 0);\n                CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, DOUBLE);\n                this.writeEncodedValue(b8.valueOf());\n            }\n        }\n        return this;\n    }\n    writeNull() {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, NULL);\n        return this;\n    }\n    writeUndefined() {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, UNDEFINED);\n        return this;\n    }\n    writeTag(tag) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_writeTypeValue).call(this, CborMajorType.Tag, tag);\n        return this;\n    }\n    encodeAsHex() {\n        return CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\").toString('hex');\n    }\n    encode() {\n        return new Uint8Array(CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"));\n    }\n    reset() {\n        CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.from([]), \"f\");\n    }\n}\n_CborWriter_buffer = new WeakMap(), _CborWriter_instances = new WeakSet(), _CborWriter_writeTypeValue = function _CborWriter_writeTypeValue(majorType, value) {\n    const m = majorType << 5;\n    if (value < 24) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, m | Number(value));\n    }\n    else if (value < 256) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, m | ONE);\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, Number(value));\n    }\n    else if (value < 65536) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, m | TWO);\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt16).call(this, Number(value));\n    }\n    else if (value < 4294967296) {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, m | FOUR);\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt32).call(this, Number(value));\n    }\n    else {\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt8).call(this, m | EIGHT);\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt32).call(this, Number(BigInt(value) / SHIFT32));\n        CborWriter_classPrivateFieldGet(this, _CborWriter_instances, \"m\", _CborWriter_pushUInt32).call(this, Number(BigInt(value) % SHIFT32));\n    }\n}, _CborWriter_pushUInt8 = function _CborWriter_pushUInt8(value) {\n    const b = CborWriter_Buffer.allocUnsafe(1);\n    b.writeUInt8(value, 0);\n    CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), b]), \"f\");\n}, _CborWriter_pushUInt16 = function _CborWriter_pushUInt16(value) {\n    const b = CborWriter_Buffer.allocUnsafe(2);\n    b.writeUInt16BE(value, 0);\n    CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), b]), \"f\");\n}, _CborWriter_pushUInt32 = function _CborWriter_pushUInt32(value) {\n    const b = CborWriter_Buffer.allocUnsafe(4);\n    b.writeUInt32BE(value, 0);\n    CborWriter_classPrivateFieldSet(this, _CborWriter_buffer, CborWriter_Buffer.concat([CborWriter_classPrivateFieldGet(this, _CborWriter_buffer, \"f\"), b]), \"f\");\n};\n//# sourceMappingURL=CborWriter.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborAdditionalInfo.js\nvar CborAdditionalInfo;\n(function (CborAdditionalInfo) {\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalFalse\"] = 20] = \"AdditionalFalse\";\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalTrue\"] = 21] = \"AdditionalTrue\";\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalNull\"] = 22] = \"AdditionalNull\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional8BitData\"] = 24] = \"Additional8BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional16BitData\"] = 25] = \"Additional16BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional32BitData\"] = 26] = \"Additional32BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional64BitData\"] = 27] = \"Additional64BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"IndefiniteLength\"] = 31] = \"IndefiniteLength\";\n})(CborAdditionalInfo || (CborAdditionalInfo = {}));\n//# sourceMappingURL=CborAdditionalInfo.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborReaderState.js\nvar CborReaderState;\n(function (CborReaderState) {\n    CborReaderState[CborReaderState[\"Undefined\"] = 0] = \"Undefined\";\n    CborReaderState[CborReaderState[\"UnsignedInteger\"] = 1] = \"UnsignedInteger\";\n    CborReaderState[CborReaderState[\"NegativeInteger\"] = 2] = \"NegativeInteger\";\n    CborReaderState[CborReaderState[\"ByteString\"] = 3] = \"ByteString\";\n    CborReaderState[CborReaderState[\"StartIndefiniteLengthByteString\"] = 4] = \"StartIndefiniteLengthByteString\";\n    CborReaderState[CborReaderState[\"EndIndefiniteLengthByteString\"] = 5] = \"EndIndefiniteLengthByteString\";\n    CborReaderState[CborReaderState[\"TextString\"] = 6] = \"TextString\";\n    CborReaderState[CborReaderState[\"StartIndefiniteLengthTextString\"] = 7] = \"StartIndefiniteLengthTextString\";\n    CborReaderState[CborReaderState[\"EndIndefiniteLengthTextString\"] = 8] = \"EndIndefiniteLengthTextString\";\n    CborReaderState[CborReaderState[\"StartArray\"] = 9] = \"StartArray\";\n    CborReaderState[CborReaderState[\"EndArray\"] = 10] = \"EndArray\";\n    CborReaderState[CborReaderState[\"StartMap\"] = 11] = \"StartMap\";\n    CborReaderState[CborReaderState[\"EndMap\"] = 12] = \"EndMap\";\n    CborReaderState[CborReaderState[\"Tag\"] = 13] = \"Tag\";\n    CborReaderState[CborReaderState[\"SimpleValue\"] = 14] = \"SimpleValue\";\n    CborReaderState[CborReaderState[\"HalfPrecisionFloat\"] = 15] = \"HalfPrecisionFloat\";\n    CborReaderState[CborReaderState[\"SinglePrecisionFloat\"] = 16] = \"SinglePrecisionFloat\";\n    CborReaderState[CborReaderState[\"DoublePrecisionFloat\"] = 17] = \"DoublePrecisionFloat\";\n    CborReaderState[CborReaderState[\"Null\"] = 18] = \"Null\";\n    CborReaderState[CborReaderState[\"Boolean\"] = 19] = \"Boolean\";\n    CborReaderState[CborReaderState[\"Finished\"] = 20] = \"Finished\";\n})(CborReaderState || (CborReaderState = {}));\n//# sourceMappingURL=CborReaderState.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborReader.js\n/* provided dependency */ var CborReader_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CborReader_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CborReader_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CborReader_instances, _a, _CborReader_data, _CborReader_offset, _CborReader_nestedItems, _CborReader_isTagContext, _CborReader_currentFrame, _CborReader_cachedState, _CborReader_peekInitialByte, _CborReader_peekNextInitialByte, _CborReader_validateNextByteIsBreakByte, _CborReader_pushDataItem, _CborReader_popDataItem, _CborReader_restoreStackFrame, _CborReader_getRemainingBytes, _CborReader_advanceDataItemCounters, _CborReader_advanceBuffer, _CborReader_ensureReadCapacity, _CborReader_peekStateCore, _CborReader_peekDefiniteLength, _CborReader_peekUnsignedInteger, _CborReader_peekSignedInteger, _CborReader_readIndefiniteLengthByteStringConcatenated, _CborReader_peekTagCore, _CborReader_decodeUnsignedInteger, _CborReader_skipNextNode;\n\n\n\n\n\n\nconst UNEXPECTED_END_OF_BUFFER_MSG = 'Unexpected end of buffer';\nclass CborReader {\n    constructor(data) {\n        _CborReader_instances.add(this);\n        _CborReader_data.set(this, void 0);\n        _CborReader_offset.set(this, 0);\n        _CborReader_nestedItems.set(this, new Array());\n        _CborReader_isTagContext.set(this, false);\n        _CborReader_currentFrame.set(this, void 0);\n        _CborReader_cachedState.set(this, CborReaderState.Undefined);\n        CborReader_classPrivateFieldSet(this, _CborReader_data, new Uint8Array(CborReader_Buffer.from(data, 'hex')), \"f\");\n        CborReader_classPrivateFieldSet(this, _CborReader_currentFrame, {\n            currentKeyOffset: null,\n            frameOffset: 0,\n            itemsRead: 0,\n            type: null\n        }, \"f\");\n    }\n    peekState() {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_cachedState, \"f\") === CborReaderState.Undefined)\n            CborReader_classPrivateFieldSet(this, _CborReader_cachedState, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekStateCore).call(this), \"f\");\n        return CborReader_classPrivateFieldGet(this, _CborReader_cachedState, \"f\");\n    }\n    getBytesRemaining() {\n        return CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").length - CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\");\n    }\n    skipValue() {\n        this.readEncodedValue();\n    }\n    readEncodedValue() {\n        const initialOffset = CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\");\n        let depth = 0;\n        do {\n            depth = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_skipNextNode).call(this, depth);\n        } while (depth > 0);\n        return CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").slice(initialOffset, CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\"));\n    }\n    readStartArray() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Array);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.Array);\n            return null;\n        }\n        const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.Array, length);\n        return length;\n    }\n    readEndArray() {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_validateNextByteIsBreakByte).call(this);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.Array);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        }\n        else {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.Array);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        }\n    }\n    readInt() {\n        const value = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekSignedInteger).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, value.bytesRead);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return value.signedInt;\n    }\n    readUInt() {\n        const value = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekUnsignedInteger).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, value.bytesRead);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return value.unsignedInt;\n    }\n    readDouble() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Simple);\n        let result;\n        const remainingBytes = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        switch (header.getAdditionalInfo()) {\n            case CborAdditionalInfo.Additional16BitData: {\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, 3);\n                result = decodeHalf(remainingBytes.slice(1));\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 3);\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            case CborAdditionalInfo.Additional32BitData: {\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, 5);\n                result = CborReader_Buffer.from(remainingBytes).readFloatBE(1);\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 5);\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            case CborAdditionalInfo.Additional64BitData: {\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, 9);\n                result = CborReader_Buffer.from(remainingBytes).readDoubleBE(1);\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 9);\n                CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            default:\n                throw new CborInvalidOperationException('Not a float encoding');\n        }\n    }\n    readSimpleValue() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Simple);\n        if ((header.getInitialByte() & CborInitialByte.AdditionalInformationMask) < CborAdditionalInfo.Additional8BitData) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            return header.getAdditionalInfo().valueOf();\n        }\n        if (header.getAdditionalInfo() === CborAdditionalInfo.Additional8BitData) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, 2);\n            const value = CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\")[CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") + 1];\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 2);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            return value;\n        }\n        throw new CborInvalidOperationException('Not a simple value encoding');\n    }\n    readCborNegativeIntegerRepresentation() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.NegativeInteger);\n        const value = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this));\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, value.bytesRead);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return value.unsignedInt;\n    }\n    readStartMap() {\n        let length = null;\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Map);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.Map);\n            length = null;\n        }\n        else {\n            const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n            const result = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n            if (2 * result.length > buffer.length - result.bytesRead)\n                throw new CborContentException('Definite length exceeds buffer size');\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, result.bytesRead);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.Map, 2 * result.length);\n            length = result.length;\n        }\n        CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").currentKeyOffset = CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\");\n        return length;\n    }\n    readEndMap() {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_validateNextByteIsBreakByte).call(this);\n            if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead % 2 !== 0)\n                throw new CborContentException('Key missing value');\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.Map);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        }\n        else {\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.Map);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        }\n    }\n    readBoolean() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Simple);\n        const val = header.getAdditionalInfo();\n        if (val !== CborAdditionalInfo.AdditionalTrue && val !== CborAdditionalInfo.AdditionalFalse)\n            throw new CborContentException('Not a boolean encoding');\n        const result = val === CborAdditionalInfo.AdditionalTrue;\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return result;\n    }\n    readNull() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Simple);\n        const val = header.getAdditionalInfo();\n        if (val !== CborAdditionalInfo.AdditionalNull)\n            throw new CborContentException('Not a null encoding');\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n    }\n    readStartIndefiniteLengthByteString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.ByteString);\n        if (header.getAdditionalInfo() !== CborAdditionalInfo.IndefiniteLength)\n            throw new CborInvalidOperationException('Not indefinite length string');\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.ByteString);\n    }\n    readEndIndefiniteLengthByteString() {\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_validateNextByteIsBreakByte).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.ByteString);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n    }\n    readByteString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.ByteString);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            const { val, encodingLength } = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_readIndefiniteLengthByteStringConcatenated).call(this, CborMajorType.ByteString);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, encodingLength);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            return val;\n        }\n        const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return buffer.slice(bytesRead, bytesRead + length);\n    }\n    readDefiniteLengthByteString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.ByteString);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            throw new CborInvalidOperationException('Expected definite length array and got indefinite length');\n        }\n        const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return buffer.slice(bytesRead, bytesRead + length);\n    }\n    readStartIndefiniteLengthTextString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() !== CborAdditionalInfo.IndefiniteLength)\n            throw new CborInvalidOperationException('Not indefinite length string');\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_pushDataItem).call(this, CborMajorType.Utf8String);\n    }\n    readEndIndefiniteLengthTextString() {\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_validateNextByteIsBreakByte).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_popDataItem).call(this, CborMajorType.Utf8String);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, 1);\n    }\n    readTextString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            const { val, encodingLength } = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_readIndefiniteLengthByteStringConcatenated).call(this, CborMajorType.Utf8String);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, encodingLength);\n            CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n            return CborReader_Buffer.from(val).toString('utf8');\n        }\n        const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return CborReader_Buffer.from(buffer.slice(bytesRead, bytesRead + length)).toString('utf8');\n    }\n    readDefiniteLengthTextString() {\n        const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength) {\n            throw new CborInvalidOperationException('Expected definite length string and got indefinite length');\n        }\n        const buffer = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, header, buffer);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead + length);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceDataItemCounters).call(this);\n        return CborReader_Buffer.from(buffer.slice(bytesRead, bytesRead + length)).toString('utf8');\n    }\n    readTag() {\n        const { tag, bytesRead } = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekTagCore).call(this);\n        CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_advanceBuffer).call(this, bytesRead);\n        CborReader_classPrivateFieldSet(this, _CborReader_isTagContext, true, \"f\");\n        return tag;\n    }\n    peekTag() {\n        const { tag } = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekTagCore).call(this);\n        return tag;\n    }\n    static ensureReadCapacityInArray(data, bytesToRead) {\n        if (data.length < bytesToRead) {\n            throw new CborContentException(UNEXPECTED_END_OF_BUFFER_MSG);\n        }\n    }\n    static mapSimpleValueDataToReaderState(value) {\n        switch (value) {\n            case CborAdditionalInfo.AdditionalNull:\n                return CborReaderState.Null;\n            case CborAdditionalInfo.AdditionalFalse:\n            case CborAdditionalInfo.AdditionalTrue:\n                return CborReaderState.Boolean;\n            case CborAdditionalInfo.Additional16BitData:\n                return CborReaderState.HalfPrecisionFloat;\n            case CborAdditionalInfo.Additional32BitData:\n                return CborReaderState.SinglePrecisionFloat;\n            case CborAdditionalInfo.Additional64BitData:\n                return CborReaderState.DoublePrecisionFloat;\n            default:\n                return CborReaderState.SimpleValue;\n        }\n    }\n}\n_a = CborReader, _CborReader_data = new WeakMap(), _CborReader_offset = new WeakMap(), _CborReader_nestedItems = new WeakMap(), _CborReader_isTagContext = new WeakMap(), _CborReader_currentFrame = new WeakMap(), _CborReader_cachedState = new WeakMap(), _CborReader_instances = new WeakSet(), _CborReader_peekInitialByte = function _CborReader_peekInitialByte(expectedType) {\n    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength - CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead === 0)\n        throw new CborInvalidOperationException('No more data items to read');\n    if (CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") === CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").length) {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type === null && CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength === undefined && CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") > 0)\n            throw new CborInvalidOperationException('End of root-level. No more data items to read');\n        throw new CborContentException(UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n    const nextByte = CborInitialByte.from(CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\")[CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\")]);\n    switch (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type) {\n        case CborMajorType.ByteString:\n        case CborMajorType.Utf8String:\n            if (nextByte.getInitialByte() === CborInitialByte.IndefiniteLengthBreakByte ||\n                (nextByte.getMajorType() === CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type &&\n                    nextByte.getAdditionalInfo() !== CborAdditionalInfo.IndefiniteLength)) {\n                break;\n            }\n            throw new CborContentException(`Indefinite length string contains invalid data item, ${nextByte.getMajorType()}`);\n    }\n    if (expectedType && expectedType !== nextByte.getMajorType())\n        throw new CborInvalidOperationException(`Major type mismatch, expected type ${expectedType} but got ${nextByte.getMajorType()}`);\n    return nextByte;\n}, _CborReader_peekNextInitialByte = function _CborReader_peekNextInitialByte(buffer, expectedType) {\n    CborReader.ensureReadCapacityInArray(buffer, 1);\n    const header = CborInitialByte.from(buffer[0]);\n    if (header.getInitialByte() !== CborInitialByte.IndefiniteLengthBreakByte && header.getMajorType() !== expectedType)\n        throw new CborContentException('Indefinite length string contains invalid data item');\n    return header;\n}, _CborReader_validateNextByteIsBreakByte = function _CborReader_validateNextByteIsBreakByte() {\n    const result = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this);\n    if (result.getInitialByte() !== CborInitialByte.IndefiniteLengthBreakByte)\n        throw new CborInvalidOperationException('Not at end of indefinite length data item');\n}, _CborReader_pushDataItem = function _CborReader_pushDataItem(majorType, definiteLength) {\n    const frame = {\n        currentKeyOffset: CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").currentKeyOffset,\n        definiteLength: CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength,\n        frameOffset: CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").frameOffset,\n        itemsRead: CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead,\n        type: CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type\n    };\n    CborReader_classPrivateFieldGet(this, _CborReader_nestedItems, \"f\").push(frame);\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type = majorType;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength = definiteLength;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead = 0;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").frameOffset = CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\");\n    CborReader_classPrivateFieldSet(this, _CborReader_isTagContext, false, \"f\");\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").currentKeyOffset = null;\n}, _CborReader_popDataItem = function _CborReader_popDataItem(expectedType) {\n    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type === null || CborReader_classPrivateFieldGet(this, _CborReader_nestedItems, \"f\").length <= 0)\n        throw new CborInvalidOperationException('Is at root context');\n    if (expectedType !== CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type)\n        throw new CborInvalidOperationException(`Pop major type mismatch, expected ${expectedType} but got ${CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type}`);\n    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength - CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead > 0)\n        throw new CborInvalidOperationException('Not at end of definite length data item');\n    if (CborReader_classPrivateFieldGet(this, _CborReader_isTagContext, \"f\"))\n        throw new CborContentException('Tag not followed by value');\n    const frame = CborReader_classPrivateFieldGet(this, _CborReader_nestedItems, \"f\").pop();\n    CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_restoreStackFrame).call(this, frame);\n}, _CborReader_restoreStackFrame = function _CborReader_restoreStackFrame(frame) {\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type = frame.type;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").frameOffset = frame.frameOffset;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength = frame.definiteLength;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead = frame.itemsRead;\n    CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").currentKeyOffset = frame.currentKeyOffset;\n    CborReader_classPrivateFieldSet(this, _CborReader_cachedState, CborReaderState.Undefined, \"f\");\n}, _CborReader_getRemainingBytes = function _CborReader_getRemainingBytes() {\n    return CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").slice(CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\"));\n}, _CborReader_advanceDataItemCounters = function _CborReader_advanceDataItemCounters() {\n    ++CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead;\n    CborReader_classPrivateFieldSet(this, _CborReader_isTagContext, false, \"f\");\n}, _CborReader_advanceBuffer = function _CborReader_advanceBuffer(length) {\n    if (CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") + length > CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").length)\n        throw new CborContentException('Buffer offset out of bounds');\n    CborReader_classPrivateFieldSet(this, _CborReader_offset, CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") + length, \"f\");\n    CborReader_classPrivateFieldSet(this, _CborReader_cachedState, CborReaderState.Undefined, \"f\");\n}, _CborReader_ensureReadCapacity = function _CborReader_ensureReadCapacity(bytesToRead) {\n    if (CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").length - CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") < bytesToRead) {\n        throw new CborContentException(UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n}, _CborReader_peekStateCore = function _CborReader_peekStateCore() {\n    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength - CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead === 0) {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type === null)\n            return CborReaderState.Finished;\n        switch (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type) {\n            case CborMajorType.Array:\n                return CborReaderState.EndArray;\n            case CborMajorType.Map:\n                return CborReaderState.EndMap;\n            default:\n                throw new CborInvalidOperationException('Invalid CBOR major type pushed to stack.');\n        }\n    }\n    if (CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\") === CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\").length) {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type === null && CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            return CborReaderState.Finished;\n        }\n        throw new CborInvalidOperationException(UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n    const initialByte = CborInitialByte.from(CborReader_classPrivateFieldGet(this, _CborReader_data, \"f\")[CborReader_classPrivateFieldGet(this, _CborReader_offset, \"f\")]);\n    if (initialByte.getInitialByte() === CborInitialByte.IndefiniteLengthBreakByte) {\n        if (CborReader_classPrivateFieldGet(this, _CborReader_isTagContext, \"f\")) {\n            throw new CborContentException('Tag not followed by value');\n        }\n        if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            switch (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type) {\n                case null:\n                    throw new CborContentException('Unexpected break byte');\n                case CborMajorType.ByteString:\n                    return CborReaderState.EndIndefiniteLengthByteString;\n                case CborMajorType.Utf8String:\n                    return CborReaderState.EndIndefiniteLengthTextString;\n                case CborMajorType.Array:\n                    return CborReaderState.EndArray;\n                case CborMajorType.Map: {\n                    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").itemsRead % 2 === 0)\n                        return CborReaderState.EndMap;\n                    throw new CborContentException('Key missing value');\n                }\n                default:\n                    throw new CborInvalidOperationException('Invalid CBOR major type pushed to stack.');\n            }\n        }\n        else {\n            throw new CborContentException('Unexpected break byte');\n        }\n    }\n    if (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type !== null && CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").definiteLength !== null) {\n        switch (CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type) {\n            case CborMajorType.ByteString:\n            case CborMajorType.Utf8String:\n                if (initialByte.getMajorType() !== CborReader_classPrivateFieldGet(this, _CborReader_currentFrame, \"f\").type) {\n                    throw new CborContentException('Indefinite length string contains invalid data item');\n                }\n                break;\n        }\n    }\n    switch (initialByte.getMajorType()) {\n        case CborMajorType.UnsignedInteger:\n            return CborReaderState.UnsignedInteger;\n        case CborMajorType.NegativeInteger:\n            return CborReaderState.NegativeInteger;\n        case CborMajorType.ByteString:\n            return initialByte.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength\n                ? CborReaderState.StartIndefiniteLengthByteString\n                : CborReaderState.ByteString;\n        case CborMajorType.Utf8String:\n            return initialByte.getAdditionalInfo() === CborAdditionalInfo.IndefiniteLength\n                ? CborReaderState.StartIndefiniteLengthTextString\n                : CborReaderState.TextString;\n        case CborMajorType.Array:\n            return CborReaderState.StartArray;\n        case CborMajorType.Map:\n            return CborReaderState.StartMap;\n        case CborMajorType.Tag:\n            return CborReaderState.Tag;\n        case CborMajorType.Simple:\n            return CborReader.mapSimpleValueDataToReaderState(initialByte.getAdditionalInfo());\n        default:\n            throw new CborContentException('Invalid CBOR major type.');\n    }\n}, _CborReader_peekDefiniteLength = function _CborReader_peekDefiniteLength(header, data) {\n    const { unsignedInt: length, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, data);\n    return { bytesRead, length: Number(length) };\n}, _CborReader_peekUnsignedInteger = function _CborReader_peekUnsignedInteger() {\n    const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this);\n    switch (header.getMajorType()) {\n        case CborMajorType.UnsignedInteger: {\n            return CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this));\n        }\n        case CborMajorType.NegativeInteger: {\n            throw new CborContentException('Integer overflow');\n        }\n        default:\n            throw new CborInvalidOperationException(`Reader type mismatch, expected ${CborMajorType.UnsignedInteger} but got ${header.getMajorType()}`);\n    }\n}, _CborReader_peekSignedInteger = function _CborReader_peekSignedInteger() {\n    const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this);\n    switch (header.getMajorType()) {\n        case CborMajorType.UnsignedInteger: {\n            const { unsignedInt: signedInt, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this));\n            return { bytesRead, signedInt: BigInt(signedInt) };\n        }\n        case CborMajorType.NegativeInteger: {\n            const { unsignedInt, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this));\n            return { bytesRead, signedInt: BigInt(-1) - unsignedInt };\n        }\n        default:\n            throw new CborInvalidOperationException(`Reader type mismatch, expected ${CborMajorType.UnsignedInteger} or ${CborMajorType.NegativeInteger} but got ${header.getMajorType()}`);\n    }\n}, _CborReader_readIndefiniteLengthByteStringConcatenated = function _CborReader_readIndefiniteLengthByteStringConcatenated(type) {\n    const data = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this);\n    let concat = CborReader_Buffer.from([]);\n    let encodingLength = 0;\n    let i = 1;\n    let nextInitialByte = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekNextInitialByte).call(CborReader, data.slice(i), type);\n    while (nextInitialByte.getInitialByte() !== CborInitialByte.IndefiniteLengthBreakByte) {\n        const { length: chunkLength, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekDefiniteLength).call(CborReader, nextInitialByte, data.slice(i));\n        const payloadSize = bytesRead + Number(chunkLength);\n        concat = CborReader_Buffer.concat([concat, data.slice(i + (payloadSize - chunkLength), i + payloadSize)]);\n        i += payloadSize;\n        nextInitialByte = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_peekNextInitialByte).call(CborReader, data.slice(i), type);\n    }\n    encodingLength = i + 1;\n    return { encodingLength, val: new Uint8Array(concat) };\n}, _CborReader_peekTagCore = function _CborReader_peekTagCore() {\n    const header = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekInitialByte).call(this, CborMajorType.Tag);\n    const { unsignedInt: result, bytesRead } = CborReader_classPrivateFieldGet(CborReader, _a, \"m\", _CborReader_decodeUnsignedInteger).call(CborReader, header, CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_getRemainingBytes).call(this));\n    return { bytesRead, tag: Number(result) };\n}, _CborReader_decodeUnsignedInteger = function _CborReader_decodeUnsignedInteger(header, data) {\n    if ((header.getInitialByte() & CborInitialByte.AdditionalInformationMask) < CborAdditionalInfo.Additional8BitData)\n        return { bytesRead: 1, unsignedInt: BigInt(header.getAdditionalInfo()) };\n    switch (header.getAdditionalInfo()) {\n        case CborAdditionalInfo.Additional8BitData: {\n            CborReader.ensureReadCapacityInArray(data, 2);\n            return { bytesRead: 2, unsignedInt: BigInt(data[1]) };\n        }\n        case CborAdditionalInfo.Additional16BitData: {\n            CborReader.ensureReadCapacityInArray(data, 3);\n            const buffer = CborReader_Buffer.from(data.slice(1));\n            const val = buffer.readUInt16BE();\n            return { bytesRead: 3, unsignedInt: BigInt(val) };\n        }\n        case CborAdditionalInfo.Additional32BitData: {\n            CborReader.ensureReadCapacityInArray(data, 5);\n            const buffer = CborReader_Buffer.from(data.slice(1));\n            const val = buffer.readUInt32BE();\n            return { bytesRead: 5, unsignedInt: BigInt(val) };\n        }\n        case CborAdditionalInfo.Additional64BitData: {\n            CborReader.ensureReadCapacityInArray(data, 9);\n            const buffer = CborReader_Buffer.from(data.slice(1, 9));\n            let result = BigInt(0);\n            for (const element of buffer) {\n                result = (result << BigInt(8)) + BigInt(element);\n            }\n            return { bytesRead: 9, unsignedInt: result };\n        }\n        default:\n            throw new CborContentException('Invalid integer encoding');\n    }\n}, _CborReader_skipNextNode = function _CborReader_skipNextNode(initialDepth) {\n    let state;\n    let depth = initialDepth;\n    while ((state = CborReader_classPrivateFieldGet(this, _CborReader_instances, \"m\", _CborReader_peekStateCore).call(this)) === CborReaderState.Tag)\n        this.readTag();\n    switch (state) {\n        case CborReaderState.UnsignedInteger:\n            this.readUInt();\n            break;\n        case CborReaderState.NegativeInteger:\n            this.readCborNegativeIntegerRepresentation();\n            break;\n        case CborReaderState.ByteString:\n            this.readByteString();\n            break;\n        case CborReaderState.TextString:\n            this.readTextString();\n            break;\n        case CborReaderState.StartIndefiniteLengthByteString:\n            this.readStartIndefiniteLengthByteString();\n            depth++;\n            break;\n        case CborReaderState.EndIndefiniteLengthByteString:\n            this.readEndIndefiniteLengthByteString();\n            depth--;\n            break;\n        case CborReaderState.StartIndefiniteLengthTextString:\n            this.readStartIndefiniteLengthTextString();\n            depth++;\n            break;\n        case CborReaderState.EndIndefiniteLengthTextString:\n            if (depth === 0)\n                throw new CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndIndefiniteLengthTextString();\n            depth--;\n            break;\n        case CborReaderState.StartArray:\n            this.readStartArray();\n            depth++;\n            break;\n        case CborReaderState.EndArray:\n            if (depth === 0)\n                throw new CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndArray();\n            depth--;\n            break;\n        case CborReaderState.StartMap:\n            this.readStartMap();\n            depth++;\n            break;\n        case CborReaderState.EndMap:\n            if (depth === 0)\n                throw new CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndMap();\n            depth--;\n            break;\n        case CborReaderState.HalfPrecisionFloat:\n        case CborReaderState.SinglePrecisionFloat:\n        case CborReaderState.DoublePrecisionFloat:\n            this.readDouble();\n            break;\n        case CborReaderState.Null:\n        case CborReaderState.Boolean:\n        case CborReaderState.SimpleValue:\n            this.readSimpleValue();\n            break;\n        default:\n            throw new CborInvalidOperationException(`Skip invalid state: ${state}`);\n    }\n    return depth;\n};\n//# sourceMappingURL=CborReader.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/primitives.js\n/* provided dependency */ var primitives_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nconst primitives_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst primitives_isOneOf = (target, options) => (Array.isArray(options) && options.includes(target)) || target === options;\nconst primitives_assertIsBech32WithPrefix = (target, prefix, expectedDecodedLength) => {\n    let decoded;\n    try {\n        decoded = dist.bech32.decode(target, primitives_MAX_BECH32_LENGTH_LIMIT);\n    }\n    catch (error) {\n        throw new errors_InvalidStringError(`expected bech32-encoded string with '${prefix}' prefix`, error);\n    }\n    if (!primitives_isOneOf(decoded.prefix, prefix)) {\n        throw new errors_InvalidStringError(`expected bech32 prefix '${prefix}', got '${decoded.prefix}''`);\n    }\n    if (expectedDecodedLength && !primitives_isOneOf(decoded.words.length, expectedDecodedLength)) {\n        throw new errors_InvalidStringError(`expected decoded length of '${expectedDecodedLength}', got '${decoded.words.length}'`);\n    }\n};\nconst primitives_typedBech32 = (target, prefix, expectedDecodedLength) => {\n    primitives_assertIsBech32WithPrefix(target, prefix, expectedDecodedLength);\n    return target;\n};\nconst primitives_assertLength = (expectedLength, target) => {\n    if (expectedLength && target.length !== expectedLength) {\n        throw new errors_InvalidStringError(`expected length '${expectedLength}', got ${target.length}`);\n    }\n};\nconst primitives_assertIsHexString = (target, expectedLength) => {\n    primitives_assertLength(expectedLength, target);\n    if (target.length > 0 && !/^[\\da-f]+$/i.test(target)) {\n        throw new errors_InvalidStringError('expected hex string');\n    }\n};\nconst primitives_typedHex = (value, length) => {\n    primitives_assertIsHexString(value, length);\n    return value;\n};\nconst primitives_Base64Blob = (target) => {\n    if (/^(?:[\\d+/a-z]{4})*(?:[\\d+/a-z]{2}==|[\\d+/a-z]{3}=)?$/i.test(target)) {\n        return target;\n    }\n    throw new errors_InvalidStringError('expected base64 string');\n};\nprimitives_Base64Blob.fromBytes = (bytes) => primitives_Buffer.from(bytes).toString('base64');\nconst primitives_HexBlob = (target) => primitives_typedHex(target);\nprimitives_HexBlob.fromBytes = (bytes) => primitives_Buffer.from(bytes).toString('hex');\nprimitives_HexBlob.fromBase64 = (rawData) => primitives_Buffer.from(rawData, 'base64').toString('hex');\nprimitives_HexBlob.toTypedBech32 = (prefix, hexString) => dist.bech32.encode(prefix, dist.bech32.toWords(Uint8Array.from(primitives_Buffer.from(hexString, 'hex'))));\nconst primitives_castHexBlob = (target, expectedLength) => {\n    primitives_assertLength(expectedLength, target);\n    return target;\n};\n//# sourceMappingURL=primitives.js.map\n;// ./node_modules/@foxglove/crc/dist/esm/src/index.js\n/**\n * Compute CRC32 lookup tables as described at:\n * https://github.com/komrad36/CRC#option-6-1-byte-tabular\n *\n * An iteration of CRC computation can be performed on 8 bits of input at once. By pre-computing a\n * table of the values of CRC(?) for all 2^8 = 256 possible byte values, during the final\n * computation we can replace a loop over 8 bits with a single lookup in the table.\n *\n * For further speedup, we can also pre-compute the values of CRC(?0) for all possible bytes when a\n * zero byte is appended. Then we can process two bytes of input at once by computing CRC(AB) =\n * CRC(A0) ^ CRC(B), using one lookup in the CRC(?0) table and one lookup in the CRC(?) table.\n *\n * The same technique applies for any number of bytes to be processed at once, although the speed\n * improvements diminish.\n *\n * @param polynomial The binary representation of the polynomial to use (reversed, i.e. most\n * significant bit represents x^0).\n * @param numTables The number of bytes of input that will be processed at once.\n */\nfunction crc32GenerateTables({ polynomial, numTables, }) {\n    const table = new Uint32Array(256 * numTables);\n    for (let i = 0; i < 256; i++) {\n        let r = i;\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        r = ((r & 1) * polynomial) ^ (r >>> 1);\n        table[i] = r;\n    }\n    for (let i = 256; i < table.length; i++) {\n        const value = table[i - 256];\n        table[i] = table[value & 0xff] ^ (value >>> 8);\n    }\n    return table;\n}\nconst CRC32_TABLE = crc32GenerateTables({ polynomial: 0xedb88320, numTables: 8 });\n/**\n * Initialize a CRC32 to all 1 bits.\n */\nfunction crc32Init() {\n    return ~0;\n}\n/**\n * Update a streaming CRC32 calculation.\n *\n * For performance, this implementation processes the data 8 bytes at a time, using the algorithm\n * presented at: https://github.com/komrad36/CRC#option-9-8-byte-tabular\n */\nfunction crc32Update(prev, data) {\n    const byteLength = data.byteLength;\n    const view = new DataView(data.buffer, data.byteOffset, byteLength);\n    let r = prev;\n    let offset = 0;\n    // Process bytes one by one until we reach 4-byte alignment, which will speed up uint32 access.\n    const toAlign = -view.byteOffset & 3;\n    for (; offset < toAlign && offset < byteLength; offset++) {\n        r = CRC32_TABLE[(r ^ view.getUint8(offset)) & 0xff] ^ (r >>> 8);\n    }\n    if (offset === byteLength) {\n        return r;\n    }\n    offset = toAlign;\n    // Process 8 bytes (2 uint32s) at a time.\n    let remainingBytes = byteLength - offset;\n    for (; remainingBytes >= 8; offset += 8, remainingBytes -= 8) {\n        r ^= view.getUint32(offset, true);\n        const r2 = view.getUint32(offset + 4, true);\n        r =\n            CRC32_TABLE[0 * 256 + ((r2 >>> 24) & 0xff)] ^\n                CRC32_TABLE[1 * 256 + ((r2 >>> 16) & 0xff)] ^\n                CRC32_TABLE[2 * 256 + ((r2 >>> 8) & 0xff)] ^\n                CRC32_TABLE[3 * 256 + ((r2 >>> 0) & 0xff)] ^\n                CRC32_TABLE[4 * 256 + ((r >>> 24) & 0xff)] ^\n                CRC32_TABLE[5 * 256 + ((r >>> 16) & 0xff)] ^\n                CRC32_TABLE[6 * 256 + ((r >>> 8) & 0xff)] ^\n                CRC32_TABLE[7 * 256 + ((r >>> 0) & 0xff)];\n    }\n    // Process any remaining bytes one by one. (Perf note: inexplicably, using a temporary variable\n    // `i` rather than reusing `offset` here is faster in V8.)\n    for (let i = offset; i < byteLength; i++) {\n        r = CRC32_TABLE[(r ^ view.getUint8(i)) & 0xff] ^ (r >>> 8);\n    }\n    return r;\n}\n/**\n * Finalize a CRC32 by inverting the output value. An unsigned right-shift of 0 is used to ensure the result is a positive number.\n */\nfunction crc32Final(prev) {\n    return (prev ^ ~0) >>> 0;\n}\n/**\n * Calculate a one-shot CRC32. If the data is being accumulated incrementally, use the functions\n * `crc32Init`, `crc32Update`, and `crc32Final` instead.\n */\nfunction crc32(data) {\n    return crc32Final(crc32Update(crc32Init(), data));\n}\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/ByronAddress.js\n/* provided dependency */ var ByronAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ByronAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ByronAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ByronAddress_type, _ByronAddress_content;\n\n\n\n\n\nvar ByronAddressType;\n(function (ByronAddressType) {\n    ByronAddressType[ByronAddressType[\"PubKey\"] = 0] = \"PubKey\";\n    ByronAddressType[ByronAddressType[\"Script\"] = 1] = \"Script\";\n    ByronAddressType[ByronAddressType[\"Redeem\"] = 2] = \"Redeem\";\n})(ByronAddressType || (ByronAddressType = {}));\nclass ByronAddress {\n    constructor(props) {\n        _ByronAddress_type.set(this, void 0);\n        _ByronAddress_content.set(this, void 0);\n        ByronAddress_classPrivateFieldSet(this, _ByronAddress_content, props.byronAddressContent, \"f\");\n        ByronAddress_classPrivateFieldSet(this, _ByronAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(root, attrs, type) {\n        return new ByronAddress({\n            byronAddressContent: {\n                attrs,\n                root,\n                type\n            },\n            type: AddressType.Byron\n        });\n    }\n    getAttributes() {\n        return ByronAddress_classPrivateFieldGet(this, _ByronAddress_content, \"f\").attrs;\n    }\n    getRoot() {\n        return ByronAddress_classPrivateFieldGet(this, _ByronAddress_content, \"f\").root;\n    }\n    getByronAddressType() {\n        return ByronAddress_classPrivateFieldGet(this, _ByronAddress_content, \"f\").type;\n    }\n    toAddress() {\n        return new Address({\n            byronAddressContent: ByronAddress_classPrivateFieldGet(this, _ByronAddress_content, \"f\"),\n            type: ByronAddress_classPrivateFieldGet(this, _ByronAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        return addr.getProps().type === AddressType.Byron ? new ByronAddress(addr.getProps()) : undefined;\n    }\n    static packParts(props) {\n        const { root, attrs, type } = props.byronAddressContent;\n        let mapSize = 0;\n        if (attrs.derivationPath)\n            ++mapSize;\n        if (attrs.magic)\n            ++mapSize;\n        const writer = new CborWriter();\n        writer.writeStartArray(3);\n        writer.writeByteString(ByronAddress_Buffer.from(root, 'hex'));\n        writer.writeStartMap(mapSize);\n        if (attrs.derivationPath) {\n            const encodedPathCbor = new CborWriter().writeByteString(ByronAddress_Buffer.from(attrs.derivationPath, 'hex')).encode();\n            writer.writeInt(1);\n            writer.writeByteString(encodedPathCbor);\n        }\n        if (attrs.magic) {\n            const encodedMagicCbor = new CborWriter().writeInt(attrs.magic).encode();\n            writer.writeInt(2);\n            writer.writeByteString(encodedMagicCbor);\n        }\n        writer.writeInt(type);\n        const addressDataEncoded = ByronAddress_Buffer.from(writer.encodeAsHex(), 'hex');\n        writer.reset();\n        writer.writeStartArray(2);\n        writer.writeTag(CborTag.EncodedCborDataItem);\n        writer.writeByteString(addressDataEncoded);\n        writer.writeInt(crc32(addressDataEncoded));\n        return writer.encode();\n    }\n    static unpackParts(type, data) {\n        let reader = new CborReader(primitives_HexBlob.fromBytes(data));\n        reader.readStartArray();\n        reader.readTag();\n        const addressDataEncoded = reader.readByteString();\n        if (Number(reader.readInt()) !== crc32(addressDataEncoded))\n            throw new errors_InvalidArgumentError('data', 'Invalid Byron raw data. Checksum doesnt match.');\n        reader = new CborReader(primitives_HexBlob.fromBytes(addressDataEncoded));\n        reader.readStartArray();\n        const root = Hash28ByteBase16(ByronAddress_Buffer.from(reader.readByteString()).toString('hex'));\n        reader.readStartMap();\n        let magic;\n        let derivationPath;\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = reader.readInt();\n            switch (key) {\n                case 1n: {\n                    const cborBytes = reader.readByteString();\n                    derivationPath = primitives_HexBlob.fromBytes(new CborReader(primitives_HexBlob.fromBytes(cborBytes)).readByteString());\n                    break;\n                }\n                case 2n: {\n                    const cborBytes = reader.readByteString();\n                    magic = Number(new CborReader(primitives_HexBlob.fromBytes(cborBytes)).readInt());\n                    break;\n                }\n            }\n        }\n        reader.readEndMap();\n        const byronAddressType = Number(reader.readInt());\n        return new Address({\n            byronAddressContent: {\n                attrs: { derivationPath, magic },\n                root,\n                type: byronAddressType\n            },\n            type\n        });\n    }\n}\n_ByronAddress_type = new WeakMap(), _ByronAddress_content = new WeakMap();\n//# sourceMappingURL=ByronAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/EnterpriseAddress.js\n/* provided dependency */ var EnterpriseAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar EnterpriseAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar EnterpriseAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _EnterpriseAddress_type, _EnterpriseAddress_networkId, _EnterpriseAddress_paymentPart;\n\n\n\nclass EnterpriseAddress {\n    constructor(props) {\n        _EnterpriseAddress_type.set(this, void 0);\n        _EnterpriseAddress_networkId.set(this, void 0);\n        _EnterpriseAddress_paymentPart.set(this, void 0);\n        EnterpriseAddress_classPrivateFieldSet(this, _EnterpriseAddress_networkId, props.networkId, \"f\");\n        EnterpriseAddress_classPrivateFieldSet(this, _EnterpriseAddress_paymentPart, props.paymentPart, \"f\");\n        EnterpriseAddress_classPrivateFieldSet(this, _EnterpriseAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment) {\n        const type = payment.type === CredentialType.ScriptHash ? AddressType.EnterpriseScript : AddressType.EnterpriseKey;\n        return new EnterpriseAddress({\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return EnterpriseAddress_classPrivateFieldGet(this, _EnterpriseAddress_paymentPart, \"f\");\n    }\n    toAddress() {\n        return new Address({\n            networkId: EnterpriseAddress_classPrivateFieldGet(this, _EnterpriseAddress_networkId, \"f\"),\n            paymentPart: EnterpriseAddress_classPrivateFieldGet(this, _EnterpriseAddress_paymentPart, \"f\"),\n            type: EnterpriseAddress_classPrivateFieldGet(this, _EnterpriseAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case AddressType.EnterpriseKey:\n            case AddressType.EnterpriseScript:\n                address = new EnterpriseAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return EnterpriseAddress_Buffer.concat([\n            EnterpriseAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            EnterpriseAddress_Buffer.from(props.paymentPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 29)\n            throw new errors_InvalidArgumentError('data', 'Enterprise address data length should be 29 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = Hash28ByteBase16(EnterpriseAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        return new Address({\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: type === AddressType.EnterpriseScript ? CredentialType.ScriptHash : CredentialType.KeyHash\n            },\n            type\n        });\n    }\n}\n_EnterpriseAddress_type = new WeakMap(), _EnterpriseAddress_networkId = new WeakMap(), _EnterpriseAddress_paymentPart = new WeakMap();\n//# sourceMappingURL=EnterpriseAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/PointerAddress.js\n/* provided dependency */ var PointerAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PointerAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PointerAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PointerAddress_type, _PointerAddress_networkId, _PointerAddress_paymentPart, _PointerAddress_pointer;\n\n\n\nconst variableLengthEncode = (val) => {\n    if (typeof val !== 'bigint') {\n        val = BigInt(val);\n    }\n    if (val < 0) {\n        throw new errors_InvalidArgumentError('val', `Negative numbers not supported. Number supplied: ${val}`);\n    }\n    const encoded = [];\n    let bitLength = val.toString(2).length;\n    encoded.push(Number(val & 127n));\n    while (bitLength > 7) {\n        val >>= 7n;\n        bitLength -= 7;\n        encoded.unshift(Number((val & 127n) + 128n));\n    }\n    return PointerAddress_Buffer.from(encoded);\n};\nconst variableLengthDecode = (array) => {\n    let more = true;\n    let value = 0n;\n    let bytesRead = 0;\n    while (more && bytesRead < array.length) {\n        const b = array[bytesRead];\n        value <<= 7n;\n        value |= BigInt(b & 127);\n        more = (b & 128) !== 0;\n        ++bytesRead;\n    }\n    return { bytesRead, value };\n};\nconst TxIndex = (value) => value;\nconst CertIndex = (value) => value;\nclass PointerAddress {\n    constructor(props) {\n        _PointerAddress_type.set(this, void 0);\n        _PointerAddress_networkId.set(this, void 0);\n        _PointerAddress_paymentPart.set(this, void 0);\n        _PointerAddress_pointer.set(this, void 0);\n        PointerAddress_classPrivateFieldSet(this, _PointerAddress_networkId, props.networkId, \"f\");\n        PointerAddress_classPrivateFieldSet(this, _PointerAddress_paymentPart, props.paymentPart, \"f\");\n        PointerAddress_classPrivateFieldSet(this, _PointerAddress_pointer, props.pointer, \"f\");\n        PointerAddress_classPrivateFieldSet(this, _PointerAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment, pointer) {\n        let type = AddressType.PointerKey;\n        if (payment.type === CredentialType.ScriptHash)\n            type &= 0b0001;\n        return new PointerAddress({\n            networkId,\n            paymentPart: payment,\n            pointer,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return PointerAddress_classPrivateFieldGet(this, _PointerAddress_paymentPart, \"f\");\n    }\n    getStakePointer() {\n        return PointerAddress_classPrivateFieldGet(this, _PointerAddress_pointer, \"f\");\n    }\n    toAddress() {\n        return new Address({\n            networkId: PointerAddress_classPrivateFieldGet(this, _PointerAddress_networkId, \"f\"),\n            paymentPart: PointerAddress_classPrivateFieldGet(this, _PointerAddress_paymentPart, \"f\"),\n            pointer: PointerAddress_classPrivateFieldGet(this, _PointerAddress_pointer, \"f\"),\n            type: PointerAddress_classPrivateFieldGet(this, _PointerAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case AddressType.PointerKey:\n            case AddressType.PointerScript:\n                address = new PointerAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        const { slot, txIndex, certIndex } = props.pointer;\n        return PointerAddress_Buffer.concat([\n            PointerAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            PointerAddress_Buffer.from(props.paymentPart.hash, 'hex'),\n            PointerAddress_Buffer.concat([variableLengthEncode(slot), variableLengthEncode(txIndex), variableLengthEncode(certIndex)])\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length <= 29)\n            throw new errors_InvalidArgumentError('data', 'Pointer address data length should greater than 29 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = Hash28ByteBase16(PointerAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        let index = 29;\n        const dataBuffer = PointerAddress_Buffer.from(data);\n        const { value: slot, bytesRead: slotBytes } = variableLengthDecode(dataBuffer.subarray(index));\n        index += slotBytes;\n        const { value: txIndex, bytesRead: txIndexBytes } = variableLengthDecode(dataBuffer.subarray(index));\n        index += txIndexBytes;\n        const { value: certIndex } = variableLengthDecode(dataBuffer.subarray(index));\n        return new Address({\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: type === AddressType.PointerScript ? CredentialType.ScriptHash : CredentialType.KeyHash\n            },\n            pointer: { certIndex: CertIndex(Number(certIndex)), slot, txIndex: TxIndex(Number(txIndex)) },\n            type\n        });\n    }\n}\n_PointerAddress_type = new WeakMap(), _PointerAddress_networkId = new WeakMap(), _PointerAddress_paymentPart = new WeakMap(), _PointerAddress_pointer = new WeakMap();\n//# sourceMappingURL=PointerAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/RewardAddress.js\n/* provided dependency */ var RewardAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar RewardAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar RewardAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _RewardAddress_type, _RewardAddress_networkId, _RewardAddress_paymentPart;\n\n\n\nclass RewardAddress {\n    constructor(props) {\n        _RewardAddress_type.set(this, void 0);\n        _RewardAddress_networkId.set(this, void 0);\n        _RewardAddress_paymentPart.set(this, void 0);\n        RewardAddress_classPrivateFieldSet(this, _RewardAddress_networkId, props.networkId, \"f\");\n        RewardAddress_classPrivateFieldSet(this, _RewardAddress_paymentPart, props.paymentPart, \"f\");\n        RewardAddress_classPrivateFieldSet(this, _RewardAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment) {\n        let type = AddressType.RewardKey;\n        if (payment.type === CredentialType.ScriptHash)\n            type |= 0b0001;\n        return new RewardAddress({\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return RewardAddress_classPrivateFieldGet(this, _RewardAddress_paymentPart, \"f\");\n    }\n    toAddress() {\n        return new Address({\n            networkId: RewardAddress_classPrivateFieldGet(this, _RewardAddress_networkId, \"f\"),\n            paymentPart: RewardAddress_classPrivateFieldGet(this, _RewardAddress_paymentPart, \"f\"),\n            type: RewardAddress_classPrivateFieldGet(this, _RewardAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case AddressType.RewardKey:\n            case AddressType.RewardScript:\n                address = new RewardAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return RewardAddress_Buffer.concat([\n            RewardAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            RewardAddress_Buffer.from(props.paymentPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 29)\n            throw new errors_InvalidArgumentError('data', 'Enterprise address data length should be 29 bytes long.');\n        const network = data[0] & 15;\n        const stakeCredential = Hash28ByteBase16(RewardAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        return new Address({\n            networkId: network,\n            paymentPart: {\n                hash: stakeCredential,\n                type: type === AddressType.RewardScript ? CredentialType.ScriptHash : CredentialType.KeyHash\n            },\n            type\n        });\n    }\n}\n_RewardAddress_type = new WeakMap(), _RewardAddress_networkId = new WeakMap(), _RewardAddress_paymentPart = new WeakMap();\n//# sourceMappingURL=RewardAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/Address.js\n/* provided dependency */ var Address_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Address_props;\n\n\n\n\n\n\n\n\nconst Address_MAX_BECH32_LENGTH_LIMIT = 1023;\nvar AddressType;\n(function (AddressType) {\n    AddressType[AddressType[\"BasePaymentKeyStakeKey\"] = 0] = \"BasePaymentKeyStakeKey\";\n    AddressType[AddressType[\"BasePaymentScriptStakeKey\"] = 1] = \"BasePaymentScriptStakeKey\";\n    AddressType[AddressType[\"BasePaymentKeyStakeScript\"] = 2] = \"BasePaymentKeyStakeScript\";\n    AddressType[AddressType[\"BasePaymentScriptStakeScript\"] = 3] = \"BasePaymentScriptStakeScript\";\n    AddressType[AddressType[\"PointerKey\"] = 4] = \"PointerKey\";\n    AddressType[AddressType[\"PointerScript\"] = 5] = \"PointerScript\";\n    AddressType[AddressType[\"EnterpriseKey\"] = 6] = \"EnterpriseKey\";\n    AddressType[AddressType[\"EnterpriseScript\"] = 7] = \"EnterpriseScript\";\n    AddressType[AddressType[\"Byron\"] = 8] = \"Byron\";\n    AddressType[AddressType[\"RewardKey\"] = 14] = \"RewardKey\";\n    AddressType[AddressType[\"RewardScript\"] = 15] = \"RewardScript\";\n})(AddressType || (AddressType = {}));\nvar CredentialType;\n(function (CredentialType) {\n    CredentialType[CredentialType[\"KeyHash\"] = 0] = \"KeyHash\";\n    CredentialType[CredentialType[\"ScriptHash\"] = 1] = \"ScriptHash\";\n})(CredentialType || (CredentialType = {}));\nclass Address {\n    constructor(props) {\n        _Address_props.set(this, void 0);\n        Address_classPrivateFieldSet(this, _Address_props, props, \"f\");\n    }\n    static fromBytes(hex) {\n        const data = Address_Buffer.from(hex, 'hex');\n        const type = data[0] >> 4;\n        let address;\n        switch (type) {\n            case AddressType.BasePaymentKeyStakeKey:\n            case AddressType.BasePaymentScriptStakeKey:\n            case AddressType.BasePaymentKeyStakeScript:\n            case AddressType.BasePaymentScriptStakeScript: {\n                address = BaseAddress.unpackParts(type, data);\n                break;\n            }\n            case AddressType.PointerKey:\n            case AddressType.PointerScript: {\n                address = PointerAddress.unpackParts(type, data);\n                break;\n            }\n            case AddressType.EnterpriseKey:\n            case AddressType.EnterpriseScript: {\n                address = EnterpriseAddress.unpackParts(type, data);\n                break;\n            }\n            case AddressType.RewardKey:\n            case AddressType.RewardScript: {\n                address = RewardAddress.unpackParts(type, data);\n                break;\n            }\n            case AddressType.Byron: {\n                address = ByronAddress.unpackParts(type, data);\n                break;\n            }\n            default:\n                throw new errors_InvalidArgumentError('data', 'Invalid address raw data');\n        }\n        return address;\n    }\n    toBytes() {\n        let cborData;\n        switch (Address_classPrivateFieldGet(this, _Address_props, \"f\").type) {\n            case AddressType.BasePaymentKeyStakeKey:\n            case AddressType.BasePaymentScriptStakeKey:\n            case AddressType.BasePaymentKeyStakeScript:\n            case AddressType.BasePaymentScriptStakeScript: {\n                cborData = BaseAddress.packParts(Address_classPrivateFieldGet(this, _Address_props, \"f\"));\n                break;\n            }\n            case AddressType.PointerKey:\n            case AddressType.PointerScript: {\n                cborData = PointerAddress.packParts(Address_classPrivateFieldGet(this, _Address_props, \"f\"));\n                break;\n            }\n            case AddressType.EnterpriseKey:\n            case AddressType.EnterpriseScript: {\n                cborData = EnterpriseAddress.packParts(Address_classPrivateFieldGet(this, _Address_props, \"f\"));\n                break;\n            }\n            case AddressType.RewardKey:\n            case AddressType.RewardScript: {\n                cborData = RewardAddress.packParts(Address_classPrivateFieldGet(this, _Address_props, \"f\"));\n                break;\n            }\n            case AddressType.Byron: {\n                cborData = ByronAddress.packParts(Address_classPrivateFieldGet(this, _Address_props, \"f\"));\n                break;\n            }\n            default:\n                throw new Error('Invalid address');\n        }\n        return primitives_HexBlob.fromBytes(cborData);\n    }\n    static fromBase58(base58Address) {\n        return Address.fromBytes(primitives_HexBlob.fromBytes(base58.decode(base58Address)));\n    }\n    toBase58() {\n        if (Address_classPrivateFieldGet(this, _Address_props, \"f\").type !== AddressType.Byron)\n            throw new Error('Only Byron addresses will be encoded in base58');\n        return base58.encode(Address_Buffer.from(this.toBytes(), 'hex'));\n    }\n    toBech32() {\n        const words = esm_bech32.toWords(Address_Buffer.from(this.toBytes(), 'hex'));\n        if (Address_classPrivateFieldGet(this, _Address_props, \"f\").type === AddressType.Byron)\n            throw new Error('Only Shelley addresses will be encoded in bech32');\n        const prefix = Address.getBech32Prefix(Address_classPrivateFieldGet(this, _Address_props, \"f\").type, Address_classPrivateFieldGet(this, _Address_props, \"f\").networkId);\n        const bech32Address = esm_bech32.encode(prefix, words, Address_MAX_BECH32_LENGTH_LIMIT);\n        return Address_classPrivateFieldGet(this, _Address_props, \"f\").type === AddressType.RewardKey || Address_classPrivateFieldGet(this, _Address_props, \"f\").type === AddressType.RewardScript\n            ? bech32Address\n            : bech32Address;\n    }\n    static fromBech32(bech32) {\n        const { words } = esm_bech32.decode(bech32, Address_MAX_BECH32_LENGTH_LIMIT);\n        return Address.fromBytes(primitives_HexBlob.fromBytes(esm_bech32.fromWords(words)));\n    }\n    static fromString(address) {\n        try {\n            if (Address.isValidBech32(address))\n                return Address.fromBech32(address);\n            if (Address.isValidByron(address))\n                return Address.fromBase58(address);\n            return Address.fromBytes(primitives_HexBlob(address));\n        }\n        catch {\n        }\n        return null;\n    }\n    static isValidBech32(bech32) {\n        try {\n            Address.fromBech32(bech32);\n        }\n        catch {\n            return false;\n        }\n        return true;\n    }\n    static isValidByron(base58) {\n        try {\n            const addr = Address.fromBase58(base58);\n            if (Address_classPrivateFieldGet(addr, _Address_props, \"f\").type !== AddressType.Byron)\n                return false;\n        }\n        catch {\n            return false;\n        }\n        return true;\n    }\n    static isValid(address) {\n        return Address.isValidBech32(address) || Address.isValidByron(address);\n    }\n    asByron() {\n        return ByronAddress.fromAddress(this);\n    }\n    asReward() {\n        return RewardAddress.fromAddress(this);\n    }\n    asPointer() {\n        return PointerAddress.fromAddress(this);\n    }\n    asEnterprise() {\n        return EnterpriseAddress.fromAddress(this);\n    }\n    asBase() {\n        return BaseAddress.fromAddress(this);\n    }\n    getType() {\n        return Address_classPrivateFieldGet(this, _Address_props, \"f\").type;\n    }\n    getNetworkId() {\n        if (Address_classPrivateFieldGet(this, _Address_props, \"f\").type === AddressType.Byron) {\n            if (Address_classPrivateFieldGet(this, _Address_props, \"f\").byronAddressContent?.attrs.magic === undefined)\n                return NetworkId.Mainnet;\n            return NetworkId.Testnet;\n        }\n        return Address_classPrivateFieldGet(this, _Address_props, \"f\").networkId;\n    }\n    getProps() {\n        return Address_classPrivateFieldGet(this, _Address_props, \"f\");\n    }\n    static getBech32Prefix(type, networkId) {\n        let prefix = '';\n        switch (type) {\n            case AddressType.BasePaymentKeyStakeKey:\n            case AddressType.BasePaymentScriptStakeKey:\n            case AddressType.BasePaymentKeyStakeScript:\n            case AddressType.BasePaymentScriptStakeScript:\n            case AddressType.PointerKey:\n            case AddressType.PointerScript:\n            case AddressType.EnterpriseKey:\n            case AddressType.EnterpriseScript:\n                prefix = 'addr';\n                break;\n            case AddressType.RewardKey:\n            case AddressType.RewardScript: {\n                prefix = 'stake';\n                break;\n            }\n            default:\n                throw new Error('Invalid address');\n        }\n        prefix += networkId === 0 ? '_test' : '';\n        return prefix;\n    }\n}\n_Address_props = new WeakMap();\nconst isAddress = (input) => Address.isValid(input);\n//# sourceMappingURL=Address.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/RewardAccount.js\n\n\n\n\nconst RewardAccount = (value) => primitives_typedBech32(value, ['stake', 'stake_test'], 47);\nRewardAccount.toHash = (rewardAccount) => Address.fromBech32(rewardAccount).asReward().getPaymentCredential().hash;\nRewardAccount.fromCredential = (credential, networkId) => RewardAccount(RewardAddress.fromCredentials(networkId, { hash: credential.hash, type: credential.type }).toAddress().toBech32());\nRewardAccount.toNetworkId = (rewardAccount) => Address.fromBech32(rewardAccount).asReward().toAddress().getNetworkId();\nconst createRewardAccount = (stakeKeyHash, networkId) => RewardAccount(RewardAddress.fromCredentials(networkId, { hash: Hash28ByteBase16(stakeKeyHash), type: CredentialType.KeyHash })\n    .toAddress()\n    .toBech32());\n//# sourceMappingURL=RewardAccount.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/StakePool/primitives.js\n\n\n\nconst StakePool_primitives_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst PoolId = (value) => primitives_typedBech32(value, 'pool', 45);\nPoolId.fromKeyHash = (value) => primitives_HexBlob.toTypedBech32('pool', primitives_HexBlob(value));\nconst PoolIdHex = (value) => Hash28ByteBase16(value);\nconst VrfVkHex = (target) => primitives_typedHex(target, 64);\nPoolId.toKeyHash = (poolId) => {\n    const { words } = esm_bech32.decode(poolId, StakePool_primitives_MAX_BECH32_LENGTH_LIMIT);\n    return Ed25519KeyHashHex(primitives_HexBlob.fromBytes(esm_bech32.fromWords(words)));\n};\n//# sourceMappingURL=primitives.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/isNotNil.js\nconst isNotNil = (item) => typeof item !== 'undefined' && item !== null;\n//# sourceMappingURL=isNotNil.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Certificate.js\n\n\nvar CertificateType;\n(function (CertificateType) {\n    CertificateType[\"StakeRegistration\"] = \"StakeRegistrationCertificate\";\n    CertificateType[\"StakeDeregistration\"] = \"StakeDeregistrationCertificate\";\n    CertificateType[\"PoolRegistration\"] = \"PoolRegistrationCertificate\";\n    CertificateType[\"PoolRetirement\"] = \"PoolRetirementCertificate\";\n    CertificateType[\"StakeDelegation\"] = \"StakeDelegationCertificate\";\n    CertificateType[\"MIR\"] = \"MirCertificate\";\n    CertificateType[\"GenesisKeyDelegation\"] = \"GenesisKeyDelegationCertificate\";\n    CertificateType[\"Registration\"] = \"RegistrationCertificate\";\n    CertificateType[\"Unregistration\"] = \"UnRegistrationCertificate\";\n    CertificateType[\"VoteDelegation\"] = \"VoteDelegationCertificate\";\n    CertificateType[\"StakeVoteDelegation\"] = \"StakeVoteDelegationCertificate\";\n    CertificateType[\"StakeRegistrationDelegation\"] = \"StakeRegistrationDelegateCertificate\";\n    CertificateType[\"VoteRegistrationDelegation\"] = \"VoteRegistrationDelegateCertificate\";\n    CertificateType[\"StakeVoteRegistrationDelegation\"] = \"StakeVoteRegistrationDelegateCertificate\";\n    CertificateType[\"AuthorizeCommitteeHot\"] = \"AuthorizeCommitteeHotCertificate\";\n    CertificateType[\"ResignCommitteeCold\"] = \"ResignCommitteeColdCertificate\";\n    CertificateType[\"RegisterDelegateRepresentative\"] = \"RegisterDelegateRepresentativeCertificate\";\n    CertificateType[\"UnregisterDelegateRepresentative\"] = \"UnregisterDelegateRepresentativeCertificate\";\n    CertificateType[\"UpdateDelegateRepresentative\"] = \"UpdateDelegateRepresentativeCertificate\";\n})(CertificateType || (CertificateType = {}));\nvar MirCertificatePot;\n(function (MirCertificatePot) {\n    MirCertificatePot[\"Reserves\"] = \"reserve\";\n    MirCertificatePot[\"Treasury\"] = \"treasury\";\n})(MirCertificatePot || (MirCertificatePot = {}));\nvar MirCertificateKind;\n(function (MirCertificateKind) {\n    MirCertificateKind[\"ToOtherPot\"] = \"toOtherPot\";\n    MirCertificateKind[\"ToStakeCreds\"] = \"ToStakeCreds\";\n})(MirCertificateKind || (MirCertificateKind = {}));\nconst PostConwayStakeRegistrationCertificateTypes = [\n    CertificateType.Registration,\n    CertificateType.VoteRegistrationDelegation,\n    CertificateType.StakeRegistrationDelegation,\n    CertificateType.StakeVoteRegistrationDelegation\n];\nconst StakeRegistrationCertificateTypes = [\n    CertificateType.StakeRegistration,\n    ...PostConwayStakeRegistrationCertificateTypes\n];\nconst StakeDelegationCertificateTypes = [\n    CertificateType.StakeDelegation,\n    CertificateType.StakeVoteDelegation,\n    CertificateType.StakeRegistrationDelegation,\n    CertificateType.StakeVoteRegistrationDelegation\n];\nconst RegAndDeregCertificateTypes = [\n    ...StakeRegistrationCertificateTypes,\n    CertificateType.Unregistration,\n    CertificateType.StakeDeregistration\n];\nconst StakeCredentialCertificateTypes = [\n    ...RegAndDeregCertificateTypes,\n    ...StakeDelegationCertificateTypes,\n    CertificateType.VoteDelegation\n];\nconst VoteDelegationCredentialCertificateTypes = [\n    CertificateType.VoteDelegation,\n    CertificateType.VoteRegistrationDelegation,\n    CertificateType.StakeVoteDelegation,\n    CertificateType.StakeVoteRegistrationDelegation\n];\nconst isCertType = (certificate, certificateTypes) => certificateTypes.includes(certificate.__typename);\nconst createStakeRegistrationCert = (rewardAccount) => ({\n    __typename: CertificateType.StakeRegistration,\n    stakeCredential: {\n        hash: RewardAccount.toHash(rewardAccount),\n        type: CredentialType.KeyHash\n    }\n});\nconst createStakeDeregistrationCert = (rewardAccount, deposit) => deposit === undefined\n    ? {\n        __typename: CertificateType.StakeDeregistration,\n        stakeCredential: {\n            hash: RewardAccount.toHash(rewardAccount),\n            type: CredentialType.KeyHash\n        }\n    }\n    : {\n        __typename: CertificateType.Unregistration,\n        deposit,\n        stakeCredential: {\n            hash: RewardAccount.toHash(rewardAccount),\n            type: CredentialType.KeyHash\n        }\n    };\nconst createDelegationCert = (rewardAccount, poolId) => ({\n    __typename: CertificateType.StakeDelegation,\n    poolId,\n    stakeCredential: {\n        hash: RewardAccount.toHash(rewardAccount),\n        type: CredentialType.KeyHash\n    }\n});\nconst stakeKeyCertificates = (certificates) => certificates?.map((cert) => (isCertType(cert, RegAndDeregCertificateTypes) ? cert : undefined)).filter(isNotNil) ||\n    [];\nconst includesAnyCertificate = (haystack, needle) => haystack.some(({ __typename }) => needle.includes(__typename)) || false;\n//# sourceMappingURL=Certificate.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/BigIntMath.js\nconst BigIntMath = {\n    abs(x) {\n        return x < 0n ? -x : x;\n    },\n    max(arr) {\n        if (arr.length === 0)\n            return null;\n        let max = arr[0];\n        for (const num of arr.slice(1)) {\n            if (num > max)\n                max = num;\n        }\n        return max;\n    },\n    subtract(arr) {\n        if (arr.length === 0)\n            return 0n;\n        return arr.reduce((result, num) => result - num);\n    },\n    sum(arr) {\n        return arr.reduce((result, num) => result + num, 0n);\n    }\n};\n//# sourceMappingURL=BigIntMath.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/computeImplicitCoin.js\n\n\n\n\n\nconst stakeCredentialInRewardAccounts = (stakeCredential, rewardAccounts) => {\n    if (rewardAccounts.length === 0)\n        return true;\n    const networkId = RewardAccount.toNetworkId(rewardAccounts[0]);\n    return rewardAccounts.includes(RewardAccount.fromCredential(stakeCredential, networkId));\n};\nconst computeShellyDeposits = (depositParams, certificates, rewardAccounts) => {\n    let deposit = 0n;\n    let reclaimDeposit = 0n;\n    const anyRewardAccount = rewardAccounts.length === 0;\n    const poolIds = new Set(rewardAccounts.map((account) => PoolId.fromKeyHash(Ed25519KeyHashHex(RewardAccount.toHash(account)))));\n    for (const cert of certificates) {\n        switch (cert.__typename) {\n            case CertificateType.StakeRegistration:\n                if (stakeCredentialInRewardAccounts(cert.stakeCredential, rewardAccounts))\n                    deposit += depositParams.stakeKeyDeposit;\n                break;\n            case CertificateType.StakeDeregistration:\n                if (stakeCredentialInRewardAccounts(cert.stakeCredential, rewardAccounts))\n                    reclaimDeposit += depositParams.stakeKeyDeposit;\n                break;\n            case CertificateType.PoolRegistration:\n                if (anyRewardAccount || rewardAccounts.some((acct) => cert.poolParameters.owners.includes(acct)))\n                    deposit += depositParams.poolDeposit;\n                break;\n            case CertificateType.PoolRetirement: {\n                if (anyRewardAccount || poolIds.has(cert.poolId))\n                    reclaimDeposit += depositParams.poolDeposit;\n                break;\n            }\n        }\n    }\n    return {\n        deposit,\n        reclaimDeposit\n    };\n};\nconst computeConwayDeposits = (certificates, rewardAccounts, dRepKeyHash, proposalProcedures) => {\n    let deposit = 0n;\n    let reclaimDeposit = 0n;\n    for (const cert of certificates) {\n        switch (cert.__typename) {\n            case CertificateType.Registration:\n            case CertificateType.StakeRegistrationDelegation:\n            case CertificateType.VoteRegistrationDelegation:\n            case CertificateType.StakeVoteRegistrationDelegation:\n                if (stakeCredentialInRewardAccounts(cert.stakeCredential, rewardAccounts))\n                    deposit += cert.deposit;\n                break;\n            case CertificateType.Unregistration:\n                if (stakeCredentialInRewardAccounts(cert.stakeCredential, rewardAccounts))\n                    reclaimDeposit += cert.deposit;\n                break;\n            case CertificateType.RegisterDelegateRepresentative:\n            case CertificateType.UnregisterDelegateRepresentative:\n                if (!dRepKeyHash ||\n                    (cert.dRepCredential.type === CredentialType.KeyHash &&\n                        cert.dRepCredential.hash === Hash28ByteBase16.fromEd25519KeyHashHex(dRepKeyHash))) {\n                    cert.__typename === CertificateType.RegisterDelegateRepresentative\n                        ? (deposit += cert.deposit)\n                        : (reclaimDeposit += cert.deposit);\n                }\n                break;\n        }\n    }\n    if (proposalProcedures)\n        for (const proposal of proposalProcedures)\n            deposit += proposal.deposit;\n    return {\n        deposit,\n        reclaimDeposit\n    };\n};\nconst getTxDeposits = ({ stakeKeyDeposit, poolDeposit }, certificates, rewardAccounts = [], dRepKeyHash, proposalProcedures) => {\n    if (certificates.length === 0 && (!proposalProcedures || proposalProcedures.length === 0))\n        return { deposit: 0n, reclaimDeposit: 0n };\n    const depositParams = {\n        poolDeposit: poolDeposit ? BigInt(poolDeposit) : 0n,\n        stakeKeyDeposit: BigInt(stakeKeyDeposit)\n    };\n    const shelleyDeposits = computeShellyDeposits(depositParams, certificates, rewardAccounts);\n    const conwayDeposits = computeConwayDeposits(certificates, rewardAccounts, dRepKeyHash, proposalProcedures);\n    return {\n        deposit: shelleyDeposits.deposit + conwayDeposits.deposit,\n        reclaimDeposit: shelleyDeposits.reclaimDeposit + conwayDeposits.reclaimDeposit\n    };\n};\nconst getOwnWithdrawalsTotal = (withdrawals, rewardAccounts) => BigIntMath.sum(withdrawals.filter(({ stakeAddress }) => rewardAccounts.includes(stakeAddress)).map(({ quantity }) => quantity));\nconst computeImplicitCoin = ({ stakeKeyDeposit, poolDeposit }, { certificates, proposalProcedures, withdrawals = [] }, rewardAccounts, dRepKeyHash) => {\n    const { deposit, reclaimDeposit } = getTxDeposits({ poolDeposit, stakeKeyDeposit }, certificates ?? [], rewardAccounts, dRepKeyHash, proposalProcedures);\n    const hasRewardAccount = !!rewardAccounts?.length;\n    const allWithdrawalsTotal = BigIntMath.sum(withdrawals.map(({ quantity }) => quantity));\n    const withdrawalsTotal = hasRewardAccount ? getOwnWithdrawalsTotal(withdrawals, rewardAccounts) : allWithdrawalsTotal;\n    return {\n        deposit,\n        input: withdrawalsTotal + reclaimDeposit,\n        reclaimDeposit,\n        withdrawals: withdrawalsTotal\n    };\n};\n//# sourceMappingURL=computeImplicitCoin.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/sum.js\nvar sum = __webpack_require__(\"./node_modules/lodash/sum.js\");\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/Percent.js\n\nconst Percent = (value) => value;\nconst calcPercentages = (parts, total = sum(parts)) => {\n    if (parts.length === 0) {\n        return [];\n    }\n    let partsSum = sum(parts);\n    if (total < partsSum)\n        total = partsSum;\n    if (total === 0) {\n        parts = parts.map(() => 1);\n        partsSum = sum(parts);\n        total = partsSum;\n    }\n    return parts.map((part) => Percent(part / total));\n};\n//# sourceMappingURL=Percent.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/estimateStakePoolAPY.js\n\nconst MILLISECONDS_PER_DAY = 1000 * 60 * 60 * 24;\nconst estimateStakePoolAPY = (rewardsHistory) => {\n    if (rewardsHistory.length === 0)\n        return null;\n    const { activeStake, epochLength, memberRewards, pledge } = rewardsHistory.reduce((previous, current) => ({\n        activeStake: previous.activeStake + current.activeStake,\n        epochLength: previous.epochLength + current.epochLength,\n        memberRewards: previous.memberRewards + current.memberRewards,\n        pledge: previous.pledge + current.activeStake\n    }));\n    return Percent((Number(memberRewards) / Number(activeStake - pledge) / (epochLength / MILLISECONDS_PER_DAY)) * 365);\n};\n//# sourceMappingURL=estimateStakePoolAPY.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/resolveInputValue.js\nconst resolveInputValue = (input, transactions) => {\n    const tx = transactions.find((transaction) => transaction.id === input.txId);\n    return tx?.body.outputs[input.index]?.value;\n};\n//# sourceMappingURL=resolveInputValue.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Transaction.js\n\nconst TransactionId = (value) => Hash32ByteBase16(value);\nTransactionId.fromHexBlob = (value) => Hash32ByteBase16.fromHexBlob(value);\nvar InputSource;\n(function (InputSource) {\n    InputSource[\"inputs\"] = \"inputs\";\n    InputSource[\"collaterals\"] = \"collaterals\";\n})(InputSource || (InputSource = {}));\nvar RedeemerPurpose;\n(function (RedeemerPurpose) {\n    RedeemerPurpose[\"spend\"] = \"spend\";\n    RedeemerPurpose[\"mint\"] = \"mint\";\n    RedeemerPurpose[\"certificate\"] = \"certificate\";\n    RedeemerPurpose[\"withdrawal\"] = \"withdrawal\";\n    RedeemerPurpose[\"propose\"] = \"propose\";\n    RedeemerPurpose[\"vote\"] = \"vote\";\n})(RedeemerPurpose || (RedeemerPurpose = {}));\n//# sourceMappingURL=Transaction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/phase2Validation.js\n\nconst isPhase2ValidationErrTx = ({ inputSource }) => inputSource === InputSource.collaterals;\n//# sourceMappingURL=phase2Validation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/addressesShareAnyKey.js\n\n\nconst getAddressKeyIDs = (input) => {\n    const address = typeof input === 'string' ? Address.fromString(input) : input;\n    if (!address) {\n        throw new errors_InvalidStringError('Expected either bech32 or base58 address');\n    }\n    switch (address.getType()) {\n        case AddressType.BasePaymentKeyStakeKey:\n        case AddressType.BasePaymentKeyStakeScript:\n        case AddressType.BasePaymentScriptStakeKey:\n        case AddressType.BasePaymentScriptStakeScript: {\n            const baseAddr = address.asBase();\n            return {\n                paymentId: { credential: baseAddr.getPaymentCredential() },\n                stakeId: { credential: baseAddr.getStakeCredential() }\n            };\n        }\n        case AddressType.Byron:\n            return {\n                paymentId: { byronRoot: address.asByron().getRoot() }\n            };\n        case AddressType.EnterpriseKey:\n        case AddressType.EnterpriseScript: {\n            const enterpriseAddr = address.asEnterprise();\n            return {\n                paymentId: { credential: enterpriseAddr.getPaymentCredential() }\n            };\n        }\n        case AddressType.PointerKey:\n        case AddressType.PointerScript: {\n            const pointerAddr = address.asPointer();\n            return {\n                paymentId: { credential: pointerAddr.getPaymentCredential() },\n                stakeId: { pointer: pointerAddr.getStakePointer() }\n            };\n        }\n        case AddressType.RewardKey:\n        case AddressType.RewardScript: {\n            const rewardAddr = address.asReward();\n            return {\n                stakeId: { credential: rewardAddr.getPaymentCredential() }\n            };\n        }\n    }\n};\nconst isPaymentIdPresentAndEquals = (id1, id2) => {\n    if (!id1 || !id2)\n        return false;\n    if ('credential' in id1 && 'credential' in id2) {\n        return id1.credential.hash === id2.credential.hash;\n    }\n    if ('byronRoot' in id1 && 'byronRoot' in id2) {\n        return id1.byronRoot === id2.byronRoot;\n    }\n    return false;\n};\nconst isStakeIdPresentAndEquals = (id1, id2) => {\n    if (!id1 || !id2)\n        return false;\n    if ('credential' in id1 && 'credential' in id2) {\n        return id1.credential.hash === id2.credential.hash;\n    }\n    if ('pointer' in id1 && 'pointer' in id2) {\n        return (id1.pointer.slot === id2.pointer.slot &&\n            id1.pointer.txIndex === id2.pointer.txIndex &&\n            id1.pointer.certIndex === id2.pointer.certIndex);\n    }\n    return false;\n};\nconst addressesShareAnyKey = (address1, address2) => {\n    if (address1 === address2)\n        return true;\n    const ids1 = getAddressKeyIDs(address1);\n    const ids2 = getAddressKeyIDs(address2);\n    return (isPaymentIdPresentAndEquals(ids1.paymentId, ids2.paymentId) || isStakeIdPresentAndEquals(ids1.stakeId, ids2.stakeId));\n};\n//# sourceMappingURL=addressesShareAnyKey.js.map\n;// ./node_modules/web-encoding/src/lib.mjs\n// In node `export { TextEncoder }` throws:\n// \"Export 'TextEncoder' is not defined in module\"\n// To workaround we first define constants and then export with as.\nconst Encoder = TextEncoder\nconst Decoder = TextDecoder\n\n\n\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/plutusDataUtils.js\n\nconst isPlutusBoundedBytes = (plutusData) => ArrayBuffer.isView(plutusData);\nconst isAnyPlutusDataCollection = (plutusData) => typeof plutusData === 'object' && !isPlutusBoundedBytes(plutusData);\nconst isPlutusList = (plutusData) => isAnyPlutusDataCollection(plutusData) && 'items' in plutusData;\nconst isPlutusMap = (plutusData) => isAnyPlutusDataCollection(plutusData) && 'data' in plutusData;\nconst isConstrPlutusData = (plutusData) => isAnyPlutusDataCollection(plutusData) && 'fields' in plutusData;\nconst isPlutusBigInt = (plutusData) => typeof plutusData === 'bigint';\nconst utf8Decoder = new Decoder('utf8', { fatal: true });\nconst tryConvertPlutusDataToUtf8String = (data) => {\n    if (!isPlutusBoundedBytes(data))\n        return data;\n    try {\n        return utf8Decoder.decode(data);\n    }\n    catch {\n        return data;\n    }\n};\nconst tryConvertPlutusMapToUtf8Record = (map, logger) => {\n    const record = {};\n    for (const [key, value] of map.data.entries()) {\n        const keyAsStr = tryConvertPlutusDataToUtf8String(key);\n        if (typeof keyAsStr !== 'string') {\n            logger.warn('Failed to decode plutus map key', key);\n            continue;\n        }\n        record[keyAsStr] = tryConvertPlutusDataToUtf8String(value);\n    }\n    return record;\n};\n//# sourceMappingURL=plutusDataUtils.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/isScriptAddress.js\n\nconst isScriptAddress = (address) => {\n    const baseAddress = Address.fromBech32(address).asBase();\n    const paymentCredential = baseAddress?.getPaymentCredential();\n    const stakeCredential = baseAddress?.getStakeCredential();\n    return paymentCredential?.type === CredentialType.ScriptHash && stakeCredential?.type === CredentialType.ScriptHash;\n};\n//# sourceMappingURL=isScriptAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/util/index.js\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/StakePool/StakePool.js\nvar StakePoolStatus;\n(function (StakePoolStatus) {\n    StakePoolStatus[\"Activating\"] = \"activating\";\n    StakePoolStatus[\"Active\"] = \"active\";\n    StakePoolStatus[\"Retired\"] = \"retired\";\n    StakePoolStatus[\"Retiring\"] = \"retiring\";\n})(StakePoolStatus || (StakePoolStatus = {}));\nclass StakePoolEpochRewards {\n}\n//# sourceMappingURL=StakePool.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/StakePool/PoolParameters.js\n\nconst PoolMdVk = (target) => primitives_typedBech32(target, 'poolmd_vk', 52);\n//# sourceMappingURL=PoolParameters.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/StakePool/ExtendedStakePoolMetadata.js\nvar ExtendedPoolStatus;\n(function (ExtendedPoolStatus) {\n    ExtendedPoolStatus[\"Active\"] = \"active\";\n    ExtendedPoolStatus[\"Retired\"] = \"retired\";\n    ExtendedPoolStatus[\"Offline\"] = \"offline\";\n    ExtendedPoolStatus[\"Experimental\"] = \"experimental\";\n    ExtendedPoolStatus[\"Private\"] = \"private\";\n})(ExtendedPoolStatus || (ExtendedPoolStatus = {}));\n//# sourceMappingURL=ExtendedStakePoolMetadata.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/StakePool/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/metadatum.js\n\nconst asMetadatumMap = (metadatum) => {\n    if (metadatum instanceof Map) {\n        return metadatum;\n    }\n    return null;\n};\nconst asMetadatumArray = (metadatum) => {\n    if (Array.isArray(metadatum)) {\n        return metadatum;\n    }\n    return null;\n};\nconst jsonToMetadatum = (json) => {\n    if (json === null)\n        throw new errors_InvalidArgumentError('json', 'JSON value can not be null');\n    switch (typeof json) {\n        case 'boolean':\n        case 'undefined':\n            throw new errors_InvalidArgumentError('json', `JSON value can not be ${typeof json}`);\n        case 'number':\n        case 'bigint': {\n            return BigInt(json);\n        }\n        case 'string':\n            return String(json);\n        default: {\n            if (Array.isArray(json)) {\n                const array = [];\n                for (const metadataItem of json) {\n                    array.push(jsonToMetadatum(metadataItem));\n                }\n                return array;\n            }\n            else if (ArrayBuffer.isView(json)) {\n                return new Uint8Array(json.buffer);\n            }\n            const metadataMap = new Map();\n            for (const key in json) {\n                const val = json[key];\n                metadataMap.set(jsonToMetadatum(key), jsonToMetadatum(val));\n            }\n            return metadataMap;\n        }\n    }\n};\nconst metadatumToJson = (metadatum) => {\n    if (metadatum === null)\n        throw new errors_InvalidArgumentError('data', 'Metadatum value can not be null');\n    switch (typeof metadatum) {\n        case 'boolean':\n        case 'undefined':\n        case 'number':\n            throw new errors_InvalidArgumentError('metadatum', `Metadatum value can not be ${typeof metadatum}`);\n        case 'bigint': {\n            return metadatum;\n        }\n        case 'string':\n            return metadatum;\n        default: {\n            if (Array.isArray(metadatum)) {\n                const array = [];\n                for (const metadataItem of metadatum) {\n                    array.push(metadatumToJson(metadataItem));\n                }\n                return array;\n            }\n            else if (ArrayBuffer.isView(metadatum)) {\n                return new Uint8Array(metadatum);\n            }\n            const object = {};\n            for (const [key, value] of metadatum.entries()) {\n                object[metadatumToJson(key)] = metadatumToJson(value);\n            }\n            return object;\n        }\n    }\n};\n//# sourceMappingURL=metadatum.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/DelegationsAndRewards.js\n\nvar StakeCredentialStatus;\n(function (StakeCredentialStatus) {\n    StakeCredentialStatus[\"Registering\"] = \"REGISTERING\";\n    StakeCredentialStatus[\"Registered\"] = \"REGISTERED\";\n    StakeCredentialStatus[\"Unregistering\"] = \"UNREGISTERING\";\n    StakeCredentialStatus[\"Unregistered\"] = \"UNREGISTERED\";\n})(StakeCredentialStatus || (StakeCredentialStatus = {}));\nconst DelegationMetadataLabel = 6862n;\nconst portfolioMetadataFromCip17 = (cip17) => {\n    const portfolio = { ...cip17 };\n    portfolio.pools = cip17.pools.map((pool) => ({\n        id: pool.id,\n        weight: pool.weight\n    }));\n    return portfolio;\n};\nconst cip17FromMetadatum = (portfolio) => {\n    const cip17 = metadatumToJson(portfolio);\n    for (const pool of cip17.pools) {\n        pool.weight = Number(pool.weight);\n    }\n    return cip17;\n};\n//# sourceMappingURL=DelegationsAndRewards.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Block.js\n/* provided dependency */ var Block_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\n\nconst BlockSize = (value) => value;\nconst BlockNo = (value) => value;\nconst EpochNo = (value) => value;\nconst Slot = (value) => value;\nconst BlockId = (value) => Hash32ByteBase16(value);\nconst VrfVkBech32 = (value) => primitives_typedBech32(value, 'vrf_vk', 52);\nconst GenesisDelegate = (value) => {\n    if (/ShelleyGenesis-[\\da-f]{16}/.test(value)) {\n        return value;\n    }\n    return Hash28ByteBase16(value);\n};\nconst SlotLeader = (value) => {\n    try {\n        return PoolId(value);\n    }\n    catch {\n        try {\n            return GenesisDelegate(value);\n        }\n        catch (error) {\n            throw new errors_InvalidStringError('Expected either PoolId or GenesisDelegate', error);\n        }\n    }\n};\nVrfVkBech32.fromHex = (value) => {\n    const words = esm_bech32.toWords(Block_Buffer.from(value, 'hex'));\n    return VrfVkBech32(esm_bech32.encode('vrf_vk', words, 1023));\n};\n//# sourceMappingURL=Block.js.map\n// EXTERNAL MODULE: ./node_modules/blake2b/index.js\nvar blake2b = __webpack_require__(\"./node_modules/blake2b/index.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Asset.js\n/* provided dependency */ var Asset_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst AssetName = (value) => {\n    if (value.length > 0) {\n        primitives_assertIsHexString(value);\n        if (value.length > 64) {\n            throw new errors_InvalidStringError('too long');\n        }\n    }\n    return value.toLowerCase();\n};\nconst Asset_utf8Decoder = new Decoder('utf8', { fatal: true });\nAssetName.toUTF8 = (assetName, stripInvisibleCharacters = false) => {\n    const assetNameBuffer = Asset_Buffer.from(assetName, 'hex');\n    try {\n        if (stripInvisibleCharacters) {\n            return Asset_utf8Decoder.decode(assetNameBuffer.filter((v) => v > 31));\n        }\n        return Asset_utf8Decoder.decode(assetNameBuffer);\n    }\n    catch (error) {\n        throw new errors_InvalidStringError(`Cannot convert AssetName '${assetName}' to UTF8`, error);\n    }\n};\nconst AssetId = (value) => {\n    const normalizedValue = value.split('.').join('');\n    primitives_assertIsHexString(normalizedValue);\n    if (normalizedValue.length > 120)\n        throw new errors_InvalidStringError('too long');\n    if (normalizedValue.length < 56)\n        throw new errors_InvalidStringError('too short');\n    return normalizedValue;\n};\nconst PolicyId = (value) => Hash28ByteBase16(value);\nAssetId.getPolicyId = (id) => PolicyId(id.slice(0, 56));\nAssetId.getAssetName = (id) => AssetName(id.slice(56));\nAssetId.fromParts = (policyId, assetName) => AssetId(policyId + assetName);\nconst AssetFingerprint = (value) => primitives_typedBech32(value, 'asset', 32);\nAssetFingerprint.fromParts = (policyId, assetName) => {\n    const policyBuf = Asset_Buffer.from(policyId, 'hex');\n    const assetNameBuf = Asset_Buffer.from(assetName, 'hex');\n    const hexDigest = primitives_HexBlob(blake2b(20)\n        .update(new Uint8Array([...policyBuf, ...assetNameBuf]))\n        .digest('hex'));\n    return AssetFingerprint(primitives_HexBlob.toTypedBech32('asset', hexDigest));\n};\n//# sourceMappingURL=Asset.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/misc/encoding.js\n/* provided dependency */ var encoding_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nconst bytesToHex = (bytes) => encoding_Buffer.from(bytes).toString('hex');\nconst hexToBytes = (hex) => encoding_Buffer.from(hex, 'hex');\nconst utf8ToBytes = (str) => encoding_Buffer.from(str, 'utf8');\nconst utf8ToHex = (str) => encoding_Buffer.from(str, 'utf8').toString('hex');\n//# sourceMappingURL=encoding.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/MetadatumList.js\nvar MetadatumList_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar MetadatumList_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MetadatumList_array, _MetadatumList_useIndefiniteEncoding;\n\n\n\n\nclass MetadatumList {\n    constructor() {\n        _MetadatumList_array.set(this, new Array());\n        _MetadatumList_useIndefiniteEncoding.set(this, false);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (MetadatumList_classPrivateFieldGet(this, _MetadatumList_useIndefiniteEncoding, \"f\")) {\n            writer.writeStartArray();\n        }\n        else {\n            writer.writeStartArray(MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\").length);\n        }\n        for (const elem of MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(elem.toCbor()));\n        }\n        if (MetadatumList_classPrivateFieldGet(this, _MetadatumList_useIndefiniteEncoding, \"f\"))\n            writer.writeEndArray();\n        return primitives_HexBlob.fromBytes(writer.encode());\n    }\n    static fromCbor(cbor) {\n        const list = new MetadatumList();\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length === null)\n            MetadatumList_classPrivateFieldSet(list, _MetadatumList_useIndefiniteEncoding, true, \"f\");\n        while (reader.peekState() !== CborReaderState.EndArray) {\n            list.add(TransactionMetadatum.fromCbor(bytesToHex(reader.readEncodedValue())));\n        }\n        reader.readEndArray();\n        return list;\n    }\n    getLength() {\n        return MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\").length;\n    }\n    get(index) {\n        return MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\")[index];\n    }\n    add(elem) {\n        MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\").push(elem);\n    }\n    equals(other) {\n        if (MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\").length !== MetadatumList_classPrivateFieldGet(other, _MetadatumList_array, \"f\").length)\n            return false;\n        for (let i = 0; i < MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\").length; ++i) {\n            if (!MetadatumList_classPrivateFieldGet(this, _MetadatumList_array, \"f\")[i].equals(MetadatumList_classPrivateFieldGet(other, _MetadatumList_array, \"f\")[i]))\n                return false;\n        }\n        return true;\n    }\n}\n_MetadatumList_array = new WeakMap(), _MetadatumList_useIndefiniteEncoding = new WeakMap();\n//# sourceMappingURL=MetadatumList.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/MetadatumMap.js\nvar MetadatumMap_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar MetadatumMap_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MetadatumMap_map, _MetadatumMap_useIndefiniteEncoding;\n\n\n\n\n\nclass MetadatumMap {\n    constructor() {\n        _MetadatumMap_map.set(this, new Map());\n        _MetadatumMap_useIndefiniteEncoding.set(this, false);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_useIndefiniteEncoding, \"f\")) {\n            writer.writeStartMap();\n        }\n        else {\n            writer.writeStartMap(MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").size);\n        }\n        for (const [key, value] of MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").entries()) {\n            writer.writeEncodedValue(hexToBytes(key.toCbor()));\n            writer.writeEncodedValue(hexToBytes(value.toCbor()));\n        }\n        if (MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_useIndefiniteEncoding, \"f\"))\n            writer.writeEndMap();\n        return primitives_HexBlob.fromBytes(writer.encode());\n    }\n    static fromCbor(cbor) {\n        const map = new MetadatumMap();\n        const reader = new CborReader(cbor);\n        const size = reader.readStartMap();\n        if (size === null)\n            MetadatumMap_classPrivateFieldSet(map, _MetadatumMap_useIndefiniteEncoding, true, \"f\");\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = TransactionMetadatum.fromCbor(bytesToHex(reader.readEncodedValue()));\n            const value = TransactionMetadatum.fromCbor(bytesToHex(reader.readEncodedValue()));\n            map.insert(key, value);\n        }\n        reader.readEndMap();\n        return map;\n    }\n    getLength() {\n        return MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").size;\n    }\n    insert(key, value) {\n        MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").set(key, value);\n    }\n    get(key) {\n        if (!MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\"))\n            return undefined;\n        const element = [...MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").entries()].find((entry) => entry[0].equals(key));\n        if (!element)\n            return undefined;\n        return element[1];\n    }\n    getKeys() {\n        const list = new MetadatumList();\n        for (const elem of MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").keys()) {\n            list.add(elem);\n        }\n        return list;\n    }\n    equals(other) {\n        if (MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_useIndefiniteEncoding, \"f\") !== MetadatumMap_classPrivateFieldGet(other, _MetadatumMap_useIndefiniteEncoding, \"f\"))\n            return false;\n        if (MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").size !== MetadatumMap_classPrivateFieldGet(other, _MetadatumMap_map, \"f\").size)\n            return false;\n        const thisEntries = [...MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").entries()];\n        const otherEntries = [...MetadatumMap_classPrivateFieldGet(other, _MetadatumMap_map, \"f\").entries()];\n        for (let i = 0; i < MetadatumMap_classPrivateFieldGet(this, _MetadatumMap_map, \"f\").size; ++i) {\n            if (!thisEntries[i][0].equals(otherEntries[i][0]))\n                return false;\n            if (!thisEntries[i][1].equals(otherEntries[i][1]))\n                return false;\n        }\n        return true;\n    }\n}\n_MetadatumMap_map = new WeakMap(), _MetadatumMap_useIndefiniteEncoding = new WeakMap();\n//# sourceMappingURL=MetadatumMap.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/errors.js\n\n\nvar ProviderFailure;\n(function (ProviderFailure) {\n    ProviderFailure[\"Conflict\"] = \"CONFLICT\";\n    ProviderFailure[\"NotFound\"] = \"NOT_FOUND\";\n    ProviderFailure[\"Unknown\"] = \"UNKNOWN\";\n    ProviderFailure[\"Forbidden\"] = \"FORBIDDEN\";\n    ProviderFailure[\"InvalidResponse\"] = \"INVALID_RESPONSE\";\n    ProviderFailure[\"NotImplemented\"] = \"NOT_IMPLEMENTED\";\n    ProviderFailure[\"Unhealthy\"] = \"UNHEALTHY\";\n    ProviderFailure[\"ConnectionFailure\"] = \"CONNECTION_FAILURE\";\n    ProviderFailure[\"BadRequest\"] = \"BAD_REQUEST\";\n    ProviderFailure[\"ServerUnavailable\"] = \"SERVER_UNAVAILABLE\";\n})(ProviderFailure || (ProviderFailure = {}));\nconst providerFailureToStatusCodeMap = {\n    [ProviderFailure.BadRequest]: 400,\n    [ProviderFailure.Forbidden]: 403,\n    [ProviderFailure.NotFound]: 404,\n    [ProviderFailure.Conflict]: 409,\n    [ProviderFailure.Unhealthy]: 500,\n    [ProviderFailure.Unknown]: 500,\n    [ProviderFailure.InvalidResponse]: 500,\n    [ProviderFailure.NotImplemented]: 500,\n    [ProviderFailure.ConnectionFailure]: 500,\n    [ProviderFailure.ServerUnavailable]: 500\n};\nconst statusCodeMapToProviderFailure = new Map(Object.entries(providerFailureToStatusCodeMap).map(([key, value]) => [value, key]));\nconst isProviderFailure = (reason) => Object.values(ProviderFailure).includes(reason);\nconst reasonToProviderFailure = (reason) => isProviderFailure(reason) ? reason : ProviderFailure.Unknown;\nclass ProviderError extends errors_ComposableError {\n    constructor(reason, innerError, detail) {\n        super(errors_formatErrorMessage(reason, detail), innerError);\n        this.reason = reason;\n        this.detail = detail;\n    }\n}\nclass HandleOwnerChangeError extends CustomError {\n    constructor(handle, expectedAddress, actualAddress) {\n        super(`Expected: ${expectedAddress} for handle $${handle}. Actual: ${actualAddress}`);\n        this.handle = handle;\n        this.expectedAddress = expectedAddress;\n        this.actualAddress = actualAddress;\n    }\n}\nvar SerializationFailure;\n(function (SerializationFailure) {\n    SerializationFailure[\"InvalidType\"] = \"INVALID_TYPE\";\n    SerializationFailure[\"Overflow\"] = \"OVERFLOW\";\n    SerializationFailure[\"InvalidAddress\"] = \"INVALID_ADDRESS\";\n    SerializationFailure[\"MaxLengthLimit\"] = \"MAX_LENGTH_LIMIT\";\n    SerializationFailure[\"InvalidScript\"] = \"INVALID_SCRIPT\";\n    SerializationFailure[\"InvalidNativeScriptKind\"] = \"INVALID_NATIVE_SCRIPT_KIND\";\n    SerializationFailure[\"InvalidScriptType\"] = \"INVALID_SCRIPT_TYPE\";\n    SerializationFailure[\"InvalidDatum\"] = \"INVALID_DATUM\";\n})(SerializationFailure || (SerializationFailure = {}));\nclass SerializationError extends errors_ComposableError {\n    constructor(reason, detail, innerError) {\n        super(errors_formatErrorMessage(reason, detail), innerError);\n        this.reason = reason;\n        this.detail = detail;\n    }\n}\nclass InvalidProtocolParametersError extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\nclass NotImplementedError extends CustomError {\n    constructor(missingFeature) {\n        super(`Not implemented: ${missingFeature}`);\n    }\n}\nclass TimeoutError extends CustomError {\n    constructor(message) {\n        super(`Timeout: ${message}`);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/TransactionMetadatumKind.js\nvar TransactionMetadatumKind;\n(function (TransactionMetadatumKind) {\n    TransactionMetadatumKind[TransactionMetadatumKind[\"Map\"] = 0] = \"Map\";\n    TransactionMetadatumKind[TransactionMetadatumKind[\"List\"] = 1] = \"List\";\n    TransactionMetadatumKind[TransactionMetadatumKind[\"Integer\"] = 2] = \"Integer\";\n    TransactionMetadatumKind[TransactionMetadatumKind[\"Bytes\"] = 3] = \"Bytes\";\n    TransactionMetadatumKind[TransactionMetadatumKind[\"Text\"] = 4] = \"Text\";\n})(TransactionMetadatumKind || (TransactionMetadatumKind = {}));\n//# sourceMappingURL=TransactionMetadatumKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/TransactionMetadatum.js\n/* provided dependency */ var TransactionMetadatum_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TransactionMetadatum_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar TransactionMetadatum_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _TransactionMetadatum_map, _TransactionMetadatum_list, _TransactionMetadatum_integer, _TransactionMetadatum_bytes, _TransactionMetadatum_text, _TransactionMetadatum_kind, _TransactionMetadatum_originalBytes;\n\n\n\n\n\n\n\nconst MAX_WORD64 = 18446744073709551615n;\nconst check64Length = (metadatum) => {\n    const len = typeof metadatum === 'string' ? TransactionMetadatum_Buffer.from(metadatum, 'utf8').length : metadatum.length;\n    if (len > 64)\n        throw new SerializationError(SerializationFailure.MaxLengthLimit, `Metadatum value '${metadatum}' is too long. Length is ${len}. Max length is 64 bytes`);\n};\nclass TransactionMetadatum {\n    constructor() {\n        _TransactionMetadatum_map.set(this, undefined);\n        _TransactionMetadatum_list.set(this, undefined);\n        _TransactionMetadatum_integer.set(this, undefined);\n        _TransactionMetadatum_bytes.set(this, undefined);\n        _TransactionMetadatum_text.set(this, undefined);\n        _TransactionMetadatum_kind.set(this, TransactionMetadatumKind.Map);\n        _TransactionMetadatum_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_originalBytes, \"f\"))\n            return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_originalBytes, \"f\");\n        let cbor;\n        switch (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_kind, \"f\")) {\n            case TransactionMetadatumKind.Map: {\n                cbor = TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_map, \"f\").toCbor();\n                break;\n            }\n            case TransactionMetadatumKind.List: {\n                cbor = TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_list, \"f\").toCbor();\n                break;\n            }\n            case TransactionMetadatumKind.Bytes: {\n                const writer = new CborWriter();\n                check64Length(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\"));\n                writer.writeByteString(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\"));\n                cbor = bytesToHex(writer.encode());\n                break;\n            }\n            case TransactionMetadatumKind.Text: {\n                const writer = new CborWriter();\n                check64Length(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_text, \"f\"));\n                writer.writeTextString(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_text, \"f\"));\n                cbor = bytesToHex(writer.encode());\n                break;\n            }\n            case TransactionMetadatumKind.Integer: {\n                const writer = new CborWriter();\n                if ((TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\") >= 0 && TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\") <= MAX_WORD64) ||\n                    (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\") < 0 && TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\") >= -1n - MAX_WORD64)) {\n                    writer.writeInt(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\"));\n                }\n                else {\n                    writer.writeBigInteger(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\"));\n                }\n                cbor = bytesToHex(writer.encode());\n                break;\n            }\n            default:\n                throw new Error('Unsupported TransactionMetadatum kind');\n        }\n        return cbor;\n    }\n    static fromCbor(cbor) {\n        const data = new TransactionMetadatum();\n        const reader = new CborReader(cbor);\n        const peekTokenType = reader.peekState();\n        switch (peekTokenType) {\n            case CborReaderState.Tag: {\n                const tag = reader.peekTag();\n                switch (tag) {\n                    case CborTag.UnsignedBigNum: {\n                        reader.readTag();\n                        const bytes = reader.readByteString();\n                        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_integer, TransactionMetadatum.bufferToBigint(bytes), \"f\");\n                        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Integer, \"f\");\n                        break;\n                    }\n                    case CborTag.NegativeBigNum: {\n                        reader.readTag();\n                        const bytes = reader.readByteString();\n                        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_integer, TransactionMetadatum.bufferToBigint(bytes) * -1n, \"f\");\n                        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Integer, \"f\");\n                        break;\n                    }\n                }\n                break;\n            }\n            case CborReaderState.NegativeInteger:\n            case CborReaderState.UnsignedInteger: {\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_integer, reader.readInt(), \"f\");\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Integer, \"f\");\n                break;\n            }\n            case CborReaderState.StartIndefiniteLengthByteString:\n            case CborReaderState.ByteString: {\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_bytes, reader.readByteString(), \"f\");\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Bytes, \"f\");\n                break;\n            }\n            case CborReaderState.StartIndefiniteLengthTextString:\n            case CborReaderState.TextString: {\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_text, reader.readTextString(), \"f\");\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Text, \"f\");\n                break;\n            }\n            case CborReaderState.StartArray: {\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_list, MetadatumList.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.List, \"f\");\n                break;\n            }\n            case CborReaderState.StartMap: {\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_map, MetadatumMap.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Map, \"f\");\n                break;\n            }\n            default: {\n                throw new Error('Invalid Plutus Data');\n            }\n        }\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_originalBytes, cbor, \"f\");\n        return data;\n    }\n    toCore() {\n        switch (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_kind, \"f\")) {\n            case TransactionMetadatumKind.Bytes:\n                return new Uint8Array(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\"));\n            case TransactionMetadatumKind.Text:\n                return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_text, \"f\");\n            case TransactionMetadatumKind.Integer:\n                return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\");\n            case TransactionMetadatumKind.List:\n                return TransactionMetadatum.mapToCoreMetadatumList(TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_list, \"f\"));\n            case TransactionMetadatumKind.Map: {\n                const metadatumMap = TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_map, \"f\");\n                const coreMap = new Map();\n                const keys = metadatumMap.getKeys();\n                for (let i = 0; i < keys.getLength(); i++) {\n                    const key = keys.get(i);\n                    coreMap.set(key.toCore(), metadatumMap.get(key).toCore());\n                }\n                return coreMap;\n            }\n            default:\n                throw new NotImplementedError(`TransactionMetadatum mapping for kind ${TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_kind, \"f\")}`);\n        }\n    }\n    static fromCore(metadatum) {\n        if (metadatum === null)\n            throw new SerializationError(SerializationFailure.InvalidType);\n        switch (typeof metadatum) {\n            case 'number':\n            case 'boolean':\n            case 'undefined':\n                throw new SerializationError(SerializationFailure.InvalidType);\n            case 'bigint': {\n                return TransactionMetadatum.newInteger(metadatum);\n            }\n            case 'string':\n                check64Length(metadatum);\n                return TransactionMetadatum.newText(metadatum);\n            default: {\n                if (Array.isArray(metadatum)) {\n                    const metadatumList = new MetadatumList();\n                    for (const metadataItem of metadatum) {\n                        metadatumList.add(TransactionMetadatum.fromCore(metadataItem));\n                    }\n                    return TransactionMetadatum.newList(metadatumList);\n                }\n                else if (ArrayBuffer.isView(metadatum)) {\n                    check64Length(metadatum);\n                    return TransactionMetadatum.newBytes(metadatum);\n                }\n                const metadataMap = new MetadatumMap();\n                for (const [key, data] of metadatum.entries()) {\n                    metadataMap.insert(TransactionMetadatum.fromCore(key), TransactionMetadatum.fromCore(data));\n                }\n                return TransactionMetadatum.newMap(metadataMap);\n            }\n        }\n    }\n    static newMap(map) {\n        const data = new TransactionMetadatum();\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_map, map, \"f\");\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Map, \"f\");\n        return data;\n    }\n    static newList(list) {\n        const data = new TransactionMetadatum();\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_list, list, \"f\");\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.List, \"f\");\n        return data;\n    }\n    static newInteger(integer) {\n        const data = new TransactionMetadatum();\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_integer, integer, \"f\");\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Integer, \"f\");\n        return data;\n    }\n    static newBytes(bytes) {\n        const data = new TransactionMetadatum();\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_bytes, bytes, \"f\");\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Bytes, \"f\");\n        return data;\n    }\n    static newText(text) {\n        const data = new TransactionMetadatum();\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_text, text, \"f\");\n        TransactionMetadatum_classPrivateFieldSet(data, _TransactionMetadatum_kind, TransactionMetadatumKind.Text, \"f\");\n        return data;\n    }\n    getKind() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_kind, \"f\");\n    }\n    asMap() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_map, \"f\");\n    }\n    asList() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_list, \"f\");\n    }\n    asInteger() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\");\n    }\n    asBytes() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\");\n    }\n    asText() {\n        return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_text, \"f\");\n    }\n    equals(other) {\n        let result = false;\n        switch (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_kind, \"f\")) {\n            case TransactionMetadatumKind.Bytes:\n                if (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\") && TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_bytes, \"f\")) {\n                    return (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\").length === TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_bytes, \"f\").length &&\n                        TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_bytes, \"f\").every((value, index) => value === TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_bytes, \"f\")[index]));\n                }\n                return false;\n            case TransactionMetadatumKind.Integer:\n                return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_integer, \"f\") === TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_integer, \"f\");\n            case TransactionMetadatumKind.Text:\n                return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_text, \"f\") === TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_text, \"f\");\n            case TransactionMetadatumKind.List:\n                if (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_list, \"f\") && TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_list, \"f\")) {\n                    return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_list, \"f\").equals(TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_list, \"f\"));\n                }\n                return false;\n            case TransactionMetadatumKind.Map:\n                if (TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_map, \"f\") && TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_map, \"f\")) {\n                    return TransactionMetadatum_classPrivateFieldGet(this, _TransactionMetadatum_map, \"f\").equals(TransactionMetadatum_classPrivateFieldGet(other, _TransactionMetadatum_map, \"f\"));\n                }\n                return false;\n            default:\n                result = false;\n        }\n        return result;\n    }\n    static mapToCoreMetadatumList(list) {\n        const items = [];\n        for (let i = 0; i < list.getLength(); i++) {\n            const element = list.get(i);\n            items.push(element.toCore());\n        }\n        return items;\n    }\n    static bufferToBigint(buffer) {\n        let ret = 0n;\n        for (const i of buffer.values()) {\n            const bi = BigInt(i);\n            ret = (ret << 8n) + bi;\n        }\n        return ret;\n    }\n}\n_TransactionMetadatum_map = new WeakMap(), _TransactionMetadatum_list = new WeakMap(), _TransactionMetadatum_integer = new WeakMap(), _TransactionMetadatum_bytes = new WeakMap(), _TransactionMetadatum_text = new WeakMap(), _TransactionMetadatum_kind = new WeakMap(), _TransactionMetadatum_originalBytes = new WeakMap();\n//# sourceMappingURL=TransactionMetadatum.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/GeneralTransactionMetadata.js\nvar GeneralTransactionMetadata_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar GeneralTransactionMetadata_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _GeneralTransactionMetadata_metadata, _GeneralTransactionMetadata_originalBytes;\n\n\n\n\nclass GeneralTransactionMetadata {\n    constructor(metadata) {\n        _GeneralTransactionMetadata_metadata.set(this, void 0);\n        _GeneralTransactionMetadata_originalBytes.set(this, undefined);\n        GeneralTransactionMetadata_classPrivateFieldSet(this, _GeneralTransactionMetadata_metadata, metadata, \"f\");\n    }\n    toCbor() {\n        if (GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_originalBytes, \"f\"))\n            return GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartMap(GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").size);\n        for (const [key, val] of GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").entries()) {\n            writer.writeInt(key);\n            writer.writeEncodedValue(hexToBytes(val.toCbor()));\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const generalTransactionMetadata = new Map();\n        const reader = new CborReader(cbor);\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const label = reader.readInt();\n            const metadatum = TransactionMetadatum.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n            generalTransactionMetadata.set(label, metadatum);\n        }\n        reader.readEndMap();\n        return new GeneralTransactionMetadata(generalTransactionMetadata);\n    }\n    toCore() {\n        return new Map([...GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").entries()].map((metadata) => [metadata[0], metadata[1].toCore()]));\n    }\n    static fromCore(metadata) {\n        return new GeneralTransactionMetadata(new Map([...metadata.entries()].map((entry) => [entry[0], TransactionMetadatum.fromCore(entry[1])])));\n    }\n    metadata() {\n        return GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\");\n    }\n    setMetadata(metadata) {\n        GeneralTransactionMetadata_classPrivateFieldSet(this, _GeneralTransactionMetadata_metadata, metadata, \"f\");\n        GeneralTransactionMetadata_classPrivateFieldSet(this, _GeneralTransactionMetadata_originalBytes, undefined, \"f\");\n    }\n    equals(other) {\n        if (GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_originalBytes, \"f\") === GeneralTransactionMetadata_classPrivateFieldGet(other, _GeneralTransactionMetadata_originalBytes, \"f\"))\n            return true;\n        if (GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").size !== GeneralTransactionMetadata_classPrivateFieldGet(other, _GeneralTransactionMetadata_metadata, \"f\").size)\n            return false;\n        const thisEntries = [...GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").entries()];\n        const otherEntries = [...GeneralTransactionMetadata_classPrivateFieldGet(other, _GeneralTransactionMetadata_metadata, \"f\").entries()];\n        for (let i = 0; i < GeneralTransactionMetadata_classPrivateFieldGet(this, _GeneralTransactionMetadata_metadata, \"f\").size; ++i) {\n            if (thisEntries[i][0] !== otherEntries[i][0])\n                return false;\n            if (!thisEntries[i][1].equals(otherEntries[i][1]))\n                return false;\n        }\n        return true;\n    }\n}\n_GeneralTransactionMetadata_metadata = new WeakMap(), _GeneralTransactionMetadata_originalBytes = new WeakMap();\n//# sourceMappingURL=GeneralTransactionMetadata.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Script.js\nvar ScriptType;\n(function (ScriptType) {\n    ScriptType[\"Native\"] = \"native\";\n    ScriptType[\"Plutus\"] = \"plutus\";\n})(ScriptType || (ScriptType = {}));\nvar NativeScriptKind;\n(function (NativeScriptKind) {\n    NativeScriptKind[NativeScriptKind[\"RequireSignature\"] = 0] = \"RequireSignature\";\n    NativeScriptKind[NativeScriptKind[\"RequireAllOf\"] = 1] = \"RequireAllOf\";\n    NativeScriptKind[NativeScriptKind[\"RequireAnyOf\"] = 2] = \"RequireAnyOf\";\n    NativeScriptKind[NativeScriptKind[\"RequireNOf\"] = 3] = \"RequireNOf\";\n    NativeScriptKind[NativeScriptKind[\"RequireTimeAfter\"] = 4] = \"RequireTimeAfter\";\n    NativeScriptKind[NativeScriptKind[\"RequireTimeBefore\"] = 5] = \"RequireTimeBefore\";\n})(NativeScriptKind || (NativeScriptKind = {}));\nvar PlutusLanguageVersion;\n(function (PlutusLanguageVersion) {\n    PlutusLanguageVersion[PlutusLanguageVersion[\"V1\"] = 0] = \"V1\";\n    PlutusLanguageVersion[PlutusLanguageVersion[\"V2\"] = 1] = \"V2\";\n    PlutusLanguageVersion[PlutusLanguageVersion[\"V3\"] = 2] = \"V3\";\n})(PlutusLanguageVersion || (PlutusLanguageVersion = {}));\nconst isNativeScript = (script) => script.__type === ScriptType.Native;\nconst isPlutusScript = (script) => script.__type === ScriptType.Plutus;\n//# sourceMappingURL=Script.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/ScriptAll.js\n/* provided dependency */ var ScriptAll_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ScriptAll_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ScriptAll_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ScriptAll_nativeScripts, _ScriptAll_originalBytes;\n\n\n\n\nconst EMBEDDED_GROUP_SIZE = 2;\nclass ScriptAll {\n    constructor(nativeScripts) {\n        _ScriptAll_nativeScripts.set(this, void 0);\n        _ScriptAll_originalBytes.set(this, undefined);\n        ScriptAll_classPrivateFieldSet(this, _ScriptAll_nativeScripts, nativeScripts, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ScriptAll_classPrivateFieldGet(this, _ScriptAll_originalBytes, \"f\"))\n            return ScriptAll_classPrivateFieldGet(this, _ScriptAll_originalBytes, \"f\");\n        writer.writeStartArray(EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireAllOf);\n        writer.writeStartArray(ScriptAll_classPrivateFieldGet(this, _ScriptAll_nativeScripts, \"f\").length);\n        for (const nativeScript of ScriptAll_classPrivateFieldGet(this, _ScriptAll_nativeScripts, \"f\"))\n            writer.writeEncodedValue(ScriptAll_Buffer.from(nativeScript.toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireAllOf)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireAllOf}, but got kind ${kind}`);\n        const scripts = new Array();\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray)\n            scripts.push(NativeScript.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n        reader.readEndArray();\n        const script = new ScriptAll(scripts);\n        ScriptAll_classPrivateFieldSet(script, _ScriptAll_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            kind: NativeScriptKind.RequireAllOf,\n            scripts: ScriptAll_classPrivateFieldGet(this, _ScriptAll_nativeScripts, \"f\").map((script) => script.toCore())\n        };\n    }\n    static fromCore(script) {\n        return new ScriptAll(script.scripts.map((nativeScript) => NativeScript.fromCore(nativeScript)));\n    }\n    nativeScripts() {\n        return ScriptAll_classPrivateFieldGet(this, _ScriptAll_nativeScripts, \"f\");\n    }\n    setNativeScripts(nativeScripts) {\n        ScriptAll_classPrivateFieldSet(this, _ScriptAll_nativeScripts, nativeScripts, \"f\");\n        ScriptAll_classPrivateFieldSet(this, _ScriptAll_originalBytes, undefined, \"f\");\n    }\n}\n_ScriptAll_nativeScripts = new WeakMap(), _ScriptAll_originalBytes = new WeakMap();\n//# sourceMappingURL=ScriptAll.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/ScriptAny.js\n/* provided dependency */ var ScriptAny_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ScriptAny_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ScriptAny_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ScriptAny_nativeScripts, _ScriptAny_originalBytes;\n\n\n\n\nconst ScriptAny_EMBEDDED_GROUP_SIZE = 2;\nclass ScriptAny {\n    constructor(nativeScripts) {\n        _ScriptAny_nativeScripts.set(this, void 0);\n        _ScriptAny_originalBytes.set(this, undefined);\n        ScriptAny_classPrivateFieldSet(this, _ScriptAny_nativeScripts, nativeScripts, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ScriptAny_classPrivateFieldGet(this, _ScriptAny_originalBytes, \"f\"))\n            return ScriptAny_classPrivateFieldGet(this, _ScriptAny_originalBytes, \"f\");\n        writer.writeStartArray(ScriptAny_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireAnyOf);\n        writer.writeStartArray(ScriptAny_classPrivateFieldGet(this, _ScriptAny_nativeScripts, \"f\").length);\n        for (const nativeScript of ScriptAny_classPrivateFieldGet(this, _ScriptAny_nativeScripts, \"f\"))\n            writer.writeEncodedValue(ScriptAny_Buffer.from(nativeScript.toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== ScriptAny_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireAnyOf)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireAnyOf}, but got kind ${kind}`);\n        const scripts = new Array();\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray)\n            scripts.push(NativeScript.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n        reader.readEndArray();\n        const script = new ScriptAny(scripts);\n        ScriptAny_classPrivateFieldSet(script, _ScriptAny_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            kind: NativeScriptKind.RequireAnyOf,\n            scripts: ScriptAny_classPrivateFieldGet(this, _ScriptAny_nativeScripts, \"f\").map((script) => script.toCore())\n        };\n    }\n    static fromCore(script) {\n        return new ScriptAny(script.scripts.map((nativeScript) => NativeScript.fromCore(nativeScript)));\n    }\n    nativeScripts() {\n        return ScriptAny_classPrivateFieldGet(this, _ScriptAny_nativeScripts, \"f\");\n    }\n    setNativeScripts(nativeScripts) {\n        ScriptAny_classPrivateFieldSet(this, _ScriptAny_nativeScripts, nativeScripts, \"f\");\n        ScriptAny_classPrivateFieldSet(this, _ScriptAny_originalBytes, undefined, \"f\");\n    }\n}\n_ScriptAny_nativeScripts = new WeakMap(), _ScriptAny_originalBytes = new WeakMap();\n//# sourceMappingURL=ScriptAny.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/ScriptNOfK.js\n/* provided dependency */ var ScriptNOfK_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ScriptNOfK_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ScriptNOfK_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ScriptNOfK_nativeScripts, _ScriptNOfK_required, _ScriptNOfK_originalBytes;\n\n\n\n\nconst ScriptNOfK_EMBEDDED_GROUP_SIZE = 3;\nclass ScriptNOfK {\n    constructor(nativeScripts, required) {\n        _ScriptNOfK_nativeScripts.set(this, void 0);\n        _ScriptNOfK_required.set(this, void 0);\n        _ScriptNOfK_originalBytes.set(this, undefined);\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_nativeScripts, nativeScripts, \"f\");\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_required, required, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_originalBytes, \"f\"))\n            return ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_originalBytes, \"f\");\n        writer.writeStartArray(ScriptNOfK_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireNOf);\n        writer.writeInt(ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_required, \"f\"));\n        writer.writeStartArray(ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_nativeScripts, \"f\").length);\n        for (const nativeScript of ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_nativeScripts, \"f\"))\n            writer.writeEncodedValue(ScriptNOfK_Buffer.from(nativeScript.toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== ScriptNOfK_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireNOf)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireNOf}, but got kind ${kind}`);\n        const required = reader.readInt();\n        const scripts = new Array();\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray)\n            scripts.push(NativeScript.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n        reader.readEndArray();\n        const script = new ScriptNOfK(scripts, Number(required));\n        ScriptNOfK_classPrivateFieldSet(script, _ScriptNOfK_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            kind: NativeScriptKind.RequireNOf,\n            required: ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_required, \"f\"),\n            scripts: ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_nativeScripts, \"f\").map((script) => script.toCore())\n        };\n    }\n    static fromCore(script) {\n        return new ScriptNOfK(script.scripts.map((nativeScript) => NativeScript.fromCore(nativeScript)), script.required);\n    }\n    required() {\n        return ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_required, \"f\");\n    }\n    setRequired(required) {\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_required, required, \"f\");\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_originalBytes, undefined, \"f\");\n    }\n    nativeScripts() {\n        return ScriptNOfK_classPrivateFieldGet(this, _ScriptNOfK_nativeScripts, \"f\");\n    }\n    setNativeScripts(nativeScripts) {\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_nativeScripts, nativeScripts, \"f\");\n        ScriptNOfK_classPrivateFieldSet(this, _ScriptNOfK_originalBytes, undefined, \"f\");\n    }\n}\n_ScriptNOfK_nativeScripts = new WeakMap(), _ScriptNOfK_required = new WeakMap(), _ScriptNOfK_originalBytes = new WeakMap();\n//# sourceMappingURL=ScriptNOfK.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/ScriptPubkey.js\n/* provided dependency */ var ScriptPubkey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ScriptPubkey_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ScriptPubkey_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ScriptPubkey_keyHash, _ScriptPubkey_originalBytes;\n\n\n\n\nconst ScriptPubkey_EMBEDDED_GROUP_SIZE = 2;\nclass ScriptPubkey {\n    constructor(keyHash) {\n        _ScriptPubkey_keyHash.set(this, void 0);\n        _ScriptPubkey_originalBytes.set(this, undefined);\n        ScriptPubkey_classPrivateFieldSet(this, _ScriptPubkey_keyHash, keyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ScriptPubkey_classPrivateFieldGet(this, _ScriptPubkey_originalBytes, \"f\"))\n            return ScriptPubkey_classPrivateFieldGet(this, _ScriptPubkey_originalBytes, \"f\");\n        writer.writeStartArray(ScriptPubkey_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireSignature);\n        writer.writeByteString(ScriptPubkey_Buffer.from(ScriptPubkey_classPrivateFieldGet(this, _ScriptPubkey_keyHash, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== ScriptPubkey_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireSignature)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireSignature}, but got kind ${kind}`);\n        const key = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const script = new ScriptPubkey(key);\n        ScriptPubkey_classPrivateFieldSet(script, _ScriptPubkey_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            keyHash: ScriptPubkey_classPrivateFieldGet(this, _ScriptPubkey_keyHash, \"f\"),\n            kind: NativeScriptKind.RequireSignature\n        };\n    }\n    static fromCore(script) {\n        return new ScriptPubkey(script.keyHash);\n    }\n    keyHash() {\n        return ScriptPubkey_classPrivateFieldGet(this, _ScriptPubkey_keyHash, \"f\");\n    }\n    setKeyHash(keyHash) {\n        ScriptPubkey_classPrivateFieldSet(this, _ScriptPubkey_keyHash, keyHash, \"f\");\n        ScriptPubkey_classPrivateFieldSet(this, _ScriptPubkey_originalBytes, undefined, \"f\");\n    }\n}\n_ScriptPubkey_keyHash = new WeakMap(), _ScriptPubkey_originalBytes = new WeakMap();\n//# sourceMappingURL=ScriptPubkey.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/TimelockExpiry.js\nvar TimelockExpiry_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TimelockExpiry_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TimelockExpiry_slot, _TimelockExpiry_originalBytes;\n\n\n\n\nconst TimelockExpiry_EMBEDDED_GROUP_SIZE = 2;\nclass TimelockExpiry {\n    constructor(slot) {\n        _TimelockExpiry_slot.set(this, void 0);\n        _TimelockExpiry_originalBytes.set(this, undefined);\n        TimelockExpiry_classPrivateFieldSet(this, _TimelockExpiry_slot, slot, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (TimelockExpiry_classPrivateFieldGet(this, _TimelockExpiry_originalBytes, \"f\"))\n            return TimelockExpiry_classPrivateFieldGet(this, _TimelockExpiry_originalBytes, \"f\");\n        writer.writeStartArray(TimelockExpiry_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireTimeBefore);\n        writer.writeInt(TimelockExpiry_classPrivateFieldGet(this, _TimelockExpiry_slot, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== TimelockExpiry_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireTimeBefore)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireTimeBefore}, but got kind ${kind}`);\n        const slot = Slot(Number(reader.readInt()));\n        const script = new TimelockExpiry(slot);\n        TimelockExpiry_classPrivateFieldSet(script, _TimelockExpiry_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            kind: NativeScriptKind.RequireTimeBefore,\n            slot: TimelockExpiry_classPrivateFieldGet(this, _TimelockExpiry_slot, \"f\")\n        };\n    }\n    static fromCore(script) {\n        return new TimelockExpiry(script.slot);\n    }\n    slot() {\n        return TimelockExpiry_classPrivateFieldGet(this, _TimelockExpiry_slot, \"f\");\n    }\n    setSlot(slot) {\n        TimelockExpiry_classPrivateFieldSet(this, _TimelockExpiry_slot, slot, \"f\");\n        TimelockExpiry_classPrivateFieldSet(this, _TimelockExpiry_originalBytes, undefined, \"f\");\n    }\n}\n_TimelockExpiry_slot = new WeakMap(), _TimelockExpiry_originalBytes = new WeakMap();\n//# sourceMappingURL=TimelockExpiry.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/TimelockStart.js\nvar TimelockStart_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TimelockStart_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TimelockStart_slot, _TimelockStart_originalBytes;\n\n\n\n\nconst TimelockStart_EMBEDDED_GROUP_SIZE = 2;\nclass TimelockStart {\n    constructor(slot) {\n        _TimelockStart_slot.set(this, void 0);\n        _TimelockStart_originalBytes.set(this, undefined);\n        TimelockStart_classPrivateFieldSet(this, _TimelockStart_slot, slot, \"f\");\n    }\n    toCbor() {\n        if (TimelockStart_classPrivateFieldGet(this, _TimelockStart_originalBytes, \"f\"))\n            return TimelockStart_classPrivateFieldGet(this, _TimelockStart_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(TimelockStart_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(NativeScriptKind.RequireTimeAfter);\n        writer.writeInt(TimelockStart_classPrivateFieldGet(this, _TimelockStart_slot, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== TimelockStart_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== NativeScriptKind.RequireTimeAfter)\n            throw new errors_InvalidArgumentError('cbor', `Expected kind ${NativeScriptKind.RequireTimeAfter}, but got kind ${kind}`);\n        const slot = Slot(Number(reader.readInt()));\n        const script = new TimelockStart(slot);\n        TimelockStart_classPrivateFieldSet(script, _TimelockStart_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Native,\n            kind: NativeScriptKind.RequireTimeAfter,\n            slot: TimelockStart_classPrivateFieldGet(this, _TimelockStart_slot, \"f\")\n        };\n    }\n    static fromCore(script) {\n        return new TimelockStart(script.slot);\n    }\n    slot() {\n        return TimelockStart_classPrivateFieldGet(this, _TimelockStart_slot, \"f\");\n    }\n    setSlot(slot) {\n        TimelockStart_classPrivateFieldSet(this, _TimelockStart_slot, slot, \"f\");\n        TimelockStart_classPrivateFieldSet(this, _TimelockStart_originalBytes, undefined, \"f\");\n    }\n}\n_TimelockStart_slot = new WeakMap(), _TimelockStart_originalBytes = new WeakMap();\n//# sourceMappingURL=TimelockStart.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/NativeScript.js\n/* provided dependency */ var NativeScript_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar NativeScript_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar NativeScript_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _NativeScript_scriptAll, _NativeScript_scriptAny, _NativeScript_scripNOfK, _NativeScript_scriptPubKey, _NativeScript_timelockExpiry, _NativeScript_timelockStart, _NativeScript_kind, _NativeScript_originalBytes;\n\n\n\n\n\n\n\n\n\n\nconst HASH_LENGTH_IN_BYTES = 28;\nclass NativeScript {\n    constructor() {\n        _NativeScript_scriptAll.set(this, void 0);\n        _NativeScript_scriptAny.set(this, void 0);\n        _NativeScript_scripNOfK.set(this, void 0);\n        _NativeScript_scriptPubKey.set(this, void 0);\n        _NativeScript_timelockExpiry.set(this, void 0);\n        _NativeScript_timelockStart.set(this, void 0);\n        _NativeScript_kind.set(this, void 0);\n        _NativeScript_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (NativeScript_classPrivateFieldGet(this, _NativeScript_originalBytes, \"f\"))\n            return NativeScript_classPrivateFieldGet(this, _NativeScript_originalBytes, \"f\");\n        let cbor;\n        switch (NativeScript_classPrivateFieldGet(this, _NativeScript_kind, \"f\")) {\n            case NativeScriptKind.RequireSignature:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptPubKey, \"f\").toCbor();\n                break;\n            case NativeScriptKind.RequireAllOf:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAll, \"f\").toCbor();\n                break;\n            case NativeScriptKind.RequireAnyOf:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAny, \"f\").toCbor();\n                break;\n            case NativeScriptKind.RequireNOf:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_scripNOfK, \"f\").toCbor();\n                break;\n            case NativeScriptKind.RequireTimeAfter:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_timelockStart, \"f\").toCbor();\n                break;\n            case NativeScriptKind.RequireTimeBefore:\n                cbor = NativeScript_classPrivateFieldGet(this, _NativeScript_timelockExpiry, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${NativeScript_classPrivateFieldGet(this, _NativeScript_kind, \"f\")}`);\n        }\n        return cbor;\n    }\n    static fromCbor(cbor) {\n        let nativeScript;\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const kind = Number(reader.readInt());\n        switch (kind) {\n            case NativeScriptKind.RequireSignature:\n                nativeScript = NativeScript.newScriptPubkey(ScriptPubkey.fromCbor(cbor));\n                break;\n            case NativeScriptKind.RequireAllOf:\n                nativeScript = NativeScript.newScriptAll(ScriptAll.fromCbor(cbor));\n                break;\n            case NativeScriptKind.RequireAnyOf:\n                nativeScript = NativeScript.newScriptAny(ScriptAny.fromCbor(cbor));\n                break;\n            case NativeScriptKind.RequireNOf:\n                nativeScript = NativeScript.newScriptNOfK(ScriptNOfK.fromCbor(cbor));\n                break;\n            case NativeScriptKind.RequireTimeAfter:\n                nativeScript = NativeScript.newTimelockStart(TimelockStart.fromCbor(cbor));\n                break;\n            case NativeScriptKind.RequireTimeBefore:\n                nativeScript = NativeScript.newTimelockExpiry(TimelockExpiry.fromCbor(cbor));\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${kind}`);\n        }\n        NativeScript_classPrivateFieldSet(nativeScript, _NativeScript_originalBytes, cbor, \"f\");\n        return nativeScript;\n    }\n    toCore() {\n        let core;\n        switch (NativeScript_classPrivateFieldGet(this, _NativeScript_kind, \"f\")) {\n            case NativeScriptKind.RequireSignature:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptPubKey, \"f\").toCore();\n                break;\n            case NativeScriptKind.RequireAllOf:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAll, \"f\").toCore();\n                break;\n            case NativeScriptKind.RequireAnyOf:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAny, \"f\").toCore();\n                break;\n            case NativeScriptKind.RequireNOf:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_scripNOfK, \"f\").toCore();\n                break;\n            case NativeScriptKind.RequireTimeAfter:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_timelockStart, \"f\").toCore();\n                break;\n            case NativeScriptKind.RequireTimeBefore:\n                core = NativeScript_classPrivateFieldGet(this, _NativeScript_timelockExpiry, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${NativeScript_classPrivateFieldGet(this, _NativeScript_kind, \"f\")}`);\n        }\n        return core;\n    }\n    static fromCore(script) {\n        let nativeScript;\n        switch (script.kind) {\n            case NativeScriptKind.RequireSignature:\n                nativeScript = NativeScript.newScriptPubkey(ScriptPubkey.fromCore(script));\n                break;\n            case NativeScriptKind.RequireAllOf:\n                nativeScript = NativeScript.newScriptAll(ScriptAll.fromCore(script));\n                break;\n            case NativeScriptKind.RequireAnyOf:\n                nativeScript = NativeScript.newScriptAny(ScriptAny.fromCore(script));\n                break;\n            case NativeScriptKind.RequireNOf:\n                nativeScript = NativeScript.newScriptNOfK(ScriptNOfK.fromCore(script));\n                break;\n            case NativeScriptKind.RequireTimeAfter:\n                nativeScript = NativeScript.newTimelockStart(TimelockStart.fromCore(script));\n                break;\n            case NativeScriptKind.RequireTimeBefore:\n                nativeScript = NativeScript.newTimelockExpiry(TimelockExpiry.fromCore(script));\n                break;\n            default:\n                throw new errors_InvalidStateError('Unexpected kind value');\n        }\n        return nativeScript;\n    }\n    hash() {\n        const bytes = `00${this.toCbor()}`;\n        const hash = blake2b(HASH_LENGTH_IN_BYTES).update(NativeScript_Buffer.from(bytes, 'hex')).digest();\n        return Hash28ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n    kind() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_kind, \"f\");\n    }\n    static newScriptPubkey(scriptPubkey) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_scriptPubKey, scriptPubkey, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireSignature, \"f\");\n        return script;\n    }\n    static newScriptAll(scriptAll) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_scriptAll, scriptAll, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireAllOf, \"f\");\n        return script;\n    }\n    static newScriptAny(scriptAny) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_scriptAny, scriptAny, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireAnyOf, \"f\");\n        return script;\n    }\n    static newScriptNOfK(scriptNOfK) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_scripNOfK, scriptNOfK, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireNOf, \"f\");\n        return script;\n    }\n    static newTimelockStart(timelockStart) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_timelockStart, timelockStart, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireTimeAfter, \"f\");\n        return script;\n    }\n    static newTimelockExpiry(timelockExpiry) {\n        const script = new NativeScript();\n        NativeScript_classPrivateFieldSet(script, _NativeScript_timelockExpiry, timelockExpiry, \"f\");\n        NativeScript_classPrivateFieldSet(script, _NativeScript_kind, NativeScriptKind.RequireTimeBefore, \"f\");\n        return script;\n    }\n    asScriptPubkey() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_scriptPubKey, \"f\");\n    }\n    asScriptAll() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAll, \"f\");\n    }\n    asScriptAny() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_scriptAny, \"f\");\n    }\n    asScriptNOfK() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_scripNOfK, \"f\");\n    }\n    asTimelockStart() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_timelockStart, \"f\");\n    }\n    asTimelockExpiry() {\n        return NativeScript_classPrivateFieldGet(this, _NativeScript_timelockExpiry, \"f\");\n    }\n}\n_NativeScript_scriptAll = new WeakMap(), _NativeScript_scriptAny = new WeakMap(), _NativeScript_scripNOfK = new WeakMap(), _NativeScript_scriptPubKey = new WeakMap(), _NativeScript_timelockExpiry = new WeakMap(), _NativeScript_timelockStart = new WeakMap(), _NativeScript_kind = new WeakMap(), _NativeScript_originalBytes = new WeakMap();\n//# sourceMappingURL=NativeScript.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/PlutusScript/PlutusV1Script.js\n/* provided dependency */ var PlutusV1Script_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PlutusV1Script_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PlutusV1Script_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PlutusV1Script_compiledByteCode, _PlutusV1Script_originalBytes;\n\n\n\n\nconst PlutusV1Script_HASH_LENGTH_IN_BYTES = 28;\nclass PlutusV1Script {\n    constructor(compiledByteCode) {\n        _PlutusV1Script_compiledByteCode.set(this, void 0);\n        _PlutusV1Script_originalBytes.set(this, undefined);\n        PlutusV1Script_classPrivateFieldSet(this, _PlutusV1Script_compiledByteCode, compiledByteCode, \"f\");\n    }\n    toCbor() {\n        if (PlutusV1Script_classPrivateFieldGet(this, _PlutusV1Script_originalBytes, \"f\"))\n            return PlutusV1Script_classPrivateFieldGet(this, _PlutusV1Script_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeByteString(PlutusV1Script_Buffer.from(PlutusV1Script_classPrivateFieldGet(this, _PlutusV1Script_compiledByteCode, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const bytes = reader.readByteString();\n        const script = new PlutusV1Script(primitives_HexBlob.fromBytes(bytes));\n        PlutusV1Script_classPrivateFieldSet(script, _PlutusV1Script_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Plutus,\n            bytes: this.rawBytes(),\n            version: PlutusLanguageVersion.V1\n        };\n    }\n    static fromCore(plutusScript) {\n        if (plutusScript.version !== PlutusLanguageVersion.V1)\n            throw new errors_InvalidArgumentError('script', 'Wrong plutus language version.');\n        return new PlutusV1Script(plutusScript.bytes);\n    }\n    hash() {\n        const bytes = `01${this.rawBytes()}`;\n        const hash = blake2b(PlutusV1Script_HASH_LENGTH_IN_BYTES).update(PlutusV1Script_Buffer.from(bytes, 'hex')).digest();\n        return Hash28ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n    rawBytes() {\n        return PlutusV1Script_classPrivateFieldGet(this, _PlutusV1Script_compiledByteCode, \"f\");\n    }\n    setRawBytes(bytes) {\n        PlutusV1Script_classPrivateFieldSet(this, _PlutusV1Script_compiledByteCode, bytes, \"f\");\n        PlutusV1Script_classPrivateFieldSet(this, _PlutusV1Script_originalBytes, undefined, \"f\");\n    }\n}\n_PlutusV1Script_compiledByteCode = new WeakMap(), _PlutusV1Script_originalBytes = new WeakMap();\n//# sourceMappingURL=PlutusV1Script.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/PlutusScript/PlutusV2Script.js\n/* provided dependency */ var PlutusV2Script_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PlutusV2Script_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PlutusV2Script_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PlutusV2Script_compiledByteCode, _PlutusV2Script_originalBytes;\n\n\n\n\nconst PlutusV2Script_HASH_LENGTH_IN_BYTES = 28;\nclass PlutusV2Script {\n    constructor(compiledByteCode) {\n        _PlutusV2Script_compiledByteCode.set(this, void 0);\n        _PlutusV2Script_originalBytes.set(this, undefined);\n        PlutusV2Script_classPrivateFieldSet(this, _PlutusV2Script_compiledByteCode, compiledByteCode, \"f\");\n    }\n    toCbor() {\n        if (PlutusV2Script_classPrivateFieldGet(this, _PlutusV2Script_originalBytes, \"f\"))\n            return PlutusV2Script_classPrivateFieldGet(this, _PlutusV2Script_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeByteString(PlutusV2Script_Buffer.from(PlutusV2Script_classPrivateFieldGet(this, _PlutusV2Script_compiledByteCode, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const bytes = reader.readByteString();\n        const script = new PlutusV2Script(primitives_HexBlob.fromBytes(bytes));\n        PlutusV2Script_classPrivateFieldSet(script, _PlutusV2Script_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Plutus,\n            bytes: this.rawBytes(),\n            version: PlutusLanguageVersion.V2\n        };\n    }\n    static fromCore(plutusScript) {\n        if (plutusScript.version !== PlutusLanguageVersion.V2)\n            throw new errors_InvalidArgumentError('script', 'Wrong plutus language version.');\n        return new PlutusV2Script(plutusScript.bytes);\n    }\n    hash() {\n        const bytes = `02${this.rawBytes()}`;\n        const hash = blake2b(PlutusV2Script_HASH_LENGTH_IN_BYTES).update(PlutusV2Script_Buffer.from(bytes, 'hex')).digest();\n        return Hash28ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n    rawBytes() {\n        return PlutusV2Script_classPrivateFieldGet(this, _PlutusV2Script_compiledByteCode, \"f\");\n    }\n    setRawBytes(bytes) {\n        PlutusV2Script_classPrivateFieldSet(this, _PlutusV2Script_compiledByteCode, bytes, \"f\");\n        PlutusV2Script_classPrivateFieldSet(this, _PlutusV2Script_originalBytes, undefined, \"f\");\n    }\n}\n_PlutusV2Script_compiledByteCode = new WeakMap(), _PlutusV2Script_originalBytes = new WeakMap();\n//# sourceMappingURL=PlutusV2Script.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/PlutusScript/PlutusV3Script.js\n/* provided dependency */ var PlutusV3Script_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PlutusV3Script_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PlutusV3Script_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PlutusV3Script_compiledByteCode, _PlutusV3Script_originalBytes;\n\n\n\n\nconst PlutusV3Script_HASH_LENGTH_IN_BYTES = 28;\nclass PlutusV3Script {\n    constructor(compiledByteCode) {\n        _PlutusV3Script_compiledByteCode.set(this, void 0);\n        _PlutusV3Script_originalBytes.set(this, undefined);\n        PlutusV3Script_classPrivateFieldSet(this, _PlutusV3Script_compiledByteCode, compiledByteCode, \"f\");\n    }\n    toCbor() {\n        if (PlutusV3Script_classPrivateFieldGet(this, _PlutusV3Script_originalBytes, \"f\"))\n            return PlutusV3Script_classPrivateFieldGet(this, _PlutusV3Script_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeByteString(PlutusV3Script_Buffer.from(PlutusV3Script_classPrivateFieldGet(this, _PlutusV3Script_compiledByteCode, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const bytes = reader.readByteString();\n        const script = new PlutusV3Script(primitives_HexBlob.fromBytes(bytes));\n        PlutusV3Script_classPrivateFieldSet(script, _PlutusV3Script_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        return {\n            __type: ScriptType.Plutus,\n            bytes: this.rawBytes(),\n            version: PlutusLanguageVersion.V3\n        };\n    }\n    static fromCore(plutusScript) {\n        if (plutusScript.version !== PlutusLanguageVersion.V3)\n            throw new errors_InvalidArgumentError('script', 'Wrong plutus language version.');\n        return new PlutusV3Script(plutusScript.bytes);\n    }\n    hash() {\n        const bytes = `03${this.rawBytes()}`;\n        const hash = blake2b(PlutusV3Script_HASH_LENGTH_IN_BYTES).update(PlutusV3Script_Buffer.from(bytes, 'hex')).digest();\n        return Hash28ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n    rawBytes() {\n        return PlutusV3Script_classPrivateFieldGet(this, _PlutusV3Script_compiledByteCode, \"f\");\n    }\n    setRawBytes(bytes) {\n        PlutusV3Script_classPrivateFieldSet(this, _PlutusV3Script_compiledByteCode, bytes, \"f\");\n        PlutusV3Script_classPrivateFieldSet(this, _PlutusV3Script_originalBytes, undefined, \"f\");\n    }\n}\n_PlutusV3Script_compiledByteCode = new WeakMap(), _PlutusV3Script_originalBytes = new WeakMap();\n//# sourceMappingURL=PlutusV3Script.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/AuxiliaryData.js\nvar AuxiliaryData_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar AuxiliaryData_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _AuxiliaryData_instances, AuxiliaryData_a, _AuxiliaryData_metadata, _AuxiliaryData_nativeScripts, _AuxiliaryData_plutusV1Scripts, _AuxiliaryData_plutusV2Scripts, _AuxiliaryData_plutusV3Scripts, _AuxiliaryData_originalBytes, _AuxiliaryData_getMapSize, _AuxiliaryData_getCoreScripts, _AuxiliaryData_getCddlScripts;\n\n\n\n\n\n\n\nconst SHELLEY_ERA_FIELDS_COUNT = 2;\nconst ALONZO_AUX_TAG = 259;\nclass AuxiliaryData {\n    constructor() {\n        _AuxiliaryData_instances.add(this);\n        _AuxiliaryData_metadata.set(this, void 0);\n        _AuxiliaryData_nativeScripts.set(this, void 0);\n        _AuxiliaryData_plutusV1Scripts.set(this, void 0);\n        _AuxiliaryData_plutusV2Scripts.set(this, void 0);\n        _AuxiliaryData_plutusV3Scripts.set(this, void 0);\n        _AuxiliaryData_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_originalBytes, \"f\"))\n            return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_originalBytes, \"f\");\n        const writer = new CborWriter();\n        const elementsSize = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_instances, \"m\", _AuxiliaryData_getMapSize).call(this);\n        if (elementsSize === 1 && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").metadata().size > 0) {\n            writer.writeEncodedValue(hexToBytes(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").toCbor()));\n        }\n        else if (elementsSize === SHELLEY_ERA_FIELDS_COUNT &&\n            AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\") !== undefined &&\n            AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").metadata().size > 0 &&\n            AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\") !== undefined &&\n            AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").length > 0) {\n            writer.writeStartArray(elementsSize);\n            writer.writeEncodedValue(hexToBytes(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").toCbor()));\n            writer.writeStartArray(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").length);\n            for (const script of AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\")) {\n                writer.writeEncodedValue(hexToBytes(script.toCbor()));\n            }\n        }\n        else {\n            writer.writeTag(ALONZO_AUX_TAG);\n            writer.writeStartMap(elementsSize);\n            if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").metadata().size > 0) {\n                writer.writeInt(0n);\n                writer.writeEncodedValue(hexToBytes(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").toCbor()));\n            }\n            if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").length > 0) {\n                writer.writeInt(1n);\n                writer.writeStartArray(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").length);\n                for (const script of AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\")) {\n                    writer.writeEncodedValue(hexToBytes(script.toCbor()));\n                }\n            }\n            if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\").length > 0) {\n                writer.writeInt(2n);\n                writer.writeStartArray(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\").length);\n                for (const script of AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\")) {\n                    writer.writeEncodedValue(hexToBytes(script.toCbor()));\n                }\n            }\n            if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\").length > 0) {\n                writer.writeInt(3n);\n                writer.writeStartArray(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\").length);\n                for (const script of AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\")) {\n                    writer.writeEncodedValue(hexToBytes(script.toCbor()));\n                }\n            }\n            if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\").length > 0) {\n                writer.writeInt(4n);\n                writer.writeStartArray(AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\").length);\n                for (const script of AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\")) {\n                    writer.writeEncodedValue(hexToBytes(script.toCbor()));\n                }\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const auxData = new AuxiliaryData();\n        const peekState = reader.peekState();\n        if (peekState === CborReaderState.StartMap) {\n            AuxiliaryData_classPrivateFieldSet(auxData, _AuxiliaryData_metadata, GeneralTransactionMetadata.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n        }\n        else if (peekState === CborReaderState.Tag) {\n            const tag = reader.readTag();\n            if (tag !== ALONZO_AUX_TAG) {\n                throw new errors_InvalidArgumentError('cbor', `Expected tag '${ALONZO_AUX_TAG}', but got ${tag}.`);\n            }\n            reader.readStartMap();\n            while (reader.peekState() !== CborReaderState.EndMap) {\n                const key = reader.readInt();\n                switch (key) {\n                    case 0n:\n                        AuxiliaryData_classPrivateFieldSet(auxData, _AuxiliaryData_metadata, GeneralTransactionMetadata.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                        break;\n                    case 1n:\n                        auxData.setNativeScripts(new Array());\n                        reader.readStartArray();\n                        while (reader.peekState() !== CborReaderState.EndArray) {\n                            auxData.nativeScripts().push(NativeScript.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                        }\n                        reader.readEndArray();\n                        break;\n                    case 2n: {\n                        auxData.setPlutusV1Scripts(new Array());\n                        reader.readStartArray();\n                        while (reader.peekState() !== CborReaderState.EndArray) {\n                            auxData.plutusV1Scripts().push(PlutusV1Script.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                        }\n                        reader.readEndArray();\n                        break;\n                    }\n                    case 3n: {\n                        auxData.setPlutusV2Scripts(new Array());\n                        reader.readStartArray();\n                        while (reader.peekState() !== CborReaderState.EndArray) {\n                            auxData.plutusV2Scripts().push(PlutusV2Script.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                        }\n                        reader.readEndArray();\n                        break;\n                    }\n                    case 4n: {\n                        auxData.setPlutusV3Scripts(new Array());\n                        reader.readStartArray();\n                        while (reader.peekState() !== CborReaderState.EndArray) {\n                            auxData.plutusV3Scripts().push(PlutusV3Script.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                        }\n                        reader.readEndArray();\n                        break;\n                    }\n                }\n            }\n            reader.readEndMap();\n        }\n        else {\n            reader.readStartArray();\n            AuxiliaryData_classPrivateFieldSet(auxData, _AuxiliaryData_metadata, GeneralTransactionMetadata.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n            auxData.setNativeScripts(new Array());\n            reader.readStartArray();\n            while (reader.peekState() !== CborReaderState.EndArray) {\n                auxData.nativeScripts().push(NativeScript.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n            }\n            reader.readEndArray();\n        }\n        AuxiliaryData_classPrivateFieldSet(auxData, _AuxiliaryData_originalBytes, cbor, \"f\");\n        return auxData;\n    }\n    toCore() {\n        const scripts = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_instances, \"m\", _AuxiliaryData_getCoreScripts).call(this);\n        const auxiliaryData = {\n            blob: AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\") ? AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").toCore() : undefined\n        };\n        if (scripts.length > 0)\n            auxiliaryData.scripts = scripts;\n        return auxiliaryData;\n    }\n    static fromCore(auxData) {\n        const result = new AuxiliaryData();\n        if (auxData.blob) {\n            result.setMetadata(GeneralTransactionMetadata.fromCore(auxData.blob));\n        }\n        if (auxData.scripts) {\n            const scripts = AuxiliaryData_classPrivateFieldGet(AuxiliaryData, AuxiliaryData_a, \"m\", _AuxiliaryData_getCddlScripts).call(AuxiliaryData, auxData.scripts);\n            if (scripts.native)\n                result.setNativeScripts(scripts.native);\n            if (scripts.plutusV1)\n                result.setPlutusV1Scripts(scripts.plutusV1);\n            if (scripts.plutusV2)\n                result.setPlutusV2Scripts(scripts.plutusV2);\n            if (scripts.plutusV3)\n                result.setPlutusV3Scripts(scripts.plutusV3);\n        }\n        return result;\n    }\n    metadata() {\n        return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\");\n    }\n    setMetadata(metadata) {\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_metadata, metadata, \"f\");\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_originalBytes, undefined, \"f\");\n    }\n    nativeScripts() {\n        return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\");\n    }\n    setNativeScripts(nativeScripts) {\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_nativeScripts, nativeScripts, \"f\");\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_originalBytes, undefined, \"f\");\n    }\n    plutusV1Scripts() {\n        return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\");\n    }\n    setPlutusV1Scripts(plutusV1Scripts) {\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_plutusV1Scripts, plutusV1Scripts, \"f\");\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_originalBytes, undefined, \"f\");\n    }\n    plutusV2Scripts() {\n        return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\");\n    }\n    setPlutusV2Scripts(plutusV2Scripts) {\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_plutusV2Scripts, plutusV2Scripts, \"f\");\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_originalBytes, undefined, \"f\");\n    }\n    plutusV3Scripts() {\n        return AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\");\n    }\n    setPlutusV3Scripts(plutusV3Scripts) {\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_plutusV3Scripts, plutusV3Scripts, \"f\");\n        AuxiliaryData_classPrivateFieldSet(this, _AuxiliaryData_originalBytes, undefined, \"f\");\n    }\n}\nAuxiliaryData_a = AuxiliaryData, _AuxiliaryData_metadata = new WeakMap(), _AuxiliaryData_nativeScripts = new WeakMap(), _AuxiliaryData_plutusV1Scripts = new WeakMap(), _AuxiliaryData_plutusV2Scripts = new WeakMap(), _AuxiliaryData_plutusV3Scripts = new WeakMap(), _AuxiliaryData_originalBytes = new WeakMap(), _AuxiliaryData_instances = new WeakSet(), _AuxiliaryData_getMapSize = function _AuxiliaryData_getMapSize() {\n    let mapSize = 0;\n    if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_metadata, \"f\").metadata().size > 0)\n        ++mapSize;\n    if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").length > 0)\n        ++mapSize;\n    if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\").length > 0)\n        ++mapSize;\n    if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\").length > 0)\n        ++mapSize;\n    if (AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\") !== undefined && AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\").length > 0)\n        ++mapSize;\n    return mapSize;\n}, _AuxiliaryData_getCoreScripts = function _AuxiliaryData_getCoreScripts() {\n    const plutusV1 = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\") ? AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV1Scripts, \"f\").map((script) => script.toCore()) : [];\n    const plutusV2 = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\") ? AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV2Scripts, \"f\").map((script) => script.toCore()) : [];\n    const plutusV3 = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\") ? AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_plutusV3Scripts, \"f\").map((script) => script.toCore()) : [];\n    const native = AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\") ? AuxiliaryData_classPrivateFieldGet(this, _AuxiliaryData_nativeScripts, \"f\").map((script) => script.toCore()) : [];\n    return [...plutusV1, ...plutusV2, ...plutusV3, ...native];\n}, _AuxiliaryData_getCddlScripts = function _AuxiliaryData_getCddlScripts(scripts) {\n    const result = { native: undefined, plutusV1: undefined, plutusV2: undefined, plutusV3: undefined };\n    for (const script of scripts) {\n        switch (script.__type) {\n            case ScriptType.Native:\n                if (!result.native)\n                    result.native = new Array();\n                result.native.push(NativeScript.fromCore(script));\n                break;\n            case ScriptType.Plutus:\n                if (script.version === PlutusLanguageVersion.V1) {\n                    if (!result.plutusV1)\n                        result.plutusV1 = new Array();\n                    result.plutusV1.push(PlutusV1Script.fromCore(script));\n                }\n                else if (script.version === PlutusLanguageVersion.V2) {\n                    if (!result.plutusV2)\n                        result.plutusV2 = new Array();\n                    result.plutusV2.push(PlutusV2Script.fromCore(script));\n                }\n                else if (script.version === PlutusLanguageVersion.V3) {\n                    if (!result.plutusV3)\n                        result.plutusV3 = new Array();\n                    result.plutusV3.push(PlutusV3Script.fromCore(script));\n                }\n                break;\n            default:\n                throw new SerializationError(SerializationFailure.InvalidScriptType, `Script '${script}' is not supported.`);\n        }\n    }\n    return result;\n};\n//# sourceMappingURL=AuxiliaryData.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/AuxiliaryData.js\n\n\n\n\nconst computeAuxiliaryDataHash = (data) => data\n    ? Hash32ByteBase16(blake2b(blake2b.BYTES)\n        .update(hexToBytes(AuxiliaryData.fromCore(data).toCbor()))\n        .digest('hex'))\n    : undefined;\n//# sourceMappingURL=AuxiliaryData.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/PlutusData.js\nvar PlutusListEncoding;\n(function (PlutusListEncoding) {\n    PlutusListEncoding[PlutusListEncoding[\"FixedLength\"] = 0] = \"FixedLength\";\n    PlutusListEncoding[PlutusListEncoding[\"IndefiniteLength\"] = 159] = \"IndefiniteLength\";\n})(PlutusListEncoding || (PlutusListEncoding = {}));\nvar PlutusMapEncoding;\n(function (PlutusMapEncoding) {\n    PlutusMapEncoding[PlutusMapEncoding[\"FixedLength\"] = 0] = \"FixedLength\";\n    PlutusMapEncoding[PlutusMapEncoding[\"IndefiniteLength\"] = 191] = \"IndefiniteLength\";\n})(PlutusMapEncoding || (PlutusMapEncoding = {}));\n//# sourceMappingURL=PlutusData.js.map\n// EXTERNAL MODULE: ./node_modules/fraction.js/fraction.js\nvar fraction_js_fraction = __webpack_require__(\"./node_modules/fraction.js/fraction.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/UtilityTypes.js\n\nconst toFractionJs = (value) => {\n    if (typeof value === 'number') {\n        return new fraction_js_fraction(value);\n    }\n    const { numerator, denominator } = value;\n    return new fraction_js_fraction(numerator, denominator);\n};\nconst FractionUtils = {\n    toFraction(value) {\n        const fractionJs = toFractionJs(value);\n        const { n: numerator, d: denominator } = fractionJs;\n        return { denominator, numerator };\n    },\n    toNumber(value) {\n        const fractionJs = toFractionJs(value);\n        return fractionJs.valueOf();\n    }\n};\n//# sourceMappingURL=UtilityTypes.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Governance.js\nvar GovernanceActionType;\n(function (GovernanceActionType) {\n    GovernanceActionType[\"parameter_change_action\"] = \"parameter_change_action\";\n    GovernanceActionType[\"hard_fork_initiation_action\"] = \"hard_fork_initiation_action\";\n    GovernanceActionType[\"treasury_withdrawals_action\"] = \"treasury_withdrawals_action\";\n    GovernanceActionType[\"no_confidence\"] = \"no_confidence\";\n    GovernanceActionType[\"update_committee\"] = \"update_committee\";\n    GovernanceActionType[\"new_constitution\"] = \"new_constitution\";\n    GovernanceActionType[\"info_action\"] = \"info_action\";\n})(GovernanceActionType || (GovernanceActionType = {}));\nvar Vote;\n(function (Vote) {\n    Vote[Vote[\"no\"] = 0] = \"no\";\n    Vote[Vote[\"yes\"] = 1] = \"yes\";\n    Vote[Vote[\"abstain\"] = 2] = \"abstain\";\n})(Vote || (Vote = {}));\nvar VoterType;\n(function (VoterType) {\n    VoterType[\"ccHotKeyHash\"] = \"ccHotKeyHash\";\n    VoterType[\"ccHotScriptHash\"] = \"ccHotScriptHash\";\n    VoterType[\"dRepKeyHash\"] = \"dRepKeyHash\";\n    VoterType[\"dRepScriptHash\"] = \"dRepScriptHash\";\n    VoterType[\"stakePoolKeyHash\"] = \"stakePoolKeyHash\";\n})(VoterType || (VoterType = {}));\nconst isDrepInfo = (drep) => 'id' in drep && 'active' in drep;\nconst isDRepCredential = (deleg) => 'type' in deleg && 'hash' in deleg;\nconst isDRepAlwaysAbstain = (deleg) => '__typename' in deleg && deleg.__typename === 'AlwaysAbstain';\nconst isDRepAlwaysNoConfidence = (deleg) => '__typename' in deleg && deleg.__typename === 'AlwaysNoConfidence';\n//# sourceMappingURL=Governance.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/Cip1854ExtendedAccountPublicKey.js\n/* provided dependency */ var Cip1854ExtendedAccountPublicKey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst Cip1854ExtendedAccountPublicKey_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst bip32PublicKeyPrefix = 'acct_shared_xvk';\nconst Cip1854ExtendedAccountPublicKey = (value) => {\n    try {\n        primitives_assertIsBech32WithPrefix(value, [bip32PublicKeyPrefix]);\n    }\n    catch {\n        throw new errors_InvalidStringError(value, 'Expected key to be a bech32 encoded string');\n    }\n    return value;\n};\nCip1854ExtendedAccountPublicKey.fromBip32PublicKeyHex = (value) => {\n    const words = esm_bech32.toWords(Cip1854ExtendedAccountPublicKey_Buffer.from(value, 'hex'));\n    return Cip1854ExtendedAccountPublicKey(esm_bech32.encode(bip32PublicKeyPrefix, words, Cip1854ExtendedAccountPublicKey_MAX_BECH32_LENGTH_LIMIT));\n};\nCip1854ExtendedAccountPublicKey.toBip32PublicKeyHex = (value) => {\n    const { words } = esm_bech32.decode(value, Cip1854ExtendedAccountPublicKey_MAX_BECH32_LENGTH_LIMIT);\n    return Bip32PublicKeyHex(Cip1854ExtendedAccountPublicKey_Buffer.from(esm_bech32.fromWords(words)).toString('hex'));\n};\n//# sourceMappingURL=Cip1854ExtendedAccountPublicKey.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/types/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/DRepID.js\n/* provided dependency */ var DRepID_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\n\nconst DRepID_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst CIP_105_DREP_ID_LENGTH = 28;\nconst CIP_129_DREP_ID_LENGTH = 29;\nconst DRepID = (value) => {\n    try {\n        return primitives_typedBech32(value, ['drep'], 47);\n    }\n    catch {\n        return primitives_typedBech32(value, ['drep', 'drep_script'], 45);\n    }\n};\nDRepID.isValid = (value) => {\n    try {\n        DRepID(value);\n        return true;\n    }\n    catch {\n        return false;\n    }\n};\nDRepID.cip105FromCredential = (credential) => {\n    let prefix = 'drep';\n    if (credential.type === CredentialType.ScriptHash) {\n        prefix = 'drep_script';\n    }\n    const words = esm_bech32.toWords(DRepID_Buffer.from(credential.hash, 'hex'));\n    return esm_bech32.encode(prefix, words, DRepID_MAX_BECH32_LENGTH_LIMIT);\n};\nDRepID.cip129FromCredential = (credential) => {\n    let header = '22';\n    if (credential.type === CredentialType.ScriptHash) {\n        header = '23';\n    }\n    const cip129payload = `${header}${credential.hash}`;\n    const words = esm_bech32.toWords(DRepID_Buffer.from(cip129payload, 'hex'));\n    return esm_bech32.encode('drep', words, DRepID_MAX_BECH32_LENGTH_LIMIT);\n};\nDRepID.toCredential = (drepId) => {\n    const { words } = esm_bech32.decode(drepId, DRepID_MAX_BECH32_LENGTH_LIMIT);\n    const payload = esm_bech32.fromWords(words);\n    if (payload.length !== CIP_105_DREP_ID_LENGTH && payload.length !== CIP_129_DREP_ID_LENGTH) {\n        throw new Error('Invalid DRepID payload');\n    }\n    if (payload.length === CIP_105_DREP_ID_LENGTH) {\n        const isScriptHash = drepId.includes('drep_script');\n        return {\n            hash: Hash28ByteBase16(DRepID_Buffer.from(payload).toString('hex')),\n            type: isScriptHash ? CredentialType.ScriptHash : CredentialType.KeyHash\n        };\n    }\n    const header = payload[0];\n    const hash = payload.slice(1);\n    const isDrepGovCred = (header & 0x20) === 0x20;\n    const isScriptHash = (header & 0x03) === 0x03;\n    if (!isDrepGovCred) {\n        throw new Error('Invalid governance credential type');\n    }\n    return {\n        hash: Hash28ByteBase16(DRepID_Buffer.from(hash).toString('hex')),\n        type: isScriptHash ? CredentialType.ScriptHash : CredentialType.KeyHash\n    };\n};\nDRepID.toCip105DRepID = (drepId) => {\n    const credential = DRepID.toCredential(drepId);\n    return DRepID.cip105FromCredential(credential);\n};\nDRepID.toCip129DRepID = (drepId) => {\n    const credential = DRepID.toCredential(drepId);\n    return DRepID.cip129FromCredential(credential);\n};\nDRepID.toAddress = (drepId) => {\n    const credential = DRepID.toCredential(drepId);\n    return new Address({\n        paymentPart: credential,\n        type: credential.type === CredentialType.KeyHash ? AddressType.EnterpriseKey : AddressType.EnterpriseScript\n    }).asEnterprise();\n};\n//# sourceMappingURL=DRepID.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/PaymentAddress.js\n/* provided dependency */ var PaymentAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst isRewardAccount = (address) => {\n    try {\n        primitives_assertIsBech32WithPrefix(address, ['stake', 'stake_test']);\n        return true;\n    }\n    catch {\n        return false;\n    }\n};\nconst PaymentAddress = (value) => {\n    if (Address.isValid(value)) {\n        if (isRewardAccount(value) || DRepID.isValid(value)) {\n            throw new errors_InvalidStringError(value, 'Address type can only be used for payment addresses');\n        }\n        return value;\n    }\n    try {\n        primitives_assertIsHexString(value);\n    }\n    catch {\n        throw new errors_InvalidStringError(value, 'Expected payment address as bech32, base58 or hex-encoded bytes');\n    }\n    const address = Address.fromBytes(primitives_HexBlob.fromBytes(PaymentAddress_Buffer.from(value, 'hex')));\n    return (address.getType() === AddressType.Byron ? address.toBase58() : address.toBech32());\n};\nconst isAddressWithin = (addresses) => ({ address }) => addresses.includes(address);\nconst inputsWithAddresses = (tx, ownAddresses) => tx.body.inputs.filter(isAddressWithin(ownAddresses));\nconst addressNetworkId = (address) => {\n    const addr = Address.fromString(address);\n    return addr.getNetworkId();\n};\n//# sourceMappingURL=PaymentAddress.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/index.js\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Cardano/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/conwayEra.js\nlet inConwayEra = false;\nconst setInConwayEra = (value) => (inConwayEra = value);\n//# sourceMappingURL=conwayEra.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/CborSet.js\n/* provided dependency */ var CborSet_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CborSet_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CborSet_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CborSet_values, _CborSet_originalBytes;\n\n\n\nclass CborSet {\n    constructor(values) {\n        _CborSet_values.set(this, void 0);\n        _CborSet_originalBytes.set(this, undefined);\n        CborSet_classPrivateFieldSet(this, _CborSet_values, [...values], \"f\");\n    }\n    static fromCbor(cbor, fromCbor) {\n        const reader = new CborReader(cbor);\n        const cborSet = new CborSet([]);\n        if (reader.peekState() === CborReaderState.Tag && reader.peekTag() === CborTag.Set) {\n            reader.readTag();\n        }\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray) {\n            CborSet_classPrivateFieldGet(cborSet, _CborSet_values, \"f\").push(fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n        }\n        CborSet_classPrivateFieldSet(cborSet, _CborSet_originalBytes, cbor, \"f\");\n        return cborSet;\n    }\n    toCbor() {\n        if (CborSet_classPrivateFieldGet(this, _CborSet_originalBytes, \"f\"))\n            return CborSet_classPrivateFieldGet(this, _CborSet_originalBytes, \"f\");\n        const writer = new CborWriter();\n        if (inConwayEra)\n            writer.writeTag(CborTag.Set);\n        writer.writeStartArray(this.size());\n        for (const input of this.values()) {\n            writer.writeEncodedValue(CborSet_Buffer.from(input.toCbor(), 'hex'));\n        }\n        return writer.encodeAsHex();\n    }\n    toCore() {\n        return CborSet_classPrivateFieldGet(this, _CborSet_values, \"f\").map((v) => v.toCore());\n    }\n    static fromCore(coreValues, fromCore) {\n        return new CborSet(coreValues.map((v) => fromCore(v)));\n    }\n    values() {\n        return CborSet_classPrivateFieldGet(this, _CborSet_values, \"f\");\n    }\n    setValues(values) {\n        CborSet_classPrivateFieldSet(this, _CborSet_values, [...values], \"f\");\n        CborSet_classPrivateFieldSet(this, _CborSet_originalBytes, undefined, \"f\");\n    }\n    size() {\n        return CborSet_classPrivateFieldGet(this, _CborSet_values, \"f\").length;\n    }\n}\n_CborSet_values = new WeakMap(), _CborSet_originalBytes = new WeakMap();\n//# sourceMappingURL=CborSet.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/Hash.js\n/* provided dependency */ var Hash_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Hash_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Hash_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Hash_value;\n\n\nclass Hash {\n    constructor(value) {\n        _Hash_value.set(this, void 0);\n        Hash_classPrivateFieldSet(this, _Hash_value, value, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        writer.writeByteString(Hash_Buffer.from(Hash_classPrivateFieldGet(this, _Hash_value, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        return new Hash(primitives_HexBlob.fromBytes(reader.readByteString()));\n    }\n    toCore() {\n        return Hash_classPrivateFieldGet(this, _Hash_value, \"f\");\n    }\n    static fromCore(hash) {\n        return new Hash(hash);\n    }\n    value() {\n        return Hash_classPrivateFieldGet(this, _Hash_value, \"f\");\n    }\n}\n_Hash_value = new WeakMap();\n//# sourceMappingURL=Hash.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/CertificateKind.js\nvar CertificateKind;\n(function (CertificateKind) {\n    CertificateKind[CertificateKind[\"StakeRegistration\"] = 0] = \"StakeRegistration\";\n    CertificateKind[CertificateKind[\"StakeDeregistration\"] = 1] = \"StakeDeregistration\";\n    CertificateKind[CertificateKind[\"StakeDelegation\"] = 2] = \"StakeDelegation\";\n    CertificateKind[CertificateKind[\"PoolRegistration\"] = 3] = \"PoolRegistration\";\n    CertificateKind[CertificateKind[\"PoolRetirement\"] = 4] = \"PoolRetirement\";\n    CertificateKind[CertificateKind[\"GenesisKeyDelegation\"] = 5] = \"GenesisKeyDelegation\";\n    CertificateKind[CertificateKind[\"MoveInstantaneousRewards\"] = 6] = \"MoveInstantaneousRewards\";\n    CertificateKind[CertificateKind[\"Registration\"] = 7] = \"Registration\";\n    CertificateKind[CertificateKind[\"Unregistration\"] = 8] = \"Unregistration\";\n    CertificateKind[CertificateKind[\"VoteDelegation\"] = 9] = \"VoteDelegation\";\n    CertificateKind[CertificateKind[\"StakeVoteDelegation\"] = 10] = \"StakeVoteDelegation\";\n    CertificateKind[CertificateKind[\"StakeRegistrationDelegation\"] = 11] = \"StakeRegistrationDelegation\";\n    CertificateKind[CertificateKind[\"VoteRegistrationDelegation\"] = 12] = \"VoteRegistrationDelegation\";\n    CertificateKind[CertificateKind[\"StakeVoteRegistrationDelegation\"] = 13] = \"StakeVoteRegistrationDelegation\";\n    CertificateKind[CertificateKind[\"AuthCommitteeHot\"] = 14] = \"AuthCommitteeHot\";\n    CertificateKind[CertificateKind[\"ResignCommitteeCold\"] = 15] = \"ResignCommitteeCold\";\n    CertificateKind[CertificateKind[\"DrepRegistration\"] = 16] = \"DrepRegistration\";\n    CertificateKind[CertificateKind[\"DrepUnregistration\"] = 17] = \"DrepUnregistration\";\n    CertificateKind[CertificateKind[\"UpdateDrep\"] = 18] = \"UpdateDrep\";\n})(CertificateKind || (CertificateKind = {}));\n//# sourceMappingURL=CertificateKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/AuthCommitteeHot.js\n/* provided dependency */ var AuthCommitteeHot_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar AuthCommitteeHot_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar AuthCommitteeHot_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _AuthCommitteeHot_committeeColdCred, _AuthCommitteeHot_committeeHotCred, _AuthCommitteeHot_originalBytes;\n\n\n\n\n\nconst AuthCommitteeHot_EMBEDDED_GROUP_SIZE = 2;\nclass AuthCommitteeHot {\n    constructor(committeeColdCred, committeeHotCred) {\n        _AuthCommitteeHot_committeeColdCred.set(this, void 0);\n        _AuthCommitteeHot_committeeHotCred.set(this, void 0);\n        _AuthCommitteeHot_originalBytes.set(this, undefined);\n        AuthCommitteeHot_classPrivateFieldSet(this, _AuthCommitteeHot_committeeColdCred, committeeColdCred, \"f\");\n        AuthCommitteeHot_classPrivateFieldSet(this, _AuthCommitteeHot_committeeHotCred, committeeHotCred, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_originalBytes, \"f\"))\n            return AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.AuthCommitteeHot);\n        writer.writeStartArray(AuthCommitteeHot_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeColdCred, \"f\").type);\n        writer.writeByteString(AuthCommitteeHot_Buffer.from(AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeColdCred, \"f\").hash, 'hex'));\n        writer.writeStartArray(AuthCommitteeHot_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeHotCred, \"f\").type);\n        writer.writeByteString(AuthCommitteeHot_Buffer.from(AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeHotCred, \"f\").hash, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.AuthCommitteeHot)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.AuthCommitteeHot}, but got ${kind}`);\n        const coldCredLength = reader.readStartArray();\n        if (coldCredLength !== AuthCommitteeHot_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${AuthCommitteeHot_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const coldType = Number(reader.readInt());\n        const coldHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const hotCredLength = reader.readStartArray();\n        if (hotCredLength !== AuthCommitteeHot_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${AuthCommitteeHot_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const hotType = Number(reader.readInt());\n        const hotHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        reader.readEndArray();\n        const cert = new AuthCommitteeHot({ hash: coldHash, type: coldType }, { hash: hotHash, type: hotType });\n        AuthCommitteeHot_classPrivateFieldSet(cert, _AuthCommitteeHot_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.AuthorizeCommitteeHot,\n            coldCredential: AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeColdCred, \"f\"),\n            hotCredential: AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeHotCred, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new AuthCommitteeHot(cert.coldCredential, cert.hotCredential);\n    }\n    coldCredential() {\n        return AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeColdCred, \"f\");\n    }\n    hotCredential() {\n        return AuthCommitteeHot_classPrivateFieldGet(this, _AuthCommitteeHot_committeeHotCred, \"f\");\n    }\n}\n_AuthCommitteeHot_committeeColdCred = new WeakMap(), _AuthCommitteeHot_committeeHotCred = new WeakMap(), _AuthCommitteeHot_originalBytes = new WeakMap();\n//# sourceMappingURL=AuthCommitteeHot.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/GenesisKeyDelegation.js\n/* provided dependency */ var GenesisKeyDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar GenesisKeyDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar GenesisKeyDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _GenesisKeyDelegation_genesisHash, _GenesisKeyDelegation_genesisDelegateHash, _GenesisKeyDelegation_vrfKeyHash, _GenesisKeyDelegation_originalBytes;\n\n\n\n\n\nconst GenesisKeyDelegation_EMBEDDED_GROUP_SIZE = 4;\nclass GenesisKeyDelegation {\n    constructor(genesisHash, genesisDelegateHash, vrfKeyHash) {\n        _GenesisKeyDelegation_genesisHash.set(this, void 0);\n        _GenesisKeyDelegation_genesisDelegateHash.set(this, void 0);\n        _GenesisKeyDelegation_vrfKeyHash.set(this, void 0);\n        _GenesisKeyDelegation_originalBytes.set(this, undefined);\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_genesisHash, genesisHash, \"f\");\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_genesisDelegateHash, genesisDelegateHash, \"f\");\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_vrfKeyHash, vrfKeyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_originalBytes, \"f\"))\n            return GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_originalBytes, \"f\");\n        writer.writeStartArray(GenesisKeyDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.GenesisKeyDelegation);\n        writer.writeByteString(GenesisKeyDelegation_Buffer.from(GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisHash, \"f\"), 'hex'));\n        writer.writeByteString(GenesisKeyDelegation_Buffer.from(GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisDelegateHash, \"f\"), 'hex'));\n        writer.writeByteString(GenesisKeyDelegation_Buffer.from(GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_vrfKeyHash, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== GenesisKeyDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${GenesisKeyDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.GenesisKeyDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.GenesisKeyDelegation}, but got ${kind}`);\n        const genesisHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const genesisDelegateHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const vrfKeyHash = Hash32ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const cert = new GenesisKeyDelegation(genesisHash, genesisDelegateHash, vrfKeyHash);\n        GenesisKeyDelegation_classPrivateFieldSet(cert, _GenesisKeyDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.GenesisKeyDelegation,\n            genesisDelegateHash: GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisDelegateHash, \"f\"),\n            genesisHash: GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisHash, \"f\"),\n            vrfKeyHash: GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_vrfKeyHash, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new GenesisKeyDelegation(cert.genesisHash, cert.genesisDelegateHash, cert.vrfKeyHash);\n    }\n    genesisHash() {\n        return GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisHash, \"f\");\n    }\n    setGenesisHash(genesisHash) {\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_genesisHash, genesisHash, \"f\");\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_originalBytes, undefined, \"f\");\n    }\n    genesisDelegateHash() {\n        return GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_genesisDelegateHash, \"f\");\n    }\n    setGenesisDelegateHash(genesisDelegateHash) {\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_genesisDelegateHash, genesisDelegateHash, \"f\");\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_originalBytes, undefined, \"f\");\n    }\n    vrfKeyHash() {\n        return GenesisKeyDelegation_classPrivateFieldGet(this, _GenesisKeyDelegation_vrfKeyHash, \"f\");\n    }\n    setVrfKeyHash(vrfKeyHash) {\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_vrfKeyHash, vrfKeyHash, \"f\");\n        GenesisKeyDelegation_classPrivateFieldSet(this, _GenesisKeyDelegation_originalBytes, undefined, \"f\");\n    }\n}\n_GenesisKeyDelegation_genesisHash = new WeakMap(), _GenesisKeyDelegation_genesisDelegateHash = new WeakMap(), _GenesisKeyDelegation_vrfKeyHash = new WeakMap(), _GenesisKeyDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=GenesisKeyDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/MoveInstantaneousReward/MoveInstantaneousRewardToOtherPot.js\nvar MoveInstantaneousRewardToOtherPot_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar MoveInstantaneousRewardToOtherPot_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _MoveInstantaneousRewardToOtherPot_pot, _MoveInstantaneousRewardToOtherPot_amount, _MoveInstantaneousRewardToOtherPot_originalBytes;\n\n\n\nconst MoveInstantaneousRewardToOtherPot_EMBEDDED_GROUP_SIZE = 2;\nclass MoveInstantaneousRewardToOtherPot {\n    constructor(pot, amount) {\n        _MoveInstantaneousRewardToOtherPot_pot.set(this, void 0);\n        _MoveInstantaneousRewardToOtherPot_amount.set(this, void 0);\n        _MoveInstantaneousRewardToOtherPot_originalBytes.set(this, undefined);\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_pot, pot, \"f\");\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_amount, amount, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_originalBytes, \"f\"))\n            return MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_originalBytes, \"f\");\n        writer.writeStartArray(MoveInstantaneousRewardToOtherPot_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_pot, \"f\") === MirCertificatePot.Reserves ? 0 : 1);\n        writer.writeInt(MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_amount, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== MoveInstantaneousRewardToOtherPot_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const pot = Number(reader.readInt());\n        const amount = reader.readInt();\n        if (pot < 0 || pot > 1)\n            throw new errors_InvalidArgumentError('cbor', `Expected a pot value between 0 and 1, but got ${pot}`);\n        const cert = new MoveInstantaneousRewardToOtherPot(pot === 0 ? MirCertificatePot.Reserves : MirCertificatePot.Treasury, amount);\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(cert, _MoveInstantaneousRewardToOtherPot_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.MIR,\n            kind: MirCertificateKind.ToOtherPot,\n            pot: MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_pot, \"f\"),\n            quantity: MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_amount, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        if (cert.kind !== MirCertificateKind.ToOtherPot)\n            throw new errors_InvalidArgumentError('cert', `Expected a MIR certificate kind 'ToOtherPot', but got ${cert.kind}`);\n        if (cert.quantity === undefined)\n            throw new errors_InvalidArgumentError('cert', 'Amount field of the given MIR certificate is undefined');\n        return new MoveInstantaneousRewardToOtherPot(cert.pot, cert.quantity);\n    }\n    pot() {\n        return MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_pot, \"f\");\n    }\n    setPot(pot) {\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_pot, pot, \"f\");\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_originalBytes, undefined, \"f\");\n    }\n    getAmount() {\n        return MoveInstantaneousRewardToOtherPot_classPrivateFieldGet(this, _MoveInstantaneousRewardToOtherPot_amount, \"f\");\n    }\n    setAmount(amount) {\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_amount, amount, \"f\");\n        MoveInstantaneousRewardToOtherPot_classPrivateFieldSet(this, _MoveInstantaneousRewardToOtherPot_originalBytes, undefined, \"f\");\n    }\n}\n_MoveInstantaneousRewardToOtherPot_pot = new WeakMap(), _MoveInstantaneousRewardToOtherPot_amount = new WeakMap(), _MoveInstantaneousRewardToOtherPot_originalBytes = new WeakMap();\n//# sourceMappingURL=MoveInstantaneousRewardToOtherPot.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/MoveInstantaneousReward/MoveInstantaneousRewardToStakeCreds.js\n/* provided dependency */ var MoveInstantaneousRewardToStakeCreds_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _MoveInstantaneousRewardToStakeCreds_pot, _MoveInstantaneousRewardToStakeCreds_credentials, _MoveInstantaneousRewardToStakeCreds_originalBytes;\n\n\n\n\nconst MoveInstantaneousRewardToStakeCreds_EMBEDDED_GROUP_SIZE = 2;\nclass MoveInstantaneousRewardToStakeCreds {\n    constructor(pot, credentials) {\n        _MoveInstantaneousRewardToStakeCreds_pot.set(this, void 0);\n        _MoveInstantaneousRewardToStakeCreds_credentials.set(this, void 0);\n        _MoveInstantaneousRewardToStakeCreds_originalBytes.set(this, undefined);\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_pot, pot, \"f\");\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_credentials, credentials, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_originalBytes, \"f\"))\n            return MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_originalBytes, \"f\");\n        writer.writeStartArray(MoveInstantaneousRewardToStakeCreds_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_pot, \"f\") === MirCertificatePot.Reserves ? 0 : 1);\n        const sortedCanonically = new Map([...MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_credentials, \"f\")].sort((a, b) => (a > b ? 1 : -1)));\n        writer.writeStartMap(sortedCanonically.size);\n        for (const [key, value] of sortedCanonically) {\n            writer.writeStartArray(MoveInstantaneousRewardToStakeCreds_EMBEDDED_GROUP_SIZE);\n            writer.writeInt(key.type);\n            writer.writeByteString(MoveInstantaneousRewardToStakeCreds_Buffer.from(key.hash, 'hex'));\n            writer.writeInt(value);\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== MoveInstantaneousRewardToStakeCreds_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of two elements, but got an array of ${length} elements`);\n        const pot = Number(reader.readInt());\n        if (pot < 0 || pot > 1)\n            throw new errors_InvalidArgumentError('cbor', `Expected a pot value between 0 and 1, but got an array of ${pot} elements`);\n        reader.readStartMap();\n        const amounts = new Map();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            reader.readStartArray();\n            const credentialType = Number(reader.readInt());\n            if (credentialType < 0 || credentialType > 1)\n                throw new errors_InvalidArgumentError('cbor', `Expected a credential type value between 0 and 1, but got ${credentialType}`);\n            const credHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n            reader.readEndArray();\n            const amount = reader.readInt();\n            amounts.set({ hash: credHash, type: credentialType }, amount);\n        }\n        reader.readEndMap();\n        const cert = new MoveInstantaneousRewardToStakeCreds(pot === 0 ? MirCertificatePot.Reserves : MirCertificatePot.Treasury, amounts);\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(cert, _MoveInstantaneousRewardToStakeCreds_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        if (MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_credentials, \"f\").size === 0)\n            throw new errors_InvalidStateError('The credential map is empty.');\n        const [[stakeCredential, quantity]] = MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_credentials, \"f\");\n        return {\n            __typename: CertificateType.MIR,\n            kind: MirCertificateKind.ToStakeCreds,\n            pot: MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_pot, \"f\"),\n            quantity,\n            stakeCredential\n        };\n    }\n    static fromCore(cert) {\n        if (cert.kind !== MirCertificateKind.ToStakeCreds)\n            throw new errors_InvalidArgumentError('cert', `Expected a MIR certificate kind 'ToStakeCreds', but got ${cert.kind}`);\n        if (cert.stakeCredential === undefined)\n            throw new errors_InvalidArgumentError('cert', 'stakeCredential field of the given MIR certificate is undefined');\n        return new MoveInstantaneousRewardToStakeCreds(cert.pot, new Map([[cert.stakeCredential, cert.quantity]]));\n    }\n    pot() {\n        return MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_pot, \"f\");\n    }\n    setPot(pot) {\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_pot, pot, \"f\");\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_originalBytes, undefined, \"f\");\n    }\n    getStakeCreds() {\n        return MoveInstantaneousRewardToStakeCreds_classPrivateFieldGet(this, _MoveInstantaneousRewardToStakeCreds_credentials, \"f\");\n    }\n    setStakeCreds(credentials) {\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_credentials, credentials, \"f\");\n        MoveInstantaneousRewardToStakeCreds_classPrivateFieldSet(this, _MoveInstantaneousRewardToStakeCreds_originalBytes, undefined, \"f\");\n    }\n}\n_MoveInstantaneousRewardToStakeCreds_pot = new WeakMap(), _MoveInstantaneousRewardToStakeCreds_credentials = new WeakMap(), _MoveInstantaneousRewardToStakeCreds_originalBytes = new WeakMap();\n//# sourceMappingURL=MoveInstantaneousRewardToStakeCreds.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/MoveInstantaneousReward/MoveInstantaneousReward.js\n/* provided dependency */ var MoveInstantaneousReward_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar MoveInstantaneousReward_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar MoveInstantaneousReward_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _MoveInstantaneousReward_toOtherPot, _MoveInstantaneousReward_toStakeCreds, _MoveInstantaneousReward_kind, _MoveInstantaneousReward_originalBytes;\n\n\n\n\n\n\nconst MoveInstantaneousReward_EMBEDDED_GROUP_SIZE = 2;\nclass MoveInstantaneousReward {\n    constructor() {\n        _MoveInstantaneousReward_toOtherPot.set(this, void 0);\n        _MoveInstantaneousReward_toStakeCreds.set(this, void 0);\n        _MoveInstantaneousReward_kind.set(this, void 0);\n        _MoveInstantaneousReward_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_originalBytes, \"f\"))\n            return MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_originalBytes, \"f\");\n        let cbor;\n        switch (MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_kind, \"f\")) {\n            case MirCertificateKind.ToOtherPot:\n                cbor = MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toOtherPot, \"f\").toCbor();\n                break;\n            case MirCertificateKind.ToStakeCreds:\n                cbor = MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toStakeCreds, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_kind, \"f\")}`);\n        }\n        const writer = new CborWriter();\n        writer.writeStartArray(MoveInstantaneousReward_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.MoveInstantaneousRewards);\n        writer.writeEncodedValue(MoveInstantaneousReward_Buffer.from(cbor, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        let elementsCount = reader.readStartArray();\n        if (elementsCount !== MoveInstantaneousReward_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected elements size ${MoveInstantaneousReward_EMBEDDED_GROUP_SIZE}, but got ${elementsCount}`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.MoveInstantaneousRewards)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.MoveInstantaneousRewards}, but got ${kind}`);\n        const embeddedCbor = primitives_HexBlob.fromBytes(reader.readEncodedValue());\n        const embeddedCborReader = new CborReader(embeddedCbor);\n        elementsCount = embeddedCborReader.readStartArray();\n        if (elementsCount !== MoveInstantaneousReward_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected elements size ${MoveInstantaneousReward_EMBEDDED_GROUP_SIZE}, but got ${elementsCount}`);\n        const cert = new MoveInstantaneousReward();\n        embeddedCborReader.readInt();\n        if (embeddedCborReader.peekState() === CborReaderState.UnsignedInteger) {\n            MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_toOtherPot, MoveInstantaneousRewardToOtherPot.fromCbor(embeddedCbor), \"f\");\n            MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_kind, MirCertificateKind.ToOtherPot, \"f\");\n        }\n        else if (embeddedCborReader.peekState() === CborReaderState.StartArray ||\n            embeddedCborReader.peekState() === CborReaderState.StartMap) {\n            MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_toStakeCreds, MoveInstantaneousRewardToStakeCreds.fromCbor(embeddedCbor), \"f\");\n            MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_kind, MirCertificateKind.ToStakeCreds, \"f\");\n        }\n        else {\n            throw new errors_InvalidArgumentError('cbor', 'Invalid CBOR string');\n        }\n        MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        let core;\n        switch (MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_kind, \"f\")) {\n            case MirCertificateKind.ToOtherPot:\n                core = MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toOtherPot, \"f\").toCore();\n                break;\n            case MirCertificateKind.ToStakeCreds:\n                core = MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toStakeCreds, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_kind, \"f\")}`);\n        }\n        return core;\n    }\n    static fromCore(cert) {\n        const mirCert = new MoveInstantaneousReward();\n        switch (cert.kind) {\n            case MirCertificateKind.ToOtherPot:\n                MoveInstantaneousReward_classPrivateFieldSet(mirCert, _MoveInstantaneousReward_toOtherPot, MoveInstantaneousRewardToOtherPot.fromCore(cert), \"f\");\n                MoveInstantaneousReward_classPrivateFieldSet(mirCert, _MoveInstantaneousReward_kind, MirCertificateKind.ToOtherPot, \"f\");\n                break;\n            case MirCertificateKind.ToStakeCreds:\n                MoveInstantaneousReward_classPrivateFieldSet(mirCert, _MoveInstantaneousReward_toStakeCreds, MoveInstantaneousRewardToStakeCreds.fromCore(cert), \"f\");\n                MoveInstantaneousReward_classPrivateFieldSet(mirCert, _MoveInstantaneousReward_kind, MirCertificateKind.ToStakeCreds, \"f\");\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${cert.kind}`);\n        }\n        return mirCert;\n    }\n    static newToOtherPot(mirCert) {\n        const cert = new MoveInstantaneousReward();\n        MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_toOtherPot, mirCert, \"f\");\n        MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_kind, MirCertificateKind.ToOtherPot, \"f\");\n        return cert;\n    }\n    static newToStakeCreds(mirCert) {\n        const cert = new MoveInstantaneousReward();\n        MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_toStakeCreds, mirCert, \"f\");\n        MoveInstantaneousReward_classPrivateFieldSet(cert, _MoveInstantaneousReward_kind, MirCertificateKind.ToStakeCreds, \"f\");\n        return cert;\n    }\n    kind() {\n        return MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_kind, \"f\");\n    }\n    asToOtherPot() {\n        return MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toOtherPot, \"f\");\n    }\n    asToStakeCreds() {\n        return MoveInstantaneousReward_classPrivateFieldGet(this, _MoveInstantaneousReward_toStakeCreds, \"f\");\n    }\n}\n_MoveInstantaneousReward_toOtherPot = new WeakMap(), _MoveInstantaneousReward_toStakeCreds = new WeakMap(), _MoveInstantaneousReward_kind = new WeakMap(), _MoveInstantaneousReward_originalBytes = new WeakMap();\n//# sourceMappingURL=MoveInstantaneousReward.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/PoolMetadata.js\n/* provided dependency */ var PoolMetadata_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PoolMetadata_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PoolMetadata_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PoolMetadata_url, _PoolMetadata_hash, _PoolMetadata_originalBytes;\n\n\n\nconst MAX_URL_SIZE_STR_LENGTH = 64;\nconst PoolMetadata_EMBEDDED_GROUP_SIZE = 2;\nclass PoolMetadata {\n    constructor(url, poolMetadataHash) {\n        _PoolMetadata_url.set(this, void 0);\n        _PoolMetadata_hash.set(this, void 0);\n        _PoolMetadata_originalBytes.set(this, undefined);\n        if (url.length > MAX_URL_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('url', `url must be less or equal to 64 characters long, actual size ${url.length}`);\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_url, url, \"f\");\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_hash, poolMetadataHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_originalBytes, \"f\"))\n            return PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_originalBytes, \"f\");\n        writer.writeStartArray(PoolMetadata_EMBEDDED_GROUP_SIZE);\n        writer.writeTextString(PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_url, \"f\"));\n        writer.writeByteString(PoolMetadata_Buffer.from(PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_hash, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== PoolMetadata_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${PoolMetadata_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const url = reader.readTextString();\n        const hash = Hash32ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const metadata = new PoolMetadata(url, hash);\n        PoolMetadata_classPrivateFieldSet(metadata, _PoolMetadata_originalBytes, cbor, \"f\");\n        return metadata;\n    }\n    toCore() {\n        return {\n            hash: PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_hash, \"f\"),\n            url: PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_url, \"f\")\n        };\n    }\n    static fromCore(metadata) {\n        return new PoolMetadata(metadata.url, metadata.hash);\n    }\n    url() {\n        return PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_url, \"f\");\n    }\n    setUrl(url) {\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_url, url, \"f\");\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_originalBytes, undefined, \"f\");\n    }\n    poolMetadataHash() {\n        return PoolMetadata_classPrivateFieldGet(this, _PoolMetadata_hash, \"f\");\n    }\n    setPoolMetadataHash(poolMetadataHash) {\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_hash, poolMetadataHash, \"f\");\n        PoolMetadata_classPrivateFieldSet(this, _PoolMetadata_originalBytes, undefined, \"f\");\n    }\n}\n_PoolMetadata_url = new WeakMap(), _PoolMetadata_hash = new WeakMap(), _PoolMetadata_originalBytes = new WeakMap();\n//# sourceMappingURL=PoolMetadata.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/MultiHostName.js\nvar MultiHostName_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar MultiHostName_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _MultiHostName_dnsName, _MultiHostName_originalBytes;\n\n\nconst MultiHostName_EMBEDDED_GROUP_SIZE = 2;\nconst MULTI_HOST_NAME_RELAY_ID = 2;\nconst MAX_DNS_SIZE_STR_LENGTH = 64;\nclass MultiHostName {\n    constructor(dnsName) {\n        _MultiHostName_dnsName.set(this, void 0);\n        _MultiHostName_originalBytes.set(this, undefined);\n        if (dnsName.length > MAX_DNS_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('dnsName', `dnsName must be less or equal to 64 characters long, actual size ${dnsName.length}`);\n        MultiHostName_classPrivateFieldSet(this, _MultiHostName_dnsName, dnsName, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (MultiHostName_classPrivateFieldGet(this, _MultiHostName_originalBytes, \"f\"))\n            return MultiHostName_classPrivateFieldGet(this, _MultiHostName_originalBytes, \"f\");\n        writer.writeStartArray(MultiHostName_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(MULTI_HOST_NAME_RELAY_ID);\n        writer.writeTextString(MultiHostName_classPrivateFieldGet(this, _MultiHostName_dnsName, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== MultiHostName_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${MultiHostName_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const id = Number(reader.readInt());\n        if (id !== MULTI_HOST_NAME_RELAY_ID)\n            throw new errors_InvalidArgumentError('cbor', `Expected MultiHostName id ${MULTI_HOST_NAME_RELAY_ID}, but got ${id}`);\n        const dnsName = reader.readTextString();\n        const relay = new MultiHostName(dnsName);\n        MultiHostName_classPrivateFieldSet(relay, _MultiHostName_originalBytes, cbor, \"f\");\n        return relay;\n    }\n    toCore() {\n        return {\n            __typename: 'RelayByNameMultihost',\n            dnsName: MultiHostName_classPrivateFieldGet(this, _MultiHostName_dnsName, \"f\")\n        };\n    }\n    static fromCore(relay) {\n        return new MultiHostName(relay.dnsName);\n    }\n    dnsName() {\n        return MultiHostName_classPrivateFieldGet(this, _MultiHostName_dnsName, \"f\");\n    }\n    setDnsName(dnsName) {\n        if (dnsName.length > MAX_DNS_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('dnsName', `dnsName must be less or equal to 64 characters long, actual size ${dnsName.length}`);\n        MultiHostName_classPrivateFieldSet(this, _MultiHostName_dnsName, dnsName, \"f\");\n        MultiHostName_classPrivateFieldSet(this, _MultiHostName_originalBytes, undefined, \"f\");\n    }\n}\n_MultiHostName_dnsName = new WeakMap(), _MultiHostName_originalBytes = new WeakMap();\n//# sourceMappingURL=MultiHostName.js.map\n// EXTERNAL MODULE: ./node_modules/ip-address/dist/ip-address.js\nvar ip_address = __webpack_require__(\"./node_modules/ip-address/dist/ip-address.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/ipUtils.js\n\n\nconst ipV4StringToByteArray = (address) => {\n    if (!ip_address.Address4.isValid(address))\n        throw new errors_InvalidArgumentError('address', `Invalid IP V4 string: ${address}`);\n    return new Uint8Array(address.split('.').map((segment) => Number.parseInt(segment)));\n};\nconst byteArrayToIpV4String = (byteArray) => {\n    if (byteArray.length !== 4)\n        throw new errors_InvalidArgumentError('byteArray', `Invalid IP V4 byte array, expected 4 bytes, but got ${byteArray.length}`);\n    return [...byteArray].map((octect) => octect.toString()).join('.');\n};\nconst ipV6StringToByteArray = (address) => {\n    if (!ip_address.Address6.isValid(address))\n        throw new errors_InvalidArgumentError('address', `Invalid IP V6 string: ${address}`);\n    const addressV6 = new ip_address.Address6(address).toUnsignedByteArray();\n    const filler = Array.from({ length: 16 })\n        .fill(0, 0, 16)\n        .slice(0, 16 - addressV6.length);\n    return new Uint8Array([...filler, ...addressV6]);\n};\nconst byteArrayToIPv6String = (byteArray) => {\n    const addressV6 = ip_address.Address6.fromUnsignedByteArray([...byteArray]);\n    return addressV6.canonicalForm();\n};\n//# sourceMappingURL=ipUtils.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/SingleHostAddr.js\nvar SingleHostAddr_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar SingleHostAddr_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _SingleHostAddr_port, _SingleHostAddr_ipV4, _SingleHostAddr_ipV6, _SingleHostAddr_originalBytes;\n\n\n\nconst SingleHostAddr_EMBEDDED_GROUP_SIZE = 4;\nconst SINGLE_HOST_ADDR_RELAY_ID = 0;\nclass SingleHostAddr {\n    constructor(port, ipv4, ipv6) {\n        _SingleHostAddr_port.set(this, void 0);\n        _SingleHostAddr_ipV4.set(this, void 0);\n        _SingleHostAddr_ipV6.set(this, void 0);\n        _SingleHostAddr_originalBytes.set(this, undefined);\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_port, port, \"f\");\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_ipV4, ipv4, \"f\");\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_ipV6, ipv6, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_originalBytes, \"f\"))\n            return SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_originalBytes, \"f\");\n        writer.writeStartArray(SingleHostAddr_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(SINGLE_HOST_ADDR_RELAY_ID);\n        SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_port, \"f\") ? writer.writeInt(SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_port, \"f\")) : writer.writeNull();\n        SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV4, \"f\") ? writer.writeByteString(ipV4StringToByteArray(SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV4, \"f\"))) : writer.writeNull();\n        SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV6, \"f\") ? writer.writeByteString(ipV6StringToByteArray(SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV6, \"f\"))) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== SingleHostAddr_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${SingleHostAddr_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const id = Number(reader.readInt());\n        if (id !== SINGLE_HOST_ADDR_RELAY_ID)\n            throw new errors_InvalidArgumentError('cbor', `Expected SingleHostAddr id ${SINGLE_HOST_ADDR_RELAY_ID}, but got ${id}`);\n        let port;\n        let ipV4;\n        let ipV6;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n            port = undefined;\n        }\n        else {\n            port = reader.readInt();\n        }\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n            ipV4 = undefined;\n        }\n        else {\n            ipV4 = byteArrayToIpV4String(reader.readByteString());\n        }\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n            ipV6 = undefined;\n        }\n        else {\n            ipV6 = byteArrayToIPv6String(reader.readByteString());\n        }\n        const relay = new SingleHostAddr(port ? Number(port) : undefined, ipV4, ipV6);\n        SingleHostAddr_classPrivateFieldSet(relay, _SingleHostAddr_originalBytes, cbor, \"f\");\n        return relay;\n    }\n    toCore() {\n        return {\n            __typename: 'RelayByAddress',\n            ipv4: SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV4, \"f\"),\n            ipv6: SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV6, \"f\"),\n            port: SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_port, \"f\")\n        };\n    }\n    static fromCore(relay) {\n        return new SingleHostAddr(relay.port, relay.ipv4, relay.ipv6);\n    }\n    port() {\n        return SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_port, \"f\");\n    }\n    setPort(port) {\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_port, port, \"f\");\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_originalBytes, undefined, \"f\");\n    }\n    ipv4() {\n        return SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV4, \"f\");\n    }\n    setIpv4(ipV4) {\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_ipV4, ipV4, \"f\");\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_originalBytes, undefined, \"f\");\n    }\n    ipv6() {\n        return SingleHostAddr_classPrivateFieldGet(this, _SingleHostAddr_ipV6, \"f\");\n    }\n    setIpv6(ipV6) {\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_ipV6, ipV6, \"f\");\n        SingleHostAddr_classPrivateFieldSet(this, _SingleHostAddr_originalBytes, undefined, \"f\");\n    }\n}\n_SingleHostAddr_port = new WeakMap(), _SingleHostAddr_ipV4 = new WeakMap(), _SingleHostAddr_ipV6 = new WeakMap(), _SingleHostAddr_originalBytes = new WeakMap();\n//# sourceMappingURL=SingleHostAddr.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/SingleHostName.js\nvar SingleHostName_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar SingleHostName_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _SingleHostName_port, _SingleHostName_dnsName, _SingleHostName_originalBytes;\n\n\nconst SingleHostName_EMBEDDED_GROUP_SIZE = 3;\nconst SINGLE_HOST_NAME_RELAY_ID = 1;\nconst SingleHostName_MAX_DNS_SIZE_STR_LENGTH = 64;\nclass SingleHostName {\n    constructor(dnsName, port) {\n        _SingleHostName_port.set(this, void 0);\n        _SingleHostName_dnsName.set(this, void 0);\n        _SingleHostName_originalBytes.set(this, undefined);\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_port, port, \"f\");\n        if (dnsName.length > SingleHostName_MAX_DNS_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('dnsName', `dnsName must be less or equal to 64 characters long, actual size ${dnsName.length}`);\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_dnsName, dnsName, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (SingleHostName_classPrivateFieldGet(this, _SingleHostName_originalBytes, \"f\"))\n            return SingleHostName_classPrivateFieldGet(this, _SingleHostName_originalBytes, \"f\");\n        writer.writeStartArray(SingleHostName_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(SINGLE_HOST_NAME_RELAY_ID);\n        SingleHostName_classPrivateFieldGet(this, _SingleHostName_port, \"f\") ? writer.writeInt(SingleHostName_classPrivateFieldGet(this, _SingleHostName_port, \"f\")) : writer.writeNull();\n        writer.writeTextString(SingleHostName_classPrivateFieldGet(this, _SingleHostName_dnsName, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== SingleHostName_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${SingleHostName_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const id = Number(reader.readInt());\n        if (id !== SINGLE_HOST_NAME_RELAY_ID)\n            throw new errors_InvalidArgumentError('cbor', `Expected SingleHostName id ${SINGLE_HOST_NAME_RELAY_ID}, but got ${id}`);\n        let port;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n            port = undefined;\n        }\n        else {\n            port = reader.readInt();\n        }\n        const dnsName = reader.readTextString();\n        const relay = new SingleHostName(dnsName, port ? Number(port) : undefined);\n        SingleHostName_classPrivateFieldSet(relay, _SingleHostName_originalBytes, cbor, \"f\");\n        return relay;\n    }\n    toCore() {\n        return {\n            __typename: 'RelayByName',\n            hostname: SingleHostName_classPrivateFieldGet(this, _SingleHostName_dnsName, \"f\"),\n            port: SingleHostName_classPrivateFieldGet(this, _SingleHostName_port, \"f\")\n        };\n    }\n    static fromCore(relay) {\n        return new SingleHostName(relay.hostname, relay.port);\n    }\n    port() {\n        return SingleHostName_classPrivateFieldGet(this, _SingleHostName_port, \"f\");\n    }\n    setPort(port) {\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_port, port, \"f\");\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_originalBytes, undefined, \"f\");\n    }\n    dnsName() {\n        return SingleHostName_classPrivateFieldGet(this, _SingleHostName_dnsName, \"f\");\n    }\n    setDnsName(dnsName) {\n        if (dnsName.length > SingleHostName_MAX_DNS_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('dnsName', `dnsName must be less or equal to 64 characters long, actual size ${dnsName.length}`);\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_dnsName, dnsName, \"f\");\n        SingleHostName_classPrivateFieldSet(this, _SingleHostName_originalBytes, undefined, \"f\");\n    }\n}\n_SingleHostName_port = new WeakMap(), _SingleHostName_dnsName = new WeakMap(), _SingleHostName_originalBytes = new WeakMap();\n//# sourceMappingURL=SingleHostName.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/Relay.js\nvar Relay_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar Relay_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Relay_singleHostAddr, _Relay_singleHostName, _Relay_multiHostName, _Relay_kind, _Relay_originalBytes;\n\n\n\n\n\nvar RelayKind;\n(function (RelayKind) {\n    RelayKind[RelayKind[\"SingleHostAddress\"] = 0] = \"SingleHostAddress\";\n    RelayKind[RelayKind[\"SingleHostDnsName\"] = 1] = \"SingleHostDnsName\";\n    RelayKind[RelayKind[\"MultiHostDnsName\"] = 2] = \"MultiHostDnsName\";\n})(RelayKind || (RelayKind = {}));\nclass Relay {\n    constructor() {\n        _Relay_singleHostAddr.set(this, void 0);\n        _Relay_singleHostName.set(this, void 0);\n        _Relay_multiHostName.set(this, void 0);\n        _Relay_kind.set(this, void 0);\n        _Relay_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (Relay_classPrivateFieldGet(this, _Relay_originalBytes, \"f\"))\n            return Relay_classPrivateFieldGet(this, _Relay_originalBytes, \"f\");\n        let cbor;\n        switch (Relay_classPrivateFieldGet(this, _Relay_kind, \"f\")) {\n            case RelayKind.SingleHostAddress:\n                cbor = Relay_classPrivateFieldGet(this, _Relay_singleHostAddr, \"f\").toCbor();\n                break;\n            case RelayKind.SingleHostDnsName:\n                cbor = Relay_classPrivateFieldGet(this, _Relay_singleHostName, \"f\").toCbor();\n                break;\n            case RelayKind.MultiHostDnsName:\n                cbor = Relay_classPrivateFieldGet(this, _Relay_multiHostName, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${Relay_classPrivateFieldGet(this, _Relay_kind, \"f\")}`);\n        }\n        return cbor;\n    }\n    static fromCbor(cbor) {\n        let relay;\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const kind = Number(reader.readInt());\n        switch (kind) {\n            case RelayKind.SingleHostAddress:\n                relay = Relay.newSingleHostAddr(SingleHostAddr.fromCbor(cbor));\n                break;\n            case RelayKind.SingleHostDnsName:\n                relay = Relay.newSingleHostName(SingleHostName.fromCbor(cbor));\n                break;\n            case RelayKind.MultiHostDnsName:\n                relay = Relay.newMultiHostName(MultiHostName.fromCbor(cbor));\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${kind}`);\n        }\n        Relay_classPrivateFieldSet(relay, _Relay_originalBytes, cbor, \"f\");\n        return relay;\n    }\n    toCore() {\n        let core;\n        switch (Relay_classPrivateFieldGet(this, _Relay_kind, \"f\")) {\n            case RelayKind.SingleHostAddress:\n                core = Relay_classPrivateFieldGet(this, _Relay_singleHostAddr, \"f\").toCore();\n                break;\n            case RelayKind.SingleHostDnsName:\n                core = Relay_classPrivateFieldGet(this, _Relay_singleHostName, \"f\").toCore();\n                break;\n            case RelayKind.MultiHostDnsName:\n                core = Relay_classPrivateFieldGet(this, _Relay_multiHostName, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${Relay_classPrivateFieldGet(this, _Relay_kind, \"f\")}`);\n        }\n        return core;\n    }\n    static fromCore(coreRelay) {\n        let relay;\n        switch (coreRelay.__typename) {\n            case 'RelayByAddress':\n                relay = Relay.newSingleHostAddr(SingleHostAddr.fromCore(coreRelay));\n                break;\n            case 'RelayByName':\n                relay = Relay.newSingleHostName(SingleHostName.fromCore(coreRelay));\n                break;\n            case 'RelayByNameMultihost':\n                relay = Relay.newMultiHostName(MultiHostName.fromCore(coreRelay));\n                break;\n            default:\n                throw new errors_InvalidStateError('Unexpected kind value');\n        }\n        return relay;\n    }\n    static newSingleHostAddr(singleHostaddr) {\n        const relay = new Relay();\n        Relay_classPrivateFieldSet(relay, _Relay_singleHostAddr, singleHostaddr, \"f\");\n        Relay_classPrivateFieldSet(relay, _Relay_kind, RelayKind.SingleHostAddress, \"f\");\n        return relay;\n    }\n    static newSingleHostName(singleHostName) {\n        const relay = new Relay();\n        Relay_classPrivateFieldSet(relay, _Relay_singleHostName, singleHostName, \"f\");\n        Relay_classPrivateFieldSet(relay, _Relay_kind, RelayKind.SingleHostDnsName, \"f\");\n        return relay;\n    }\n    static newMultiHostName(multiHostName) {\n        const relay = new Relay();\n        Relay_classPrivateFieldSet(relay, _Relay_multiHostName, multiHostName, \"f\");\n        Relay_classPrivateFieldSet(relay, _Relay_kind, RelayKind.MultiHostDnsName, \"f\");\n        return relay;\n    }\n    kind() {\n        return Relay_classPrivateFieldGet(this, _Relay_kind, \"f\");\n    }\n    asSingleHostAddr() {\n        return Relay_classPrivateFieldGet(this, _Relay_singleHostAddr, \"f\");\n    }\n    asSingleHostName() {\n        return Relay_classPrivateFieldGet(this, _Relay_singleHostName, \"f\");\n    }\n    asMultiHostName() {\n        return Relay_classPrivateFieldGet(this, _Relay_multiHostName, \"f\");\n    }\n}\n_Relay_singleHostAddr = new WeakMap(), _Relay_singleHostName = new WeakMap(), _Relay_multiHostName = new WeakMap(), _Relay_kind = new WeakMap(), _Relay_originalBytes = new WeakMap();\n//# sourceMappingURL=Relay.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/UnitInterval.js\nvar UnitInterval_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar UnitInterval_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _UnitInterval_numerator, _UnitInterval_denominator, _UnitInterval_originalBytes;\n\n\n\nconst UNIT_INTERVAL_ARRAY_SIZE = 2;\nclass UnitInterval {\n    constructor(numerator, denominator) {\n        _UnitInterval_numerator.set(this, void 0);\n        _UnitInterval_denominator.set(this, void 0);\n        _UnitInterval_originalBytes.set(this, undefined);\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_numerator, numerator, \"f\");\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_denominator, denominator, \"f\");\n    }\n    static fromFloat(number) {\n        if (number === undefined)\n            return undefined;\n        const fraction = new fraction_js_fraction(number);\n        return new UnitInterval(BigInt(fraction.n), BigInt(fraction.d));\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (UnitInterval_classPrivateFieldGet(this, _UnitInterval_originalBytes, \"f\"))\n            return UnitInterval_classPrivateFieldGet(this, _UnitInterval_originalBytes, \"f\");\n        writer.writeTag(CborTag.RationalNumber);\n        writer.writeStartArray(UNIT_INTERVAL_ARRAY_SIZE);\n        writer.writeInt(UnitInterval_classPrivateFieldGet(this, _UnitInterval_numerator, \"f\"));\n        writer.writeInt(UnitInterval_classPrivateFieldGet(this, _UnitInterval_denominator, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        if (reader.readTag() !== CborTag.RationalNumber)\n            throw new errors_InvalidArgumentError('cbor', `Expected tag ${CborTag.RationalNumber}, but got ${reader.peekTag()}`);\n        const length = reader.readStartArray();\n        if (length !== UNIT_INTERVAL_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UNIT_INTERVAL_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const numerator = reader.readInt();\n        const denominator = reader.readInt();\n        reader.readEndArray();\n        const unitInterval = new UnitInterval(numerator, denominator);\n        UnitInterval_classPrivateFieldSet(unitInterval, _UnitInterval_originalBytes, cbor, \"f\");\n        return unitInterval;\n    }\n    toCore() {\n        return {\n            denominator: Number(UnitInterval_classPrivateFieldGet(this, _UnitInterval_denominator, \"f\")),\n            numerator: Number(UnitInterval_classPrivateFieldGet(this, _UnitInterval_numerator, \"f\"))\n        };\n    }\n    static fromCore(fraction) {\n        return new UnitInterval(BigInt(fraction.numerator), BigInt(fraction.denominator));\n    }\n    numerator() {\n        return UnitInterval_classPrivateFieldGet(this, _UnitInterval_numerator, \"f\");\n    }\n    setNumerator(numerator) {\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_numerator, numerator, \"f\");\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_originalBytes, undefined, \"f\");\n    }\n    denominator() {\n        return UnitInterval_classPrivateFieldGet(this, _UnitInterval_denominator, \"f\");\n    }\n    setDenominator(denominator) {\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_denominator, denominator, \"f\");\n        UnitInterval_classPrivateFieldSet(this, _UnitInterval_originalBytes, undefined, \"f\");\n    }\n    toFloat() {\n        return Number(UnitInterval_classPrivateFieldGet(this, _UnitInterval_numerator, \"f\")) / Number(UnitInterval_classPrivateFieldGet(this, _UnitInterval_denominator, \"f\"));\n    }\n}\n_UnitInterval_numerator = new WeakMap(), _UnitInterval_denominator = new WeakMap(), _UnitInterval_originalBytes = new WeakMap();\n//# sourceMappingURL=UnitInterval.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/PoolParams.js\n/* provided dependency */ var PoolParams_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PoolParams_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PoolParams_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PoolParams_operator, _PoolParams_vrfKeyHash, _PoolParams_pledge, _PoolParams_cost, _PoolParams_margin, _PoolParams_rewardAccount, _PoolParams_poolOwners, _PoolParams_relays, _PoolParams_poolMetadata, _PoolParams_originalBytes;\n\n\n\n\n\n\n\n\n\n\nclass PoolParams {\n    constructor(operator, vrfKeyHash, pledge, cost, margin, rewardAccount, poolOwners, relays, poolMetadata) {\n        _PoolParams_operator.set(this, void 0);\n        _PoolParams_vrfKeyHash.set(this, void 0);\n        _PoolParams_pledge.set(this, void 0);\n        _PoolParams_cost.set(this, void 0);\n        _PoolParams_margin.set(this, void 0);\n        _PoolParams_rewardAccount.set(this, void 0);\n        _PoolParams_poolOwners.set(this, void 0);\n        _PoolParams_relays.set(this, void 0);\n        _PoolParams_poolMetadata.set(this, void 0);\n        _PoolParams_originalBytes.set(this, undefined);\n        PoolParams_classPrivateFieldSet(this, _PoolParams_operator, operator, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_vrfKeyHash, vrfKeyHash, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_pledge, pledge, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_cost, cost, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_margin, margin, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_rewardAccount, rewardAccount, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_poolOwners, poolOwners, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_relays, relays, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_poolMetadata, poolMetadata, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PoolParams_classPrivateFieldGet(this, _PoolParams_originalBytes, \"f\"))\n            return PoolParams_classPrivateFieldGet(this, _PoolParams_originalBytes, \"f\");\n        writer.writeStartArray(PoolParams.subgroupCount);\n        return this.toFlattenedCbor(writer);\n    }\n    toFlattenedCbor(writer) {\n        writer.writeByteString(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_operator, \"f\"), 'hex'));\n        writer.writeByteString(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_vrfKeyHash, \"f\"), 'hex'));\n        writer.writeInt(PoolParams_classPrivateFieldGet(this, _PoolParams_pledge, \"f\"));\n        writer.writeInt(PoolParams_classPrivateFieldGet(this, _PoolParams_cost, \"f\"));\n        writer.writeEncodedValue(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_margin, \"f\").toCbor(), 'hex'));\n        writer.writeByteString(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_rewardAccount, \"f\").toAddress().toBytes(), 'hex'));\n        writer.writeEncodedValue(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_poolOwners, \"f\").toCbor(), 'hex'));\n        writer.writeStartArray(PoolParams_classPrivateFieldGet(this, _PoolParams_relays, \"f\").length);\n        for (const relay of PoolParams_classPrivateFieldGet(this, _PoolParams_relays, \"f\"))\n            writer.writeEncodedValue(PoolParams_Buffer.from(relay.toCbor(), 'hex'));\n        if (PoolParams_classPrivateFieldGet(this, _PoolParams_poolMetadata, \"f\")) {\n            writer.writeEncodedValue(PoolParams_Buffer.from(PoolParams_classPrivateFieldGet(this, _PoolParams_poolMetadata, \"f\").toCbor(), 'hex'));\n        }\n        else {\n            writer.writeNull();\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== PoolParams.subgroupCount)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${PoolParams.subgroupCount} elements, but got an array of ${length} elements`);\n        const params = PoolParams.fromFlattenedCbor(reader);\n        PoolParams_classPrivateFieldSet(params, _PoolParams_originalBytes, cbor, \"f\");\n        return params;\n    }\n    static fromFlattenedCbor(reader) {\n        const operator = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const vrfKeyHash = VrfVkHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const pledge = reader.readInt();\n        const cost = reader.readInt();\n        const margin = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const rewardAccount = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString())).asReward();\n        const relays = new Array();\n        let poolMetadata;\n        const poolOwner = CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), Hash.fromCbor);\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray)\n            relays.push(Relay.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n        reader.readEndArray();\n        if (reader.peekState() !== CborReaderState.Null) {\n            poolMetadata = PoolMetadata.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        else {\n            reader.readNull();\n        }\n        return new PoolParams(operator, vrfKeyHash, pledge, cost, margin, rewardAccount, poolOwner, relays, poolMetadata);\n    }\n    toCore() {\n        const rewardAccountAddress = PoolParams_classPrivateFieldGet(this, _PoolParams_rewardAccount, \"f\").toAddress();\n        const poolParams = {\n            cost: PoolParams_classPrivateFieldGet(this, _PoolParams_cost, \"f\"),\n            id: PoolId.fromKeyHash(PoolParams_classPrivateFieldGet(this, _PoolParams_operator, \"f\")),\n            margin: PoolParams_classPrivateFieldGet(this, _PoolParams_margin, \"f\").toCore(),\n            owners: PoolParams_classPrivateFieldGet(this, _PoolParams_poolOwners, \"f\")\n                .toCore()\n                .map((keyHash) => createRewardAccount(keyHash, rewardAccountAddress.getNetworkId())),\n            pledge: PoolParams_classPrivateFieldGet(this, _PoolParams_pledge, \"f\"),\n            relays: PoolParams_classPrivateFieldGet(this, _PoolParams_relays, \"f\").map((relay) => relay.toCore()),\n            rewardAccount: PoolParams_classPrivateFieldGet(this, _PoolParams_rewardAccount, \"f\").toAddress().toBech32(),\n            vrf: PoolParams_classPrivateFieldGet(this, _PoolParams_vrfKeyHash, \"f\")\n        };\n        if (PoolParams_classPrivateFieldGet(this, _PoolParams_poolMetadata, \"f\"))\n            poolParams.metadataJson = PoolParams_classPrivateFieldGet(this, _PoolParams_poolMetadata, \"f\").toCore();\n        return poolParams;\n    }\n    static fromCore(params) {\n        return new PoolParams(PoolId.toKeyHash(params.id), params.vrf, params.pledge, params.cost, UnitInterval.fromCore(params.margin), Address.fromBech32(params.rewardAccount).asReward(), CborSet.fromCore(params.owners.map((owner) => Ed25519KeyHashHex(Address.fromBech32(owner).asReward().getPaymentCredential().hash)), Hash.fromCore), params.relays.map((relay) => Relay.fromCore(relay)), params.metadataJson ? PoolMetadata.fromCore(params.metadataJson) : undefined);\n    }\n    operator() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_operator, \"f\");\n    }\n    setOperator(operator) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_operator, operator, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    vrfKeyHash() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_vrfKeyHash, \"f\");\n    }\n    setVrfKeyHash(vrfKeyHash) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_vrfKeyHash, vrfKeyHash, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    pledge() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_pledge, \"f\");\n    }\n    setPledge(pledge) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_pledge, pledge, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    cost() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_cost, \"f\");\n    }\n    setCost(cost) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_cost, cost, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    margin() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_margin, \"f\");\n    }\n    setMargin(margin) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_margin, margin, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    rewardAccount() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_rewardAccount, \"f\");\n    }\n    setRewardAccount(rewardAccount) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_rewardAccount, rewardAccount, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    poolOwners() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_poolOwners, \"f\");\n    }\n    setPoolOwners(poolOwners) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_poolOwners, poolOwners, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    relays() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_relays, \"f\");\n    }\n    setRelays(relays) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_relays, [...relays], \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n    poolMetadata() {\n        return PoolParams_classPrivateFieldGet(this, _PoolParams_poolMetadata, \"f\");\n    }\n    setPoolMetadata(poolMetadata) {\n        PoolParams_classPrivateFieldSet(this, _PoolParams_poolMetadata, poolMetadata, \"f\");\n        PoolParams_classPrivateFieldSet(this, _PoolParams_originalBytes, undefined, \"f\");\n    }\n}\n_PoolParams_operator = new WeakMap(), _PoolParams_vrfKeyHash = new WeakMap(), _PoolParams_pledge = new WeakMap(), _PoolParams_cost = new WeakMap(), _PoolParams_margin = new WeakMap(), _PoolParams_rewardAccount = new WeakMap(), _PoolParams_poolOwners = new WeakMap(), _PoolParams_relays = new WeakMap(), _PoolParams_poolMetadata = new WeakMap(), _PoolParams_originalBytes = new WeakMap();\nPoolParams.subgroupCount = 9;\n//# sourceMappingURL=PoolParams.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolRegistration.js\nvar PoolRegistration_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PoolRegistration_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PoolRegistration_params, _PoolRegistration_originalBytes;\n\n\n\n\n\nconst PoolRegistration_EMBEDDED_GROUP_SIZE = PoolParams.subgroupCount + 1;\nclass PoolRegistration {\n    constructor(params) {\n        _PoolRegistration_params.set(this, void 0);\n        _PoolRegistration_originalBytes.set(this, undefined);\n        PoolRegistration_classPrivateFieldSet(this, _PoolRegistration_params, params, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PoolRegistration_classPrivateFieldGet(this, _PoolRegistration_originalBytes, \"f\"))\n            return PoolRegistration_classPrivateFieldGet(this, _PoolRegistration_originalBytes, \"f\");\n        writer.writeStartArray(PoolRegistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.PoolRegistration);\n        return PoolRegistration_classPrivateFieldGet(this, _PoolRegistration_params, \"f\").toFlattenedCbor(writer);\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== PoolRegistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${PoolRegistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.PoolRegistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.PoolRegistration}, but got ${kind}`);\n        const params = PoolParams.fromFlattenedCbor(reader);\n        reader.readEndArray();\n        const cert = new PoolRegistration(params);\n        PoolRegistration_classPrivateFieldSet(cert, _PoolRegistration_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.PoolRegistration,\n            poolParameters: PoolRegistration_classPrivateFieldGet(this, _PoolRegistration_params, \"f\").toCore()\n        };\n    }\n    static fromCore(cert) {\n        return new PoolRegistration(PoolParams.fromCore(cert.poolParameters));\n    }\n    poolParameters() {\n        return PoolRegistration_classPrivateFieldGet(this, _PoolRegistration_params, \"f\");\n    }\n    setPoolParameters(parameters) {\n        PoolRegistration_classPrivateFieldSet(this, _PoolRegistration_params, parameters, \"f\");\n        PoolRegistration_classPrivateFieldSet(this, _PoolRegistration_originalBytes, undefined, \"f\");\n    }\n}\n_PoolRegistration_params = new WeakMap(), _PoolRegistration_originalBytes = new WeakMap();\n//# sourceMappingURL=PoolRegistration.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolRetirement.js\n/* provided dependency */ var PoolRetirement_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PoolRetirement_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PoolRetirement_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PoolRetirement_poolKeyHash, _PoolRetirement_epoch, _PoolRetirement_originalBytes;\n\n\n\n\n\n\n\nconst PoolRetirement_EMBEDDED_GROUP_SIZE = 3;\nclass PoolRetirement {\n    constructor(poolKeyHash, epoch) {\n        _PoolRetirement_poolKeyHash.set(this, void 0);\n        _PoolRetirement_epoch.set(this, void 0);\n        _PoolRetirement_originalBytes.set(this, undefined);\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_poolKeyHash, poolKeyHash, \"f\");\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_epoch, epoch, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_originalBytes, \"f\"))\n            return PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_originalBytes, \"f\");\n        writer.writeStartArray(PoolRetirement_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.PoolRetirement);\n        writer.writeByteString(PoolRetirement_Buffer.from(PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_poolKeyHash, \"f\"), 'hex'));\n        writer.writeInt(PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_epoch, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== PoolRetirement_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${PoolRetirement_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.PoolRetirement)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.PoolRetirement}, but got ${kind}`);\n        const poolKeyHash = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const epoch = reader.readInt();\n        reader.readEndArray();\n        const cert = new PoolRetirement(poolKeyHash, EpochNo(Number(epoch)));\n        PoolRetirement_classPrivateFieldSet(cert, _PoolRetirement_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.PoolRetirement,\n            epoch: PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_epoch, \"f\"),\n            poolId: PoolId.fromKeyHash(PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_poolKeyHash, \"f\"))\n        };\n    }\n    static fromCore(cert) {\n        return new PoolRetirement(PoolId.toKeyHash(cert.poolId), cert.epoch);\n    }\n    poolKeyHash() {\n        return PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_poolKeyHash, \"f\");\n    }\n    setPoolKeyHash(poolKeyHash) {\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_poolKeyHash, poolKeyHash, \"f\");\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_originalBytes, undefined, \"f\");\n    }\n    epoch() {\n        return PoolRetirement_classPrivateFieldGet(this, _PoolRetirement_epoch, \"f\");\n    }\n    setEpoch(epoch) {\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_epoch, epoch, \"f\");\n        PoolRetirement_classPrivateFieldSet(this, _PoolRetirement_originalBytes, undefined, \"f\");\n    }\n}\n_PoolRetirement_poolKeyHash = new WeakMap(), _PoolRetirement_epoch = new WeakMap(), _PoolRetirement_originalBytes = new WeakMap();\n//# sourceMappingURL=PoolRetirement.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/Anchor.js\n/* provided dependency */ var Anchor_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Anchor_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Anchor_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Anchor_url, _Anchor_dataHash, _Anchor_originalBytes;\n\n\n\nconst Anchor_EMBEDDED_GROUP_SIZE = 2;\nconst Anchor_MAX_URL_SIZE_STR_LENGTH = 128;\nclass Anchor {\n    constructor(url, dataHash) {\n        _Anchor_url.set(this, void 0);\n        _Anchor_dataHash.set(this, void 0);\n        _Anchor_originalBytes.set(this, undefined);\n        if (url.length > Anchor_MAX_URL_SIZE_STR_LENGTH)\n            throw new errors_InvalidArgumentError('url', `url must be less or equal to 64 characters long, actual size ${url.length}`);\n        Anchor_classPrivateFieldSet(this, _Anchor_url, url, \"f\");\n        Anchor_classPrivateFieldSet(this, _Anchor_dataHash, dataHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Anchor_classPrivateFieldGet(this, _Anchor_originalBytes, \"f\"))\n            return Anchor_classPrivateFieldGet(this, _Anchor_originalBytes, \"f\");\n        writer.writeStartArray(Anchor_EMBEDDED_GROUP_SIZE);\n        writer.writeTextString(Anchor_classPrivateFieldGet(this, _Anchor_url, \"f\"));\n        writer.writeByteString(Anchor_Buffer.from(Anchor_classPrivateFieldGet(this, _Anchor_dataHash, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== Anchor_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${Anchor_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const url = reader.readTextString();\n        const hash = Hash32ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const anchor = new Anchor(url, hash);\n        Anchor_classPrivateFieldSet(anchor, _Anchor_originalBytes, cbor, \"f\");\n        return anchor;\n    }\n    toCore() {\n        return {\n            dataHash: Anchor_classPrivateFieldGet(this, _Anchor_dataHash, \"f\"),\n            url: Anchor_classPrivateFieldGet(this, _Anchor_url, \"f\")\n        };\n    }\n    static fromCore(anchor) {\n        return new Anchor(anchor.url, anchor.dataHash);\n    }\n    url() {\n        return Anchor_classPrivateFieldGet(this, _Anchor_url, \"f\");\n    }\n    setUrl(url) {\n        Anchor_classPrivateFieldSet(this, _Anchor_url, url, \"f\");\n        Anchor_classPrivateFieldSet(this, _Anchor_originalBytes, undefined, \"f\");\n    }\n    dataHash() {\n        return Anchor_classPrivateFieldGet(this, _Anchor_dataHash, \"f\");\n    }\n    setDataHash(dataHash) {\n        Anchor_classPrivateFieldSet(this, _Anchor_dataHash, dataHash, \"f\");\n        Anchor_classPrivateFieldSet(this, _Anchor_originalBytes, undefined, \"f\");\n    }\n}\n_Anchor_url = new WeakMap(), _Anchor_dataHash = new WeakMap(), _Anchor_originalBytes = new WeakMap();\n//# sourceMappingURL=Anchor.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/RegisterDelegateRepresentative.js\n/* provided dependency */ var RegisterDelegateRepresentative_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar RegisterDelegateRepresentative_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar RegisterDelegateRepresentative_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _RegisterDelegateRepresentative_drepCredential, _RegisterDelegateRepresentative_deposit, _RegisterDelegateRepresentative_anchor, _RegisterDelegateRepresentative_originalBytes;\n\n\n\n\n\n\n\nconst RegisterDelegateRepresentative_EMBEDDED_GROUP_SIZE = 2;\nclass RegisterDelegateRepresentative {\n    constructor(drepCredential, deposit, anchor) {\n        _RegisterDelegateRepresentative_drepCredential.set(this, void 0);\n        _RegisterDelegateRepresentative_deposit.set(this, void 0);\n        _RegisterDelegateRepresentative_anchor.set(this, void 0);\n        _RegisterDelegateRepresentative_originalBytes.set(this, undefined);\n        RegisterDelegateRepresentative_classPrivateFieldSet(this, _RegisterDelegateRepresentative_drepCredential, drepCredential, \"f\");\n        RegisterDelegateRepresentative_classPrivateFieldSet(this, _RegisterDelegateRepresentative_deposit, deposit, \"f\");\n        RegisterDelegateRepresentative_classPrivateFieldSet(this, _RegisterDelegateRepresentative_anchor, anchor, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_originalBytes, \"f\"))\n            return RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_originalBytes, \"f\");\n        writer.writeStartArray(4);\n        writer.writeInt(CertificateKind.DrepRegistration);\n        writer.writeStartArray(RegisterDelegateRepresentative_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_drepCredential, \"f\").type);\n        writer.writeByteString(RegisterDelegateRepresentative_Buffer.from(RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_drepCredential, \"f\").hash, 'hex'));\n        writer.writeInt(RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_deposit, \"f\"));\n        if (RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_anchor, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_anchor, \"f\").toCbor()));\n        }\n        else {\n            writer.writeNull();\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 4)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 4 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.DrepRegistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.DrepRegistration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== RegisterDelegateRepresentative_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${RegisterDelegateRepresentative_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const deposit = reader.readInt();\n        let anchor;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        reader.readEndArray();\n        const cert = new RegisterDelegateRepresentative({ hash, type }, deposit, anchor);\n        RegisterDelegateRepresentative_classPrivateFieldSet(cert, _RegisterDelegateRepresentative_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.RegisterDelegateRepresentative,\n            anchor: RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_anchor, \"f\") ? RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_anchor, \"f\").toCore() : null,\n            dRepCredential: RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_drepCredential, \"f\"),\n            deposit: RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_deposit, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new RegisterDelegateRepresentative(cert.dRepCredential, cert.deposit, cert.anchor ? Anchor.fromCore(cert.anchor) : undefined);\n    }\n    credential() {\n        return RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_drepCredential, \"f\");\n    }\n    deposit() {\n        return RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_deposit, \"f\");\n    }\n    anchor() {\n        return RegisterDelegateRepresentative_classPrivateFieldGet(this, _RegisterDelegateRepresentative_anchor, \"f\");\n    }\n}\n_RegisterDelegateRepresentative_drepCredential = new WeakMap(), _RegisterDelegateRepresentative_deposit = new WeakMap(), _RegisterDelegateRepresentative_anchor = new WeakMap(), _RegisterDelegateRepresentative_originalBytes = new WeakMap();\n//# sourceMappingURL=RegisterDelegateRepresentative.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/Registration.js\n/* provided dependency */ var Registration_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Registration_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Registration_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Registration_credential, _Registration_deposit, _Registration_originalBytes;\n\n\n\n\n\nconst Registration_EMBEDDED_GROUP_SIZE = 2;\nclass Registration {\n    constructor(credential, deposit) {\n        _Registration_credential.set(this, void 0);\n        _Registration_deposit.set(this, void 0);\n        _Registration_originalBytes.set(this, undefined);\n        Registration_classPrivateFieldSet(this, _Registration_credential, credential, \"f\");\n        Registration_classPrivateFieldSet(this, _Registration_deposit, deposit, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Registration_classPrivateFieldGet(this, _Registration_originalBytes, \"f\"))\n            return Registration_classPrivateFieldGet(this, _Registration_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.Registration);\n        writer.writeStartArray(Registration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(Registration_classPrivateFieldGet(this, _Registration_credential, \"f\").type);\n        writer.writeByteString(Registration_Buffer.from(Registration_classPrivateFieldGet(this, _Registration_credential, \"f\").hash, 'hex'));\n        writer.writeInt(Registration_classPrivateFieldGet(this, _Registration_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.Registration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.Registration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== Registration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${Registration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new Registration({ hash, type }, deposit);\n        Registration_classPrivateFieldSet(cert, _Registration_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.Registration,\n            deposit: Registration_classPrivateFieldGet(this, _Registration_deposit, \"f\"),\n            stakeCredential: Registration_classPrivateFieldGet(this, _Registration_credential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new Registration(cert.stakeCredential, cert.deposit);\n    }\n    stakeCredential() {\n        return Registration_classPrivateFieldGet(this, _Registration_credential, \"f\");\n    }\n    setStakeCredential(credential) {\n        Registration_classPrivateFieldSet(this, _Registration_credential, credential, \"f\");\n        Registration_classPrivateFieldSet(this, _Registration_originalBytes, undefined, \"f\");\n    }\n    deposit() {\n        return Registration_classPrivateFieldGet(this, _Registration_deposit, \"f\");\n    }\n    setDeposit(deposit) {\n        Registration_classPrivateFieldSet(this, _Registration_deposit, deposit, \"f\");\n        Registration_classPrivateFieldSet(this, _Registration_originalBytes, undefined, \"f\");\n    }\n}\n_Registration_credential = new WeakMap(), _Registration_deposit = new WeakMap(), _Registration_originalBytes = new WeakMap();\n//# sourceMappingURL=Registration.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/ResignCommitteeCold.js\n/* provided dependency */ var ResignCommitteeCold_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ResignCommitteeCold_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ResignCommitteeCold_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ResignCommitteeCold_committeeColdCred, _ResignCommitteeCold_anchor, _ResignCommitteeCold_originalBytes;\n\n\n\n\n\n\n\nconst ResignCommitteeCold_EMBEDDED_GROUP_SIZE = 2;\nclass ResignCommitteeCold {\n    constructor(committeeColdCred, anchor) {\n        _ResignCommitteeCold_committeeColdCred.set(this, void 0);\n        _ResignCommitteeCold_anchor.set(this, void 0);\n        _ResignCommitteeCold_originalBytes.set(this, undefined);\n        ResignCommitteeCold_classPrivateFieldSet(this, _ResignCommitteeCold_committeeColdCred, committeeColdCred, \"f\");\n        ResignCommitteeCold_classPrivateFieldSet(this, _ResignCommitteeCold_anchor, anchor, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_originalBytes, \"f\"))\n            return ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.ResignCommitteeCold);\n        writer.writeStartArray(ResignCommitteeCold_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_committeeColdCred, \"f\").type);\n        writer.writeByteString(ResignCommitteeCold_Buffer.from(ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_committeeColdCred, \"f\").hash, 'hex'));\n        if (ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_anchor, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_anchor, \"f\").toCbor()));\n        }\n        else {\n            writer.writeNull();\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.ResignCommitteeCold)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.ResignCommitteeCold}, but got ${kind}`);\n        const coldCredLength = reader.readStartArray();\n        if (coldCredLength !== ResignCommitteeCold_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${ResignCommitteeCold_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const coldType = Number(reader.readInt());\n        const coldHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        let anchor;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        reader.readEndArray();\n        const cert = new ResignCommitteeCold({ hash: coldHash, type: coldType }, anchor);\n        ResignCommitteeCold_classPrivateFieldSet(cert, _ResignCommitteeCold_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.ResignCommitteeCold,\n            anchor: ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_anchor, \"f\") ? ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_anchor, \"f\").toCore() : null,\n            coldCredential: ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_committeeColdCred, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new ResignCommitteeCold(cert.coldCredential, cert.anchor ? Anchor.fromCore(cert.anchor) : undefined);\n    }\n    coldCredential() {\n        return ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_committeeColdCred, \"f\");\n    }\n    anchor() {\n        return ResignCommitteeCold_classPrivateFieldGet(this, _ResignCommitteeCold_anchor, \"f\");\n    }\n}\n_ResignCommitteeCold_committeeColdCred = new WeakMap(), _ResignCommitteeCold_anchor = new WeakMap(), _ResignCommitteeCold_originalBytes = new WeakMap();\n//# sourceMappingURL=ResignCommitteeCold.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeDelegation.js\n/* provided dependency */ var StakeDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeDelegation_credential, _StakeDelegation_poolKeyHash, _StakeDelegation_originalBytes;\n\n\n\n\n\n\nconst StakeDelegation_EMBEDDED_GROUP_SIZE = 3;\nconst CREDENTIAL_SIZE = 2;\nclass StakeDelegation {\n    constructor(credential, poolKeyHash) {\n        _StakeDelegation_credential.set(this, void 0);\n        _StakeDelegation_poolKeyHash.set(this, void 0);\n        _StakeDelegation_originalBytes.set(this, undefined);\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_credential, credential, \"f\");\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_poolKeyHash, poolKeyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_originalBytes, \"f\"))\n            return StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_originalBytes, \"f\");\n        writer.writeStartArray(StakeDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.StakeDelegation);\n        writer.writeStartArray(CREDENTIAL_SIZE);\n        writer.writeInt(StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_credential, \"f\").type);\n        writer.writeByteString(StakeDelegation_Buffer.from(StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeByteString(StakeDelegation_Buffer.from(StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_poolKeyHash, \"f\"), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== StakeDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== CREDENTIAL_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${CREDENTIAL_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const poolKeyHash = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const cert = new StakeDelegation({ hash, type }, poolKeyHash);\n        StakeDelegation_classPrivateFieldSet(cert, _StakeDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeDelegation,\n            poolId: PoolId.fromKeyHash(StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_poolKeyHash, \"f\")),\n            stakeCredential: StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new StakeDelegation(cert.stakeCredential, PoolId.toKeyHash(cert.poolId));\n    }\n    stakeCredential() {\n        return StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_credential, \"f\");\n    }\n    setStakeCredential(credential) {\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_credential, credential, \"f\");\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_originalBytes, undefined, \"f\");\n    }\n    poolKeyHash() {\n        return StakeDelegation_classPrivateFieldGet(this, _StakeDelegation_poolKeyHash, \"f\");\n    }\n    setPoolKeyHash(poolKeyHash) {\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_poolKeyHash, poolKeyHash, \"f\");\n        StakeDelegation_classPrivateFieldSet(this, _StakeDelegation_originalBytes, undefined, \"f\");\n    }\n}\n_StakeDelegation_credential = new WeakMap(), _StakeDelegation_poolKeyHash = new WeakMap(), _StakeDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeDeregistration.js\n/* provided dependency */ var StakeDeregistration_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeDeregistration_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeDeregistration_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeDeregistration_credential, _StakeDeregistration_originalBytes;\n\n\n\n\n\nconst StakeDeregistration_EMBEDDED_GROUP_SIZE = 2;\nclass StakeDeregistration {\n    constructor(credential) {\n        _StakeDeregistration_credential.set(this, void 0);\n        _StakeDeregistration_originalBytes.set(this, undefined);\n        StakeDeregistration_classPrivateFieldSet(this, _StakeDeregistration_credential, credential, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_originalBytes, \"f\"))\n            return StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_originalBytes, \"f\");\n        writer.writeStartArray(StakeDeregistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.StakeDeregistration);\n        writer.writeStartArray(StakeDeregistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_credential, \"f\").type);\n        writer.writeByteString(StakeDeregistration_Buffer.from(StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_credential, \"f\").hash, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== StakeDeregistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeDeregistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeDeregistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeDeregistration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== StakeDeregistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeDeregistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        reader.readEndArray();\n        const cert = new StakeDeregistration({ hash, type });\n        StakeDeregistration_classPrivateFieldSet(cert, _StakeDeregistration_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeDeregistration,\n            stakeCredential: StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_credential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new StakeDeregistration(cert.stakeCredential);\n    }\n    stakeCredential() {\n        return StakeDeregistration_classPrivateFieldGet(this, _StakeDeregistration_credential, \"f\");\n    }\n    setStakeCredential(credential) {\n        StakeDeregistration_classPrivateFieldSet(this, _StakeDeregistration_credential, credential, \"f\");\n        StakeDeregistration_classPrivateFieldSet(this, _StakeDeregistration_originalBytes, undefined, \"f\");\n    }\n}\n_StakeDeregistration_credential = new WeakMap(), _StakeDeregistration_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeDeregistration.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeRegistration.js\n/* provided dependency */ var StakeRegistration_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeRegistration_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeRegistration_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeRegistration_credential, _StakeRegistration_originalBytes;\n\n\n\n\n\nconst StakeRegistration_EMBEDDED_GROUP_SIZE = 2;\nclass StakeRegistration {\n    constructor(credential) {\n        _StakeRegistration_credential.set(this, void 0);\n        _StakeRegistration_originalBytes.set(this, undefined);\n        StakeRegistration_classPrivateFieldSet(this, _StakeRegistration_credential, credential, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_originalBytes, \"f\"))\n            return StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_originalBytes, \"f\");\n        writer.writeStartArray(StakeRegistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(CertificateKind.StakeRegistration);\n        writer.writeStartArray(StakeRegistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_credential, \"f\").type);\n        writer.writeByteString(StakeRegistration_Buffer.from(StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_credential, \"f\").hash, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== StakeRegistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeRegistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeRegistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeRegistration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== StakeRegistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeRegistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        reader.readEndArray();\n        const cert = new StakeRegistration({ hash, type });\n        StakeRegistration_classPrivateFieldSet(cert, _StakeRegistration_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeRegistration,\n            stakeCredential: StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_credential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new StakeRegistration(cert.stakeCredential);\n    }\n    stakeCredential() {\n        return StakeRegistration_classPrivateFieldGet(this, _StakeRegistration_credential, \"f\");\n    }\n    setStakeCredential(credential) {\n        StakeRegistration_classPrivateFieldSet(this, _StakeRegistration_credential, credential, \"f\");\n        StakeRegistration_classPrivateFieldSet(this, _StakeRegistration_originalBytes, undefined, \"f\");\n    }\n}\n_StakeRegistration_credential = new WeakMap(), _StakeRegistration_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeRegistration.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeRegistrationDelegation.js\n/* provided dependency */ var StakeRegistrationDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeRegistrationDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeRegistrationDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeRegistrationDelegation_credential, _StakeRegistrationDelegation_poolKeyHash, _StakeRegistrationDelegation_deposit, _StakeRegistrationDelegation_originalBytes;\n\n\n\n\n\n\nconst StakeRegistrationDelegation_EMBEDDED_GROUP_SIZE = 2;\nclass StakeRegistrationDelegation {\n    constructor(stakeCredential, deposit, poolKeyHash) {\n        _StakeRegistrationDelegation_credential.set(this, void 0);\n        _StakeRegistrationDelegation_poolKeyHash.set(this, void 0);\n        _StakeRegistrationDelegation_deposit.set(this, void 0);\n        _StakeRegistrationDelegation_originalBytes.set(this, undefined);\n        StakeRegistrationDelegation_classPrivateFieldSet(this, _StakeRegistrationDelegation_credential, stakeCredential, \"f\");\n        StakeRegistrationDelegation_classPrivateFieldSet(this, _StakeRegistrationDelegation_deposit, deposit, \"f\");\n        StakeRegistrationDelegation_classPrivateFieldSet(this, _StakeRegistrationDelegation_poolKeyHash, poolKeyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_originalBytes, \"f\"))\n            return StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_originalBytes, \"f\");\n        writer.writeStartArray(4);\n        writer.writeInt(CertificateKind.StakeRegistrationDelegation);\n        writer.writeStartArray(StakeRegistrationDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_credential, \"f\").type);\n        writer.writeByteString(StakeRegistrationDelegation_Buffer.from(StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeByteString(StakeRegistrationDelegation_Buffer.from(StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_poolKeyHash, \"f\"), 'hex'));\n        writer.writeInt(StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 4)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 4 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeRegistrationDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeRegistrationDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== StakeRegistrationDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeRegistrationDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const poolKeyHash = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new StakeRegistrationDelegation({ hash, type }, deposit, poolKeyHash);\n        StakeRegistrationDelegation_classPrivateFieldSet(cert, _StakeRegistrationDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeRegistrationDelegation,\n            deposit: StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_deposit, \"f\"),\n            poolId: PoolId.fromKeyHash(StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_poolKeyHash, \"f\")),\n            stakeCredential: StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(deleg) {\n        return new StakeRegistrationDelegation(deleg.stakeCredential, deleg.deposit, PoolId.toKeyHash(deleg.poolId));\n    }\n    stakeCredential() {\n        return StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_credential, \"f\");\n    }\n    deposit() {\n        return StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_deposit, \"f\");\n    }\n    poolKeyHash() {\n        return StakeRegistrationDelegation_classPrivateFieldGet(this, _StakeRegistrationDelegation_poolKeyHash, \"f\");\n    }\n}\n_StakeRegistrationDelegation_credential = new WeakMap(), _StakeRegistrationDelegation_poolKeyHash = new WeakMap(), _StakeRegistrationDelegation_deposit = new WeakMap(), _StakeRegistrationDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeRegistrationDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/DRep/DRepKind.js\nvar DRepKind;\n(function (DRepKind) {\n    DRepKind[DRepKind[\"KeyHash\"] = 0] = \"KeyHash\";\n    DRepKind[DRepKind[\"ScriptHash\"] = 1] = \"ScriptHash\";\n    DRepKind[DRepKind[\"Abstain\"] = 2] = \"Abstain\";\n    DRepKind[DRepKind[\"NoConfidence\"] = 3] = \"NoConfidence\";\n})(DRepKind || (DRepKind = {}));\n//# sourceMappingURL=DRepKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/DRep/DRep.js\n/* provided dependency */ var DRep_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar DRep_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar DRep_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _DRep_credential, _DRep_kind, _DRep_originalBytes;\n\n\n\n\n\n\nclass DRep {\n    constructor(kind, credential) {\n        _DRep_credential.set(this, void 0);\n        _DRep_kind.set(this, void 0);\n        _DRep_originalBytes.set(this, undefined);\n        DRep_classPrivateFieldSet(this, _DRep_credential, credential, \"f\");\n        DRep_classPrivateFieldSet(this, _DRep_kind, kind, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (DRep_classPrivateFieldGet(this, _DRep_originalBytes, \"f\"))\n            return DRep_classPrivateFieldGet(this, _DRep_originalBytes, \"f\");\n        if (DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") === DRepKind.KeyHash || DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") === DRepKind.ScriptHash) {\n            writer.writeStartArray(2);\n            writer.writeInt(DRep_classPrivateFieldGet(this, _DRep_credential, \"f\").type);\n            writer.writeByteString(DRep_Buffer.from(DRep_classPrivateFieldGet(this, _DRep_credential, \"f\").hash, 'hex'));\n            return writer.encodeAsHex();\n        }\n        writer.writeStartArray(1);\n        writer.writeInt(DRep_classPrivateFieldGet(this, _DRep_kind, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const kind = Number(reader.readInt());\n        if (kind === DRepKind.KeyHash || kind === DRepKind.ScriptHash) {\n            const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n            if (kind === DRepKind.KeyHash) {\n                return DRep.newKeyHash(hash);\n            }\n            return DRep.newScriptHash(hash);\n        }\n        reader.readEndArray();\n        if (kind === DRepKind.Abstain)\n            return DRep.newAlwaysAbstain();\n        return DRep.newAlwaysNoConfidence();\n    }\n    toCore() {\n        if (DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") === DRepKind.KeyHash || DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") === DRepKind.ScriptHash)\n            return DRep_classPrivateFieldGet(this, _DRep_credential, \"f\");\n        if (DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") === DRepKind.Abstain)\n            return {\n                __typename: 'AlwaysAbstain'\n            };\n        return {\n            __typename: 'AlwaysNoConfidence'\n        };\n    }\n    static fromCore(deleg) {\n        if (isDRepAlwaysAbstain(deleg))\n            return DRep.newAlwaysAbstain();\n        if (isDRepAlwaysNoConfidence(deleg))\n            return DRep.newAlwaysNoConfidence();\n        if (deleg.type === CredentialType.KeyHash)\n            return DRep.newKeyHash(deleg.hash);\n        return DRep.newScriptHash(deleg.hash);\n    }\n    static newKeyHash(keyHash) {\n        return new DRep(DRepKind.KeyHash, {\n            hash: keyHash,\n            type: CredentialType.KeyHash\n        });\n    }\n    static newScriptHash(scriptHash) {\n        return new DRep(DRepKind.ScriptHash, {\n            hash: scriptHash,\n            type: CredentialType.ScriptHash\n        });\n    }\n    static newAlwaysAbstain() {\n        return new DRep(DRepKind.Abstain, undefined);\n    }\n    static newAlwaysNoConfidence() {\n        return new DRep(DRepKind.NoConfidence, undefined);\n    }\n    kind() {\n        return DRep_classPrivateFieldGet(this, _DRep_kind, \"f\");\n    }\n    toKeyHash() {\n        if (DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") !== DRepKind.KeyHash)\n            return undefined;\n        return DRep_classPrivateFieldGet(this, _DRep_credential, \"f\")?.hash;\n    }\n    toScriptHash() {\n        if (DRep_classPrivateFieldGet(this, _DRep_kind, \"f\") !== DRepKind.ScriptHash)\n            return undefined;\n        return DRep_classPrivateFieldGet(this, _DRep_credential, \"f\")?.hash;\n    }\n}\n_DRep_credential = new WeakMap(), _DRep_kind = new WeakMap(), _DRep_originalBytes = new WeakMap();\n//# sourceMappingURL=DRep.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeVoteDelegation.js\n/* provided dependency */ var StakeVoteDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeVoteDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeVoteDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeVoteDelegation_credential, _StakeVoteDelegation_poolKeyHash, _StakeVoteDelegation_dRep, _StakeVoteDelegation_originalBytes;\n\n\n\n\n\n\n\n\nconst StakeVoteDelegation_EMBEDDED_GROUP_SIZE = 2;\nclass StakeVoteDelegation {\n    constructor(stakeCredential, drep, poolKeyHash) {\n        _StakeVoteDelegation_credential.set(this, void 0);\n        _StakeVoteDelegation_poolKeyHash.set(this, void 0);\n        _StakeVoteDelegation_dRep.set(this, void 0);\n        _StakeVoteDelegation_originalBytes.set(this, undefined);\n        StakeVoteDelegation_classPrivateFieldSet(this, _StakeVoteDelegation_credential, stakeCredential, \"f\");\n        StakeVoteDelegation_classPrivateFieldSet(this, _StakeVoteDelegation_dRep, drep, \"f\");\n        StakeVoteDelegation_classPrivateFieldSet(this, _StakeVoteDelegation_poolKeyHash, poolKeyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_originalBytes, \"f\"))\n            return StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_originalBytes, \"f\");\n        writer.writeStartArray(4);\n        writer.writeInt(CertificateKind.StakeVoteDelegation);\n        writer.writeStartArray(StakeVoteDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_credential, \"f\").type);\n        writer.writeByteString(StakeVoteDelegation_Buffer.from(StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeByteString(StakeVoteDelegation_Buffer.from(StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_poolKeyHash, \"f\"), 'hex'));\n        writer.writeEncodedValue(hexToBytes(StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_dRep, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 4)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 4 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeVoteDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeVoteDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== StakeVoteDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeVoteDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const poolKeyHash = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const dRep = DRep.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const cert = new StakeVoteDelegation({ hash, type }, dRep, poolKeyHash);\n        StakeVoteDelegation_classPrivateFieldSet(cert, _StakeVoteDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeVoteDelegation,\n            dRep: StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_dRep, \"f\").toCore(),\n            poolId: PoolId.fromKeyHash(StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_poolKeyHash, \"f\")),\n            stakeCredential: StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(deleg) {\n        return new StakeVoteDelegation(deleg.stakeCredential, DRep.fromCore(deleg.dRep), PoolId.toKeyHash(deleg.poolId));\n    }\n    stakeCredential() {\n        return StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_credential, \"f\");\n    }\n    drep() {\n        return StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_dRep, \"f\");\n    }\n    poolKeyHash() {\n        return StakeVoteDelegation_classPrivateFieldGet(this, _StakeVoteDelegation_poolKeyHash, \"f\");\n    }\n}\n_StakeVoteDelegation_credential = new WeakMap(), _StakeVoteDelegation_poolKeyHash = new WeakMap(), _StakeVoteDelegation_dRep = new WeakMap(), _StakeVoteDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeVoteDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/StakeVoteRegistrationDelegation.js\n/* provided dependency */ var StakeVoteRegistrationDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar StakeVoteRegistrationDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar StakeVoteRegistrationDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _StakeVoteRegistrationDelegation_credential, _StakeVoteRegistrationDelegation_dRep, _StakeVoteRegistrationDelegation_poolKeyHash, _StakeVoteRegistrationDelegation_deposit, _StakeVoteRegistrationDelegation_originalBytes;\n\n\n\n\n\n\n\n\nconst StakeVoteRegistrationDelegation_EMBEDDED_GROUP_SIZE = 2;\nclass StakeVoteRegistrationDelegation {\n    constructor(stakeCredential, deposit, dRep, poolKeyHash) {\n        _StakeVoteRegistrationDelegation_credential.set(this, void 0);\n        _StakeVoteRegistrationDelegation_dRep.set(this, void 0);\n        _StakeVoteRegistrationDelegation_poolKeyHash.set(this, void 0);\n        _StakeVoteRegistrationDelegation_deposit.set(this, void 0);\n        _StakeVoteRegistrationDelegation_originalBytes.set(this, undefined);\n        StakeVoteRegistrationDelegation_classPrivateFieldSet(this, _StakeVoteRegistrationDelegation_credential, stakeCredential, \"f\");\n        StakeVoteRegistrationDelegation_classPrivateFieldSet(this, _StakeVoteRegistrationDelegation_deposit, deposit, \"f\");\n        StakeVoteRegistrationDelegation_classPrivateFieldSet(this, _StakeVoteRegistrationDelegation_dRep, dRep, \"f\");\n        StakeVoteRegistrationDelegation_classPrivateFieldSet(this, _StakeVoteRegistrationDelegation_poolKeyHash, poolKeyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_originalBytes, \"f\"))\n            return StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_originalBytes, \"f\");\n        writer.writeStartArray(5);\n        writer.writeInt(CertificateKind.StakeVoteRegistrationDelegation);\n        writer.writeStartArray(StakeVoteRegistrationDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_credential, \"f\").type);\n        writer.writeByteString(StakeVoteRegistrationDelegation_Buffer.from(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeByteString(StakeVoteRegistrationDelegation_Buffer.from(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_poolKeyHash, \"f\"), 'hex'));\n        writer.writeEncodedValue(hexToBytes(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_dRep, \"f\").toCbor()));\n        writer.writeInt(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 5)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 5 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.StakeVoteRegistrationDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.StakeVoteRegistrationDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== StakeVoteRegistrationDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${StakeVoteRegistrationDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const poolKeyHash = Ed25519KeyHashHex(primitives_HexBlob.fromBytes(reader.readByteString()));\n        const dRep = DRep.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new StakeVoteRegistrationDelegation({ hash, type }, deposit, dRep, poolKeyHash);\n        StakeVoteRegistrationDelegation_classPrivateFieldSet(cert, _StakeVoteRegistrationDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.StakeVoteRegistrationDelegation,\n            dRep: StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_dRep, \"f\").toCore(),\n            deposit: StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_deposit, \"f\"),\n            poolId: PoolId.fromKeyHash(StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_poolKeyHash, \"f\")),\n            stakeCredential: StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(deleg) {\n        return new StakeVoteRegistrationDelegation(deleg.stakeCredential, deleg.deposit, DRep.fromCore(deleg.dRep), PoolId.toKeyHash(deleg.poolId));\n    }\n    stakeCredential() {\n        return StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_credential, \"f\");\n    }\n    deposit() {\n        return StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_deposit, \"f\");\n    }\n    dRep() {\n        return StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_dRep, \"f\");\n    }\n    poolKeyHash() {\n        return StakeVoteRegistrationDelegation_classPrivateFieldGet(this, _StakeVoteRegistrationDelegation_poolKeyHash, \"f\");\n    }\n}\n_StakeVoteRegistrationDelegation_credential = new WeakMap(), _StakeVoteRegistrationDelegation_dRep = new WeakMap(), _StakeVoteRegistrationDelegation_poolKeyHash = new WeakMap(), _StakeVoteRegistrationDelegation_deposit = new WeakMap(), _StakeVoteRegistrationDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=StakeVoteRegistrationDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/UnregisterDelegateRepresentative.js\n/* provided dependency */ var UnregisterDelegateRepresentative_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar UnregisterDelegateRepresentative_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar UnregisterDelegateRepresentative_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _UnregisterDelegateRepresentative_drepCredential, _UnregisterDelegateRepresentative_deposit, _UnregisterDelegateRepresentative_originalBytes;\n\n\n\n\n\nconst UnregisterDelegateRepresentative_EMBEDDED_GROUP_SIZE = 2;\nclass UnregisterDelegateRepresentative {\n    constructor(drepCredential, deposit) {\n        _UnregisterDelegateRepresentative_drepCredential.set(this, void 0);\n        _UnregisterDelegateRepresentative_deposit.set(this, void 0);\n        _UnregisterDelegateRepresentative_originalBytes.set(this, undefined);\n        UnregisterDelegateRepresentative_classPrivateFieldSet(this, _UnregisterDelegateRepresentative_drepCredential, drepCredential, \"f\");\n        UnregisterDelegateRepresentative_classPrivateFieldSet(this, _UnregisterDelegateRepresentative_deposit, deposit, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_originalBytes, \"f\"))\n            return UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.DrepUnregistration);\n        writer.writeStartArray(UnregisterDelegateRepresentative_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_drepCredential, \"f\").type);\n        writer.writeByteString(UnregisterDelegateRepresentative_Buffer.from(UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_drepCredential, \"f\").hash, 'hex'));\n        writer.writeInt(UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.DrepUnregistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.DrepUnregistration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== UnregisterDelegateRepresentative_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UnregisterDelegateRepresentative_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new UnregisterDelegateRepresentative({ hash, type }, deposit);\n        UnregisterDelegateRepresentative_classPrivateFieldSet(cert, _UnregisterDelegateRepresentative_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.UnregisterDelegateRepresentative,\n            dRepCredential: UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_drepCredential, \"f\"),\n            deposit: UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_deposit, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new UnregisterDelegateRepresentative(cert.dRepCredential, cert.deposit);\n    }\n    credential() {\n        return UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_drepCredential, \"f\");\n    }\n    deposit() {\n        return UnregisterDelegateRepresentative_classPrivateFieldGet(this, _UnregisterDelegateRepresentative_deposit, \"f\");\n    }\n}\n_UnregisterDelegateRepresentative_drepCredential = new WeakMap(), _UnregisterDelegateRepresentative_deposit = new WeakMap(), _UnregisterDelegateRepresentative_originalBytes = new WeakMap();\n//# sourceMappingURL=UnregisterDelegateRepresentative.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/Unregistration.js\n/* provided dependency */ var Unregistration_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Unregistration_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Unregistration_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Unregistration_credential, _Unregistration_deposit, _Unregistration_originalBytes;\n\n\n\n\n\nconst Unregistration_EMBEDDED_GROUP_SIZE = 2;\nclass Unregistration {\n    constructor(credential, deposit) {\n        _Unregistration_credential.set(this, void 0);\n        _Unregistration_deposit.set(this, void 0);\n        _Unregistration_originalBytes.set(this, undefined);\n        Unregistration_classPrivateFieldSet(this, _Unregistration_credential, credential, \"f\");\n        Unregistration_classPrivateFieldSet(this, _Unregistration_deposit, deposit, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Unregistration_classPrivateFieldGet(this, _Unregistration_originalBytes, \"f\"))\n            return Unregistration_classPrivateFieldGet(this, _Unregistration_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.Unregistration);\n        writer.writeStartArray(Unregistration_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(Unregistration_classPrivateFieldGet(this, _Unregistration_credential, \"f\").type);\n        writer.writeByteString(Unregistration_Buffer.from(Unregistration_classPrivateFieldGet(this, _Unregistration_credential, \"f\").hash, 'hex'));\n        writer.writeInt(Unregistration_classPrivateFieldGet(this, _Unregistration_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.Unregistration)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.Unregistration}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== Unregistration_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${Unregistration_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new Unregistration({ hash, type }, deposit);\n        Unregistration_classPrivateFieldSet(cert, _Unregistration_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.Unregistration,\n            deposit: Unregistration_classPrivateFieldGet(this, _Unregistration_deposit, \"f\"),\n            stakeCredential: Unregistration_classPrivateFieldGet(this, _Unregistration_credential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new Unregistration(cert.stakeCredential, cert.deposit);\n    }\n    stakeCredential() {\n        return Unregistration_classPrivateFieldGet(this, _Unregistration_credential, \"f\");\n    }\n    setStakeCredential(credential) {\n        Unregistration_classPrivateFieldSet(this, _Unregistration_credential, credential, \"f\");\n        Unregistration_classPrivateFieldSet(this, _Unregistration_originalBytes, undefined, \"f\");\n    }\n    deposit() {\n        return Unregistration_classPrivateFieldGet(this, _Unregistration_deposit, \"f\");\n    }\n    setDeposit(deposit) {\n        Unregistration_classPrivateFieldSet(this, _Unregistration_deposit, deposit, \"f\");\n        Unregistration_classPrivateFieldSet(this, _Unregistration_originalBytes, undefined, \"f\");\n    }\n}\n_Unregistration_credential = new WeakMap(), _Unregistration_deposit = new WeakMap(), _Unregistration_originalBytes = new WeakMap();\n//# sourceMappingURL=Unregistration.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/UpdateDelegateRepresentative.js\n/* provided dependency */ var UpdateDelegateRepresentative_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar UpdateDelegateRepresentative_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar UpdateDelegateRepresentative_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _UpdateDelegateRepresentative_drepCredential, _UpdateDelegateRepresentative_anchor, _UpdateDelegateRepresentative_originalBytes;\n\n\n\n\n\n\n\nconst UpdateDelegateRepresentative_EMBEDDED_GROUP_SIZE = 2;\nclass UpdateDelegateRepresentative {\n    constructor(drepCredential, anchor) {\n        _UpdateDelegateRepresentative_drepCredential.set(this, void 0);\n        _UpdateDelegateRepresentative_anchor.set(this, void 0);\n        _UpdateDelegateRepresentative_originalBytes.set(this, undefined);\n        UpdateDelegateRepresentative_classPrivateFieldSet(this, _UpdateDelegateRepresentative_drepCredential, drepCredential, \"f\");\n        UpdateDelegateRepresentative_classPrivateFieldSet(this, _UpdateDelegateRepresentative_anchor, anchor, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_originalBytes, \"f\"))\n            return UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.UpdateDrep);\n        writer.writeStartArray(UpdateDelegateRepresentative_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_drepCredential, \"f\").type);\n        writer.writeByteString(UpdateDelegateRepresentative_Buffer.from(UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_drepCredential, \"f\").hash, 'hex'));\n        if (UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_anchor, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_anchor, \"f\").toCbor()));\n        }\n        else {\n            writer.writeNull();\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UpdateDelegateRepresentative_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.UpdateDrep)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.UpdateDrep}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== UpdateDelegateRepresentative_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UpdateDelegateRepresentative_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        let anchor;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        reader.readEndArray();\n        const cert = new UpdateDelegateRepresentative({ hash, type }, anchor);\n        UpdateDelegateRepresentative_classPrivateFieldSet(cert, _UpdateDelegateRepresentative_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.UpdateDelegateRepresentative,\n            anchor: UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_anchor, \"f\") ? UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_anchor, \"f\").toCore() : null,\n            dRepCredential: UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_drepCredential, \"f\")\n        };\n    }\n    static fromCore(cert) {\n        return new UpdateDelegateRepresentative(cert.dRepCredential, cert.anchor ? Anchor.fromCore(cert.anchor) : undefined);\n    }\n    credential() {\n        return UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_drepCredential, \"f\");\n    }\n    anchor() {\n        return UpdateDelegateRepresentative_classPrivateFieldGet(this, _UpdateDelegateRepresentative_anchor, \"f\");\n    }\n}\n_UpdateDelegateRepresentative_drepCredential = new WeakMap(), _UpdateDelegateRepresentative_anchor = new WeakMap(), _UpdateDelegateRepresentative_originalBytes = new WeakMap();\n//# sourceMappingURL=UpdateDelegateRepresentative.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/VoteDelegation.js\n/* provided dependency */ var VoteDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar VoteDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar VoteDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _VoteDelegation_credential, _VoteDelegation_dRep, _VoteDelegation_originalBytes;\n\n\n\n\n\n\n\nconst VoteDelegation_EMBEDDED_GROUP_SIZE = 2;\nclass VoteDelegation {\n    constructor(stakeCredential, dRep) {\n        _VoteDelegation_credential.set(this, void 0);\n        _VoteDelegation_dRep.set(this, void 0);\n        _VoteDelegation_originalBytes.set(this, undefined);\n        VoteDelegation_classPrivateFieldSet(this, _VoteDelegation_credential, stakeCredential, \"f\");\n        VoteDelegation_classPrivateFieldSet(this, _VoteDelegation_dRep, dRep, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_originalBytes, \"f\"))\n            return VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_originalBytes, \"f\");\n        writer.writeStartArray(3);\n        writer.writeInt(CertificateKind.VoteDelegation);\n        writer.writeStartArray(VoteDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_credential, \"f\").type);\n        writer.writeByteString(VoteDelegation_Buffer.from(VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeEncodedValue(hexToBytes(VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_dRep, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 3)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 3 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.VoteDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.VoteDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== VoteDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${VoteDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const dRep = DRep.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const cert = new VoteDelegation({ hash, type }, dRep);\n        VoteDelegation_classPrivateFieldSet(cert, _VoteDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.VoteDelegation,\n            dRep: VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_dRep, \"f\").toCore(),\n            stakeCredential: VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(deleg) {\n        return new VoteDelegation(deleg.stakeCredential, DRep.fromCore(deleg.dRep));\n    }\n    stakeCredential() {\n        return VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_credential, \"f\");\n    }\n    dRep() {\n        return VoteDelegation_classPrivateFieldGet(this, _VoteDelegation_dRep, \"f\");\n    }\n}\n_VoteDelegation_credential = new WeakMap(), _VoteDelegation_dRep = new WeakMap(), _VoteDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=VoteDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/VoteRegistrationDelegation.js\n/* provided dependency */ var VoteRegistrationDelegation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar VoteRegistrationDelegation_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar VoteRegistrationDelegation_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _VoteRegistrationDelegation_credential, _VoteRegistrationDelegation_dRep, _VoteRegistrationDelegation_deposit, _VoteRegistrationDelegation_originalBytes;\n\n\n\n\n\n\n\nconst VoteRegistrationDelegation_EMBEDDED_GROUP_SIZE = 2;\nclass VoteRegistrationDelegation {\n    constructor(stakeCredential, deposit, dRep) {\n        _VoteRegistrationDelegation_credential.set(this, void 0);\n        _VoteRegistrationDelegation_dRep.set(this, void 0);\n        _VoteRegistrationDelegation_deposit.set(this, void 0);\n        _VoteRegistrationDelegation_originalBytes.set(this, undefined);\n        VoteRegistrationDelegation_classPrivateFieldSet(this, _VoteRegistrationDelegation_credential, stakeCredential, \"f\");\n        VoteRegistrationDelegation_classPrivateFieldSet(this, _VoteRegistrationDelegation_deposit, deposit, \"f\");\n        VoteRegistrationDelegation_classPrivateFieldSet(this, _VoteRegistrationDelegation_dRep, dRep, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_originalBytes, \"f\"))\n            return VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_originalBytes, \"f\");\n        writer.writeStartArray(4);\n        writer.writeInt(CertificateKind.VoteRegistrationDelegation);\n        writer.writeStartArray(VoteRegistrationDelegation_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_credential, \"f\").type);\n        writer.writeByteString(VoteRegistrationDelegation_Buffer.from(VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_credential, \"f\").hash, 'hex'));\n        writer.writeEncodedValue(hexToBytes(VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_dRep, \"f\").toCbor()));\n        writer.writeInt(VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_deposit, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== 4)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of 4 elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        if (kind !== CertificateKind.VoteRegistrationDelegation)\n            throw new errors_InvalidArgumentError('cbor', `Expected certificate kind ${CertificateKind.VoteRegistrationDelegation}, but got ${kind}`);\n        const credLength = reader.readStartArray();\n        if (credLength !== VoteRegistrationDelegation_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${VoteRegistrationDelegation_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readInt());\n        const hash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n        reader.readEndArray();\n        const dRep = DRep.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const deposit = reader.readInt();\n        reader.readEndArray();\n        const cert = new VoteRegistrationDelegation({ hash, type }, deposit, dRep);\n        VoteRegistrationDelegation_classPrivateFieldSet(cert, _VoteRegistrationDelegation_originalBytes, cbor, \"f\");\n        return cert;\n    }\n    toCore() {\n        return {\n            __typename: CertificateType.VoteRegistrationDelegation,\n            dRep: VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_dRep, \"f\").toCore(),\n            deposit: VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_deposit, \"f\"),\n            stakeCredential: VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_credential, \"f\")\n        };\n    }\n    static fromCore(deleg) {\n        return new VoteRegistrationDelegation(deleg.stakeCredential, deleg.deposit, DRep.fromCore(deleg.dRep));\n    }\n    stakeCredential() {\n        return VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_credential, \"f\");\n    }\n    deposit() {\n        return VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_deposit, \"f\");\n    }\n    dRep() {\n        return VoteRegistrationDelegation_classPrivateFieldGet(this, _VoteRegistrationDelegation_dRep, \"f\");\n    }\n}\n_VoteRegistrationDelegation_credential = new WeakMap(), _VoteRegistrationDelegation_dRep = new WeakMap(), _VoteRegistrationDelegation_deposit = new WeakMap(), _VoteRegistrationDelegation_originalBytes = new WeakMap();\n//# sourceMappingURL=VoteRegistrationDelegation.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/Certificate.js\nvar Certificate_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar Certificate_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Certificate_kind, _Certificate_genesisKeyDelegation, _Certificate_moveInstantaneousReward, _Certificate_poolRegistration, _Certificate_poolRetirement, _Certificate_stakeDelegation, _Certificate_stakeDeregistration, _Certificate_stakeRegistration, _Certificate_registration, _Certificate_unregistration, _Certificate_voteDelegation, _Certificate_stakeVoteDelegation, _Certificate_stakeRegistrationDelegation, _Certificate_voteRegistrationDelegation, _Certificate_stakeVoteRegistrationDelegation, _Certificate_authCommitteeHot, _Certificate_resignCommitteeCold, _Certificate_drepRegistration, _Certificate_drepUnregistration, _Certificate_updateDrep, _Certificate_originalBytes;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass Certificate {\n    constructor() {\n        _Certificate_kind.set(this, void 0);\n        _Certificate_genesisKeyDelegation.set(this, void 0);\n        _Certificate_moveInstantaneousReward.set(this, void 0);\n        _Certificate_poolRegistration.set(this, void 0);\n        _Certificate_poolRetirement.set(this, void 0);\n        _Certificate_stakeDelegation.set(this, void 0);\n        _Certificate_stakeDeregistration.set(this, void 0);\n        _Certificate_stakeRegistration.set(this, void 0);\n        _Certificate_registration.set(this, void 0);\n        _Certificate_unregistration.set(this, void 0);\n        _Certificate_voteDelegation.set(this, void 0);\n        _Certificate_stakeVoteDelegation.set(this, void 0);\n        _Certificate_stakeRegistrationDelegation.set(this, void 0);\n        _Certificate_voteRegistrationDelegation.set(this, void 0);\n        _Certificate_stakeVoteRegistrationDelegation.set(this, void 0);\n        _Certificate_authCommitteeHot.set(this, void 0);\n        _Certificate_resignCommitteeCold.set(this, void 0);\n        _Certificate_drepRegistration.set(this, void 0);\n        _Certificate_drepUnregistration.set(this, void 0);\n        _Certificate_updateDrep.set(this, void 0);\n        _Certificate_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (Certificate_classPrivateFieldGet(this, _Certificate_originalBytes, \"f\"))\n            return Certificate_classPrivateFieldGet(this, _Certificate_originalBytes, \"f\");\n        let cbor;\n        switch (Certificate_classPrivateFieldGet(this, _Certificate_kind, \"f\")) {\n            case CertificateKind.StakeRegistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistration, \"f\").toCbor();\n                break;\n            case CertificateKind.StakeDeregistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeDeregistration, \"f\").toCbor();\n                break;\n            case CertificateKind.StakeDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.PoolRetirement:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_poolRetirement, \"f\").toCbor();\n                break;\n            case CertificateKind.PoolRegistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_poolRegistration, \"f\").toCbor();\n                break;\n            case CertificateKind.MoveInstantaneousRewards:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_moveInstantaneousReward, \"f\").toCbor();\n                break;\n            case CertificateKind.GenesisKeyDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_genesisKeyDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.Registration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_registration, \"f\").toCbor();\n                break;\n            case CertificateKind.Unregistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_unregistration, \"f\").toCbor();\n                break;\n            case CertificateKind.VoteDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_voteDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.StakeVoteDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.StakeRegistrationDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistrationDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.VoteRegistrationDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_voteRegistrationDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.StakeVoteRegistrationDelegation:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteRegistrationDelegation, \"f\").toCbor();\n                break;\n            case CertificateKind.AuthCommitteeHot:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_authCommitteeHot, \"f\").toCbor();\n                break;\n            case CertificateKind.ResignCommitteeCold:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_resignCommitteeCold, \"f\").toCbor();\n                break;\n            case CertificateKind.DrepRegistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_drepRegistration, \"f\").toCbor();\n                break;\n            case CertificateKind.DrepUnregistration:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_drepUnregistration, \"f\").toCbor();\n                break;\n            case CertificateKind.UpdateDrep:\n                cbor = Certificate_classPrivateFieldGet(this, _Certificate_updateDrep, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${Certificate_classPrivateFieldGet(this, _Certificate_kind, \"f\")}`);\n        }\n        return cbor;\n    }\n    static fromCbor(cbor) {\n        let certificate;\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const kind = Number(reader.readInt());\n        switch (kind) {\n            case CertificateKind.StakeRegistration:\n                certificate = Certificate.newStakeRegistration(StakeRegistration.fromCbor(cbor));\n                break;\n            case CertificateKind.StakeDeregistration:\n                certificate = Certificate.newStakeDeregistration(StakeDeregistration.fromCbor(cbor));\n                break;\n            case CertificateKind.StakeDelegation:\n                certificate = Certificate.newStakeDelegation(StakeDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.PoolRetirement:\n                certificate = Certificate.newPoolRetirement(PoolRetirement.fromCbor(cbor));\n                break;\n            case CertificateKind.PoolRegistration:\n                certificate = Certificate.newPoolRegistration(PoolRegistration.fromCbor(cbor));\n                break;\n            case CertificateKind.MoveInstantaneousRewards:\n                certificate = Certificate.newMoveInstantaneousRewardsCert(MoveInstantaneousReward.fromCbor(cbor));\n                break;\n            case CertificateKind.GenesisKeyDelegation:\n                certificate = Certificate.newGenesisKeyDelegation(GenesisKeyDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.Registration:\n                certificate = Certificate.newRegistrationCert(Registration.fromCbor(cbor));\n                break;\n            case CertificateKind.Unregistration:\n                certificate = Certificate.newUnregistrationCert(Unregistration.fromCbor(cbor));\n                break;\n            case CertificateKind.VoteDelegation:\n                certificate = Certificate.newVoteDelegationCert(VoteDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.StakeVoteDelegation:\n                certificate = Certificate.newStakeVoteDelegationCert(StakeVoteDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.StakeRegistrationDelegation:\n                certificate = Certificate.newStakeRegistrationDelegationCert(StakeRegistrationDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.VoteRegistrationDelegation:\n                certificate = Certificate.newVoteRegistrationDelegationCert(VoteRegistrationDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.StakeVoteRegistrationDelegation:\n                certificate = Certificate.newStakeVoteRegistrationDelegationCert(StakeVoteRegistrationDelegation.fromCbor(cbor));\n                break;\n            case CertificateKind.AuthCommitteeHot:\n                certificate = Certificate.newAuthCommitteeHotCert(AuthCommitteeHot.fromCbor(cbor));\n                break;\n            case CertificateKind.ResignCommitteeCold:\n                certificate = Certificate.newResignCommitteeColdCert(ResignCommitteeCold.fromCbor(cbor));\n                break;\n            case CertificateKind.DrepRegistration:\n                certificate = Certificate.newRegisterDelegateRepresentativeCert(RegisterDelegateRepresentative.fromCbor(cbor));\n                break;\n            case CertificateKind.DrepUnregistration:\n                certificate = Certificate.newUnregisterDelegateRepresentativeCert(UnregisterDelegateRepresentative.fromCbor(cbor));\n                break;\n            case CertificateKind.UpdateDrep:\n                certificate = Certificate.newUpdateDelegateRepresentativeCert(UpdateDelegateRepresentative.fromCbor(cbor));\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${kind}`);\n        }\n        Certificate_classPrivateFieldSet(certificate, _Certificate_originalBytes, cbor, \"f\");\n        return certificate;\n    }\n    toCore() {\n        let core;\n        switch (Certificate_classPrivateFieldGet(this, _Certificate_kind, \"f\")) {\n            case CertificateKind.StakeRegistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistration, \"f\").toCore();\n                break;\n            case CertificateKind.StakeDeregistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeDeregistration, \"f\").toCore();\n                break;\n            case CertificateKind.StakeDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.PoolRetirement:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_poolRetirement, \"f\").toCore();\n                break;\n            case CertificateKind.PoolRegistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_poolRegistration, \"f\").toCore();\n                break;\n            case CertificateKind.MoveInstantaneousRewards:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_moveInstantaneousReward, \"f\").toCore();\n                break;\n            case CertificateKind.GenesisKeyDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_genesisKeyDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.Registration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_registration, \"f\").toCore();\n                break;\n            case CertificateKind.Unregistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_unregistration, \"f\").toCore();\n                break;\n            case CertificateKind.VoteDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_voteDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.StakeVoteDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.StakeRegistrationDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistrationDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.VoteRegistrationDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_voteRegistrationDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.StakeVoteRegistrationDelegation:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteRegistrationDelegation, \"f\").toCore();\n                break;\n            case CertificateKind.AuthCommitteeHot:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_authCommitteeHot, \"f\").toCore();\n                break;\n            case CertificateKind.ResignCommitteeCold:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_resignCommitteeCold, \"f\").toCore();\n                break;\n            case CertificateKind.DrepRegistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_drepRegistration, \"f\").toCore();\n                break;\n            case CertificateKind.DrepUnregistration:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_drepUnregistration, \"f\").toCore();\n                break;\n            case CertificateKind.UpdateDrep:\n                core = Certificate_classPrivateFieldGet(this, _Certificate_updateDrep, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${Certificate_classPrivateFieldGet(this, _Certificate_kind, \"f\")}`);\n        }\n        return core;\n    }\n    static fromCore(certificate) {\n        let cert;\n        switch (certificate.__typename) {\n            case CertificateType.StakeRegistration:\n                cert = Certificate.newStakeRegistration(StakeRegistration.fromCore(certificate));\n                break;\n            case CertificateType.StakeDeregistration:\n                cert = Certificate.newStakeDeregistration(StakeDeregistration.fromCore(certificate));\n                break;\n            case CertificateType.StakeDelegation:\n                cert = Certificate.newStakeDelegation(StakeDelegation.fromCore(certificate));\n                break;\n            case CertificateType.PoolRetirement:\n                cert = Certificate.newPoolRetirement(PoolRetirement.fromCore(certificate));\n                break;\n            case CertificateType.PoolRegistration:\n                cert = Certificate.newPoolRegistration(PoolRegistration.fromCore(certificate));\n                break;\n            case CertificateType.MIR:\n                cert = Certificate.newMoveInstantaneousRewardsCert(MoveInstantaneousReward.fromCore(certificate));\n                break;\n            case CertificateType.GenesisKeyDelegation:\n                cert = Certificate.newGenesisKeyDelegation(GenesisKeyDelegation.fromCore(certificate));\n                break;\n            case CertificateType.Registration:\n                cert = Certificate.newRegistrationCert(Registration.fromCore(certificate));\n                break;\n            case CertificateType.Unregistration:\n                cert = Certificate.newUnregistrationCert(Unregistration.fromCore(certificate));\n                break;\n            case CertificateType.VoteDelegation:\n                cert = Certificate.newVoteDelegationCert(VoteDelegation.fromCore(certificate));\n                break;\n            case CertificateType.StakeVoteDelegation:\n                cert = Certificate.newStakeVoteDelegationCert(StakeVoteDelegation.fromCore(certificate));\n                break;\n            case CertificateType.StakeRegistrationDelegation:\n                cert = Certificate.newStakeRegistrationDelegationCert(StakeRegistrationDelegation.fromCore(certificate));\n                break;\n            case CertificateType.VoteRegistrationDelegation:\n                cert = Certificate.newVoteRegistrationDelegationCert(VoteRegistrationDelegation.fromCore(certificate));\n                break;\n            case CertificateType.StakeVoteRegistrationDelegation:\n                cert = Certificate.newStakeVoteRegistrationDelegationCert(StakeVoteRegistrationDelegation.fromCore(certificate));\n                break;\n            case CertificateType.AuthorizeCommitteeHot:\n                cert = Certificate.newAuthCommitteeHotCert(AuthCommitteeHot.fromCore(certificate));\n                break;\n            case CertificateType.ResignCommitteeCold:\n                cert = Certificate.newResignCommitteeColdCert(ResignCommitteeCold.fromCore(certificate));\n                break;\n            case CertificateType.RegisterDelegateRepresentative:\n                cert = Certificate.newRegisterDelegateRepresentativeCert(RegisterDelegateRepresentative.fromCore(certificate));\n                break;\n            case CertificateType.UnregisterDelegateRepresentative:\n                cert = Certificate.newUnregisterDelegateRepresentativeCert(UnregisterDelegateRepresentative.fromCore(certificate));\n                break;\n            case CertificateType.UpdateDelegateRepresentative:\n                cert = Certificate.newUpdateDelegateRepresentativeCert(UpdateDelegateRepresentative.fromCore(certificate));\n                break;\n            default:\n                throw new errors_InvalidStateError('Unexpected certificate type');\n        }\n        return cert;\n    }\n    static newStakeRegistration(stakeRegistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeRegistration, stakeRegistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeRegistration, \"f\");\n        return cert;\n    }\n    static newStakeDeregistration(stakeDeregistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeDeregistration, stakeDeregistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeDeregistration, \"f\");\n        return cert;\n    }\n    static newStakeDelegation(stakeDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeDelegation, stakeDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeDelegation, \"f\");\n        return cert;\n    }\n    static newPoolRegistration(poolRegistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_poolRegistration, poolRegistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.PoolRegistration, \"f\");\n        return cert;\n    }\n    static newPoolRetirement(poolRetirement) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_poolRetirement, poolRetirement, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.PoolRetirement, \"f\");\n        return cert;\n    }\n    static newGenesisKeyDelegation(genesisKeyDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_genesisKeyDelegation, genesisKeyDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.GenesisKeyDelegation, \"f\");\n        return cert;\n    }\n    static newMoveInstantaneousRewardsCert(moveInstantaneousRewards) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_moveInstantaneousReward, moveInstantaneousRewards, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.MoveInstantaneousRewards, \"f\");\n        return cert;\n    }\n    static newRegistrationCert(registration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_registration, registration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.Registration, \"f\");\n        return cert;\n    }\n    static newUnregistrationCert(unregistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_unregistration, unregistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.Unregistration, \"f\");\n        return cert;\n    }\n    static newVoteDelegationCert(voteDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_voteDelegation, voteDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.VoteDelegation, \"f\");\n        return cert;\n    }\n    static newStakeVoteDelegationCert(stakeVoteDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeVoteDelegation, stakeVoteDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeVoteDelegation, \"f\");\n        return cert;\n    }\n    static newStakeRegistrationDelegationCert(stakeRegistrationDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeRegistrationDelegation, stakeRegistrationDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeRegistrationDelegation, \"f\");\n        return cert;\n    }\n    static newVoteRegistrationDelegationCert(voteRegistrationDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_voteRegistrationDelegation, voteRegistrationDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.VoteRegistrationDelegation, \"f\");\n        return cert;\n    }\n    static newStakeVoteRegistrationDelegationCert(stakeVoteRegistrationDelegation) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_stakeVoteRegistrationDelegation, stakeVoteRegistrationDelegation, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.StakeVoteRegistrationDelegation, \"f\");\n        return cert;\n    }\n    static newAuthCommitteeHotCert(authCommitteeHot) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_authCommitteeHot, authCommitteeHot, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.AuthCommitteeHot, \"f\");\n        return cert;\n    }\n    static newResignCommitteeColdCert(resignCommitteeCold) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_resignCommitteeCold, resignCommitteeCold, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.ResignCommitteeCold, \"f\");\n        return cert;\n    }\n    static newRegisterDelegateRepresentativeCert(drepRegistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_drepRegistration, drepRegistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.DrepRegistration, \"f\");\n        return cert;\n    }\n    static newUnregisterDelegateRepresentativeCert(drepUnregistration) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_drepUnregistration, drepUnregistration, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.DrepUnregistration, \"f\");\n        return cert;\n    }\n    static newUpdateDelegateRepresentativeCert(updateDrep) {\n        const cert = new Certificate();\n        Certificate_classPrivateFieldSet(cert, _Certificate_updateDrep, updateDrep, \"f\");\n        Certificate_classPrivateFieldSet(cert, _Certificate_kind, CertificateKind.UpdateDrep, \"f\");\n        return cert;\n    }\n    kind() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_kind, \"f\");\n    }\n    asStakeRegistration() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistration, \"f\");\n    }\n    asStakeDeregistration() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeDeregistration, \"f\");\n    }\n    asStakeDelegation() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeDelegation, \"f\");\n    }\n    asPoolRegistration() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_poolRegistration, \"f\");\n    }\n    asPoolRetirement() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_poolRetirement, \"f\");\n    }\n    asGenesisKeyDelegation() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_genesisKeyDelegation, \"f\");\n    }\n    asMoveInstantaneousRewardsCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_moveInstantaneousReward, \"f\");\n    }\n    asRegistrationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_registration, \"f\");\n    }\n    asUnregistrationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_unregistration, \"f\");\n    }\n    asVoteDelegationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_voteDelegation, \"f\");\n    }\n    asStakeVoteDelegationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteDelegation, \"f\");\n    }\n    asStakeRegistrationDelegationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeRegistrationDelegation, \"f\");\n    }\n    asVoteRegistrationDelegationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_voteRegistrationDelegation, \"f\");\n    }\n    asStakeVoteRegistrationDelegationCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_stakeVoteRegistrationDelegation, \"f\");\n    }\n    asAuthCommitteeHotCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_authCommitteeHot, \"f\");\n    }\n    asResignCommitteeColdCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_resignCommitteeCold, \"f\");\n    }\n    asRegisterDelegateRepresentativeCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_drepRegistration, \"f\");\n    }\n    asUnregisterDelegateRepresentativeCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_drepUnregistration, \"f\");\n    }\n    asUpdateDelegateRepresentativeCert() {\n        return Certificate_classPrivateFieldGet(this, _Certificate_updateDrep, \"f\");\n    }\n}\n_Certificate_kind = new WeakMap(), _Certificate_genesisKeyDelegation = new WeakMap(), _Certificate_moveInstantaneousReward = new WeakMap(), _Certificate_poolRegistration = new WeakMap(), _Certificate_poolRetirement = new WeakMap(), _Certificate_stakeDelegation = new WeakMap(), _Certificate_stakeDeregistration = new WeakMap(), _Certificate_stakeRegistration = new WeakMap(), _Certificate_registration = new WeakMap(), _Certificate_unregistration = new WeakMap(), _Certificate_voteDelegation = new WeakMap(), _Certificate_stakeVoteDelegation = new WeakMap(), _Certificate_stakeRegistrationDelegation = new WeakMap(), _Certificate_voteRegistrationDelegation = new WeakMap(), _Certificate_stakeVoteRegistrationDelegation = new WeakMap(), _Certificate_authCommitteeHot = new WeakMap(), _Certificate_resignCommitteeCold = new WeakMap(), _Certificate_drepRegistration = new WeakMap(), _Certificate_drepUnregistration = new WeakMap(), _Certificate_updateDrep = new WeakMap(), _Certificate_originalBytes = new WeakMap();\n//# sourceMappingURL=Certificate.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/GovernanceActionKind.js\nvar GovernanceActionKind;\n(function (GovernanceActionKind) {\n    GovernanceActionKind[GovernanceActionKind[\"ParameterChange\"] = 0] = \"ParameterChange\";\n    GovernanceActionKind[GovernanceActionKind[\"HardForkInitiation\"] = 1] = \"HardForkInitiation\";\n    GovernanceActionKind[GovernanceActionKind[\"TreasuryWithdrawals\"] = 2] = \"TreasuryWithdrawals\";\n    GovernanceActionKind[GovernanceActionKind[\"NoConfidence\"] = 3] = \"NoConfidence\";\n    GovernanceActionKind[GovernanceActionKind[\"UpdateCommittee\"] = 4] = \"UpdateCommittee\";\n    GovernanceActionKind[GovernanceActionKind[\"NewConstitution\"] = 5] = \"NewConstitution\";\n    GovernanceActionKind[GovernanceActionKind[\"Info\"] = 6] = \"Info\";\n})(GovernanceActionKind || (GovernanceActionKind = {}));\n//# sourceMappingURL=GovernanceActionKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/GovernanceActionId.js\n/* provided dependency */ var GovernanceActionId_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar GovernanceActionId_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar GovernanceActionId_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _GovernanceActionId_id, _GovernanceActionId_index, _GovernanceActionId_originalBytes;\n\n\nconst GovernanceActionId_EMBEDDED_GROUP_SIZE = 2;\nclass GovernanceActionId {\n    constructor(id, index) {\n        _GovernanceActionId_id.set(this, void 0);\n        _GovernanceActionId_index.set(this, void 0);\n        _GovernanceActionId_originalBytes.set(this, undefined);\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_id, id, \"f\");\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_index, index, \"f\");\n    }\n    toCbor() {\n        if (GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_originalBytes, \"f\"))\n            return GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(GovernanceActionId_EMBEDDED_GROUP_SIZE);\n        writer.writeByteString(GovernanceActionId_Buffer.from(GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_id, \"f\"), 'hex'));\n        writer.writeInt(GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_index, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== GovernanceActionId_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${GovernanceActionId_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const txId = reader.readByteString();\n        const index = reader.readInt();\n        const input = new GovernanceActionId(primitives_HexBlob.fromBytes(txId), index);\n        GovernanceActionId_classPrivateFieldSet(input, _GovernanceActionId_originalBytes, cbor, \"f\");\n        return input;\n    }\n    toCore() {\n        return {\n            actionIndex: Number(GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_index, \"f\")),\n            id: GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_id, \"f\")\n        };\n    }\n    static fromCore(coreGovernanceActionId) {\n        return new GovernanceActionId(coreGovernanceActionId.id, BigInt(coreGovernanceActionId.actionIndex));\n    }\n    transactionId() {\n        return GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_id, \"f\");\n    }\n    setTransactionId(id) {\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_id, id, \"f\");\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_originalBytes, undefined, \"f\");\n    }\n    index() {\n        return GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_index, \"f\");\n    }\n    setIndex(index) {\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_index, index, \"f\");\n        GovernanceActionId_classPrivateFieldSet(this, _GovernanceActionId_originalBytes, undefined, \"f\");\n    }\n    equals(other) {\n        return GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_index, \"f\") === GovernanceActionId_classPrivateFieldGet(other, _GovernanceActionId_index, \"f\") && GovernanceActionId_classPrivateFieldGet(this, _GovernanceActionId_id, \"f\") === GovernanceActionId_classPrivateFieldGet(other, _GovernanceActionId_id, \"f\");\n    }\n}\n_GovernanceActionId_id = new WeakMap(), _GovernanceActionId_index = new WeakMap(), _GovernanceActionId_originalBytes = new WeakMap();\n//# sourceMappingURL=GovernanceActionId.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/ProtocolVersion.js\nvar ProtocolVersion_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ProtocolVersion_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ProtocolVersion_major, _ProtocolVersion_minor, _ProtocolVersion_originalBytes;\n\n\nconst PROTOCOL_VERSION_ARRAY_SIZE = 2;\nclass ProtocolVersion {\n    constructor(major, minor) {\n        _ProtocolVersion_major.set(this, void 0);\n        _ProtocolVersion_minor.set(this, void 0);\n        _ProtocolVersion_originalBytes.set(this, undefined);\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_major, major, \"f\");\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_minor, minor, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_originalBytes, \"f\"))\n            return ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_originalBytes, \"f\");\n        writer.writeStartArray(PROTOCOL_VERSION_ARRAY_SIZE);\n        writer.writeInt(ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_major, \"f\"));\n        writer.writeInt(ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_minor, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== PROTOCOL_VERSION_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${PROTOCOL_VERSION_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const major = Number(reader.readInt());\n        const minor = Number(reader.readInt());\n        reader.readEndArray();\n        const version = new ProtocolVersion(major, minor);\n        ProtocolVersion_classPrivateFieldSet(version, _ProtocolVersion_originalBytes, cbor, \"f\");\n        return version;\n    }\n    toCore() {\n        return {\n            major: Number(ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_major, \"f\")),\n            minor: Number(ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_minor, \"f\"))\n        };\n    }\n    static fromCore(version) {\n        return new ProtocolVersion(version.major, version.minor);\n    }\n    major() {\n        return ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_major, \"f\");\n    }\n    setMajor(major) {\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_major, major, \"f\");\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_originalBytes, undefined, \"f\");\n    }\n    minor() {\n        return ProtocolVersion_classPrivateFieldGet(this, _ProtocolVersion_minor, \"f\");\n    }\n    setMinor(minor) {\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_minor, minor, \"f\");\n        ProtocolVersion_classPrivateFieldSet(this, _ProtocolVersion_originalBytes, undefined, \"f\");\n    }\n}\n_ProtocolVersion_major = new WeakMap(), _ProtocolVersion_minor = new WeakMap(), _ProtocolVersion_originalBytes = new WeakMap();\n//# sourceMappingURL=ProtocolVersion.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/HardForkInitiationAction.js\nvar HardForkInitiationAction_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar HardForkInitiationAction_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _HardForkInitiationAction_protocolVersion, _HardForkInitiationAction_govActionId, _HardForkInitiationAction_originalBytes;\n\n\n\n\n\n\n\nconst HardForkInitiationAction_EMBEDDED_GROUP_SIZE = 3;\nclass HardForkInitiationAction {\n    constructor(protocolVersion, govActionId) {\n        _HardForkInitiationAction_protocolVersion.set(this, void 0);\n        _HardForkInitiationAction_govActionId.set(this, void 0);\n        _HardForkInitiationAction_originalBytes.set(this, undefined);\n        HardForkInitiationAction_classPrivateFieldSet(this, _HardForkInitiationAction_protocolVersion, protocolVersion, \"f\");\n        HardForkInitiationAction_classPrivateFieldSet(this, _HardForkInitiationAction_govActionId, govActionId, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_originalBytes, \"f\"))\n            return HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_originalBytes, \"f\");\n        writer.writeStartArray(HardForkInitiationAction_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.HardForkInitiation);\n        HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_govActionId, \"f\") ? writer.writeEncodedValue(hexToBytes(HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_govActionId, \"f\").toCbor())) : writer.writeNull();\n        writer.writeEncodedValue(hexToBytes(HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_protocolVersion, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== HardForkInitiationAction_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${HardForkInitiationAction_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.HardForkInitiation)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.HardForkInitiation} but got ${kind}`);\n        let govActionId;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            govActionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const protocolVersion = ProtocolVersion.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const action = new HardForkInitiationAction(protocolVersion, govActionId);\n        HardForkInitiationAction_classPrivateFieldSet(action, _HardForkInitiationAction_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.hard_fork_initiation_action,\n            governanceActionId: HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_govActionId, \"f\") ? HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_govActionId, \"f\").toCore() : null,\n            protocolVersion: HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_protocolVersion, \"f\").toCore()\n        };\n    }\n    static fromCore(hardForkInitiationAction) {\n        return new HardForkInitiationAction(ProtocolVersion.fromCore(hardForkInitiationAction.protocolVersion), hardForkInitiationAction.governanceActionId !== null\n            ? GovernanceActionId.fromCore(hardForkInitiationAction.governanceActionId)\n            : undefined);\n    }\n    govActionId() {\n        return HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_govActionId, \"f\");\n    }\n    protocolVersion() {\n        return HardForkInitiationAction_classPrivateFieldGet(this, _HardForkInitiationAction_protocolVersion, \"f\");\n    }\n}\n_HardForkInitiationAction_protocolVersion = new WeakMap(), _HardForkInitiationAction_govActionId = new WeakMap(), _HardForkInitiationAction_originalBytes = new WeakMap();\n//# sourceMappingURL=HardForkInitiationAction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/InfoAction.js\nvar InfoAction_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar InfoAction_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _InfoAction_originalBytes;\n\n\n\n\nconst InfoAction_EMBEDDED_GROUP_SIZE = 1;\nclass InfoAction {\n    constructor() {\n        _InfoAction_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (InfoAction_classPrivateFieldGet(this, _InfoAction_originalBytes, \"f\"))\n            return InfoAction_classPrivateFieldGet(this, _InfoAction_originalBytes, \"f\");\n        writer.writeStartArray(InfoAction_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.Info);\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== InfoAction_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${InfoAction_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.Info)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.Info} but got ${kind}`);\n        const action = new InfoAction();\n        InfoAction_classPrivateFieldSet(action, _InfoAction_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.info_action\n        };\n    }\n    static fromCore(_) {\n        return new InfoAction();\n    }\n}\n_InfoAction_originalBytes = new WeakMap();\n//# sourceMappingURL=InfoAction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/Constitution.js\nvar Constitution_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Constitution_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Constitution_anchor, _Constitution_scriptHash, _Constitution_originalBytes;\n\n\n\n\nconst CONSTITUTION_ARRAY_SIZE = 2;\nclass Constitution {\n    constructor(anchor, scriptHash) {\n        _Constitution_anchor.set(this, void 0);\n        _Constitution_scriptHash.set(this, void 0);\n        _Constitution_originalBytes.set(this, undefined);\n        Constitution_classPrivateFieldSet(this, _Constitution_anchor, anchor, \"f\");\n        Constitution_classPrivateFieldSet(this, _Constitution_scriptHash, scriptHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Constitution_classPrivateFieldGet(this, _Constitution_originalBytes, \"f\"))\n            return Constitution_classPrivateFieldGet(this, _Constitution_originalBytes, \"f\");\n        writer.writeStartArray(CONSTITUTION_ARRAY_SIZE);\n        writer.writeEncodedValue(hexToBytes(Constitution_classPrivateFieldGet(this, _Constitution_anchor, \"f\").toCbor()));\n        Constitution_classPrivateFieldGet(this, _Constitution_scriptHash, \"f\") ? writer.writeByteString(hexToBytes(Constitution_classPrivateFieldGet(this, _Constitution_scriptHash, \"f\"))) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== CONSTITUTION_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${CONSTITUTION_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        let scriptHash;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            scriptHash = primitives_HexBlob.fromBytes(reader.readByteString());\n        }\n        reader.readEndArray();\n        const constitution = new Constitution(anchor, scriptHash);\n        Constitution_classPrivateFieldSet(constitution, _Constitution_originalBytes, cbor, \"f\");\n        return constitution;\n    }\n    toCore() {\n        return {\n            anchor: Constitution_classPrivateFieldGet(this, _Constitution_anchor, \"f\").toCore(),\n            scriptHash: Constitution_classPrivateFieldGet(this, _Constitution_scriptHash, \"f\") ? Constitution_classPrivateFieldGet(this, _Constitution_scriptHash, \"f\") : null\n        };\n    }\n    static fromCore(constitution) {\n        return new Constitution(Anchor.fromCore(constitution.anchor), constitution.scriptHash !== null ? constitution.scriptHash : undefined);\n    }\n    anchor() {\n        return Constitution_classPrivateFieldGet(this, _Constitution_anchor, \"f\");\n    }\n    setAnchor(anchor) {\n        Constitution_classPrivateFieldSet(this, _Constitution_anchor, anchor, \"f\");\n        Constitution_classPrivateFieldSet(this, _Constitution_originalBytes, undefined, \"f\");\n    }\n    scriptHash() {\n        return Constitution_classPrivateFieldGet(this, _Constitution_scriptHash, \"f\");\n    }\n    setScriptHash(scriptHash) {\n        Constitution_classPrivateFieldSet(this, _Constitution_scriptHash, scriptHash, \"f\");\n        Constitution_classPrivateFieldSet(this, _Constitution_originalBytes, undefined, \"f\");\n    }\n}\n_Constitution_anchor = new WeakMap(), _Constitution_scriptHash = new WeakMap(), _Constitution_originalBytes = new WeakMap();\n//# sourceMappingURL=Constitution.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/NewConstitution.js\nvar NewConstitution_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar NewConstitution_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _NewConstitution_constitution, _NewConstitution_govActionId, _NewConstitution_originalBytes;\n\n\n\n\n\n\n\nconst NewConstitution_EMBEDDED_GROUP_SIZE = 3;\nclass NewConstitution {\n    constructor(constitution, govActionId) {\n        _NewConstitution_constitution.set(this, void 0);\n        _NewConstitution_govActionId.set(this, void 0);\n        _NewConstitution_originalBytes.set(this, undefined);\n        NewConstitution_classPrivateFieldSet(this, _NewConstitution_constitution, constitution, \"f\");\n        NewConstitution_classPrivateFieldSet(this, _NewConstitution_govActionId, govActionId, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (NewConstitution_classPrivateFieldGet(this, _NewConstitution_originalBytes, \"f\"))\n            return NewConstitution_classPrivateFieldGet(this, _NewConstitution_originalBytes, \"f\");\n        writer.writeStartArray(NewConstitution_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.NewConstitution);\n        NewConstitution_classPrivateFieldGet(this, _NewConstitution_govActionId, \"f\") ? writer.writeEncodedValue(hexToBytes(NewConstitution_classPrivateFieldGet(this, _NewConstitution_govActionId, \"f\").toCbor())) : writer.writeNull();\n        writer.writeEncodedValue(hexToBytes(NewConstitution_classPrivateFieldGet(this, _NewConstitution_constitution, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== NewConstitution_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${NewConstitution_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.NewConstitution)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.NewConstitution} but got ${kind}`);\n        let govActionId;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            govActionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const constitution = Constitution.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const action = new NewConstitution(constitution, govActionId);\n        NewConstitution_classPrivateFieldSet(action, _NewConstitution_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.new_constitution,\n            constitution: NewConstitution_classPrivateFieldGet(this, _NewConstitution_constitution, \"f\").toCore(),\n            governanceActionId: NewConstitution_classPrivateFieldGet(this, _NewConstitution_govActionId, \"f\") ? NewConstitution_classPrivateFieldGet(this, _NewConstitution_govActionId, \"f\").toCore() : null\n        };\n    }\n    static fromCore(newConstitution) {\n        return new NewConstitution(Constitution.fromCore(newConstitution.constitution), newConstitution.governanceActionId !== null\n            ? GovernanceActionId.fromCore(newConstitution.governanceActionId)\n            : undefined);\n    }\n    govActionId() {\n        return NewConstitution_classPrivateFieldGet(this, _NewConstitution_govActionId, \"f\");\n    }\n    constitution() {\n        return NewConstitution_classPrivateFieldGet(this, _NewConstitution_constitution, \"f\");\n    }\n}\n_NewConstitution_constitution = new WeakMap(), _NewConstitution_govActionId = new WeakMap(), _NewConstitution_originalBytes = new WeakMap();\n//# sourceMappingURL=NewConstitution.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/NoConfidence.js\nvar NoConfidence_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar NoConfidence_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _NoConfidence_govActionId, _NoConfidence_originalBytes;\n\n\n\n\n\n\nconst NoConfidence_EMBEDDED_GROUP_SIZE = 2;\nclass NoConfidence {\n    constructor(govActionId) {\n        _NoConfidence_govActionId.set(this, void 0);\n        _NoConfidence_originalBytes.set(this, undefined);\n        NoConfidence_classPrivateFieldSet(this, _NoConfidence_govActionId, govActionId, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (NoConfidence_classPrivateFieldGet(this, _NoConfidence_originalBytes, \"f\"))\n            return NoConfidence_classPrivateFieldGet(this, _NoConfidence_originalBytes, \"f\");\n        writer.writeStartArray(NoConfidence_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.NoConfidence);\n        NoConfidence_classPrivateFieldGet(this, _NoConfidence_govActionId, \"f\") ? writer.writeEncodedValue(hexToBytes(NoConfidence_classPrivateFieldGet(this, _NoConfidence_govActionId, \"f\").toCbor())) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== NoConfidence_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${NoConfidence_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.NoConfidence)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.NoConfidence}  but got ${kind}`);\n        let govActionId;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            govActionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const action = new NoConfidence(govActionId);\n        NoConfidence_classPrivateFieldSet(action, _NoConfidence_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.no_confidence,\n            governanceActionId: NoConfidence_classPrivateFieldGet(this, _NoConfidence_govActionId, \"f\") ? NoConfidence_classPrivateFieldGet(this, _NoConfidence_govActionId, \"f\").toCore() : null\n        };\n    }\n    static fromCore(noConfidence) {\n        return new NoConfidence(noConfidence.governanceActionId !== null\n            ? GovernanceActionId.fromCore(noConfidence.governanceActionId)\n            : undefined);\n    }\n    govActionId() {\n        return NoConfidence_classPrivateFieldGet(this, _NoConfidence_govActionId, \"f\");\n    }\n}\n_NoConfidence_govActionId = new WeakMap(), _NoConfidence_originalBytes = new WeakMap();\n//# sourceMappingURL=NoConfidence.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/Costmdls/CostModel.js\nvar CostModel_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CostModel_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CostModel_instances, _CostModel_language, _CostModel_costs, _CostModel_isOperationValid;\n\n\nclass CostModel {\n    constructor(language, costs) {\n        _CostModel_instances.add(this);\n        _CostModel_language.set(this, void 0);\n        _CostModel_costs.set(this, void 0);\n        CostModel_classPrivateFieldSet(this, _CostModel_language, language, \"f\");\n        CostModel_classPrivateFieldSet(this, _CostModel_costs, costs, \"f\");\n    }\n    static newPlutusV1(costs) {\n        return new CostModel(PlutusLanguageVersion.V1, costs);\n    }\n    static newPlutusV2(costs) {\n        return new CostModel(PlutusLanguageVersion.V2, costs);\n    }\n    static newPlutusV3(costs) {\n        return new CostModel(PlutusLanguageVersion.V3, costs);\n    }\n    set(operation, cost) {\n        if (!CostModel_classPrivateFieldGet(this, _CostModel_instances, \"m\", _CostModel_isOperationValid).call(this, operation))\n            throw new errors_InvalidArgumentError('operation', `The given operation ${operation} is invalid for the current Language version ${CostModel_classPrivateFieldGet(this, _CostModel_language, \"f\")}.`);\n        CostModel_classPrivateFieldGet(this, _CostModel_costs, \"f\")[operation] = cost;\n    }\n    get(operation) {\n        if (!CostModel_classPrivateFieldGet(this, _CostModel_instances, \"m\", _CostModel_isOperationValid).call(this, operation))\n            throw new errors_InvalidArgumentError('operation', `The given operation ${operation} is invalid for the current Language version ${CostModel_classPrivateFieldGet(this, _CostModel_language, \"f\")}.`);\n        return CostModel_classPrivateFieldGet(this, _CostModel_costs, \"f\")[operation];\n    }\n    costs() {\n        return CostModel_classPrivateFieldGet(this, _CostModel_costs, \"f\");\n    }\n    language() {\n        return CostModel_classPrivateFieldGet(this, _CostModel_language, \"f\");\n    }\n}\n_CostModel_language = new WeakMap(), _CostModel_costs = new WeakMap(), _CostModel_instances = new WeakSet(), _CostModel_isOperationValid = function _CostModel_isOperationValid(operation) {\n    return operation >= 0;\n};\n//# sourceMappingURL=CostModel.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/Costmdls/Costmdls.js\nvar Costmdls_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Costmdls_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Costmdls_models, _Costmdls_originalBytes;\n\n\n\n\nclass Costmdls {\n    constructor(models = new Map()) {\n        _Costmdls_models.set(this, void 0);\n        _Costmdls_originalBytes.set(this, undefined);\n        Costmdls_classPrivateFieldSet(this, _Costmdls_models, models, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Costmdls_classPrivateFieldGet(this, _Costmdls_originalBytes, \"f\"))\n            return Costmdls_classPrivateFieldGet(this, _Costmdls_originalBytes, \"f\");\n        const sortedCanonically = new Map([...Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\")].sort((a, b) => (a > b ? 1 : -1)));\n        writer.writeStartMap(sortedCanonically.size);\n        for (const [key, value] of sortedCanonically) {\n            writer.writeInt(key);\n            writer.writeStartArray(value.costs().length);\n            for (const cost of value.costs()) {\n                writer.writeInt(cost);\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        reader.readStartMap();\n        const models = new Map();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const language = Number(reader.readInt());\n            const costs = new Array();\n            reader.readStartArray();\n            while (reader.peekState() !== CborReaderState.EndArray) {\n                costs.push(Number(reader.readInt()));\n            }\n            reader.readEndArray();\n            models.set(language, new CostModel(language, costs));\n        }\n        reader.readEndMap();\n        const costmdl = new Costmdls(models);\n        Costmdls_classPrivateFieldSet(costmdl, _Costmdls_originalBytes, cbor, \"f\");\n        return costmdl;\n    }\n    toCore() {\n        const models = new Map();\n        for (const [key, value] of Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\")) {\n            models.set(key, value.costs());\n        }\n        return models;\n    }\n    static fromCore(costModels) {\n        const models = new Map();\n        for (const [key, value] of costModels) {\n            models.set(key, new CostModel(key, value));\n        }\n        return new Costmdls(models);\n    }\n    size() {\n        return Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\").size;\n    }\n    insert(value) {\n        Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\").set(value.language(), value);\n        Costmdls_classPrivateFieldSet(this, _Costmdls_originalBytes, undefined, \"f\");\n    }\n    get(key) {\n        return Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\").get(key);\n    }\n    keys() {\n        return [...Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\").keys()];\n    }\n    languageViewsEncoding() {\n        const encodedLanguageViews = new CborWriter();\n        const sortedCanonically = new Map([...Costmdls_classPrivateFieldGet(this, _Costmdls_models, \"f\")].sort((a, b) => {\n            const lhs = a[0] === PlutusLanguageVersion.V1 ? 0x41 : a[0];\n            const rhs = b[0] === PlutusLanguageVersion.V1 ? 0x41 : b[0];\n            return lhs > rhs ? 1 : -1;\n        }));\n        encodedLanguageViews.writeStartMap(sortedCanonically.size);\n        for (const [key, value] of sortedCanonically) {\n            switch (key) {\n                case PlutusLanguageVersion.V1: {\n                    const writer = new CborWriter();\n                    writer.writeStartArray();\n                    for (const cost of value.costs()) {\n                        writer.writeInt(cost);\n                    }\n                    writer.writeEndArray();\n                    const innerCbor = writer.encode();\n                    encodedLanguageViews.writeByteString(new Uint8Array([0]));\n                    encodedLanguageViews.writeByteString(innerCbor);\n                    break;\n                }\n                case PlutusLanguageVersion.V2:\n                case PlutusLanguageVersion.V3:\n                    encodedLanguageViews.writeInt(key);\n                    encodedLanguageViews.writeStartArray(value.costs().length);\n                    for (const cost of value.costs()) {\n                        encodedLanguageViews.writeInt(cost);\n                    }\n                    break;\n                default:\n                    throw new errors_InvalidStateError('Invalid plutus language version.');\n            }\n        }\n        return encodedLanguageViews.encodeAsHex();\n    }\n}\n_Costmdls_models = new WeakMap(), _Costmdls_originalBytes = new WeakMap();\n//# sourceMappingURL=Costmdls.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/DrepVotingThresholds.js\n/* provided dependency */ var DrepVotingThresholds_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar DrepVotingThresholds_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar DrepVotingThresholds_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _DrepVotingThresholds_motionNoConfidence, _DrepVotingThresholds_committeeNormal, _DrepVotingThresholds_committeeNoConfidence, _DrepVotingThresholds_updateConstitution, _DrepVotingThresholds_hardForkInitiation, _DrepVotingThresholds_ppNetworkGroup, _DrepVotingThresholds_ppEconomicGroup, _DrepVotingThresholds_ppTechnicalGroup, _DrepVotingThresholds_ppGovernanceGroup, _DrepVotingThresholds_treasuryWithdrawal, _DrepVotingThresholds_originalBytes;\n\n\n\nconst EX_DREP_VOTING_THRESHOLDS_SIZE = 10;\nclass DrepVotingThresholds {\n    constructor(motionNoConfidence, committeeNormal, committeeNoConfidence, updateConstitution, hardForkInitiation, ppNetworkGroup, ppEconomicGroup, ppTechnicalGroup, ppGovernanceGroup, treasuryWithdrawal) {\n        _DrepVotingThresholds_motionNoConfidence.set(this, void 0);\n        _DrepVotingThresholds_committeeNormal.set(this, void 0);\n        _DrepVotingThresholds_committeeNoConfidence.set(this, void 0);\n        _DrepVotingThresholds_updateConstitution.set(this, void 0);\n        _DrepVotingThresholds_hardForkInitiation.set(this, void 0);\n        _DrepVotingThresholds_ppNetworkGroup.set(this, void 0);\n        _DrepVotingThresholds_ppEconomicGroup.set(this, void 0);\n        _DrepVotingThresholds_ppTechnicalGroup.set(this, void 0);\n        _DrepVotingThresholds_ppGovernanceGroup.set(this, void 0);\n        _DrepVotingThresholds_treasuryWithdrawal.set(this, void 0);\n        _DrepVotingThresholds_originalBytes.set(this, undefined);\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_motionNoConfidence, motionNoConfidence, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_committeeNormal, committeeNormal, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_committeeNoConfidence, committeeNoConfidence, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_updateConstitution, updateConstitution, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_hardForkInitiation, hardForkInitiation, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppNetworkGroup, ppNetworkGroup, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppEconomicGroup, ppEconomicGroup, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppTechnicalGroup, ppTechnicalGroup, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppGovernanceGroup, ppGovernanceGroup, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_treasuryWithdrawal, treasuryWithdrawal, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_originalBytes, \"f\"))\n            return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_originalBytes, \"f\");\n        writer.writeStartArray(EX_DREP_VOTING_THRESHOLDS_SIZE);\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_motionNoConfidence, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNormal, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNoConfidence, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_updateConstitution, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_hardForkInitiation, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppNetworkGroup, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppEconomicGroup, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppTechnicalGroup, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppGovernanceGroup, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(DrepVotingThresholds_Buffer.from(DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_treasuryWithdrawal, \"f\").toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== EX_DREP_VOTING_THRESHOLDS_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${EX_DREP_VOTING_THRESHOLDS_SIZE} elements, but got an array of ${length} elements`);\n        const motionNoConfidence = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const committeeNormal = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const committeeNoConfidence = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const updateConstitution = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const hardForkInitiation = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const ppNetworkGroup = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const ppEconomicGroup = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const ppTechnicalGroup = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const ppGovernanceGroup = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const treasuryWithdrawal = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const thresholds = new DrepVotingThresholds(motionNoConfidence, committeeNormal, committeeNoConfidence, updateConstitution, hardForkInitiation, ppNetworkGroup, ppEconomicGroup, ppTechnicalGroup, ppGovernanceGroup, treasuryWithdrawal);\n        DrepVotingThresholds_classPrivateFieldSet(thresholds, _DrepVotingThresholds_originalBytes, cbor, \"f\");\n        return thresholds;\n    }\n    toCore() {\n        return {\n            committeeNoConfidence: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNoConfidence, \"f\").toCore(),\n            committeeNormal: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNormal, \"f\").toCore(),\n            hardForkInitiation: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_hardForkInitiation, \"f\").toCore(),\n            motionNoConfidence: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_motionNoConfidence, \"f\").toCore(),\n            ppEconomicGroup: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppEconomicGroup, \"f\").toCore(),\n            ppGovernanceGroup: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppGovernanceGroup, \"f\").toCore(),\n            ppNetworkGroup: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppNetworkGroup, \"f\").toCore(),\n            ppTechnicalGroup: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppTechnicalGroup, \"f\").toCore(),\n            treasuryWithdrawal: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_treasuryWithdrawal, \"f\").toCore(),\n            updateConstitution: DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_updateConstitution, \"f\").toCore()\n        };\n    }\n    static fromCore(core) {\n        return new DrepVotingThresholds(UnitInterval.fromCore(core.motionNoConfidence), UnitInterval.fromCore(core.committeeNormal), UnitInterval.fromCore(core.committeeNoConfidence), UnitInterval.fromCore(core.updateConstitution), UnitInterval.fromCore(core.hardForkInitiation), UnitInterval.fromCore(core.ppNetworkGroup), UnitInterval.fromCore(core.ppEconomicGroup), UnitInterval.fromCore(core.ppTechnicalGroup), UnitInterval.fromCore(core.ppGovernanceGroup), UnitInterval.fromCore(core.treasuryWithdrawal));\n    }\n    setMotionNoConfidence(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_motionNoConfidence, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setCommitteeNormal(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_committeeNormal, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setCommitteeNoConfidence(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_committeeNoConfidence, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setUpdateConstitution(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_updateConstitution, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setHardForkInitiation(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_hardForkInitiation, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setPpNetworkGroup(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppNetworkGroup, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setPpEconomicGroup(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppEconomicGroup, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setPpTechnicalGroup(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppTechnicalGroup, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setPpGovernanceGroup(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_ppGovernanceGroup, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setTreasuryWithdrawal(threshold) {\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_treasuryWithdrawal, threshold, \"f\");\n        DrepVotingThresholds_classPrivateFieldSet(this, _DrepVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    motionNoConfidence() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_motionNoConfidence, \"f\");\n    }\n    committeeNormal() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNormal, \"f\");\n    }\n    committeeNoConfidence() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_committeeNoConfidence, \"f\");\n    }\n    updateConstitution() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_updateConstitution, \"f\");\n    }\n    hardForkInitiation() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_hardForkInitiation, \"f\");\n    }\n    ppNetworkGroup() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppNetworkGroup, \"f\");\n    }\n    ppEconomicGroup() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppEconomicGroup, \"f\");\n    }\n    ppTechnicalGroup() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppTechnicalGroup, \"f\");\n    }\n    ppGovernanceGroup() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_ppGovernanceGroup, \"f\");\n    }\n    treasuryWithdrawal() {\n        return DrepVotingThresholds_classPrivateFieldGet(this, _DrepVotingThresholds_treasuryWithdrawal, \"f\");\n    }\n}\n_DrepVotingThresholds_motionNoConfidence = new WeakMap(), _DrepVotingThresholds_committeeNormal = new WeakMap(), _DrepVotingThresholds_committeeNoConfidence = new WeakMap(), _DrepVotingThresholds_updateConstitution = new WeakMap(), _DrepVotingThresholds_hardForkInitiation = new WeakMap(), _DrepVotingThresholds_ppNetworkGroup = new WeakMap(), _DrepVotingThresholds_ppEconomicGroup = new WeakMap(), _DrepVotingThresholds_ppTechnicalGroup = new WeakMap(), _DrepVotingThresholds_ppGovernanceGroup = new WeakMap(), _DrepVotingThresholds_treasuryWithdrawal = new WeakMap(), _DrepVotingThresholds_originalBytes = new WeakMap();\n//# sourceMappingURL=DrepVotingThresholds.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/ExUnitPrices.js\n/* provided dependency */ var ExUnitPrices_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ExUnitPrices_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ExUnitPrices_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ExUnitPrices_memPrice, _ExUnitPrices_stepsPrice, _ExUnitPrices_originalBytes;\n\n\n\n\nconst EX_UNITS_PRICES_ARRAY_SIZE = 2;\nclass ExUnitPrices {\n    constructor(memPrices, stepsPrices) {\n        _ExUnitPrices_memPrice.set(this, void 0);\n        _ExUnitPrices_stepsPrice.set(this, void 0);\n        _ExUnitPrices_originalBytes.set(this, undefined);\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_memPrice, memPrices, \"f\");\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_stepsPrice, stepsPrices, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_originalBytes, \"f\"))\n            return ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_originalBytes, \"f\");\n        writer.writeStartArray(EX_UNITS_PRICES_ARRAY_SIZE);\n        writer.writeEncodedValue(ExUnitPrices_Buffer.from(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_memPrice, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(ExUnitPrices_Buffer.from(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_stepsPrice, \"f\").toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== EX_UNITS_PRICES_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${EX_UNITS_PRICES_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const memPrices = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const stepPrices = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const exUnit = new ExUnitPrices(memPrices, stepPrices);\n        ExUnitPrices_classPrivateFieldSet(exUnit, _ExUnitPrices_originalBytes, cbor, \"f\");\n        return exUnit;\n    }\n    toCore() {\n        return {\n            memory: Number(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_memPrice, \"f\").numerator()) / Number(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_memPrice, \"f\").denominator()),\n            steps: Number(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_stepsPrice, \"f\").numerator()) / Number(ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_stepsPrice, \"f\").denominator())\n        };\n    }\n    static fromCore(prices) {\n        const mem = new fraction_js_fraction(prices.memory);\n        const steps = new fraction_js_fraction(prices.steps);\n        return new ExUnitPrices(new UnitInterval(BigInt(mem.n), BigInt(mem.d)), new UnitInterval(BigInt(steps.n), BigInt(steps.d)));\n    }\n    memPrice() {\n        return ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_memPrice, \"f\");\n    }\n    setMemPrice(memPrice) {\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_memPrice, memPrice, \"f\");\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_originalBytes, undefined, \"f\");\n    }\n    stepsPrice() {\n        return ExUnitPrices_classPrivateFieldGet(this, _ExUnitPrices_stepsPrice, \"f\");\n    }\n    setStepsPrice(stepsPrice) {\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_stepsPrice, stepsPrice, \"f\");\n        ExUnitPrices_classPrivateFieldSet(this, _ExUnitPrices_originalBytes, undefined, \"f\");\n    }\n}\n_ExUnitPrices_memPrice = new WeakMap(), _ExUnitPrices_stepsPrice = new WeakMap(), _ExUnitPrices_originalBytes = new WeakMap();\n//# sourceMappingURL=ExUnitPrices.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/ExUnits.js\nvar ExUnits_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ExUnits_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ExUnits_mem, _ExUnits_steps, _ExUnits_originalBytes;\n\n\nconst EX_UNITS_ARRAY_SIZE = 2;\nclass ExUnits {\n    constructor(mem, steps) {\n        _ExUnits_mem.set(this, void 0);\n        _ExUnits_steps.set(this, void 0);\n        _ExUnits_originalBytes.set(this, undefined);\n        ExUnits_classPrivateFieldSet(this, _ExUnits_mem, mem, \"f\");\n        ExUnits_classPrivateFieldSet(this, _ExUnits_steps, steps, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ExUnits_classPrivateFieldGet(this, _ExUnits_originalBytes, \"f\"))\n            return ExUnits_classPrivateFieldGet(this, _ExUnits_originalBytes, \"f\");\n        writer.writeStartArray(EX_UNITS_ARRAY_SIZE);\n        writer.writeInt(ExUnits_classPrivateFieldGet(this, _ExUnits_mem, \"f\"));\n        writer.writeInt(ExUnits_classPrivateFieldGet(this, _ExUnits_steps, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== EX_UNITS_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${EX_UNITS_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const mem = reader.readUInt();\n        const steps = reader.readUInt();\n        reader.readEndArray();\n        const exUnit = new ExUnits(mem, steps);\n        ExUnits_classPrivateFieldSet(exUnit, _ExUnits_originalBytes, cbor, \"f\");\n        return exUnit;\n    }\n    toCore() {\n        return {\n            memory: Number(ExUnits_classPrivateFieldGet(this, _ExUnits_mem, \"f\")),\n            steps: Number(ExUnits_classPrivateFieldGet(this, _ExUnits_steps, \"f\"))\n        };\n    }\n    static fromCore(exUnits) {\n        return new ExUnits(BigInt(exUnits.memory), BigInt(exUnits.steps));\n    }\n    mem() {\n        return ExUnits_classPrivateFieldGet(this, _ExUnits_mem, \"f\");\n    }\n    setMem(mem) {\n        ExUnits_classPrivateFieldSet(this, _ExUnits_mem, mem, \"f\");\n        ExUnits_classPrivateFieldSet(this, _ExUnits_originalBytes, undefined, \"f\");\n    }\n    steps() {\n        return ExUnits_classPrivateFieldGet(this, _ExUnits_steps, \"f\");\n    }\n    setSteps(steps) {\n        ExUnits_classPrivateFieldSet(this, _ExUnits_steps, steps, \"f\");\n        ExUnits_classPrivateFieldSet(this, _ExUnits_originalBytes, undefined, \"f\");\n    }\n    add(other) {\n        const mem = ExUnits_classPrivateFieldGet(this, _ExUnits_mem, \"f\") + ExUnits_classPrivateFieldGet(other, _ExUnits_mem, \"f\");\n        const steps = ExUnits_classPrivateFieldGet(this, _ExUnits_steps, \"f\") + ExUnits_classPrivateFieldGet(other, _ExUnits_steps, \"f\");\n        return new ExUnits(mem, steps);\n    }\n}\n_ExUnits_mem = new WeakMap(), _ExUnits_steps = new WeakMap(), _ExUnits_originalBytes = new WeakMap();\n//# sourceMappingURL=ExUnits.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/PoolVotingThresholds.js\n/* provided dependency */ var PoolVotingThresholds_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PoolVotingThresholds_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar PoolVotingThresholds_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PoolVotingThresholds_motionNoConfidence, _PoolVotingThresholds_committeeNormal, _PoolVotingThresholds_committeeNoConfidence, _PoolVotingThresholds_hardForkInitiation, _PoolVotingThresholds_securityRelevantParam, _PoolVotingThresholds_originalBytes;\n\n\n\nconst POOL_VOTING_THRESHOLDS_SIZE = 5;\nclass PoolVotingThresholds {\n    constructor(motionNoConfidence, committeeNormal, committeeNoConfidence, hardForkInitiation, securityRelevantParam) {\n        _PoolVotingThresholds_motionNoConfidence.set(this, void 0);\n        _PoolVotingThresholds_committeeNormal.set(this, void 0);\n        _PoolVotingThresholds_committeeNoConfidence.set(this, void 0);\n        _PoolVotingThresholds_hardForkInitiation.set(this, void 0);\n        _PoolVotingThresholds_securityRelevantParam.set(this, void 0);\n        _PoolVotingThresholds_originalBytes.set(this, undefined);\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_motionNoConfidence, motionNoConfidence, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_committeeNormal, committeeNormal, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_committeeNoConfidence, committeeNoConfidence, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_hardForkInitiation, hardForkInitiation, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_securityRelevantParam, securityRelevantParam, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_originalBytes, \"f\"))\n            return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_originalBytes, \"f\");\n        writer.writeStartArray(POOL_VOTING_THRESHOLDS_SIZE);\n        writer.writeEncodedValue(PoolVotingThresholds_Buffer.from(PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_motionNoConfidence, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(PoolVotingThresholds_Buffer.from(PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNormal, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(PoolVotingThresholds_Buffer.from(PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNoConfidence, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(PoolVotingThresholds_Buffer.from(PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_hardForkInitiation, \"f\").toCbor(), 'hex'));\n        writer.writeEncodedValue(PoolVotingThresholds_Buffer.from(PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_securityRelevantParam, \"f\").toCbor(), 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== POOL_VOTING_THRESHOLDS_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${POOL_VOTING_THRESHOLDS_SIZE} elements, but got an array of ${length} elements`);\n        const motionNoConfidence = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const committeeNormal = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const committeeNoConfidence = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const hardForkInitiation = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const securityRelevantParamVotingThreshold = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const thresholds = new PoolVotingThresholds(motionNoConfidence, committeeNormal, committeeNoConfidence, hardForkInitiation, securityRelevantParamVotingThreshold);\n        PoolVotingThresholds_classPrivateFieldSet(thresholds, _PoolVotingThresholds_originalBytes, cbor, \"f\");\n        return thresholds;\n    }\n    toCore() {\n        return {\n            committeeNoConfidence: PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNoConfidence, \"f\").toCore(),\n            committeeNormal: PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNormal, \"f\").toCore(),\n            hardForkInitiation: PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_hardForkInitiation, \"f\").toCore(),\n            motionNoConfidence: PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_motionNoConfidence, \"f\").toCore(),\n            securityRelevantParamVotingThreshold: PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_securityRelevantParam, \"f\").toCore()\n        };\n    }\n    static fromCore(core) {\n        return new PoolVotingThresholds(UnitInterval.fromCore(core.motionNoConfidence), UnitInterval.fromCore(core.committeeNormal), UnitInterval.fromCore(core.committeeNoConfidence), UnitInterval.fromCore(core.hardForkInitiation), UnitInterval.fromCore(core.securityRelevantParamVotingThreshold));\n    }\n    setMotionNoConfidence(threshold) {\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_motionNoConfidence, threshold, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setCommitteeNormal(threshold) {\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_committeeNormal, threshold, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setCommitteeNoConfidence(threshold) {\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_committeeNoConfidence, threshold, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    setHardForkInitiation(threshold) {\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_hardForkInitiation, threshold, \"f\");\n        PoolVotingThresholds_classPrivateFieldSet(this, _PoolVotingThresholds_originalBytes, undefined, \"f\");\n    }\n    motionNoConfidence() {\n        return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_motionNoConfidence, \"f\");\n    }\n    committeeNormal() {\n        return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNormal, \"f\");\n    }\n    committeeNoConfidence() {\n        return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_committeeNoConfidence, \"f\");\n    }\n    hardForkInitiation() {\n        return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_hardForkInitiation, \"f\");\n    }\n    securityRelevantParam() {\n        return PoolVotingThresholds_classPrivateFieldGet(this, _PoolVotingThresholds_securityRelevantParam, \"f\");\n    }\n}\n_PoolVotingThresholds_motionNoConfidence = new WeakMap(), _PoolVotingThresholds_committeeNormal = new WeakMap(), _PoolVotingThresholds_committeeNoConfidence = new WeakMap(), _PoolVotingThresholds_hardForkInitiation = new WeakMap(), _PoolVotingThresholds_securityRelevantParam = new WeakMap(), _PoolVotingThresholds_originalBytes = new WeakMap();\n//# sourceMappingURL=PoolVotingThresholds.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/ProtocolParamUpdate.js\n/* provided dependency */ var ProtocolParamUpdate_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ProtocolParamUpdate_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar ProtocolParamUpdate_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ProtocolParamUpdate_instances, _ProtocolParamUpdate_minFeeA, _ProtocolParamUpdate_minFeeB, _ProtocolParamUpdate_maxBlockBodySize, _ProtocolParamUpdate_maxTxSize, _ProtocolParamUpdate_maxBlockHeaderSize, _ProtocolParamUpdate_keyDeposit, _ProtocolParamUpdate_poolDeposit, _ProtocolParamUpdate_maxEpoch, _ProtocolParamUpdate_nOpt, _ProtocolParamUpdate_poolPledgeInfluence, _ProtocolParamUpdate_expansionRate, _ProtocolParamUpdate_treasuryGrowthRate, _ProtocolParamUpdate_d, _ProtocolParamUpdate_extraEntropy, _ProtocolParamUpdate_protocolVersion, _ProtocolParamUpdate_minPoolCost, _ProtocolParamUpdate_adaPerUtxoByte, _ProtocolParamUpdate_costModels, _ProtocolParamUpdate_executionCosts, _ProtocolParamUpdate_maxTxExUnits, _ProtocolParamUpdate_maxBlockExUnits, _ProtocolParamUpdate_maxValueSize, _ProtocolParamUpdate_collateralPercentage, _ProtocolParamUpdate_maxCollateralInputs, _ProtocolParamUpdate_poolVotingThresholds, _ProtocolParamUpdate_drepVotingThresholds, _ProtocolParamUpdate_minCommitteeSize, _ProtocolParamUpdate_committeeTermLimit, _ProtocolParamUpdate_governanceActionValidityPeriod, _ProtocolParamUpdate_governanceActionDeposit, _ProtocolParamUpdate_drepDeposit, _ProtocolParamUpdate_drepInactivityPeriod, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, _ProtocolParamUpdate_originalBytes, _ProtocolParamUpdate_getMapSize;\n\n\n\n\n\n\n\n\nclass ProtocolParamUpdate {\n    constructor() {\n        _ProtocolParamUpdate_instances.add(this);\n        _ProtocolParamUpdate_minFeeA.set(this, void 0);\n        _ProtocolParamUpdate_minFeeB.set(this, void 0);\n        _ProtocolParamUpdate_maxBlockBodySize.set(this, void 0);\n        _ProtocolParamUpdate_maxTxSize.set(this, void 0);\n        _ProtocolParamUpdate_maxBlockHeaderSize.set(this, void 0);\n        _ProtocolParamUpdate_keyDeposit.set(this, void 0);\n        _ProtocolParamUpdate_poolDeposit.set(this, void 0);\n        _ProtocolParamUpdate_maxEpoch.set(this, void 0);\n        _ProtocolParamUpdate_nOpt.set(this, void 0);\n        _ProtocolParamUpdate_poolPledgeInfluence.set(this, void 0);\n        _ProtocolParamUpdate_expansionRate.set(this, void 0);\n        _ProtocolParamUpdate_treasuryGrowthRate.set(this, void 0);\n        _ProtocolParamUpdate_d.set(this, void 0);\n        _ProtocolParamUpdate_extraEntropy.set(this, void 0);\n        _ProtocolParamUpdate_protocolVersion.set(this, void 0);\n        _ProtocolParamUpdate_minPoolCost.set(this, void 0);\n        _ProtocolParamUpdate_adaPerUtxoByte.set(this, void 0);\n        _ProtocolParamUpdate_costModels.set(this, void 0);\n        _ProtocolParamUpdate_executionCosts.set(this, void 0);\n        _ProtocolParamUpdate_maxTxExUnits.set(this, void 0);\n        _ProtocolParamUpdate_maxBlockExUnits.set(this, void 0);\n        _ProtocolParamUpdate_maxValueSize.set(this, void 0);\n        _ProtocolParamUpdate_collateralPercentage.set(this, void 0);\n        _ProtocolParamUpdate_maxCollateralInputs.set(this, void 0);\n        _ProtocolParamUpdate_poolVotingThresholds.set(this, void 0);\n        _ProtocolParamUpdate_drepVotingThresholds.set(this, void 0);\n        _ProtocolParamUpdate_minCommitteeSize.set(this, void 0);\n        _ProtocolParamUpdate_committeeTermLimit.set(this, void 0);\n        _ProtocolParamUpdate_governanceActionValidityPeriod.set(this, void 0);\n        _ProtocolParamUpdate_governanceActionDeposit.set(this, void 0);\n        _ProtocolParamUpdate_drepDeposit.set(this, void 0);\n        _ProtocolParamUpdate_drepInactivityPeriod.set(this, void 0);\n        _ProtocolParamUpdate_minFeeRefScriptCostPerByte.set(this, void 0);\n        _ProtocolParamUpdate_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_originalBytes, \"f\"))\n            return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_originalBytes, \"f\");\n        writer.writeStartMap(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_instances, \"m\", _ProtocolParamUpdate_getMapSize).call(this));\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\") !== undefined) {\n            writer.writeInt(0n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\") !== undefined) {\n            writer.writeInt(1n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockBodySize, \"f\") !== undefined) {\n            writer.writeInt(2n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockBodySize, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\") !== undefined) {\n            writer.writeInt(3n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockHeaderSize, \"f\") !== undefined) {\n            writer.writeInt(4n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockHeaderSize, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\") !== undefined) {\n            writer.writeInt(5n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\") !== undefined) {\n            writer.writeInt(6n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxEpoch, \"f\") !== undefined) {\n            writer.writeInt(7n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxEpoch, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_nOpt, \"f\") !== undefined) {\n            writer.writeInt(8n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_nOpt, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\") !== undefined) {\n            writer.writeInt(9n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\") !== undefined) {\n            writer.writeInt(10n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\") !== undefined) {\n            writer.writeInt(11n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\") !== undefined) {\n            writer.writeInt(12n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\") !== undefined) {\n            if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\").length === 0) {\n                writer.writeInt(13n);\n                writer.writeStartArray(1);\n                writer.writeInt(0);\n            }\n            else {\n                writer.writeInt(13n);\n                writer.writeStartArray(2);\n                writer.writeInt(1);\n                writer.writeByteString(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\"), 'hex'));\n            }\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\") !== undefined) {\n            writer.writeInt(14n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\") !== undefined) {\n            writer.writeInt(16n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\") !== undefined) {\n            writer.writeInt(17n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_costModels, \"f\") !== undefined) {\n            writer.writeInt(18n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_costModels, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_executionCosts, \"f\") !== undefined) {\n            writer.writeInt(19n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_executionCosts, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxExUnits, \"f\") !== undefined) {\n            writer.writeInt(20n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxExUnits, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockExUnits, \"f\") !== undefined) {\n            writer.writeInt(21n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockExUnits, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxValueSize, \"f\") !== undefined) {\n            writer.writeInt(22n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxValueSize, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_collateralPercentage, \"f\") !== undefined) {\n            writer.writeInt(23n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_collateralPercentage, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxCollateralInputs, \"f\") !== undefined) {\n            writer.writeInt(24n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxCollateralInputs, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolVotingThresholds, \"f\") !== undefined) {\n            writer.writeInt(25n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolVotingThresholds, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepVotingThresholds, \"f\") !== undefined) {\n            writer.writeInt(26n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepVotingThresholds, \"f\").toCbor(), 'hex'));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minCommitteeSize, \"f\") !== undefined) {\n            writer.writeInt(27n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minCommitteeSize, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\") !== undefined) {\n            writer.writeInt(28n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\") !== undefined) {\n            writer.writeInt(29n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionDeposit, \"f\") !== undefined) {\n            writer.writeInt(30n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionDeposit, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepDeposit, \"f\") !== undefined) {\n            writer.writeInt(31n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepDeposit, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\") !== undefined) {\n            writer.writeInt(32n);\n            writer.writeInt(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\"));\n        }\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\") !== undefined) {\n            writer.writeInt(33n);\n            writer.writeEncodedValue(ProtocolParamUpdate_Buffer.from(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\").toCbor(), 'hex'));\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const params = new ProtocolParamUpdate();\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = reader.readInt();\n            switch (key) {\n                case 0n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeA, reader.readInt(), \"f\");\n                    break;\n                case 1n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeB, reader.readInt(), \"f\");\n                    break;\n                case 2n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockBodySize, Number(reader.readInt()), \"f\");\n                    break;\n                case 3n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxTxSize, Number(reader.readInt()), \"f\");\n                    break;\n                case 4n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockHeaderSize, Number(reader.readInt()), \"f\");\n                    break;\n                case 5n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_keyDeposit, reader.readInt(), \"f\");\n                    break;\n                case 6n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolDeposit, reader.readInt(), \"f\");\n                    break;\n                case 7n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxEpoch, Number(reader.readInt()), \"f\");\n                    break;\n                case 8n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_nOpt, Number(reader.readInt()), \"f\");\n                    break;\n                case 9n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolPledgeInfluence, UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 10n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_expansionRate, UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 11n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_treasuryGrowthRate, UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 12n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_d, UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 13n:\n                    if (reader.readStartArray() === 1) {\n                        reader.readEncodedValue();\n                        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_extraEntropy, '', \"f\");\n                        reader.readEndArray();\n                    }\n                    else {\n                        reader.readEncodedValue();\n                        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_extraEntropy, primitives_HexBlob.fromBytes(reader.readByteString()), \"f\");\n                        reader.readEndArray();\n                    }\n                    break;\n                case 14n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_protocolVersion, ProtocolVersion.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 16n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minPoolCost, reader.readInt(), \"f\");\n                    break;\n                case 17n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_adaPerUtxoByte, reader.readInt(), \"f\");\n                    break;\n                case 18n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_costModels, Costmdls.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 19n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_executionCosts, ExUnitPrices.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 20n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxTxExUnits, ExUnits.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 21n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockExUnits, ExUnits.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 22n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxValueSize, Number(reader.readInt()), \"f\");\n                    break;\n                case 23n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_collateralPercentage, Number(reader.readInt()), \"f\");\n                    break;\n                case 24n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxCollateralInputs, Number(reader.readInt()), \"f\");\n                    break;\n                case 25n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolVotingThresholds, PoolVotingThresholds.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 26n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepVotingThresholds, DrepVotingThresholds.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n                case 27n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minCommitteeSize, Number(reader.readInt()), \"f\");\n                    break;\n                case 28n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_committeeTermLimit, Number(reader.readInt()), \"f\");\n                    break;\n                case 29n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_governanceActionValidityPeriod, Number(reader.readInt()), \"f\");\n                    break;\n                case 30n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_governanceActionDeposit, Number(reader.readInt()), \"f\");\n                    break;\n                case 31n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepDeposit, Number(reader.readInt()), \"f\");\n                    break;\n                case 32n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepInactivityPeriod, Number(reader.readInt()), \"f\");\n                    break;\n                case 33n:\n                    ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                    break;\n            }\n        }\n        reader.readEndMap();\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_originalBytes, cbor, \"f\");\n        return params;\n    }\n    toCore() {\n        const protocolParametersUpdate = {\n            coinsPerUtxoByte: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\")) : undefined,\n            collateralPercentage: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_collateralPercentage, \"f\"),\n            committeeTermLimit: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\") !== undefined ? EpochNo(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\")) : undefined,\n            costModels: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_costModels, \"f\")?.toCore(),\n            dRepDeposit: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepDeposit, \"f\"),\n            dRepInactivityPeriod: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\") !== undefined ? EpochNo(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\")) : undefined,\n            dRepVotingThresholds: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepVotingThresholds, \"f\")?.toCore(),\n            desiredNumberOfPools: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_nOpt, \"f\"),\n            governanceActionDeposit: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionDeposit, \"f\"),\n            governanceActionValidityPeriod: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\") !== undefined ? EpochNo(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\")) : undefined,\n            maxBlockBodySize: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockBodySize, \"f\"),\n            maxBlockHeaderSize: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockHeaderSize, \"f\"),\n            maxCollateralInputs: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxCollateralInputs, \"f\"),\n            maxExecutionUnitsPerBlock: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockExUnits, \"f\")?.toCore(),\n            maxExecutionUnitsPerTransaction: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxExUnits, \"f\")?.toCore(),\n            maxTxSize: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\")) : undefined,\n            maxValueSize: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxValueSize, \"f\"),\n            minCommitteeSize: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minCommitteeSize, \"f\"),\n            minFeeCoefficient: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\")) : undefined,\n            minFeeConstant: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\")) : undefined,\n            minFeeRefScriptCostPerByte: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\")\n                ? ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\").toFloat().toString()\n                : undefined,\n            minPoolCost: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\")) : undefined,\n            monetaryExpansion: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\") ? ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\").toFloat().toString() : undefined,\n            poolDeposit: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\")) : undefined,\n            poolInfluence: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\") ? ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\").toFloat().toString() : undefined,\n            poolRetirementEpochBound: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxEpoch, \"f\"),\n            poolVotingThresholds: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolVotingThresholds, \"f\")?.toCore(),\n            prices: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_executionCosts, \"f\")?.toCore(),\n            stakeKeyDeposit: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\") !== undefined ? Number(ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\")) : undefined,\n            treasuryExpansion: ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\") ? ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\").toFloat().toString() : undefined\n        };\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\"))\n            protocolParametersUpdate.decentralizationParameter = ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\").toFloat().toString();\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\") !== undefined)\n            protocolParametersUpdate.extraEntropy = ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\");\n        if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\"))\n            protocolParametersUpdate.protocolVersion = ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\").toCore();\n        return protocolParametersUpdate;\n    }\n    static fromCore(parametersUpdate) {\n        const params = new ProtocolParamUpdate();\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeA, parametersUpdate.minFeeCoefficient !== undefined ? BigInt(parametersUpdate.minFeeCoefficient) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockBodySize, parametersUpdate.maxBlockBodySize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeB, parametersUpdate.minFeeConstant !== undefined ? BigInt(parametersUpdate.minFeeConstant) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockHeaderSize, parametersUpdate.maxBlockHeaderSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_keyDeposit, parametersUpdate.stakeKeyDeposit !== undefined ? BigInt(parametersUpdate.stakeKeyDeposit) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolDeposit, parametersUpdate.poolDeposit !== undefined && parametersUpdate.poolDeposit !== null\n            ? BigInt(parametersUpdate.poolDeposit)\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxEpoch, parametersUpdate.poolRetirementEpochBound, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_nOpt, parametersUpdate.desiredNumberOfPools, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolPledgeInfluence, parametersUpdate.poolInfluence\n            ? UnitInterval.fromFloat(Number(parametersUpdate.poolInfluence))\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_expansionRate, parametersUpdate.monetaryExpansion\n            ? UnitInterval.fromFloat(Number(parametersUpdate.monetaryExpansion))\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_treasuryGrowthRate, parametersUpdate.treasuryExpansion\n            ? UnitInterval.fromFloat(Number(parametersUpdate.treasuryExpansion))\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minPoolCost, parametersUpdate.minPoolCost !== undefined ? BigInt(parametersUpdate.minPoolCost) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxValueSize, parametersUpdate.maxValueSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxTxSize, parametersUpdate.maxTxSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_collateralPercentage, parametersUpdate.collateralPercentage, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxCollateralInputs, parametersUpdate.maxCollateralInputs, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_costModels, parametersUpdate.costModels ? Costmdls.fromCore(parametersUpdate.costModels) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_executionCosts, parametersUpdate.prices ? ExUnitPrices.fromCore(parametersUpdate.prices) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxTxExUnits, parametersUpdate.maxExecutionUnitsPerTransaction\n            ? ExUnits.fromCore(parametersUpdate.maxExecutionUnitsPerTransaction)\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_maxBlockExUnits, parametersUpdate.maxExecutionUnitsPerBlock\n            ? ExUnits.fromCore(parametersUpdate.maxExecutionUnitsPerBlock)\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_adaPerUtxoByte, parametersUpdate.coinsPerUtxoByte !== undefined ? BigInt(parametersUpdate.coinsPerUtxoByte) : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_poolVotingThresholds, parametersUpdate.poolVotingThresholds\n            ? PoolVotingThresholds.fromCore(parametersUpdate.poolVotingThresholds)\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepVotingThresholds, parametersUpdate.dRepVotingThresholds\n            ? DrepVotingThresholds.fromCore(parametersUpdate.dRepVotingThresholds)\n            : undefined, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minCommitteeSize, parametersUpdate.minCommitteeSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_committeeTermLimit, parametersUpdate.committeeTermLimit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_governanceActionValidityPeriod, parametersUpdate.governanceActionValidityPeriod, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_governanceActionDeposit, parametersUpdate.governanceActionDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepDeposit, parametersUpdate.dRepDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_drepInactivityPeriod, parametersUpdate.dRepInactivityPeriod, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, parametersUpdate.minFeeRefScriptCostPerByte\n            ? UnitInterval.fromFloat(Number(parametersUpdate.minFeeRefScriptCostPerByte))\n            : undefined, \"f\");\n        const { protocolVersion, extraEntropy, decentralizationParameter } = parametersUpdate;\n        if (protocolVersion !== undefined || extraEntropy !== undefined || decentralizationParameter) {\n            ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_d, decentralizationParameter ? UnitInterval.fromFloat(Number(decentralizationParameter)) : undefined, \"f\");\n            ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_protocolVersion, protocolVersion ? ProtocolVersion.fromCore(protocolVersion) : undefined, \"f\");\n            ProtocolParamUpdate_classPrivateFieldSet(params, _ProtocolParamUpdate_extraEntropy, extraEntropy ? primitives_HexBlob(extraEntropy) : undefined, \"f\");\n        }\n        return params;\n    }\n    setMinFeeA(minFeeA) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_minFeeA, minFeeA, \"f\");\n    }\n    minFeeA() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\");\n    }\n    setMinFeeB(minFeeB) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_minFeeB, minFeeB, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    minFeeB() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\");\n    }\n    setMaxBlockBodySize(maxBlockBodySize) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxBlockBodySize, maxBlockBodySize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxBlockBodySize() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockBodySize, \"f\");\n    }\n    setMaxTxSize(maxTxSize) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxTxSize, maxTxSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxTxSize() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\");\n    }\n    setMaxBlockHeaderSize(maxBlockHeaderSize) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxBlockHeaderSize, maxBlockHeaderSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxBlockHeaderSize() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockHeaderSize, \"f\");\n    }\n    setKeyDeposit(keyDeposit) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_keyDeposit, keyDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    keyDeposit() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\");\n    }\n    setPoolDeposit(poolDeposit) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_poolDeposit, poolDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    poolDeposit() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\");\n    }\n    setMaxEpoch(maxEpoch) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxEpoch, maxEpoch, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxEpoch() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxEpoch, \"f\");\n    }\n    setNOpt(nOpt) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_nOpt, nOpt, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    nOpt() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_nOpt, \"f\");\n    }\n    setPoolPledgeInfluence(poolPledgeInfluence) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_poolPledgeInfluence, poolPledgeInfluence, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    poolPledgeInfluence() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\");\n    }\n    setExpansionRate(expansionRate) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_expansionRate, expansionRate, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    expansionRate() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\");\n    }\n    setTreasuryGrowthRate(treasuryGrowthRate) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_treasuryGrowthRate, treasuryGrowthRate, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    treasuryGrowthRate() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\");\n    }\n    setD(d) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_d, d, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    d() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\");\n    }\n    setExtraEntropy(extraEntropy) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_extraEntropy, extraEntropy, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    extraEntropy() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\");\n    }\n    setProtocolVersion(protocolVersion) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_protocolVersion, protocolVersion, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    protocolVersion() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\");\n    }\n    setMinPoolCost(minPoolCost) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_minPoolCost, minPoolCost, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    minPoolCost() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\");\n    }\n    setAdaPerUtxoByte(adaPerUtxoByte) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_adaPerUtxoByte, adaPerUtxoByte, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    adaPerUtxoByte() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\");\n    }\n    setCostModels(costModels) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_costModels, costModels, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    costModels() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_costModels, \"f\");\n    }\n    setExecutionCosts(executionCosts) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_executionCosts, executionCosts, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    executionCosts() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_executionCosts, \"f\");\n    }\n    setMaxTxExUnits(maxTxExUnits) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxTxExUnits, maxTxExUnits, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxTxExUnits() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxExUnits, \"f\");\n    }\n    setMaxBlockExUnits(maxBlockExUnits) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxBlockExUnits, maxBlockExUnits, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxBlockExUnits() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockExUnits, \"f\");\n    }\n    setMaxValueSize(maxValueSize) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxValueSize, maxValueSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxValueSize() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxValueSize, \"f\");\n    }\n    setCollateralPercentage(collateralPercentage) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_collateralPercentage, collateralPercentage, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    collateralPercentage() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_collateralPercentage, \"f\");\n    }\n    setMaxCollateralInputs(maxCollateralInputs) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_maxCollateralInputs, maxCollateralInputs, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    maxCollateralInputs() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxCollateralInputs, \"f\");\n    }\n    setPoolVotingThresholds(pooVotingThresholds) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_poolVotingThresholds, pooVotingThresholds, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    poolVotingThresholds() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolVotingThresholds, \"f\");\n    }\n    setDrepVotingThresholds(drepVotingThresholds) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_drepVotingThresholds, drepVotingThresholds, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    drepVotingThresholds() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepVotingThresholds, \"f\");\n    }\n    setMinCommitteeSize(minCommitteeSize) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_minCommitteeSize, minCommitteeSize, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    minCommitteeSize() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minCommitteeSize, \"f\");\n    }\n    setCommitteeTermLimit(committeeTermLimit) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_committeeTermLimit, committeeTermLimit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    committeeTermLimit() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\");\n    }\n    setGovernanceActionValidityPeriod(governanceActionValidityPeriod) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, governanceActionValidityPeriod, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    governanceActionValidityPeriod() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\");\n    }\n    setGovernanceActionDeposit(governanceActionDeposit) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_governanceActionDeposit, governanceActionDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    governanceActionDeposit() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionDeposit, \"f\");\n    }\n    setDrepDeposit(drepDeposit) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_drepDeposit, drepDeposit, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    drepDeposit() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepDeposit, \"f\");\n    }\n    setDrepInactivityPeriod(drepInactivityPeriod) {\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_drepInactivityPeriod, drepInactivityPeriod, \"f\");\n        ProtocolParamUpdate_classPrivateFieldSet(this, _ProtocolParamUpdate_originalBytes, undefined, \"f\");\n    }\n    drepInactivityPeriod() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\");\n    }\n    minFeeRefScriptCostPerByte() {\n        return ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\");\n    }\n}\n_ProtocolParamUpdate_minFeeA = new WeakMap(), _ProtocolParamUpdate_minFeeB = new WeakMap(), _ProtocolParamUpdate_maxBlockBodySize = new WeakMap(), _ProtocolParamUpdate_maxTxSize = new WeakMap(), _ProtocolParamUpdate_maxBlockHeaderSize = new WeakMap(), _ProtocolParamUpdate_keyDeposit = new WeakMap(), _ProtocolParamUpdate_poolDeposit = new WeakMap(), _ProtocolParamUpdate_maxEpoch = new WeakMap(), _ProtocolParamUpdate_nOpt = new WeakMap(), _ProtocolParamUpdate_poolPledgeInfluence = new WeakMap(), _ProtocolParamUpdate_expansionRate = new WeakMap(), _ProtocolParamUpdate_treasuryGrowthRate = new WeakMap(), _ProtocolParamUpdate_d = new WeakMap(), _ProtocolParamUpdate_extraEntropy = new WeakMap(), _ProtocolParamUpdate_protocolVersion = new WeakMap(), _ProtocolParamUpdate_minPoolCost = new WeakMap(), _ProtocolParamUpdate_adaPerUtxoByte = new WeakMap(), _ProtocolParamUpdate_costModels = new WeakMap(), _ProtocolParamUpdate_executionCosts = new WeakMap(), _ProtocolParamUpdate_maxTxExUnits = new WeakMap(), _ProtocolParamUpdate_maxBlockExUnits = new WeakMap(), _ProtocolParamUpdate_maxValueSize = new WeakMap(), _ProtocolParamUpdate_collateralPercentage = new WeakMap(), _ProtocolParamUpdate_maxCollateralInputs = new WeakMap(), _ProtocolParamUpdate_poolVotingThresholds = new WeakMap(), _ProtocolParamUpdate_drepVotingThresholds = new WeakMap(), _ProtocolParamUpdate_minCommitteeSize = new WeakMap(), _ProtocolParamUpdate_committeeTermLimit = new WeakMap(), _ProtocolParamUpdate_governanceActionValidityPeriod = new WeakMap(), _ProtocolParamUpdate_governanceActionDeposit = new WeakMap(), _ProtocolParamUpdate_drepDeposit = new WeakMap(), _ProtocolParamUpdate_drepInactivityPeriod = new WeakMap(), _ProtocolParamUpdate_minFeeRefScriptCostPerByte = new WeakMap(), _ProtocolParamUpdate_originalBytes = new WeakMap(), _ProtocolParamUpdate_instances = new WeakSet(), _ProtocolParamUpdate_getMapSize = function _ProtocolParamUpdate_getMapSize() {\n    let mapSize = 0;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeA, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeB, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockBodySize, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxSize, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockHeaderSize, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_keyDeposit, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolDeposit, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxEpoch, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_nOpt, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolPledgeInfluence, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_expansionRate, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_treasuryGrowthRate, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_d, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_extraEntropy, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_protocolVersion, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minPoolCost, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_adaPerUtxoByte, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_costModels, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_executionCosts, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxTxExUnits, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxBlockExUnits, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxValueSize, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_collateralPercentage, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_maxCollateralInputs, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_poolVotingThresholds, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepVotingThresholds, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minCommitteeSize, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_committeeTermLimit, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionValidityPeriod, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_governanceActionDeposit, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepDeposit, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_drepInactivityPeriod, \"f\") !== undefined)\n        ++mapSize;\n    if (ProtocolParamUpdate_classPrivateFieldGet(this, _ProtocolParamUpdate_minFeeRefScriptCostPerByte, \"f\") !== undefined)\n        ++mapSize;\n    return mapSize;\n};\n//# sourceMappingURL=ProtocolParamUpdate.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/ParameterChangeAction.js\nvar ParameterChangeAction_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ParameterChangeAction_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ParameterChangeAction_protocolParamUpdate, _ParameterChangeAction_govActionId, _ParameterChangeAction_policyHash, _ParameterChangeAction_originalBytes;\n\n\n\n\n\n\n\nconst ParameterChangeAction_EMBEDDED_GROUP_SIZE = 4;\nclass ParameterChangeAction {\n    constructor(protocolParamUpdate, govActionId, policyHash) {\n        _ParameterChangeAction_protocolParamUpdate.set(this, void 0);\n        _ParameterChangeAction_govActionId.set(this, void 0);\n        _ParameterChangeAction_policyHash.set(this, void 0);\n        _ParameterChangeAction_originalBytes.set(this, undefined);\n        ParameterChangeAction_classPrivateFieldSet(this, _ParameterChangeAction_protocolParamUpdate, protocolParamUpdate, \"f\");\n        ParameterChangeAction_classPrivateFieldSet(this, _ParameterChangeAction_govActionId, govActionId, \"f\");\n        ParameterChangeAction_classPrivateFieldSet(this, _ParameterChangeAction_policyHash, policyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_originalBytes, \"f\"))\n            return ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_originalBytes, \"f\");\n        writer.writeStartArray(ParameterChangeAction_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.ParameterChange);\n        ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_govActionId, \"f\") ? writer.writeEncodedValue(hexToBytes(ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_govActionId, \"f\").toCbor())) : writer.writeNull();\n        writer.writeEncodedValue(hexToBytes(ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_protocolParamUpdate, \"f\").toCbor()));\n        ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_policyHash, \"f\") ? writer.writeByteString(hexToBytes(ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_policyHash, \"f\"))) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== ParameterChangeAction_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${ParameterChangeAction_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.ParameterChange)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.ParameterChange} but got ${kind}`);\n        let govActionId;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            govActionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const parameterUpdate = ProtocolParamUpdate.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        let policyHash;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            policyHash = primitives_HexBlob.fromBytes(reader.readByteString());\n        }\n        reader.readEndArray();\n        const action = new ParameterChangeAction(parameterUpdate, govActionId, policyHash);\n        ParameterChangeAction_classPrivateFieldSet(action, _ParameterChangeAction_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.parameter_change_action,\n            governanceActionId: ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_govActionId, \"f\") ? ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_govActionId, \"f\").toCore() : null,\n            policyHash: ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_policyHash, \"f\") ? ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_policyHash, \"f\") : null,\n            protocolParamUpdate: ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_protocolParamUpdate, \"f\").toCore()\n        };\n    }\n    static fromCore(parameterChangeAction) {\n        return new ParameterChangeAction(ProtocolParamUpdate.fromCore(parameterChangeAction.protocolParamUpdate), parameterChangeAction.governanceActionId !== null\n            ? GovernanceActionId.fromCore(parameterChangeAction.governanceActionId)\n            : undefined, parameterChangeAction.policyHash !== null ? parameterChangeAction.policyHash : undefined);\n    }\n    govActionId() {\n        return ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_govActionId, \"f\");\n    }\n    protocolParamUpdate() {\n        return ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_protocolParamUpdate, \"f\");\n    }\n    policyHash() {\n        return ParameterChangeAction_classPrivateFieldGet(this, _ParameterChangeAction_policyHash, \"f\");\n    }\n}\n_ParameterChangeAction_protocolParamUpdate = new WeakMap(), _ParameterChangeAction_govActionId = new WeakMap(), _ParameterChangeAction_policyHash = new WeakMap(), _ParameterChangeAction_originalBytes = new WeakMap();\n//# sourceMappingURL=ParameterChangeAction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/TreasuryWithdrawalsAction.js\n/* provided dependency */ var TreasuryWithdrawalsAction_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TreasuryWithdrawalsAction_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TreasuryWithdrawalsAction_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TreasuryWithdrawalsAction_withdrawals, _TreasuryWithdrawalsAction_policyHash, _TreasuryWithdrawalsAction_originalBytes;\n\n\n\n\n\n\n\nconst TreasuryWithdrawalsAction_EMBEDDED_GROUP_SIZE = 3;\nclass TreasuryWithdrawalsAction {\n    constructor(withdrawals, policyHash) {\n        _TreasuryWithdrawalsAction_withdrawals.set(this, void 0);\n        _TreasuryWithdrawalsAction_policyHash.set(this, void 0);\n        _TreasuryWithdrawalsAction_originalBytes.set(this, undefined);\n        TreasuryWithdrawalsAction_classPrivateFieldSet(this, _TreasuryWithdrawalsAction_withdrawals, withdrawals, \"f\");\n        TreasuryWithdrawalsAction_classPrivateFieldSet(this, _TreasuryWithdrawalsAction_policyHash, policyHash, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_originalBytes, \"f\"))\n            return TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_originalBytes, \"f\");\n        writer.writeStartArray(TreasuryWithdrawalsAction_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.TreasuryWithdrawals);\n        const sortedCanonically = new Map([...TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_withdrawals, \"f\")].sort((a, b) => (a > b ? 1 : -1)));\n        writer.writeStartMap(sortedCanonically.size);\n        for (const [key, value] of sortedCanonically) {\n            const rewardAddress = RewardAddress.fromAddress(Address.fromBech32(key));\n            if (!rewardAddress) {\n                throw new SerializationError(SerializationFailure.InvalidAddress, `Invalid withdrawal address: ${key}`);\n            }\n            writer.writeByteString(TreasuryWithdrawalsAction_Buffer.from(rewardAddress.toAddress().toBytes(), 'hex'));\n            writer.writeInt(value);\n        }\n        TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_policyHash, \"f\") ? writer.writeByteString(hexToBytes(TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_policyHash, \"f\"))) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== TreasuryWithdrawalsAction_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${TreasuryWithdrawalsAction_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.TreasuryWithdrawals)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.TreasuryWithdrawals} but got ${kind}`);\n        reader.readStartMap();\n        const amounts = new Map();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const account = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString())).toBech32();\n            const amount = reader.readInt();\n            amounts.set(account, amount);\n        }\n        reader.readEndMap();\n        let policyHash;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            policyHash = primitives_HexBlob.fromBytes(reader.readByteString());\n        }\n        reader.readEndArray();\n        const action = new TreasuryWithdrawalsAction(amounts, policyHash);\n        TreasuryWithdrawalsAction_classPrivateFieldSet(action, _TreasuryWithdrawalsAction_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        const withdrawals = new Set([...TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_withdrawals, \"f\").entries()].map((value) => ({\n            coin: value[1],\n            rewardAccount: value[0]\n        })));\n        return {\n            __typename: GovernanceActionType.treasury_withdrawals_action,\n            policyHash: TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_policyHash, \"f\") ? TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_policyHash, \"f\") : null,\n            withdrawals\n        };\n    }\n    static fromCore(treasuryWithdrawalsAction) {\n        return new TreasuryWithdrawalsAction(new Map([...treasuryWithdrawalsAction.withdrawals].map((value) => [value.rewardAccount, value.coin])), treasuryWithdrawalsAction.policyHash !== null ? treasuryWithdrawalsAction.policyHash : undefined);\n    }\n    withdrawals() {\n        return TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_withdrawals, \"f\");\n    }\n    policyHash() {\n        return TreasuryWithdrawalsAction_classPrivateFieldGet(this, _TreasuryWithdrawalsAction_policyHash, \"f\");\n    }\n}\n_TreasuryWithdrawalsAction_withdrawals = new WeakMap(), _TreasuryWithdrawalsAction_policyHash = new WeakMap(), _TreasuryWithdrawalsAction_originalBytes = new WeakMap();\n//# sourceMappingURL=TreasuryWithdrawalsAction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/Credential.js\nvar Credential_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Credential_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Credential_value;\n\n\n\nconst CREDENTIAL_ARRAY_SIZE = 2;\nclass Credential {\n    constructor(value) {\n        _Credential_value.set(this, void 0);\n        Credential_classPrivateFieldSet(this, _Credential_value, value, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        writer.writeStartArray(CREDENTIAL_ARRAY_SIZE);\n        writer.writeInt(Credential_classPrivateFieldGet(this, _Credential_value, \"f\").type);\n        writer.writeByteString(hexToBytes(Credential_classPrivateFieldGet(this, _Credential_value, \"f\").hash));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        if (reader.readStartArray() !== CREDENTIAL_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${CREDENTIAL_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const type = Number(reader.readUInt());\n        const hash = primitives_HexBlob.fromBytes(reader.readByteString());\n        reader.readEndArray();\n        return new Credential({ hash, type });\n    }\n    toCore() {\n        return { ...Credential_classPrivateFieldGet(this, _Credential_value, \"f\") };\n    }\n    static fromCore(credential) {\n        return new Credential({ ...credential });\n    }\n    value() {\n        return { ...Credential_classPrivateFieldGet(this, _Credential_value, \"f\") };\n    }\n}\n_Credential_value = new WeakMap();\n//# sourceMappingURL=Credential.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/UpdateCommittee.js\nvar UpdateCommittee_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar UpdateCommittee_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _UpdateCommittee_govActionId, _UpdateCommittee_membersToBeRemoved, _UpdateCommittee_membersToBeAdded, _UpdateCommittee_newQuorum, _UpdateCommittee_originalBytes;\n\n\n\n\n\n\n\n\nconst UpdateCommittee_EMBEDDED_GROUP_SIZE = 5;\nconst UpdateCommittee_CREDENTIAL_ARRAY_SIZE = 2;\nconst CREDENTIAL_INDEX = 0;\nconst EPOCH_INDEX = 1;\nclass UpdateCommittee {\n    constructor(membersToBeRemoved, membersToBeAdded, newQuorum, govActionId) {\n        _UpdateCommittee_govActionId.set(this, void 0);\n        _UpdateCommittee_membersToBeRemoved.set(this, void 0);\n        _UpdateCommittee_membersToBeAdded.set(this, void 0);\n        _UpdateCommittee_newQuorum.set(this, void 0);\n        _UpdateCommittee_originalBytes.set(this, undefined);\n        UpdateCommittee_classPrivateFieldSet(this, _UpdateCommittee_membersToBeRemoved, membersToBeRemoved, \"f\");\n        UpdateCommittee_classPrivateFieldSet(this, _UpdateCommittee_membersToBeAdded, membersToBeAdded, \"f\");\n        UpdateCommittee_classPrivateFieldSet(this, _UpdateCommittee_newQuorum, newQuorum, \"f\");\n        UpdateCommittee_classPrivateFieldSet(this, _UpdateCommittee_govActionId, govActionId, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_originalBytes, \"f\"))\n            return UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_originalBytes, \"f\");\n        writer.writeStartArray(UpdateCommittee_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(GovernanceActionKind.UpdateCommittee);\n        UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_govActionId, \"f\") ? writer.writeEncodedValue(hexToBytes(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_govActionId, \"f\").toCbor())) : writer.writeNull();\n        writer.writeEncodedValue(hexToBytes(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeRemoved, \"f\").toCbor()));\n        writer.writeStartMap(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeAdded, \"f\").length);\n        for (const entry of UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeAdded, \"f\")) {\n            writer.writeStartArray(UpdateCommittee_CREDENTIAL_ARRAY_SIZE);\n            writer.writeInt(entry[CREDENTIAL_INDEX].type);\n            writer.writeByteString(hexToBytes(entry[CREDENTIAL_INDEX].hash));\n            writer.writeInt(entry[EPOCH_INDEX]);\n        }\n        writer.writeEncodedValue(hexToBytes(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_newQuorum, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== UpdateCommittee_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UpdateCommittee_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        if (kind !== GovernanceActionKind.UpdateCommittee)\n            throw new errors_InvalidArgumentError('cbor', `Expected action kind, expected ${GovernanceActionKind.UpdateCommittee} but got ${kind}`);\n        let govActionId;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n        }\n        else {\n            govActionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const membersToRemove = CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), Credential.fromCbor);\n        reader.readStartMap();\n        const membersToAdd = [];\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            if (reader.readStartArray() !== UpdateCommittee_CREDENTIAL_ARRAY_SIZE)\n                throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UpdateCommittee_CREDENTIAL_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n            const type = Number(reader.readUInt());\n            const hash = primitives_HexBlob.fromBytes(reader.readByteString());\n            reader.readEndArray();\n            const epoch = Number(reader.readUInt());\n            membersToAdd.push([{ hash, type }, epoch]);\n        }\n        reader.readEndMap();\n        const quorumThreshold = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const action = new UpdateCommittee(membersToRemove, membersToAdd, quorumThreshold, govActionId);\n        UpdateCommittee_classPrivateFieldSet(action, _UpdateCommittee_originalBytes, cbor, \"f\");\n        return action;\n    }\n    toCore() {\n        return {\n            __typename: GovernanceActionType.update_committee,\n            governanceActionId: UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_govActionId, \"f\") ? UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_govActionId, \"f\").toCore() : null,\n            membersToBeAdded: new Set(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeAdded, \"f\").map((entry) => ({\n                coldCredential: entry[CREDENTIAL_INDEX],\n                epoch: EpochNo(entry[EPOCH_INDEX])\n            }))),\n            membersToBeRemoved: new Set(UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeRemoved, \"f\").toCore()),\n            newQuorumThreshold: UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_newQuorum, \"f\").toCore()\n        };\n    }\n    static fromCore(updateCommittee) {\n        return new UpdateCommittee(CborSet.fromCore([...updateCommittee.membersToBeRemoved], Credential.fromCore), [...updateCommittee.membersToBeAdded].map((entry) => [entry.coldCredential, entry.epoch]), UnitInterval.fromCore(updateCommittee.newQuorumThreshold), updateCommittee.governanceActionId !== null\n            ? GovernanceActionId.fromCore(updateCommittee.governanceActionId)\n            : undefined);\n    }\n    govActionId() {\n        return UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_govActionId, \"f\");\n    }\n    membersToBeRemoved() {\n        return UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeRemoved, \"f\").toCore();\n    }\n    membersToBeAdded() {\n        return UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_membersToBeAdded, \"f\");\n    }\n    newQuorum() {\n        return UpdateCommittee_classPrivateFieldGet(this, _UpdateCommittee_newQuorum, \"f\");\n    }\n}\n_UpdateCommittee_govActionId = new WeakMap(), _UpdateCommittee_membersToBeRemoved = new WeakMap(), _UpdateCommittee_membersToBeAdded = new WeakMap(), _UpdateCommittee_newQuorum = new WeakMap(), _UpdateCommittee_originalBytes = new WeakMap();\n//# sourceMappingURL=UpdateCommittee.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/ProposalProcedure.js\n/* provided dependency */ var ProposalProcedure_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ProposalProcedure_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar ProposalProcedure_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ProposalProcedure_parameterChangeAction, _ProposalProcedure_hardForkInitiationAction, _ProposalProcedure_treasuryWithdrawalsAction, _ProposalProcedure_noConfidence, _ProposalProcedure_updateCommittee, _ProposalProcedure_newConstitution, _ProposalProcedure_infoAction, _ProposalProcedure_kind, _ProposalProcedure_deposit, _ProposalProcedure_rewardAccount, _ProposalProcedure_anchor, _ProposalProcedure_originalBytes;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst PROCEDURE_ARRAY_SIZE = 4;\nclass ProposalProcedure {\n    constructor() {\n        _ProposalProcedure_parameterChangeAction.set(this, undefined);\n        _ProposalProcedure_hardForkInitiationAction.set(this, undefined);\n        _ProposalProcedure_treasuryWithdrawalsAction.set(this, undefined);\n        _ProposalProcedure_noConfidence.set(this, undefined);\n        _ProposalProcedure_updateCommittee.set(this, undefined);\n        _ProposalProcedure_newConstitution.set(this, undefined);\n        _ProposalProcedure_infoAction.set(this, undefined);\n        _ProposalProcedure_kind.set(this, void 0);\n        _ProposalProcedure_deposit.set(this, void 0);\n        _ProposalProcedure_rewardAccount.set(this, void 0);\n        _ProposalProcedure_anchor.set(this, void 0);\n        _ProposalProcedure_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_originalBytes, \"f\"))\n            return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_originalBytes, \"f\");\n        let actionCbor;\n        switch (ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_kind, \"f\")) {\n            case GovernanceActionKind.ParameterChange:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_parameterChangeAction, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.HardForkInitiation:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_hardForkInitiationAction, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.TreasuryWithdrawals:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_treasuryWithdrawalsAction, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.NoConfidence:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_noConfidence, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.UpdateCommittee:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_updateCommittee, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.NewConstitution:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_newConstitution, \"f\").toCbor();\n                break;\n            case GovernanceActionKind.Info:\n                actionCbor = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_infoAction, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_kind, \"f\")}`);\n        }\n        writer.writeStartArray(PROCEDURE_ARRAY_SIZE);\n        writer.writeInt(ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_deposit, \"f\"));\n        const rewardAddress = RewardAddress.fromAddress(Address.fromBech32(ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_rewardAccount, \"f\")));\n        if (!rewardAddress) {\n            throw new SerializationError(SerializationFailure.InvalidAddress, `Invalid withdrawal address: ${ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_rewardAccount, \"f\")}`);\n        }\n        writer.writeByteString(ProposalProcedure_Buffer.from(rewardAddress.toAddress().toBytes(), 'hex'));\n        writer.writeEncodedValue(hexToBytes(actionCbor));\n        writer.writeEncodedValue(hexToBytes(ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_anchor, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        let proposalProcedure;\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const deposit = reader.readInt();\n        const rewardAccount = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString())).toBech32();\n        const actionCbor = primitives_HexBlob.fromBytes(reader.readEncodedValue());\n        const anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const actionReader = new CborReader(actionCbor);\n        actionReader.readStartArray();\n        let action;\n        const kind = Number(actionReader.readInt());\n        switch (kind) {\n            case GovernanceActionKind.ParameterChange:\n                action = ParameterChangeAction.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newParameterChangeAction(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.HardForkInitiation:\n                action = HardForkInitiationAction.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newHardForkInitiationAction(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.TreasuryWithdrawals:\n                action = TreasuryWithdrawalsAction.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newTreasuryWithdrawalsAction(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.NoConfidence:\n                action = NoConfidence.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newNoConfidence(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.UpdateCommittee:\n                action = UpdateCommittee.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newUpdateCommittee(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.NewConstitution:\n                action = NewConstitution.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newNewConstitution(deposit, rewardAccount, anchor, action);\n                break;\n            case GovernanceActionKind.Info:\n                action = InfoAction.fromCbor(actionCbor);\n                proposalProcedure = ProposalProcedure.newInfoAction(deposit, rewardAccount, anchor, action);\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${kind}`);\n        }\n        ProposalProcedure_classPrivateFieldSet(proposalProcedure, _ProposalProcedure_originalBytes, cbor, \"f\");\n        return proposalProcedure;\n    }\n    toCore() {\n        let actionCore;\n        switch (ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_kind, \"f\")) {\n            case GovernanceActionKind.ParameterChange:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_parameterChangeAction, \"f\").toCore();\n                break;\n            case GovernanceActionKind.HardForkInitiation:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_hardForkInitiationAction, \"f\").toCore();\n                break;\n            case GovernanceActionKind.TreasuryWithdrawals:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_treasuryWithdrawalsAction, \"f\").toCore();\n                break;\n            case GovernanceActionKind.NoConfidence:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_noConfidence, \"f\").toCore();\n                break;\n            case GovernanceActionKind.UpdateCommittee:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_updateCommittee, \"f\").toCore();\n                break;\n            case GovernanceActionKind.NewConstitution:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_newConstitution, \"f\").toCore();\n                break;\n            case GovernanceActionKind.Info:\n                actionCore = ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_infoAction, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_kind, \"f\")}`);\n        }\n        return {\n            anchor: ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_anchor, \"f\").toCore(),\n            deposit: ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_deposit, \"f\"),\n            governanceAction: actionCore,\n            rewardAccount: ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_rewardAccount, \"f\")\n        };\n    }\n    static fromCore(proposalProcedure) {\n        let action;\n        let procedure;\n        const anchor = Anchor.fromCore(proposalProcedure.anchor);\n        switch (proposalProcedure.governanceAction.__typename) {\n            case GovernanceActionType.parameter_change_action:\n                action = ParameterChangeAction.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newParameterChangeAction(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.hard_fork_initiation_action:\n                action = HardForkInitiationAction.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newHardForkInitiationAction(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.treasury_withdrawals_action:\n                action = TreasuryWithdrawalsAction.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newTreasuryWithdrawalsAction(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.no_confidence:\n                action = NoConfidence.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newNoConfidence(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.update_committee:\n                action = UpdateCommittee.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newUpdateCommittee(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.new_constitution:\n                action = NewConstitution.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newNewConstitution(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            case GovernanceActionType.info_action:\n                action = InfoAction.fromCore(proposalProcedure.governanceAction);\n                procedure = ProposalProcedure.newInfoAction(proposalProcedure.deposit, proposalProcedure.rewardAccount, anchor, action);\n                break;\n            default:\n                throw new errors_InvalidStateError('Unexpected ProposalProcedure type');\n        }\n        return procedure;\n    }\n    static newParameterChangeAction(deposit, rewardAccount, anchor, parameterChangeAction) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.ParameterChange, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_parameterChangeAction, parameterChangeAction, \"f\");\n        return proposal;\n    }\n    static newHardForkInitiationAction(deposit, rewardAccount, anchor, hardForkInitiationAction) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.HardForkInitiation, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_hardForkInitiationAction, hardForkInitiationAction, \"f\");\n        return proposal;\n    }\n    static newTreasuryWithdrawalsAction(deposit, rewardAccount, anchor, treasuryWithdrawalsAction) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.TreasuryWithdrawals, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_treasuryWithdrawalsAction, treasuryWithdrawalsAction, \"f\");\n        return proposal;\n    }\n    static newNoConfidence(deposit, rewardAccount, anchor, noConfidence) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.NoConfidence, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_noConfidence, noConfidence, \"f\");\n        return proposal;\n    }\n    static newUpdateCommittee(deposit, rewardAccount, anchor, updateCommittee) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.UpdateCommittee, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_updateCommittee, updateCommittee, \"f\");\n        return proposal;\n    }\n    static newNewConstitution(deposit, rewardAccount, anchor, newConstitution) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.NewConstitution, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_newConstitution, newConstitution, \"f\");\n        return proposal;\n    }\n    static newInfoAction(deposit, rewardAccount, anchor, infoAction) {\n        const proposal = new ProposalProcedure();\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_kind, GovernanceActionKind.Info, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_deposit, deposit, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_rewardAccount, rewardAccount, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_anchor, anchor, \"f\");\n        ProposalProcedure_classPrivateFieldSet(proposal, _ProposalProcedure_infoAction, infoAction, \"f\");\n        return proposal;\n    }\n    kind() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_kind, \"f\");\n    }\n    deposit() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_deposit, \"f\");\n    }\n    rewardAccount() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_rewardAccount, \"f\");\n    }\n    anchor() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_anchor, \"f\");\n    }\n    getParameterChangeAction() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_parameterChangeAction, \"f\");\n    }\n    getHardForkInitiationAction() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_hardForkInitiationAction, \"f\");\n    }\n    getTreasuryWithdrawalsAction() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_treasuryWithdrawalsAction, \"f\");\n    }\n    getNoConfidence() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_noConfidence, \"f\");\n    }\n    getUpdateCommittee() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_updateCommittee, \"f\");\n    }\n    getNewConstitution() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_newConstitution, \"f\");\n    }\n    getInfoAction() {\n        return ProposalProcedure_classPrivateFieldGet(this, _ProposalProcedure_infoAction, \"f\");\n    }\n}\n_ProposalProcedure_parameterChangeAction = new WeakMap(), _ProposalProcedure_hardForkInitiationAction = new WeakMap(), _ProposalProcedure_treasuryWithdrawalsAction = new WeakMap(), _ProposalProcedure_noConfidence = new WeakMap(), _ProposalProcedure_updateCommittee = new WeakMap(), _ProposalProcedure_newConstitution = new WeakMap(), _ProposalProcedure_infoAction = new WeakMap(), _ProposalProcedure_kind = new WeakMap(), _ProposalProcedure_deposit = new WeakMap(), _ProposalProcedure_rewardAccount = new WeakMap(), _ProposalProcedure_anchor = new WeakMap(), _ProposalProcedure_originalBytes = new WeakMap();\n//# sourceMappingURL=ProposalProcedure.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/TransactionInput.js\n/* provided dependency */ var TransactionInput_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TransactionInput_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TransactionInput_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TransactionInput_id, _TransactionInput_index, _TransactionInput_originalBytes;\n\n\nconst TRANSACTION_INPUT_ARRAY_SIZE = 2;\nclass TransactionInput {\n    constructor(id, index) {\n        _TransactionInput_id.set(this, void 0);\n        _TransactionInput_index.set(this, void 0);\n        _TransactionInput_originalBytes.set(this, undefined);\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_id, id, \"f\");\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_index, index, \"f\");\n    }\n    toCbor() {\n        if (TransactionInput_classPrivateFieldGet(this, _TransactionInput_originalBytes, \"f\"))\n            return TransactionInput_classPrivateFieldGet(this, _TransactionInput_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(TRANSACTION_INPUT_ARRAY_SIZE);\n        writer.writeByteString(TransactionInput_Buffer.from(TransactionInput_classPrivateFieldGet(this, _TransactionInput_id, \"f\"), 'hex'));\n        writer.writeInt(TransactionInput_classPrivateFieldGet(this, _TransactionInput_index, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== TRANSACTION_INPUT_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${TRANSACTION_INPUT_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const txId = reader.readByteString();\n        const index = reader.readInt();\n        const input = new TransactionInput(primitives_HexBlob.fromBytes(txId), index);\n        TransactionInput_classPrivateFieldSet(input, _TransactionInput_originalBytes, cbor, \"f\");\n        return input;\n    }\n    toCore() {\n        return {\n            index: Number(TransactionInput_classPrivateFieldGet(this, _TransactionInput_index, \"f\")),\n            txId: TransactionInput_classPrivateFieldGet(this, _TransactionInput_id, \"f\")\n        };\n    }\n    static fromCore(coreTransactionInput) {\n        return new TransactionInput(coreTransactionInput.txId, BigInt(coreTransactionInput.index));\n    }\n    transactionId() {\n        return TransactionInput_classPrivateFieldGet(this, _TransactionInput_id, \"f\");\n    }\n    setTransactionId(id) {\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_id, id, \"f\");\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_originalBytes, undefined, \"f\");\n    }\n    index() {\n        return TransactionInput_classPrivateFieldGet(this, _TransactionInput_index, \"f\");\n    }\n    setIndex(index) {\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_index, index, \"f\");\n        TransactionInput_classPrivateFieldSet(this, _TransactionInput_originalBytes, undefined, \"f\");\n    }\n}\n_TransactionInput_id = new WeakMap(), _TransactionInput_index = new WeakMap(), _TransactionInput_originalBytes = new WeakMap();\n//# sourceMappingURL=TransactionInput.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/PlutusList.js\nvar PlutusList_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _PlutusList_array;\n\n\n\n\nclass PlutusList {\n    constructor() {\n        _PlutusList_array.set(this, new Array());\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        const shouldUseIndefinite = PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").length > 0;\n        if (shouldUseIndefinite) {\n            writer.writeStartArray();\n        }\n        else {\n            writer.writeStartArray(PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").length);\n        }\n        for (const elem of PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(elem.toCbor()));\n        }\n        if (shouldUseIndefinite)\n            writer.writeEndArray();\n        return primitives_HexBlob.fromBytes(writer.encode());\n    }\n    static fromCbor(cbor) {\n        const list = new PlutusList();\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        while (reader.peekState() !== CborReaderState.EndArray) {\n            list.add(PlutusData.fromCbor(bytesToHex(reader.readEncodedValue())));\n        }\n        reader.readEndArray();\n        return list;\n    }\n    getLength() {\n        return PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").length;\n    }\n    get(index) {\n        return PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\")[index];\n    }\n    add(elem) {\n        PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").push(elem);\n    }\n    equals(other) {\n        if (PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").length !== PlutusList_classPrivateFieldGet(other, _PlutusList_array, \"f\").length)\n            return false;\n        for (let i = 0; i < PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\").length; ++i) {\n            if (!PlutusList_classPrivateFieldGet(this, _PlutusList_array, \"f\")[i].equals(PlutusList_classPrivateFieldGet(other, _PlutusList_array, \"f\")[i]))\n                return false;\n        }\n        return true;\n    }\n}\n_PlutusList_array = new WeakMap();\n//# sourceMappingURL=PlutusList.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/ConstrPlutusData.js\nvar ConstrPlutusData_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ConstrPlutusData_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ConstrPlutusData_alternative, _ConstrPlutusData_data;\n\n\n\n\nconst GENERAL_FORM_TAG = 102n;\nconst ALTERNATIVE_TAG_OFFSET = 7n;\nclass ConstrPlutusData {\n    constructor(alternative, data) {\n        _ConstrPlutusData_alternative.set(this, 0n);\n        _ConstrPlutusData_data.set(this, new PlutusList());\n        ConstrPlutusData_classPrivateFieldSet(this, _ConstrPlutusData_alternative, alternative, \"f\");\n        ConstrPlutusData_classPrivateFieldSet(this, _ConstrPlutusData_data, data, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        const compactTag = ConstrPlutusData.alternativeToCompactCborTag(ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_alternative, \"f\"));\n        writer.writeTag(Number(compactTag));\n        if (compactTag !== GENERAL_FORM_TAG) {\n            writer.writeEncodedValue(hexToBytes(ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_data, \"f\").toCbor()));\n        }\n        else {\n            writer.writeStartArray(2);\n            writer.writeInt(ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_alternative, \"f\"));\n            writer.writeEncodedValue(hexToBytes(ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_data, \"f\").toCbor()));\n        }\n        return primitives_HexBlob.fromBytes(writer.encode());\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const tag = reader.readTag();\n        if (tag === Number(GENERAL_FORM_TAG)) {\n            reader.readStartArray();\n            const alternative = reader.readInt();\n            const data = reader.readEncodedValue();\n            const plutusList = PlutusList.fromCbor(primitives_HexBlob.fromBytes(data));\n            reader.readEndArray();\n            return new ConstrPlutusData(alternative, plutusList);\n        }\n        const alternative = ConstrPlutusData.compactCborTagToAlternative(BigInt(tag));\n        const data = reader.readEncodedValue();\n        const plutusList = PlutusList.fromCbor(primitives_HexBlob.fromBytes(data));\n        return new ConstrPlutusData(alternative, plutusList);\n    }\n    getAlternative() {\n        return ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_alternative, \"f\");\n    }\n    getData() {\n        return ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_data, \"f\");\n    }\n    equals(other) {\n        if (ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_alternative, \"f\") !== ConstrPlutusData_classPrivateFieldGet(other, _ConstrPlutusData_alternative, \"f\"))\n            return false;\n        return ConstrPlutusData_classPrivateFieldGet(this, _ConstrPlutusData_data, \"f\").equals(ConstrPlutusData_classPrivateFieldGet(other, _ConstrPlutusData_data, \"f\"));\n    }\n    static compactCborTagToAlternative(tag) {\n        if (tag >= 121n && tag <= 127)\n            return tag - 121n;\n        if (tag >= 1280n && tag <= 1400)\n            return tag - 1280n + ALTERNATIVE_TAG_OFFSET;\n        return GENERAL_FORM_TAG;\n    }\n    static alternativeToCompactCborTag(alternative) {\n        if (alternative <= 6n)\n            return 121n + alternative;\n        if (alternative >= 7n && alternative <= 127n)\n            return 1280n - ALTERNATIVE_TAG_OFFSET + alternative;\n        return GENERAL_FORM_TAG;\n    }\n}\n_ConstrPlutusData_alternative = new WeakMap(), _ConstrPlutusData_data = new WeakMap();\n//# sourceMappingURL=ConstrPlutusData.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/PlutusDataKind.js\nvar PlutusDataKind;\n(function (PlutusDataKind) {\n    PlutusDataKind[PlutusDataKind[\"ConstrPlutusData\"] = 0] = \"ConstrPlutusData\";\n    PlutusDataKind[PlutusDataKind[\"Map\"] = 1] = \"Map\";\n    PlutusDataKind[PlutusDataKind[\"List\"] = 2] = \"List\";\n    PlutusDataKind[PlutusDataKind[\"Integer\"] = 3] = \"Integer\";\n    PlutusDataKind[PlutusDataKind[\"Bytes\"] = 4] = \"Bytes\";\n})(PlutusDataKind || (PlutusDataKind = {}));\n//# sourceMappingURL=PlutusDataKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/PlutusMap.js\nvar PlutusMap_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar PlutusMap_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _PlutusMap_map, _PlutusMap_useIndefiniteEncoding;\n\n\n\n\n\nclass PlutusMap {\n    constructor() {\n        _PlutusMap_map.set(this, new Map());\n        _PlutusMap_useIndefiniteEncoding.set(this, false);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (PlutusMap_classPrivateFieldGet(this, _PlutusMap_useIndefiniteEncoding, \"f\")) {\n            writer.writeStartMap();\n        }\n        else {\n            writer.writeStartMap(PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").size);\n        }\n        for (const [key, value] of PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").entries()) {\n            writer.writeEncodedValue(hexToBytes(key.toCbor()));\n            writer.writeEncodedValue(hexToBytes(value.toCbor()));\n        }\n        if (PlutusMap_classPrivateFieldGet(this, _PlutusMap_useIndefiniteEncoding, \"f\"))\n            writer.writeEndMap();\n        return primitives_HexBlob.fromBytes(writer.encode());\n    }\n    static fromCbor(cbor) {\n        const map = new PlutusMap();\n        const reader = new CborReader(cbor);\n        const size = reader.readStartMap();\n        if (size === null)\n            PlutusMap_classPrivateFieldSet(map, _PlutusMap_useIndefiniteEncoding, true, \"f\");\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = PlutusData.fromCbor(bytesToHex(reader.readEncodedValue()));\n            const value = PlutusData.fromCbor(bytesToHex(reader.readEncodedValue()));\n            map.insert(key, value);\n        }\n        reader.readEndMap();\n        return map;\n    }\n    getLength() {\n        return PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").size;\n    }\n    insert(key, value) {\n        PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").set(key, value);\n    }\n    get(key) {\n        if (!PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\"))\n            return undefined;\n        const element = [...PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").entries()].find((entry) => entry[0].equals(key));\n        if (!element)\n            return undefined;\n        return element[1];\n    }\n    getKeys() {\n        const list = new PlutusList();\n        for (const elem of PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").keys()) {\n            list.add(elem);\n        }\n        return list;\n    }\n    equals(other) {\n        if (PlutusMap_classPrivateFieldGet(this, _PlutusMap_useIndefiniteEncoding, \"f\") !== PlutusMap_classPrivateFieldGet(other, _PlutusMap_useIndefiniteEncoding, \"f\"))\n            return false;\n        if (PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").size !== PlutusMap_classPrivateFieldGet(other, _PlutusMap_map, \"f\").size)\n            return false;\n        const thisEntries = [...PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").entries()];\n        const otherEntries = [...PlutusMap_classPrivateFieldGet(other, _PlutusMap_map, \"f\").entries()];\n        for (let i = 0; i < PlutusMap_classPrivateFieldGet(this, _PlutusMap_map, \"f\").size; ++i) {\n            if (!thisEntries[i][0].equals(otherEntries[i][0]))\n                return false;\n            if (!thisEntries[i][1].equals(otherEntries[i][1]))\n                return false;\n        }\n        return true;\n    }\n}\n_PlutusMap_map = new WeakMap(), _PlutusMap_useIndefiniteEncoding = new WeakMap();\n//# sourceMappingURL=PlutusMap.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/PlutusData.js\n/* provided dependency */ var PlutusData_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar PlutusData_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar PlutusData_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _PlutusData_map, _PlutusData_list, _PlutusData_integer, _PlutusData_bytes, _PlutusData_constr, _PlutusData_kind, _PlutusData_originalBytes;\n\n\n\n\n\n\n\n\n\n\nconst PlutusData_MAX_WORD64 = 18446744073709551615n;\nconst INDEFINITE_BYTE_STRING = new Uint8Array([95]);\nconst MAX_BYTE_STRING_CHUNK_SIZE = 64;\nconst PlutusData_HASH_LENGTH_IN_BYTES = 32;\nconst PlutusData_MINUS_ONE = BigInt(-1);\nclass PlutusData {\n    constructor() {\n        _PlutusData_map.set(this, undefined);\n        _PlutusData_list.set(this, undefined);\n        _PlutusData_integer.set(this, undefined);\n        _PlutusData_bytes.set(this, undefined);\n        _PlutusData_constr.set(this, undefined);\n        _PlutusData_kind.set(this, PlutusDataKind.ConstrPlutusData);\n        _PlutusData_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (PlutusData_classPrivateFieldGet(this, _PlutusData_originalBytes, \"f\"))\n            return PlutusData_classPrivateFieldGet(this, _PlutusData_originalBytes, \"f\");\n        let cbor;\n        switch (PlutusData_classPrivateFieldGet(this, _PlutusData_kind, \"f\")) {\n            case PlutusDataKind.ConstrPlutusData: {\n                cbor = PlutusData_classPrivateFieldGet(this, _PlutusData_constr, \"f\").toCbor();\n                break;\n            }\n            case PlutusDataKind.Map: {\n                cbor = PlutusData_classPrivateFieldGet(this, _PlutusData_map, \"f\").toCbor();\n                break;\n            }\n            case PlutusDataKind.List: {\n                cbor = PlutusData_classPrivateFieldGet(this, _PlutusData_list, \"f\").toCbor();\n                break;\n            }\n            case PlutusDataKind.Bytes: {\n                const writer = new CborWriter();\n                if (PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\").length <= MAX_BYTE_STRING_CHUNK_SIZE) {\n                    writer.writeByteString(PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\"));\n                }\n                else {\n                    writer.writeEncodedValue(INDEFINITE_BYTE_STRING);\n                    for (let i = 0; i < PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\").length; i += MAX_BYTE_STRING_CHUNK_SIZE) {\n                        const chunk = PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\").slice(i, i + MAX_BYTE_STRING_CHUNK_SIZE);\n                        writer.writeByteString(chunk);\n                    }\n                    writer.writeEndArray();\n                }\n                cbor = bytesToHex(writer.encode());\n                break;\n            }\n            case PlutusDataKind.Integer: {\n                const writer = new CborWriter();\n                if ((PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") >= 0 && PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") <= PlutusData_MAX_WORD64) ||\n                    (PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") < 0 && PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") >= -1n - PlutusData_MAX_WORD64)) {\n                    writer.writeInt(PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\"));\n                }\n                else {\n                    const serializedBigint = PlutusData.bigintToBuffer(PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\"));\n                    writer.writeTag(PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") < 0 ? CborTag.NegativeBigNum : CborTag.UnsignedBigNum);\n                    if (serializedBigint.length <= MAX_BYTE_STRING_CHUNK_SIZE) {\n                        writer.writeByteString(serializedBigint);\n                    }\n                    else {\n                        writer.writeEncodedValue(INDEFINITE_BYTE_STRING);\n                        for (let i = 0; i < serializedBigint.length; i += MAX_BYTE_STRING_CHUNK_SIZE) {\n                            const chunk = serializedBigint.slice(i, i + MAX_BYTE_STRING_CHUNK_SIZE);\n                            writer.writeByteString(chunk);\n                        }\n                        writer.writeEndArray();\n                    }\n                }\n                cbor = bytesToHex(writer.encode());\n                break;\n            }\n            default:\n                throw new Error('Unsupported PlutusData kind');\n        }\n        return cbor;\n    }\n    static fromCbor(cbor) {\n        const data = new PlutusData();\n        const reader = new CborReader(cbor);\n        const peekTokenType = reader.peekState();\n        switch (peekTokenType) {\n            case CborReaderState.Tag: {\n                const tag = reader.peekTag();\n                switch (tag) {\n                    case CborTag.UnsignedBigNum: {\n                        reader.readTag();\n                        const bytes = reader.readByteString();\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_integer, PlutusData.bufferToBigint(bytes), \"f\");\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Integer, \"f\");\n                        break;\n                    }\n                    case CborTag.NegativeBigNum: {\n                        reader.readTag();\n                        const bytes = reader.readByteString();\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_integer, PlutusData.bufferToBigint(bytes) * -1n, \"f\");\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Integer, \"f\");\n                        break;\n                    }\n                    default: {\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_constr, ConstrPlutusData.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.ConstrPlutusData, \"f\");\n                    }\n                }\n                break;\n            }\n            case CborReaderState.NegativeInteger:\n            case CborReaderState.UnsignedInteger: {\n                PlutusData_classPrivateFieldSet(data, _PlutusData_integer, reader.readInt(), \"f\");\n                PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Integer, \"f\");\n                break;\n            }\n            case CborReaderState.StartIndefiniteLengthByteString:\n            case CborReaderState.ByteString: {\n                PlutusData_classPrivateFieldSet(data, _PlutusData_bytes, reader.readByteString(), \"f\");\n                PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Bytes, \"f\");\n                break;\n            }\n            case CborReaderState.StartArray: {\n                PlutusData_classPrivateFieldSet(data, _PlutusData_list, PlutusList.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.List, \"f\");\n                break;\n            }\n            case CborReaderState.StartMap: {\n                PlutusData_classPrivateFieldSet(data, _PlutusData_map, PlutusMap.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())), \"f\");\n                PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Map, \"f\");\n                break;\n            }\n            default: {\n                throw new Error('Invalid Plutus Data');\n            }\n        }\n        PlutusData_classPrivateFieldSet(data, _PlutusData_originalBytes, cbor, \"f\");\n        return data;\n    }\n    toCore() {\n        switch (PlutusData_classPrivateFieldGet(this, _PlutusData_kind, \"f\")) {\n            case PlutusDataKind.Bytes:\n                return PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\");\n            case PlutusDataKind.ConstrPlutusData: {\n                const constrPlutusData = PlutusData_classPrivateFieldGet(this, _PlutusData_constr, \"f\");\n                return {\n                    cbor: this.toCbor(),\n                    constructor: constrPlutusData.getAlternative(),\n                    fields: PlutusData.mapToCorePlutusList(constrPlutusData.getData())\n                };\n            }\n            case PlutusDataKind.Integer:\n                return PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\");\n            case PlutusDataKind.List:\n                return PlutusData.mapToCorePlutusList(PlutusData_classPrivateFieldGet(this, _PlutusData_list, \"f\"));\n            case PlutusDataKind.Map: {\n                const plutusMap = PlutusData_classPrivateFieldGet(this, _PlutusData_map, \"f\");\n                const coreMap = new Map();\n                const keys = plutusMap.getKeys();\n                for (let i = 0; i < keys.getLength(); i++) {\n                    const key = keys.get(i);\n                    coreMap.set(key.toCore(), plutusMap.get(key).toCore());\n                }\n                return { cbor: this.toCbor(), data: coreMap };\n            }\n            default:\n                throw new NotImplementedError(`PlutusData mapping for kind ${PlutusData_classPrivateFieldGet(this, _PlutusData_kind, \"f\")}`);\n        }\n    }\n    hash() {\n        const hash = blake2b(PlutusData_HASH_LENGTH_IN_BYTES).update(PlutusData_Buffer.from(this.toCbor(), 'hex')).digest();\n        return Hash32ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n    static fromCore(data) {\n        if (isPlutusBoundedBytes(data)) {\n            return PlutusData.newBytes(data);\n        }\n        else if (isPlutusBigInt(data)) {\n            return PlutusData.newInteger(data);\n        }\n        if (data.cbor)\n            return PlutusData.fromCbor(data.cbor);\n        if (isPlutusList(data)) {\n            return PlutusData.newList(PlutusData.mapToPlutusList(data.items));\n        }\n        else if (isPlutusMap(data)) {\n            const plutusMap = new PlutusMap();\n            for (const [key, val] of data.data) {\n                plutusMap.insert(PlutusData.fromCore(key), PlutusData.fromCore(val));\n            }\n            return PlutusData.newMap(plutusMap);\n        }\n        else if (isConstrPlutusData(data)) {\n            const alternative = data.constructor;\n            const constrPlutusData = new ConstrPlutusData(alternative, PlutusData.mapToPlutusList(data.fields.items));\n            return PlutusData.newConstrPlutusData(constrPlutusData);\n        }\n        throw new NotImplementedError('PlutusData type not implemented');\n    }\n    static newConstrPlutusData(constrPlutusData) {\n        const data = new PlutusData();\n        PlutusData_classPrivateFieldSet(data, _PlutusData_constr, constrPlutusData, \"f\");\n        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.ConstrPlutusData, \"f\");\n        return data;\n    }\n    static newMap(map) {\n        const data = new PlutusData();\n        PlutusData_classPrivateFieldSet(data, _PlutusData_map, map, \"f\");\n        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Map, \"f\");\n        return data;\n    }\n    static newList(list) {\n        const data = new PlutusData();\n        PlutusData_classPrivateFieldSet(data, _PlutusData_list, list, \"f\");\n        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.List, \"f\");\n        return data;\n    }\n    static newInteger(integer) {\n        const data = new PlutusData();\n        PlutusData_classPrivateFieldSet(data, _PlutusData_integer, integer, \"f\");\n        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Integer, \"f\");\n        return data;\n    }\n    static newBytes(bytes) {\n        const data = new PlutusData();\n        PlutusData_classPrivateFieldSet(data, _PlutusData_bytes, bytes, \"f\");\n        PlutusData_classPrivateFieldSet(data, _PlutusData_kind, PlutusDataKind.Bytes, \"f\");\n        return data;\n    }\n    getKind() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_kind, \"f\");\n    }\n    asConstrPlutusData() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_constr, \"f\");\n    }\n    asMap() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_map, \"f\");\n    }\n    asList() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_list, \"f\");\n    }\n    asInteger() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\");\n    }\n    asBoundedBytes() {\n        return PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\");\n    }\n    equals(other) {\n        switch (PlutusData_classPrivateFieldGet(this, _PlutusData_kind, \"f\")) {\n            case PlutusDataKind.Bytes:\n                if (PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\") && PlutusData_classPrivateFieldGet(other, _PlutusData_bytes, \"f\")) {\n                    return (PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\").length === PlutusData_classPrivateFieldGet(other, _PlutusData_bytes, \"f\").length &&\n                        PlutusData_classPrivateFieldGet(this, _PlutusData_bytes, \"f\").every((value, index) => value === PlutusData_classPrivateFieldGet(other, _PlutusData_bytes, \"f\")[index]));\n                }\n                return false;\n            case PlutusDataKind.Integer:\n                return PlutusData_classPrivateFieldGet(this, _PlutusData_integer, \"f\") === PlutusData_classPrivateFieldGet(other, _PlutusData_integer, \"f\");\n            case PlutusDataKind.ConstrPlutusData:\n                if (PlutusData_classPrivateFieldGet(this, _PlutusData_constr, \"f\") && PlutusData_classPrivateFieldGet(other, _PlutusData_constr, \"f\")) {\n                    return PlutusData_classPrivateFieldGet(this, _PlutusData_constr, \"f\").equals(PlutusData_classPrivateFieldGet(other, _PlutusData_constr, \"f\"));\n                }\n                return false;\n            case PlutusDataKind.List:\n                if (PlutusData_classPrivateFieldGet(this, _PlutusData_list, \"f\") && PlutusData_classPrivateFieldGet(other, _PlutusData_list, \"f\")) {\n                    return PlutusData_classPrivateFieldGet(this, _PlutusData_list, \"f\").equals(PlutusData_classPrivateFieldGet(other, _PlutusData_list, \"f\"));\n                }\n                return false;\n            case PlutusDataKind.Map:\n                if (PlutusData_classPrivateFieldGet(this, _PlutusData_map, \"f\") && PlutusData_classPrivateFieldGet(other, _PlutusData_map, \"f\")) {\n                    return PlutusData_classPrivateFieldGet(this, _PlutusData_map, \"f\").equals(PlutusData_classPrivateFieldGet(other, _PlutusData_map, \"f\"));\n                }\n                return false;\n            default:\n                return false;\n        }\n    }\n    static mapToPlutusList(list) {\n        const plutusList = new PlutusList();\n        for (const listItem of list) {\n            plutusList.add(PlutusData.fromCore(listItem));\n        }\n        return plutusList;\n    }\n    static mapToCorePlutusList(list) {\n        const items = [];\n        for (let i = 0; i < list.getLength(); i++) {\n            const element = list.get(i);\n            items.push(element.toCore());\n        }\n        return { cbor: list.toCbor(), items };\n    }\n    static bufferToBigint(buffer) {\n        let ret = 0n;\n        for (const i of buffer.values()) {\n            const bi = BigInt(i);\n            ret = (ret << 8n) + bi;\n        }\n        return ret;\n    }\n    static bigintToBuffer(value) {\n        if (value < 0) {\n            value = -value + PlutusData_MINUS_ONE;\n        }\n        let str = value.toString(16);\n        if (str.length % 2) {\n            str = `0${str}`;\n        }\n        return PlutusData_Buffer.from(str, 'hex');\n    }\n}\n_PlutusData_map = new WeakMap(), _PlutusData_list = new WeakMap(), _PlutusData_integer = new WeakMap(), _PlutusData_bytes = new WeakMap(), _PlutusData_constr = new WeakMap(), _PlutusData_kind = new WeakMap(), _PlutusData_originalBytes = new WeakMap();\n//# sourceMappingURL=PlutusData.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/Datum.js\n/* provided dependency */ var Datum_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Datum_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Datum_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Datum_datumKind, _Datum_dataHash, _Datum_inlineData, _Datum_originalBytes;\n\n\n\nconst DATUM_ARRAY_SIZE = 2;\nconst isDatumHash = (datum) => datum !== null && typeof datum === 'string';\nvar DatumKind;\n(function (DatumKind) {\n    DatumKind[DatumKind[\"DataHash\"] = 0] = \"DataHash\";\n    DatumKind[DatumKind[\"InlineData\"] = 1] = \"InlineData\";\n})(DatumKind || (DatumKind = {}));\nclass Datum {\n    constructor(dataHash, inlineData) {\n        _Datum_datumKind.set(this, void 0);\n        _Datum_dataHash.set(this, void 0);\n        _Datum_inlineData.set(this, void 0);\n        _Datum_originalBytes.set(this, undefined);\n        if (dataHash && inlineData)\n            throw new errors_InvalidStateError('Datum can only be DataHash or PlutusData but not both');\n        if (!dataHash && !inlineData)\n            throw new errors_InvalidStateError('Datum must be either DataHash or PlutusData');\n        if (dataHash)\n            Datum_classPrivateFieldSet(this, _Datum_datumKind, DatumKind.DataHash, \"f\");\n        if (inlineData)\n            Datum_classPrivateFieldSet(this, _Datum_datumKind, DatumKind.InlineData, \"f\");\n        Datum_classPrivateFieldSet(this, _Datum_dataHash, dataHash, \"f\");\n        Datum_classPrivateFieldSet(this, _Datum_inlineData, inlineData, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Datum_classPrivateFieldGet(this, _Datum_originalBytes, \"f\"))\n            return Datum_classPrivateFieldGet(this, _Datum_originalBytes, \"f\");\n        writer.writeStartArray(DATUM_ARRAY_SIZE);\n        writer.writeInt(Datum_classPrivateFieldGet(this, _Datum_datumKind, \"f\"));\n        if (Datum_classPrivateFieldGet(this, _Datum_datumKind, \"f\") === DatumKind.DataHash) {\n            writer.writeByteString(Datum_Buffer.from(Datum_classPrivateFieldGet(this, _Datum_dataHash, \"f\"), 'hex').valueOf());\n        }\n        else {\n            writer.writeEncodedValue(Datum_Buffer.from(Datum_classPrivateFieldGet(this, _Datum_inlineData, \"f\").toCbor(), 'hex').valueOf());\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== DATUM_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${DATUM_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readUInt());\n        let datumHash;\n        let inlineDatum;\n        switch (kind) {\n            case DatumKind.DataHash:\n                datumHash = primitives_HexBlob.fromBytes(reader.readByteString());\n                break;\n            case DatumKind.InlineData:\n                inlineDatum = PlutusData.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                break;\n            default:\n                throw new errors_InvalidArgumentError('cbor', `Unexpected datum kind ${kind}`);\n        }\n        reader.readEndArray();\n        const exUnit = new Datum(datumHash, inlineDatum);\n        Datum_classPrivateFieldSet(exUnit, _Datum_originalBytes, cbor, \"f\");\n        return exUnit;\n    }\n    toCore() {\n        let result;\n        switch (Datum_classPrivateFieldGet(this, _Datum_datumKind, \"f\")) {\n            case DatumKind.DataHash:\n                result = Datum_classPrivateFieldGet(this, _Datum_dataHash, \"f\");\n                break;\n            case DatumKind.InlineData:\n                result = Datum_classPrivateFieldGet(this, _Datum_inlineData, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected datum kind ${Datum_classPrivateFieldGet(this, _Datum_datumKind, \"f\")}`);\n        }\n        return result;\n    }\n    static fromCore(datum) {\n        if (isDatumHash(datum))\n            return new Datum(datum);\n        return new Datum(undefined, PlutusData.fromCore(datum));\n    }\n    kind() {\n        return Datum_classPrivateFieldGet(this, _Datum_datumKind, \"f\");\n    }\n    asDataHash() {\n        return Datum_classPrivateFieldGet(this, _Datum_dataHash, \"f\");\n    }\n    asInlineData() {\n        return Datum_classPrivateFieldGet(this, _Datum_inlineData, \"f\");\n    }\n    static newDataHash(dataHash) {\n        return new Datum(dataHash);\n    }\n    static newInlineData(inlineData) {\n        return new Datum(undefined, inlineData);\n    }\n}\n_Datum_datumKind = new WeakMap(), _Datum_dataHash = new WeakMap(), _Datum_inlineData = new WeakMap(), _Datum_originalBytes = new WeakMap();\n//# sourceMappingURL=Datum.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/ScriptLanguage.js\nvar ScriptLanguage;\n(function (ScriptLanguage) {\n    ScriptLanguage[ScriptLanguage[\"Native\"] = 0] = \"Native\";\n    ScriptLanguage[ScriptLanguage[\"PlutusV1\"] = 1] = \"PlutusV1\";\n    ScriptLanguage[ScriptLanguage[\"PlutusV2\"] = 2] = \"PlutusV2\";\n    ScriptLanguage[ScriptLanguage[\"PlutusV3\"] = 3] = \"PlutusV3\";\n})(ScriptLanguage || (ScriptLanguage = {}));\n//# sourceMappingURL=ScriptLanguage.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/Script.js\n/* provided dependency */ var Script_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Script_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar Script_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _Script_nativeScript, _Script_plutusV1, _Script_plutusV2, _Script_plutusV3, _Script_language, _Script_originalBytes;\n\n\n\n\n\n\nconst SCRIPT_SUBGROUP = 2;\nclass Script {\n    constructor() {\n        _Script_nativeScript.set(this, void 0);\n        _Script_plutusV1.set(this, void 0);\n        _Script_plutusV2.set(this, void 0);\n        _Script_plutusV3.set(this, void 0);\n        _Script_language.set(this, void 0);\n        _Script_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (Script_classPrivateFieldGet(this, _Script_originalBytes, \"f\"))\n            return Script_classPrivateFieldGet(this, _Script_originalBytes, \"f\");\n        const writer = new CborWriter();\n        let cbor;\n        switch (Script_classPrivateFieldGet(this, _Script_language, \"f\")) {\n            case ScriptLanguage.Native:\n                cbor = Script_classPrivateFieldGet(this, _Script_nativeScript, \"f\").toCbor();\n                break;\n            case ScriptLanguage.PlutusV1:\n                cbor = Script_classPrivateFieldGet(this, _Script_plutusV1, \"f\").toCbor();\n                break;\n            case ScriptLanguage.PlutusV2:\n                cbor = Script_classPrivateFieldGet(this, _Script_plutusV2, \"f\").toCbor();\n                break;\n            case ScriptLanguage.PlutusV3:\n                cbor = Script_classPrivateFieldGet(this, _Script_plutusV3, \"f\").toCbor();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected language value: ${Script_classPrivateFieldGet(this, _Script_language, \"f\")}`);\n        }\n        writer.writeStartArray(SCRIPT_SUBGROUP);\n        writer.writeInt(Script_classPrivateFieldGet(this, _Script_language, \"f\"));\n        writer.writeEncodedValue(Script_Buffer.from(cbor, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        let script;\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const language = Number(reader.readInt());\n        const innerScript = primitives_HexBlob.fromBytes(reader.readEncodedValue());\n        switch (language) {\n            case ScriptLanguage.Native:\n                script = Script.newNativeScript(NativeScript.fromCbor(innerScript));\n                break;\n            case ScriptLanguage.PlutusV1:\n                script = Script.newPlutusV1Script(PlutusV1Script.fromCbor(innerScript));\n                break;\n            case ScriptLanguage.PlutusV2:\n                script = Script.newPlutusV2Script(PlutusV2Script.fromCbor(innerScript));\n                break;\n            case ScriptLanguage.PlutusV3:\n                script = Script.newPlutusV3Script(PlutusV3Script.fromCbor(innerScript));\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected language value: ${language}`);\n        }\n        Script_classPrivateFieldSet(script, _Script_originalBytes, cbor, \"f\");\n        return script;\n    }\n    toCore() {\n        let core;\n        switch (Script_classPrivateFieldGet(this, _Script_language, \"f\")) {\n            case ScriptLanguage.Native:\n                core = Script_classPrivateFieldGet(this, _Script_nativeScript, \"f\").toCore();\n                break;\n            case ScriptLanguage.PlutusV1:\n                core = Script_classPrivateFieldGet(this, _Script_plutusV1, \"f\").toCore();\n                break;\n            case ScriptLanguage.PlutusV2:\n                core = Script_classPrivateFieldGet(this, _Script_plutusV2, \"f\").toCore();\n                break;\n            case ScriptLanguage.PlutusV3:\n                core = Script_classPrivateFieldGet(this, _Script_plutusV3, \"f\").toCore();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected language: ${Script_classPrivateFieldGet(this, _Script_language, \"f\")}`);\n        }\n        return core;\n    }\n    static fromCore(coreScript) {\n        let script;\n        if (isNativeScript(coreScript)) {\n            script = Script.newNativeScript(NativeScript.fromCore(coreScript));\n        }\n        else {\n            switch (coreScript.version) {\n                case PlutusLanguageVersion.V1:\n                    script = Script.newPlutusV1Script(PlutusV1Script.fromCore(coreScript));\n                    break;\n                case PlutusLanguageVersion.V2:\n                    script = Script.newPlutusV2Script(PlutusV2Script.fromCore(coreScript));\n                    break;\n                case PlutusLanguageVersion.V3:\n                    script = Script.newPlutusV3Script(PlutusV3Script.fromCore(coreScript));\n                    break;\n                default:\n                    throw new errors_InvalidStateError('Unexpected Plutus language version');\n            }\n        }\n        return script;\n    }\n    language() {\n        return Script_classPrivateFieldGet(this, _Script_language, \"f\");\n    }\n    static newNativeScript(nativeScript) {\n        const script = new Script();\n        Script_classPrivateFieldSet(script, _Script_nativeScript, nativeScript, \"f\");\n        Script_classPrivateFieldSet(script, _Script_language, ScriptLanguage.Native, \"f\");\n        return script;\n    }\n    static newPlutusV1Script(plutusV1Script) {\n        const script = new Script();\n        Script_classPrivateFieldSet(script, _Script_plutusV1, plutusV1Script, \"f\");\n        Script_classPrivateFieldSet(script, _Script_language, ScriptLanguage.PlutusV1, \"f\");\n        return script;\n    }\n    static newPlutusV2Script(plutusV2Script) {\n        const script = new Script();\n        Script_classPrivateFieldSet(script, _Script_plutusV2, plutusV2Script, \"f\");\n        Script_classPrivateFieldSet(script, _Script_language, ScriptLanguage.PlutusV2, \"f\");\n        return script;\n    }\n    static newPlutusV3Script(plutusV3Script) {\n        const script = new Script();\n        Script_classPrivateFieldSet(script, _Script_plutusV3, plutusV3Script, \"f\");\n        Script_classPrivateFieldSet(script, _Script_language, ScriptLanguage.PlutusV3, \"f\");\n        return script;\n    }\n    asNative() {\n        return Script_classPrivateFieldGet(this, _Script_nativeScript, \"f\");\n    }\n    asPlutusV1() {\n        return Script_classPrivateFieldGet(this, _Script_plutusV1, \"f\");\n    }\n    asPlutusV2() {\n        return Script_classPrivateFieldGet(this, _Script_plutusV2, \"f\");\n    }\n    asPlutusV3() {\n        return Script_classPrivateFieldGet(this, _Script_plutusV3, \"f\");\n    }\n    hash() {\n        let hash;\n        switch (Script_classPrivateFieldGet(this, _Script_language, \"f\")) {\n            case ScriptLanguage.Native:\n                hash = Script_classPrivateFieldGet(this, _Script_nativeScript, \"f\").hash();\n                break;\n            case ScriptLanguage.PlutusV1:\n                hash = Script_classPrivateFieldGet(this, _Script_plutusV1, \"f\").hash();\n                break;\n            case ScriptLanguage.PlutusV2:\n                hash = Script_classPrivateFieldGet(this, _Script_plutusV2, \"f\").hash();\n                break;\n            case ScriptLanguage.PlutusV3:\n                hash = Script_classPrivateFieldGet(this, _Script_plutusV3, \"f\").hash();\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected script language ${Script_classPrivateFieldGet(this, _Script_language, \"f\")}`);\n        }\n        return hash;\n    }\n}\n_Script_nativeScript = new WeakMap(), _Script_plutusV1 = new WeakMap(), _Script_plutusV2 = new WeakMap(), _Script_plutusV3 = new WeakMap(), _Script_language = new WeakMap(), _Script_originalBytes = new WeakMap();\n//# sourceMappingURL=Script.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/Utils.js\n\nconst sortCanonically = (lhs, rhs) => {\n    if (lhs[0].length === rhs[0].length) {\n        return lhs[0] > rhs[0] ? 1 : -1;\n    }\n    else if (lhs[0].length > rhs[0].length)\n        return 1;\n    return -1;\n};\nconst tokenMapToMultiAsset = (tokenMap) => {\n    const multiassets = new Map();\n    const sortedTokenMap = new Map([...tokenMap.entries()].sort(sortCanonically));\n    for (const [assetId, quantity] of sortedTokenMap.entries()) {\n        const policyId = AssetId.getPolicyId(assetId);\n        const assetName = AssetId.getAssetName(assetId);\n        if (!multiassets.has(policyId))\n            multiassets.set(policyId, new Map());\n        multiassets.get(policyId).set(assetName, quantity);\n    }\n    return multiassets;\n};\nconst multiAssetsToTokenMap = (multiassets) => {\n    const tokenMap = new Map();\n    for (const [scriptHash, assets] of multiassets.entries()) {\n        for (const [assetName, quantity] of assets.entries()) {\n            const assetId = AssetId.fromParts(scriptHash, assetName);\n            tokenMap.set(assetId, quantity);\n        }\n    }\n    return tokenMap;\n};\n//# sourceMappingURL=Utils.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/Value.js\n/* provided dependency */ var Value_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Value_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Value_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Value_coin, _Value_multiasset, _Value_originalBytes;\n\n\n\nconst VALUE_ARRAY_SIZE = 2;\nclass Value {\n    constructor(coin, multiasset) {\n        _Value_coin.set(this, 0n);\n        _Value_multiasset.set(this, undefined);\n        _Value_originalBytes.set(this, undefined);\n        Value_classPrivateFieldSet(this, _Value_coin, coin, \"f\");\n        Value_classPrivateFieldSet(this, _Value_multiasset, multiasset\n            ? multiAssetsToTokenMap(new Map([...tokenMapToMultiAsset(multiasset).entries()].sort(sortCanonically)))\n            : undefined, \"f\");\n    }\n    toCbor() {\n        if (Value_classPrivateFieldGet(this, _Value_originalBytes, \"f\"))\n            return Value_classPrivateFieldGet(this, _Value_originalBytes, \"f\");\n        const writer = new CborWriter();\n        if (!Value_classPrivateFieldGet(this, _Value_multiasset, \"f\") || Value_classPrivateFieldGet(this, _Value_multiasset, \"f\").size <= 0) {\n            writer.writeInt(Value_classPrivateFieldGet(this, _Value_coin, \"f\"));\n        }\n        else {\n            writer.writeStartArray(VALUE_ARRAY_SIZE);\n            writer.writeInt(Value_classPrivateFieldGet(this, _Value_coin, \"f\"));\n            const multiassets = tokenMapToMultiAsset(Value_classPrivateFieldGet(this, _Value_multiasset, \"f\"));\n            const sortedMultiAssets = new Map([...multiassets.entries()].sort(sortCanonically));\n            writer.writeStartMap(sortedMultiAssets.size);\n            for (const [scriptHash, assets] of sortedMultiAssets.entries()) {\n                writer.writeByteString(Value_Buffer.from(scriptHash, 'hex'));\n                const sortedAssets = new Map([...assets.entries()].sort(sortCanonically));\n                writer.writeStartMap(sortedAssets.size);\n                for (const [assetName, quantity] of sortedAssets.entries()) {\n                    writer.writeByteString(Value_Buffer.from(assetName, 'hex'));\n                    writer.writeInt(quantity);\n                }\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        if (reader.peekState() === CborReaderState.UnsignedInteger) {\n            const coins = reader.readUInt();\n            return new Value(coins);\n        }\n        const length = reader.readStartArray();\n        if (length !== VALUE_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${VALUE_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const coins = reader.readUInt();\n        const multiassets = new Map();\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const scriptHash = primitives_HexBlob.fromBytes(reader.readByteString());\n            if (!multiassets.has(scriptHash))\n                multiassets.set(scriptHash, new Map());\n            reader.readStartMap();\n            while (reader.peekState() !== CborReaderState.EndMap) {\n                const assetName = Value_Buffer.from(reader.readByteString()).toString('hex');\n                const quantity = reader.readUInt();\n                multiassets.get(scriptHash).set(assetName, quantity);\n            }\n            reader.readEndMap();\n        }\n        reader.readEndMap();\n        const sortedAssets = new Map([...multiAssetsToTokenMap(multiassets)].sort(sortCanonically));\n        const value = new Value(coins, sortedAssets);\n        Value_classPrivateFieldSet(value, _Value_originalBytes, cbor, \"f\");\n        return value;\n    }\n    toCore() {\n        return { assets: Value_classPrivateFieldGet(this, _Value_multiasset, \"f\"), coins: Value_classPrivateFieldGet(this, _Value_coin, \"f\") };\n    }\n    static fromCore(coreValue) {\n        return new Value(coreValue.coins, coreValue.assets);\n    }\n    coin() {\n        return Value_classPrivateFieldGet(this, _Value_coin, \"f\");\n    }\n    setCoin(coin) {\n        Value_classPrivateFieldSet(this, _Value_coin, coin, \"f\");\n        Value_classPrivateFieldSet(this, _Value_originalBytes, undefined, \"f\");\n    }\n    multiasset() {\n        return Value_classPrivateFieldGet(this, _Value_multiasset, \"f\");\n    }\n    setMultiasset(multiasset) {\n        Value_classPrivateFieldSet(this, _Value_multiasset, multiAssetsToTokenMap(new Map([...tokenMapToMultiAsset(multiasset).entries()].sort(sortCanonically))), \"f\");\n        Value_classPrivateFieldSet(this, _Value_originalBytes, undefined, \"f\");\n    }\n}\n_Value_coin = new WeakMap(), _Value_multiasset = new WeakMap(), _Value_originalBytes = new WeakMap();\n//# sourceMappingURL=Value.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/TransactionOutput.js\n/* provided dependency */ var TransactionOutput_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TransactionOutput_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TransactionOutput_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TransactionOutput_instances, _TransactionOutput_address, _TransactionOutput_amount, _TransactionOutput_datum, _TransactionOutput_scriptRef, _TransactionOutput_originalBytes, _TransactionOutput_getMapSize;\n\n\n\n\n\n\n\nconst REQUIRED_FIELDS_COUNT = 2;\nclass TransactionOutput {\n    constructor(address, amount) {\n        _TransactionOutput_instances.add(this);\n        _TransactionOutput_address.set(this, void 0);\n        _TransactionOutput_amount.set(this, void 0);\n        _TransactionOutput_datum.set(this, void 0);\n        _TransactionOutput_scriptRef.set(this, void 0);\n        _TransactionOutput_originalBytes.set(this, undefined);\n        TransactionOutput_classPrivateFieldSet(this, _TransactionOutput_address, address, \"f\");\n        TransactionOutput_classPrivateFieldSet(this, _TransactionOutput_amount, amount, \"f\");\n    }\n    toCbor() {\n        if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_originalBytes, \"f\"))\n            return TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_originalBytes, \"f\");\n        const writer = new CborWriter();\n        const elementsSize = TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_instances, \"m\", _TransactionOutput_getMapSize).call(this);\n        if (elementsSize === REQUIRED_FIELDS_COUNT ||\n            (elementsSize === 3 && TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\") !== undefined && TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").kind() === DatumKind.DataHash)) {\n            writer.writeStartArray(elementsSize);\n            writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\").toBytes(), 'hex'));\n            writer.writeEncodedValue(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_amount, \"f\").toCbor(), 'hex'));\n            if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\") !== undefined) {\n                writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").asDataHash(), 'hex'));\n            }\n        }\n        else {\n            writer.writeStartMap(elementsSize);\n            writer.writeInt(0n);\n            writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\").toBytes(), 'hex'));\n            writer.writeInt(1n);\n            writer.writeEncodedValue(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_amount, \"f\").toCbor(), 'hex'));\n            if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\") !== undefined) {\n                writer.writeInt(2n);\n                writer.writeStartArray(2);\n                writer.writeInt(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").kind());\n                switch (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").kind()) {\n                    case DatumKind.DataHash:\n                        writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").asDataHash(), 'hex'));\n                        break;\n                    case DatumKind.InlineData:\n                        writer.writeTag(CborTag.EncodedCborDataItem);\n                        writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").asInlineData().toCbor(), 'hex'));\n                        break;\n                }\n            }\n            if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\") !== undefined) {\n                writer.writeInt(3n);\n                writer.writeTag(CborTag.EncodedCborDataItem);\n                writer.writeByteString(TransactionOutput_Buffer.from(TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\").toCbor(), 'hex'));\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        let address;\n        let value;\n        let datum;\n        let scriptRef;\n        if (reader.peekState() === CborReaderState.StartMap) {\n            reader.readStartMap();\n            while (reader.peekState() !== CborReaderState.EndMap) {\n                const key = reader.readInt();\n                switch (key) {\n                    case 0n:\n                        address = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString()));\n                        break;\n                    case 1n:\n                        value = Value.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                        break;\n                    case 2n: {\n                        const datumReader = new CborReader(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                        datumReader.readStartArray();\n                        const datumKind = Number(datumReader.readInt());\n                        if (datumKind === DatumKind.InlineData) {\n                            const tag = datumReader.readTag();\n                            if (tag !== CborTag.EncodedCborDataItem)\n                                throw new errors_InvalidArgumentError('cbor', `Expected tag ${CborTag.EncodedCborDataItem} but got ${tag}`);\n                        }\n                        const encodedDatum = datumReader.readByteString();\n                        let dataHash;\n                        let inlineDatum;\n                        if (datumKind === DatumKind.DataHash)\n                            dataHash = primitives_HexBlob.fromBytes(encodedDatum);\n                        if (datumKind === DatumKind.InlineData)\n                            inlineDatum = PlutusData.fromCbor(primitives_HexBlob.fromBytes(encodedDatum));\n                        datum = new Datum(dataHash, inlineDatum);\n                        break;\n                    }\n                    case 3n: {\n                        const scriptReader = new CborReader(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                        const tag = scriptReader.readTag();\n                        if (tag !== CborTag.EncodedCborDataItem)\n                            throw new errors_InvalidArgumentError('cbor', `Expected tag ${CborTag.EncodedCborDataItem} but got ${tag}`);\n                        const encodedDatum = scriptReader.readByteString();\n                        scriptRef = Script.fromCbor(primitives_HexBlob.fromBytes(encodedDatum));\n                        break;\n                    }\n                }\n            }\n            reader.readEndMap();\n        }\n        else {\n            const length = reader.readStartArray();\n            address = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString()));\n            value = Value.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n            if (length === 3) {\n                const datumHash = reader.readByteString();\n                datum = Datum.newDataHash(primitives_HexBlob.fromBytes(datumHash));\n            }\n        }\n        if (!address)\n            throw new errors_InvalidArgumentError('cbor', 'Transaction output does not contain an address.');\n        if (!value)\n            throw new errors_InvalidArgumentError('cbor', 'Transaction output does not contain a value.');\n        const output = new TransactionOutput(address, value);\n        if (datum)\n            output.setDatum(datum);\n        if (scriptRef)\n            output.setScriptRef(scriptRef);\n        TransactionOutput_classPrivateFieldSet(output, _TransactionOutput_originalBytes, cbor, \"f\");\n        return output;\n    }\n    toCore() {\n        const value = TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_amount, \"f\").toCore();\n        if (!value.assets)\n            delete value.assets;\n        const txOut = {\n            address: TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\").asByron()\n                ? TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\").toBase58()\n                : TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\").toBech32(),\n            value\n        };\n        if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\") && TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").kind() === DatumKind.InlineData)\n            txOut.datum = TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").asInlineData()?.toCore();\n        if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\") && TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").kind() === DatumKind.DataHash)\n            txOut.datumHash = TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\").asDataHash();\n        if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\"))\n            txOut.scriptReference = TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\").toCore();\n        return txOut;\n    }\n    static fromCore(coreTransactionOutput) {\n        const address = Address.fromString(coreTransactionOutput.address);\n        if (!address)\n            throw new errors_InvalidArgumentError('coreTransactionOutput', `Invalid address ${address}`);\n        const out = new TransactionOutput(address, Value.fromCore(coreTransactionOutput.value));\n        if (coreTransactionOutput.datum)\n            out.setDatum(Datum.fromCore(coreTransactionOutput.datum));\n        if (coreTransactionOutput.datumHash)\n            out.setDatum(Datum.fromCore(coreTransactionOutput.datumHash));\n        if (coreTransactionOutput.scriptReference)\n            out.setScriptRef(Script.fromCore(coreTransactionOutput.scriptReference));\n        return out;\n    }\n    address() {\n        return TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_address, \"f\");\n    }\n    amount() {\n        return TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_amount, \"f\");\n    }\n    datum() {\n        return TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\");\n    }\n    setDatum(data) {\n        TransactionOutput_classPrivateFieldSet(this, _TransactionOutput_datum, data, \"f\");\n    }\n    scriptRef() {\n        return TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\");\n    }\n    setScriptRef(script) {\n        TransactionOutput_classPrivateFieldSet(this, _TransactionOutput_scriptRef, script, \"f\");\n    }\n    isBabbageOutput() {\n        const reader = new CborReader(this.toCbor());\n        return reader.peekState() === CborReaderState.StartMap;\n    }\n}\n_TransactionOutput_address = new WeakMap(), _TransactionOutput_amount = new WeakMap(), _TransactionOutput_datum = new WeakMap(), _TransactionOutput_scriptRef = new WeakMap(), _TransactionOutput_originalBytes = new WeakMap(), _TransactionOutput_instances = new WeakSet(), _TransactionOutput_getMapSize = function _TransactionOutput_getMapSize() {\n    let mapSize = REQUIRED_FIELDS_COUNT;\n    if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_datum, \"f\"))\n        ++mapSize;\n    if (TransactionOutput_classPrivateFieldGet(this, _TransactionOutput_scriptRef, \"f\"))\n        ++mapSize;\n    return mapSize;\n};\n//# sourceMappingURL=TransactionOutput.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/ProposedProtocolParameterUpdates.js\n/* provided dependency */ var ProposedProtocolParameterUpdates_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar ProposedProtocolParameterUpdates_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar ProposedProtocolParameterUpdates_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ProposedProtocolParameterUpdates_proposedUpdates, _ProposedProtocolParameterUpdates_originalBytes;\n\n\n\n\nclass ProposedProtocolParameterUpdates {\n    constructor(proposedUpdates) {\n        _ProposedProtocolParameterUpdates_proposedUpdates.set(this, new Map());\n        _ProposedProtocolParameterUpdates_originalBytes.set(this, undefined);\n        ProposedProtocolParameterUpdates_classPrivateFieldSet(this, _ProposedProtocolParameterUpdates_proposedUpdates, proposedUpdates, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_originalBytes, \"f\"))\n            return ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_originalBytes, \"f\");\n        const sortedCanonically = new Map([...ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\")].sort((a, b) => (a > b ? 1 : -1)));\n        writer.writeStartMap(sortedCanonically.size);\n        for (const [key, value] of sortedCanonically) {\n            writer.writeByteString(ProposedProtocolParameterUpdates_Buffer.from(key, 'hex'));\n            writer.writeEncodedValue(ProposedProtocolParameterUpdates_Buffer.from(value.toCbor(), 'hex'));\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const proposedUpdates = new Map();\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const genesisHash = Hash28ByteBase16(primitives_HexBlob.fromBytes(reader.readByteString()));\n            const params = ProtocolParamUpdate.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n            proposedUpdates.set(genesisHash, params);\n        }\n        reader.readEndMap();\n        const updates = new ProposedProtocolParameterUpdates(proposedUpdates);\n        ProposedProtocolParameterUpdates_classPrivateFieldSet(updates, _ProposedProtocolParameterUpdates_originalBytes, cbor, \"f\");\n        return updates;\n    }\n    toCore() {\n        return new Map([...ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\")].map(([key, value]) => [key, value.toCore()]));\n    }\n    static fromCore(updates) {\n        return new ProposedProtocolParameterUpdates(new Map([...updates].map(([key, value]) => [key, ProtocolParamUpdate.fromCore(value)])));\n    }\n    size() {\n        return ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\").size;\n    }\n    insert(key, value) {\n        ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\").set(key, value);\n    }\n    get(key) {\n        return ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\").get(key);\n    }\n    keys() {\n        return [...ProposedProtocolParameterUpdates_classPrivateFieldGet(this, _ProposedProtocolParameterUpdates_proposedUpdates, \"f\").keys()];\n    }\n}\n_ProposedProtocolParameterUpdates_proposedUpdates = new WeakMap(), _ProposedProtocolParameterUpdates_originalBytes = new WeakMap();\n//# sourceMappingURL=ProposedProtocolParameterUpdates.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/Update.js\n/* provided dependency */ var Update_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Update_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Update_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Update_epoch, _Update_updates, _Update_originalBytes;\n\n\n\n\nconst UPDATE_ARRAY_SIZE = 2;\nclass Update {\n    constructor(updates, epoch) {\n        _Update_epoch.set(this, void 0);\n        _Update_updates.set(this, void 0);\n        _Update_originalBytes.set(this, undefined);\n        Update_classPrivateFieldSet(this, _Update_epoch, epoch, \"f\");\n        Update_classPrivateFieldSet(this, _Update_updates, updates, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Update_classPrivateFieldGet(this, _Update_originalBytes, \"f\"))\n            return Update_classPrivateFieldGet(this, _Update_originalBytes, \"f\");\n        writer.writeStartArray(UPDATE_ARRAY_SIZE);\n        writer.writeEncodedValue(Update_Buffer.from(Update_classPrivateFieldGet(this, _Update_updates, \"f\").toCbor(), 'hex'));\n        writer.writeInt(Update_classPrivateFieldGet(this, _Update_epoch, \"f\"));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== UPDATE_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${UPDATE_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const updates = ProposedProtocolParameterUpdates.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const epoch = reader.readInt();\n        reader.readEndArray();\n        const exUnit = new Update(updates, EpochNo(Number(epoch)));\n        Update_classPrivateFieldSet(exUnit, _Update_originalBytes, cbor, \"f\");\n        return exUnit;\n    }\n    toCore() {\n        return {\n            epoch: Update_classPrivateFieldGet(this, _Update_epoch, \"f\"),\n            proposedProtocolParameterUpdates: Update_classPrivateFieldGet(this, _Update_updates, \"f\").toCore()\n        };\n    }\n    static fromCore(update) {\n        const epoch = update.epoch;\n        const updates = ProposedProtocolParameterUpdates.fromCore(update.proposedProtocolParameterUpdates);\n        return new Update(updates, epoch);\n    }\n    epoch() {\n        return Update_classPrivateFieldGet(this, _Update_epoch, \"f\");\n    }\n    setEpoch(epoch) {\n        Update_classPrivateFieldSet(this, _Update_epoch, epoch, \"f\");\n        Update_classPrivateFieldSet(this, _Update_originalBytes, undefined, \"f\");\n    }\n    proposedProtocolParameterUpdates() {\n        return Update_classPrivateFieldGet(this, _Update_updates, \"f\");\n    }\n    setProposedProtocolParameterUpdates(updates) {\n        Update_classPrivateFieldSet(this, _Update_updates, updates, \"f\");\n        Update_classPrivateFieldSet(this, _Update_originalBytes, undefined, \"f\");\n    }\n}\n_Update_epoch = new WeakMap(), _Update_updates = new WeakMap(), _Update_originalBytes = new WeakMap();\n//# sourceMappingURL=Update.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/VotingProcedures/VoterKind.js\nvar VoterKind;\n(function (VoterKind) {\n    VoterKind[VoterKind[\"ConstitutionalCommitteeKeyHash\"] = 0] = \"ConstitutionalCommitteeKeyHash\";\n    VoterKind[VoterKind[\"ConstitutionalCommitteeScriptHash\"] = 1] = \"ConstitutionalCommitteeScriptHash\";\n    VoterKind[VoterKind[\"DrepKeyHash\"] = 2] = \"DrepKeyHash\";\n    VoterKind[VoterKind[\"DRepScriptHash\"] = 3] = \"DRepScriptHash\";\n    VoterKind[VoterKind[\"StakePoolKeyHash\"] = 4] = \"StakePoolKeyHash\";\n})(VoterKind || (VoterKind = {}));\n//# sourceMappingURL=VoterKind.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/VotingProcedures/Voter.js\n/* provided dependency */ var Voter_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Voter_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Voter_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Voter_kind, _Voter_credential, _Voter_originalBytes;\n\n\n\n\n\nconst Voter_EMBEDDED_GROUP_SIZE = 2;\nclass Voter {\n    constructor(kind, credential) {\n        _Voter_kind.set(this, void 0);\n        _Voter_credential.set(this, void 0);\n        _Voter_originalBytes.set(this, undefined);\n        Voter_classPrivateFieldSet(this, _Voter_kind, kind, \"f\");\n        Voter_classPrivateFieldSet(this, _Voter_credential, credential, \"f\");\n    }\n    toCbor() {\n        if (Voter_classPrivateFieldGet(this, _Voter_originalBytes, \"f\"))\n            return Voter_classPrivateFieldGet(this, _Voter_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(Voter_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(Voter_classPrivateFieldGet(this, _Voter_kind, \"f\"));\n        writer.writeByteString(Voter_Buffer.from(Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash, 'hex'));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        let credential;\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== Voter_EMBEDDED_GROUP_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${Voter_EMBEDDED_GROUP_SIZE} elements, but got an array of ${length} elements`);\n        const kind = Number(reader.readInt());\n        const hash = primitives_HexBlob.fromBytes(reader.readByteString());\n        switch (kind) {\n            case VoterKind.ConstitutionalCommitteeKeyHash:\n            case VoterKind.DrepKeyHash:\n            case VoterKind.StakePoolKeyHash:\n                credential = { hash, type: CredentialType.KeyHash };\n                break;\n            case VoterKind.ConstitutionalCommitteeScriptHash:\n            case VoterKind.DRepScriptHash:\n                credential = { hash, type: CredentialType.ScriptHash };\n                break;\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${kind}`);\n        }\n        const voter = new Voter(kind, credential);\n        Voter_classPrivateFieldSet(voter, _Voter_originalBytes, cbor, \"f\");\n        return voter;\n    }\n    toCore() {\n        switch (Voter_classPrivateFieldGet(this, _Voter_kind, \"f\")) {\n            case VoterKind.ConstitutionalCommitteeKeyHash:\n                return {\n                    __typename: VoterType.ccHotKeyHash,\n                    credential: {\n                        hash: Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash,\n                        type: CredentialType.KeyHash\n                    }\n                };\n            case VoterKind.ConstitutionalCommitteeScriptHash:\n                return {\n                    __typename: VoterType.ccHotScriptHash,\n                    credential: {\n                        hash: Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash,\n                        type: CredentialType.ScriptHash\n                    }\n                };\n            case VoterKind.DrepKeyHash:\n                return {\n                    __typename: VoterType.dRepKeyHash,\n                    credential: {\n                        hash: Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash,\n                        type: CredentialType.KeyHash\n                    }\n                };\n            case VoterKind.DRepScriptHash:\n                return {\n                    __typename: VoterType.dRepScriptHash,\n                    credential: {\n                        hash: Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash,\n                        type: CredentialType.ScriptHash\n                    }\n                };\n            case VoterKind.StakePoolKeyHash:\n                return {\n                    __typename: VoterType.stakePoolKeyHash,\n                    credential: {\n                        hash: Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash,\n                        type: CredentialType.KeyHash\n                    }\n                };\n            default:\n                throw new errors_InvalidStateError(`Unexpected kind value: ${Voter_classPrivateFieldGet(this, _Voter_kind, \"f\")}`);\n        }\n    }\n    static fromCore(coreVoter) {\n        let voter;\n        switch (coreVoter.__typename) {\n            case VoterType.ccHotKeyHash:\n            case VoterType.ccHotScriptHash:\n                voter = Voter.newConstitutionalCommitteeHotKey(coreVoter.credential);\n                break;\n            case VoterType.dRepKeyHash:\n            case VoterType.dRepScriptHash:\n                voter = Voter.newDrep(coreVoter.credential);\n                break;\n            case VoterType.stakePoolKeyHash:\n                voter = Voter.newStakingPool(coreVoter.credential.hash);\n                break;\n            default:\n                throw new errors_InvalidStateError('Unexpected Voter type');\n        }\n        return voter;\n    }\n    static newConstitutionalCommitteeHotKey(credential) {\n        const kind = credential.type === CredentialType.KeyHash\n            ? VoterKind.ConstitutionalCommitteeKeyHash\n            : VoterKind.ConstitutionalCommitteeScriptHash;\n        return new Voter(kind, credential);\n    }\n    static newDrep(credential) {\n        const kind = credential.type === CredentialType.KeyHash ? VoterKind.DrepKeyHash : VoterKind.DRepScriptHash;\n        return new Voter(kind, credential);\n    }\n    static newStakingPool(keyHash) {\n        return new Voter(VoterKind.StakePoolKeyHash, {\n            hash: keyHash,\n            type: CredentialType.KeyHash\n        });\n    }\n    kind() {\n        return Voter_classPrivateFieldGet(this, _Voter_kind, \"f\");\n    }\n    toConstitutionalCommitteeHotCred() {\n        if (Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === VoterKind.ConstitutionalCommitteeKeyHash ||\n            Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === VoterKind.ConstitutionalCommitteeScriptHash)\n            return Voter_classPrivateFieldGet(this, _Voter_credential, \"f\");\n        return undefined;\n    }\n    toDrepCred() {\n        if (Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === VoterKind.DrepKeyHash || Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === VoterKind.DRepScriptHash)\n            return Voter_classPrivateFieldGet(this, _Voter_credential, \"f\");\n        return undefined;\n    }\n    toStakingPoolKeyHash() {\n        if (Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === VoterKind.StakePoolKeyHash)\n            return Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash;\n        return undefined;\n    }\n    equals(other) {\n        return (Voter_classPrivateFieldGet(this, _Voter_kind, \"f\") === Voter_classPrivateFieldGet(other, _Voter_kind, \"f\") &&\n            Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").type === Voter_classPrivateFieldGet(other, _Voter_credential, \"f\").type &&\n            Voter_classPrivateFieldGet(this, _Voter_credential, \"f\").hash === Voter_classPrivateFieldGet(other, _Voter_credential, \"f\").hash);\n    }\n}\n_Voter_kind = new WeakMap(), _Voter_credential = new WeakMap(), _Voter_originalBytes = new WeakMap();\n//# sourceMappingURL=Voter.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/VotingProcedures/VotingProcedure.js\nvar VotingProcedure_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar VotingProcedure_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _VotingProcedure_vote, _VotingProcedure_anchor, _VotingProcedure_originalBytes;\n\n\n\n\nconst VotingProcedure_EMBEDDED_GROUP_SIZE = 2;\nclass VotingProcedure {\n    constructor(vote, anchor) {\n        _VotingProcedure_vote.set(this, void 0);\n        _VotingProcedure_anchor.set(this, void 0);\n        _VotingProcedure_originalBytes.set(this, undefined);\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_vote, vote, \"f\");\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_anchor, anchor, \"f\");\n    }\n    toCbor() {\n        if (VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_originalBytes, \"f\"))\n            return VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(VotingProcedure_EMBEDDED_GROUP_SIZE);\n        writer.writeInt(VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_vote, \"f\"));\n        VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_anchor, \"f\") ? writer.writeEncodedValue(hexToBytes(VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_anchor, \"f\").toCbor())) : writer.writeNull();\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        reader.readStartArray();\n        const vote = Number(reader.readInt());\n        let anchor;\n        if (reader.peekState() === CborReaderState.Null) {\n            reader.readNull();\n            anchor = undefined;\n        }\n        else {\n            anchor = Anchor.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        }\n        const votingProcedure = new VotingProcedure(vote, anchor);\n        VotingProcedure_classPrivateFieldSet(votingProcedure, _VotingProcedure_originalBytes, cbor, \"f\");\n        return votingProcedure;\n    }\n    toCore() {\n        return {\n            anchor: VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_anchor, \"f\") ? VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_anchor, \"f\").toCore() : null,\n            vote: VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_vote, \"f\")\n        };\n    }\n    static fromCore(votingProcedure) {\n        return new VotingProcedure(votingProcedure.vote, votingProcedure.anchor ? Anchor.fromCore(votingProcedure.anchor) : undefined);\n    }\n    vote() {\n        return VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_vote, \"f\");\n    }\n    setVote(vote) {\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_vote, vote, \"f\");\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_originalBytes, undefined, \"f\");\n    }\n    anchor() {\n        return VotingProcedure_classPrivateFieldGet(this, _VotingProcedure_anchor, \"f\");\n    }\n    setAnchor(anchor) {\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_anchor, anchor, \"f\");\n        VotingProcedure_classPrivateFieldSet(this, _VotingProcedure_originalBytes, undefined, \"f\");\n    }\n}\n_VotingProcedure_vote = new WeakMap(), _VotingProcedure_anchor = new WeakMap(), _VotingProcedure_originalBytes = new WeakMap();\n//# sourceMappingURL=VotingProcedure.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/VotingProcedures/VotingProcedures.js\nvar VotingProcedures_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar VotingProcedures_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _VotingProcedures_procedures, _VotingProcedures_originalBytes;\n\n\n\n\n\n\nclass VotingProcedures {\n    constructor() {\n        _VotingProcedures_procedures.set(this, []);\n        _VotingProcedures_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        if (VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_originalBytes, \"f\"))\n            return VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_originalBytes, \"f\");\n        const writer = new CborWriter();\n        const voters = this.getVoters();\n        if (voters.length === 0)\n            throw new errors_InvalidStateError('Empty VotingProcedures. There must be at least one VotingProcedure in the map');\n        writer.writeStartMap(voters.length);\n        for (const voter of voters) {\n            const governanceActionIds = this.getGovernanceActionIdsByVoter(voter);\n            if (governanceActionIds.length === 0)\n                throw new errors_InvalidStateError('Each voter must at least be associated to a GovernanceActionId');\n            writer.writeEncodedValue(hexToBytes(voter.toCbor()));\n            writer.writeStartMap(governanceActionIds.length);\n            for (const actionIds of governanceActionIds) {\n                writer.writeEncodedValue(hexToBytes(actionIds.toCbor()));\n                const vote = this.get(voter, actionIds);\n                if (!vote)\n                    throw new errors_InvalidStateError('Each governanceActionIds must at least be associated to a vote');\n                writer.writeEncodedValue(hexToBytes(vote.toCbor()));\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const votingProcedures = new VotingProcedures();\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const voter = Voter.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n            reader.readStartMap();\n            while (reader.peekState() !== CborReaderState.EndMap) {\n                const actionId = GovernanceActionId.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                const vote = VotingProcedure.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                votingProcedures.insert(voter, actionId, vote);\n            }\n            reader.readEndMap();\n        }\n        reader.readEndMap();\n        VotingProcedures_classPrivateFieldSet(votingProcedures, _VotingProcedures_originalBytes, cbor, \"f\");\n        return votingProcedures;\n    }\n    toCore() {\n        return VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").map((value) => {\n            const voter = value.voter.toCore();\n            const votes = value.votes.map((vote) => ({\n                actionId: vote.actionId.toCore(),\n                votingProcedure: vote.votingProcedure.toCore()\n            }));\n            return { voter, votes };\n        });\n    }\n    static fromCore(votingProcedures) {\n        const procedures = new VotingProcedures();\n        VotingProcedures_classPrivateFieldSet(procedures, _VotingProcedures_procedures, votingProcedures.map((value) => {\n            const voter = Voter.fromCore(value.voter);\n            const votes = value.votes.map((vote) => ({\n                actionId: GovernanceActionId.fromCore(vote.actionId),\n                votingProcedure: VotingProcedure.fromCore(vote.votingProcedure)\n            }));\n            return { voter, votes };\n        }), \"f\");\n        return procedures;\n    }\n    insert(voter, actionId, votingProcedure) {\n        const foundVoter = VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").find((value) => value.voter.equals(voter));\n        if (!foundVoter) {\n            VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").push({\n                voter,\n                votes: [{ actionId, votingProcedure }]\n            });\n            return;\n        }\n        const foundVote = foundVoter.votes.find((vote) => vote.actionId.equals(actionId));\n        if (foundVote)\n            throw new errors_InvalidArgumentError('actionId', 'Voter already has a voting procedure for the given actionId');\n        foundVoter.votes.push({ actionId, votingProcedure });\n        VotingProcedures_classPrivateFieldSet(this, _VotingProcedures_originalBytes, undefined, \"f\");\n    }\n    get(voter, governanceActionId) {\n        const foundVoter = VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").find((value) => value.voter.equals(voter));\n        if (!foundVoter)\n            return undefined;\n        const foundVote = foundVoter.votes.find((vote) => vote.actionId.equals(governanceActionId));\n        if (!foundVote)\n            return undefined;\n        return foundVote.votingProcedure;\n    }\n    getVoters() {\n        return VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").map((procedure) => procedure.voter);\n    }\n    getGovernanceActionIdsByVoter(voter) {\n        const foundVoter = VotingProcedures_classPrivateFieldGet(this, _VotingProcedures_procedures, \"f\").find((procedure) => procedure.voter.equals(voter));\n        if (!foundVoter)\n            return [];\n        return foundVoter.votes.map((votes) => votes.actionId);\n    }\n}\n_VotingProcedures_procedures = new WeakMap(), _VotingProcedures_originalBytes = new WeakMap();\n//# sourceMappingURL=VotingProcedures.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/TransactionBody.js\n/* provided dependency */ var TransactionBody_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TransactionBody_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TransactionBody_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TransactionBody_instances, _TransactionBody_inputs, _TransactionBody_outputs, _TransactionBody_fee, _TransactionBody_ttl, _TransactionBody_certs, _TransactionBody_withdrawals, _TransactionBody_update, _TransactionBody_auxiliaryDataHash, _TransactionBody_validityStartInterval, _TransactionBody_mint, _TransactionBody_scriptDataHash, _TransactionBody_collateral, _TransactionBody_requiredSigners, _TransactionBody_networkId, _TransactionBody_collateralReturn, _TransactionBody_totalCollateral, _TransactionBody_referenceInputs, _TransactionBody_votingProcedures, _TransactionBody_proposalProcedures, _TransactionBody_currentTreasuryValue, _TransactionBody_donation, _TransactionBody_originalBytes, _TransactionBody_getMapSize;\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nclass TransactionBody {\n    constructor(inputs, outputs, fee, ttl) {\n        _TransactionBody_instances.add(this);\n        _TransactionBody_inputs.set(this, void 0);\n        _TransactionBody_outputs.set(this, void 0);\n        _TransactionBody_fee.set(this, void 0);\n        _TransactionBody_ttl.set(this, void 0);\n        _TransactionBody_certs.set(this, void 0);\n        _TransactionBody_withdrawals.set(this, void 0);\n        _TransactionBody_update.set(this, void 0);\n        _TransactionBody_auxiliaryDataHash.set(this, void 0);\n        _TransactionBody_validityStartInterval.set(this, void 0);\n        _TransactionBody_mint.set(this, void 0);\n        _TransactionBody_scriptDataHash.set(this, void 0);\n        _TransactionBody_collateral.set(this, void 0);\n        _TransactionBody_requiredSigners.set(this, void 0);\n        _TransactionBody_networkId.set(this, void 0);\n        _TransactionBody_collateralReturn.set(this, void 0);\n        _TransactionBody_totalCollateral.set(this, void 0);\n        _TransactionBody_referenceInputs.set(this, void 0);\n        _TransactionBody_votingProcedures.set(this, void 0);\n        _TransactionBody_proposalProcedures.set(this, void 0);\n        _TransactionBody_currentTreasuryValue.set(this, void 0);\n        _TransactionBody_donation.set(this, void 0);\n        _TransactionBody_originalBytes.set(this, undefined);\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_inputs, inputs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_outputs, outputs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_fee, fee, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_ttl, ttl, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_originalBytes, \"f\"))\n            return TransactionBody_classPrivateFieldGet(this, _TransactionBody_originalBytes, \"f\");\n        writer.writeStartMap(TransactionBody_classPrivateFieldGet(this, _TransactionBody_instances, \"m\", _TransactionBody_getMapSize).call(this));\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\").size() > 0) {\n            writer.writeInt(0n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\").length > 0) {\n            writer.writeInt(1n);\n            writer.writeStartArray(TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\").length);\n            for (const output of TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\")) {\n                writer.writeEncodedValue(TransactionBody_Buffer.from(output.toCbor(), 'hex'));\n            }\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_fee, \"f\") !== undefined) {\n            writer.writeInt(2n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_fee, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\") !== undefined) {\n            writer.writeInt(3n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\").size() > 0) {\n            writer.writeInt(4n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\").size > 0) {\n            writer.writeInt(5n);\n            const withdrawalsWithAddressBytes = new Map();\n            for (const [key, value] of TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\")) {\n                const rewardAddress = RewardAddress.fromAddress(Address.fromBech32(key));\n                if (!rewardAddress) {\n                    throw new SerializationError(SerializationFailure.InvalidAddress, `Invalid withdrawal address: ${key}`);\n                }\n                const rewardAddressBytes = rewardAddress.toAddress().toBytes();\n                withdrawalsWithAddressBytes.set(rewardAddressBytes, value);\n            }\n            const sortedCanonically = [...withdrawalsWithAddressBytes].sort((a, b) => (a > b ? 1 : -1));\n            writer.writeStartMap(sortedCanonically.length);\n            for (const [key, value] of sortedCanonically) {\n                writer.writeByteString(TransactionBody_Buffer.from(key, 'hex'));\n                writer.writeInt(value);\n            }\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\") !== undefined) {\n            writer.writeInt(6n);\n            writer.writeEncodedValue(TransactionBody_Buffer.from(TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_auxiliaryDataHash, \"f\") !== undefined) {\n            writer.writeInt(7n);\n            writer.writeByteString(TransactionBody_Buffer.from(TransactionBody_classPrivateFieldGet(this, _TransactionBody_auxiliaryDataHash, \"f\"), 'hex'));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\") !== undefined) {\n            writer.writeInt(8n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\").size > 0) {\n            writer.writeInt(9n);\n            const multiassets = tokenMapToMultiAsset(TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\"));\n            writer.writeStartMap(multiassets.size);\n            const sortedMultiAssets = new Map([...multiassets.entries()].sort(sortCanonically));\n            for (const [scriptHash, assets] of sortedMultiAssets.entries()) {\n                writer.writeByteString(TransactionBody_Buffer.from(scriptHash, 'hex'));\n                const sortedAssets = new Map([...assets.entries()].sort(sortCanonically));\n                writer.writeStartMap(sortedAssets.size);\n                for (const [assetName, quantity] of sortedAssets.entries()) {\n                    writer.writeByteString(TransactionBody_Buffer.from(assetName, 'hex'));\n                    writer.writeInt(quantity);\n                }\n            }\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_scriptDataHash, \"f\") !== undefined) {\n            writer.writeInt(11n);\n            writer.writeByteString(TransactionBody_Buffer.from(TransactionBody_classPrivateFieldGet(this, _TransactionBody_scriptDataHash, \"f\"), 'hex'));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\").size() > 0) {\n            writer.writeInt(13n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\")?.values() !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\").size() > 0) {\n            writer.writeInt(14n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_networkId, \"f\") !== undefined) {\n            writer.writeInt(15n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_networkId, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateralReturn, \"f\") !== undefined) {\n            writer.writeInt(16n);\n            writer.writeEncodedValue(TransactionBody_Buffer.from(TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateralReturn, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_totalCollateral, \"f\") !== undefined) {\n            writer.writeInt(17n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_totalCollateral, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\").size() > 0) {\n            writer.writeInt(18n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\") !== undefined) {\n            writer.writeInt(19n);\n            writer.writeEncodedValue(TransactionBody_Buffer.from(TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\").size() > 0) {\n            writer.writeInt(20n);\n            writer.writeEncodedValue(hexToBytes(TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\").toCbor()));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_currentTreasuryValue, \"f\") !== undefined) {\n            writer.writeInt(21n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_currentTreasuryValue, \"f\"));\n        }\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_donation, \"f\") !== undefined) {\n            writer.writeInt(22n);\n            writer.writeInt(TransactionBody_classPrivateFieldGet(this, _TransactionBody_donation, \"f\"));\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const inputs = CborSet.fromCore([], TransactionInput.fromCore);\n        const outputs = new Array();\n        const fee = 0n;\n        const body = new TransactionBody(inputs, outputs, fee);\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = reader.readInt();\n            switch (key) {\n                case 0n: {\n                    const inputsBytes = reader.readEncodedValue();\n                    body.setInputs(CborSet.fromCbor(primitives_HexBlob.fromBytes(inputsBytes), TransactionInput.fromCbor));\n                    break;\n                }\n                case 1n: {\n                    reader.readStartArray();\n                    while (reader.peekState() !== CborReaderState.EndArray) {\n                        body.outputs().push(TransactionOutput.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                    }\n                    reader.readEndArray();\n                    break;\n                }\n                case 2n:\n                    body.setFee(reader.readInt());\n                    break;\n                case 3n:\n                    body.setTtl(Slot(Number(reader.readInt())));\n                    break;\n                case 4n: {\n                    body.setCerts(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), Certificate.fromCbor));\n                    break;\n                }\n                case 5n: {\n                    reader.readStartMap();\n                    body.setWithdrawals(new Map());\n                    while (reader.peekState() !== CborReaderState.EndMap) {\n                        const account = Address.fromBytes(primitives_HexBlob.fromBytes(reader.readByteString())).toBech32();\n                        const amount = reader.readInt();\n                        body.withdrawals().set(account, amount);\n                    }\n                    reader.readEndMap();\n                    break;\n                }\n                case 6n:\n                    body.setUpdate(Update.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                    break;\n                case 7n:\n                    body.setAuxiliaryDataHash(primitives_HexBlob.fromBytes(reader.readByteString()));\n                    break;\n                case 8n:\n                    body.setValidityStartInterval(Slot(Number(reader.readInt())));\n                    break;\n                case 9n: {\n                    const multiassets = new Map();\n                    reader.readStartMap();\n                    while (reader.peekState() !== CborReaderState.EndMap) {\n                        const scriptHash = primitives_HexBlob.fromBytes(reader.readByteString());\n                        if (!multiassets.has(scriptHash))\n                            multiassets.set(scriptHash, new Map());\n                        reader.readStartMap();\n                        while (reader.peekState() !== CborReaderState.EndMap) {\n                            const assetName = TransactionBody_Buffer.from(reader.readByteString()).toString('hex');\n                            const quantity = reader.readInt();\n                            multiassets.get(scriptHash).set(assetName, quantity);\n                        }\n                        reader.readEndMap();\n                    }\n                    reader.readEndMap();\n                    body.setMint(multiAssetsToTokenMap(multiassets));\n                    break;\n                }\n                case 11n:\n                    body.setScriptDataHash(primitives_HexBlob.fromBytes(reader.readByteString()));\n                    break;\n                case 13n:\n                    body.setCollateral(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), TransactionInput.fromCbor));\n                    break;\n                case 14n:\n                    body.setRequiredSigners(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), Hash.fromCbor));\n                    break;\n                case 15n:\n                    body.setNetworkId(Number(reader.readInt()));\n                    break;\n                case 16n:\n                    body.setCollateralReturn(TransactionOutput.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                    break;\n                case 17n:\n                    body.setTotalCollateral(reader.readInt());\n                    break;\n                case 18n:\n                    body.setReferenceInputs(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), TransactionInput.fromCbor));\n                    break;\n                case 19n:\n                    body.setVotingProcedures(VotingProcedures.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                    break;\n                case 20n:\n                    body.setProposalProcedures(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), ProposalProcedure.fromCbor));\n                    break;\n                case 21n:\n                    body.setCurrentTreasuryValue(reader.readInt());\n                    break;\n                case 22n:\n                    body.setDonation(reader.readInt());\n                    break;\n            }\n        }\n        reader.readEndMap();\n        TransactionBody_classPrivateFieldSet(body, _TransactionBody_originalBytes, cbor, \"f\");\n        return body;\n    }\n    toCore() {\n        return {\n            auxiliaryDataHash: TransactionBody_classPrivateFieldGet(this, _TransactionBody_auxiliaryDataHash, \"f\"),\n            certificates: TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\")?.values() ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\").toCore() : undefined,\n            collateralReturn: TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateralReturn, \"f\")?.toCore(),\n            collaterals: TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\")?.values() ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\").toCore() : undefined,\n            donation: TransactionBody_classPrivateFieldGet(this, _TransactionBody_donation, \"f\"),\n            fee: TransactionBody_classPrivateFieldGet(this, _TransactionBody_fee, \"f\"),\n            inputs: TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\").toCore(),\n            mint: TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\"),\n            networkId: TransactionBody_classPrivateFieldGet(this, _TransactionBody_networkId, \"f\"),\n            outputs: TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\").map((output) => output.toCore()),\n            proposalProcedures: TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\")?.values() ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\").toCore() : undefined,\n            referenceInputs: TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\")?.size() ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\").toCore() : undefined,\n            requiredExtraSignatures: TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\")?.toCore(),\n            scriptIntegrityHash: TransactionBody_classPrivateFieldGet(this, _TransactionBody_scriptDataHash, \"f\"),\n            totalCollateral: TransactionBody_classPrivateFieldGet(this, _TransactionBody_totalCollateral, \"f\"),\n            treasuryValue: TransactionBody_classPrivateFieldGet(this, _TransactionBody_currentTreasuryValue, \"f\"),\n            update: TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\") ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\").toCore() : undefined,\n            validityInterval: TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\") || TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\") !== undefined\n                ? {\n                    invalidBefore: TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\"),\n                    invalidHereafter: TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\")\n                }\n                : undefined,\n            votingProcedures: TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\") ? TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\").toCore() : undefined,\n            withdrawals: TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\")\n                ? [...TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\")].map(([stakeAddress, quantity]) => ({ quantity, stakeAddress }))\n                : undefined\n        };\n    }\n    static fromCore(coreTransactionBody) {\n        const body = new TransactionBody(CborSet.fromCore(coreTransactionBody.inputs, TransactionInput.fromCore), coreTransactionBody.outputs.map((output) => TransactionOutput.fromCore(output)), coreTransactionBody.fee);\n        if (coreTransactionBody.auxiliaryDataHash)\n            body.setAuxiliaryDataHash(coreTransactionBody.auxiliaryDataHash);\n        if (coreTransactionBody.certificates)\n            body.setCerts(CborSet.fromCore(coreTransactionBody.certificates, Certificate.fromCore));\n        if (coreTransactionBody.collateralReturn)\n            body.setCollateralReturn(TransactionOutput.fromCore(coreTransactionBody.collateralReturn));\n        if (coreTransactionBody.collaterals)\n            body.setCollateral(CborSet.fromCore(coreTransactionBody.collaterals, TransactionInput.fromCore));\n        if (coreTransactionBody.mint)\n            body.setMint(coreTransactionBody.mint);\n        if (coreTransactionBody.networkId !== undefined)\n            body.setNetworkId(coreTransactionBody.networkId);\n        if (coreTransactionBody.referenceInputs)\n            body.setReferenceInputs(CborSet.fromCore(coreTransactionBody.referenceInputs, TransactionInput.fromCore));\n        if (coreTransactionBody.requiredExtraSignatures)\n            body.setRequiredSigners(CborSet.fromCore(coreTransactionBody.requiredExtraSignatures, Hash.fromCore));\n        if (coreTransactionBody.scriptIntegrityHash)\n            body.setScriptDataHash(coreTransactionBody.scriptIntegrityHash);\n        if (coreTransactionBody.totalCollateral !== undefined)\n            body.setTotalCollateral(coreTransactionBody.totalCollateral);\n        if (coreTransactionBody.update)\n            body.setUpdate(Update.fromCore(coreTransactionBody.update));\n        if (coreTransactionBody.validityInterval) {\n            if (coreTransactionBody.validityInterval.invalidHereafter !== undefined)\n                body.setTtl(coreTransactionBody.validityInterval.invalidHereafter);\n            if (coreTransactionBody.validityInterval.invalidBefore !== undefined)\n                body.setValidityStartInterval(coreTransactionBody.validityInterval.invalidBefore);\n        }\n        if (coreTransactionBody.withdrawals) {\n            body.setWithdrawals(new Map());\n            for (const coreWithdrawal of coreTransactionBody.withdrawals) {\n                body.withdrawals().set(coreWithdrawal.stakeAddress, coreWithdrawal.quantity);\n            }\n        }\n        if (coreTransactionBody.donation !== undefined)\n            body.setDonation(coreTransactionBody.donation);\n        if (coreTransactionBody.treasuryValue !== undefined)\n            body.setCurrentTreasuryValue(coreTransactionBody.treasuryValue);\n        if (coreTransactionBody.votingProcedures)\n            body.setVotingProcedures(VotingProcedures.fromCore(coreTransactionBody.votingProcedures));\n        if (coreTransactionBody.proposalProcedures)\n            body.setProposalProcedures(CborSet.fromCore(coreTransactionBody.proposalProcedures, ProposalProcedure.fromCore));\n        return body;\n    }\n    setInputs(inputs) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_inputs, inputs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    inputs() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\");\n    }\n    setOutputs(outputs) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_outputs, outputs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    outputs() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\");\n    }\n    setFee(fee) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_fee, fee, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    fee() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_fee, \"f\");\n    }\n    setTtl(ttl) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_ttl, ttl, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    ttl() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\");\n    }\n    setCerts(certs) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_certs, certs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    certs() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\");\n    }\n    setWithdrawals(withdrawals) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_withdrawals, withdrawals, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    withdrawals() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\");\n    }\n    setUpdate(update) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_update, update, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    update() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\");\n    }\n    setAuxiliaryDataHash(auxiliaryDataHash) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_auxiliaryDataHash, auxiliaryDataHash, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    auxiliaryDataHash() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_auxiliaryDataHash, \"f\");\n    }\n    setValidityStartInterval(validityStartInterval) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_validityStartInterval, validityStartInterval, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    validityStartInterval() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\");\n    }\n    setMint(mint) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_mint, multiAssetsToTokenMap(new Map([...tokenMapToMultiAsset(mint).entries()].sort(sortCanonically))), \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    mint() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\");\n    }\n    setScriptDataHash(scriptDataHash) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_scriptDataHash, scriptDataHash, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    scriptDataHash() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_scriptDataHash, \"f\");\n    }\n    setCollateral(collateral) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_collateral, collateral, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    collateral() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\");\n    }\n    setRequiredSigners(requiredSigners) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_requiredSigners, requiredSigners, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    requiredSigners() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\");\n    }\n    setNetworkId(networkId) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_networkId, networkId, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    networkId() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_networkId, \"f\");\n    }\n    setCollateralReturn(collateralReturn) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_collateralReturn, collateralReturn, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    collateralReturn() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateralReturn, \"f\");\n    }\n    setTotalCollateral(totalCollateral) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_totalCollateral, totalCollateral, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    totalCollateral() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_totalCollateral, \"f\");\n    }\n    setReferenceInputs(referenceInputs) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_referenceInputs, referenceInputs, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    referenceInputs() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\");\n    }\n    setVotingProcedures(votingProcedures) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_votingProcedures, votingProcedures, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    votingProcedures() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\");\n    }\n    setProposalProcedures(proposalProcedure) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_proposalProcedures, proposalProcedure, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    proposalProcedures() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\");\n    }\n    setCurrentTreasuryValue(currentTreasuryValue) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_currentTreasuryValue, currentTreasuryValue, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    currentTreasuryValue() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_currentTreasuryValue, \"f\");\n    }\n    setDonation(donation) {\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_donation, donation, \"f\");\n        TransactionBody_classPrivateFieldSet(this, _TransactionBody_originalBytes, undefined, \"f\");\n    }\n    donation() {\n        return TransactionBody_classPrivateFieldGet(this, _TransactionBody_donation, \"f\");\n    }\n    hash() {\n        const hash = blake2b(blake2b.BYTES).update(hexToBytes(this.toCbor())).digest();\n        return TransactionId.fromHexBlob(primitives_HexBlob.fromBytes(hash));\n    }\n    hasTaggedSets() {\n        const reader = new CborReader(TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\").toCbor());\n        return reader.peekState() === CborReaderState.Tag && reader.peekTag() === CborTag.Set;\n    }\n    hasBabbageOutput() {\n        if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\").length === 0)\n            return false;\n        const reader = new CborReader(TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\")[0].toCbor());\n        return reader.peekState() === CborReaderState.StartMap;\n    }\n}\n_TransactionBody_inputs = new WeakMap(), _TransactionBody_outputs = new WeakMap(), _TransactionBody_fee = new WeakMap(), _TransactionBody_ttl = new WeakMap(), _TransactionBody_certs = new WeakMap(), _TransactionBody_withdrawals = new WeakMap(), _TransactionBody_update = new WeakMap(), _TransactionBody_auxiliaryDataHash = new WeakMap(), _TransactionBody_validityStartInterval = new WeakMap(), _TransactionBody_mint = new WeakMap(), _TransactionBody_scriptDataHash = new WeakMap(), _TransactionBody_collateral = new WeakMap(), _TransactionBody_requiredSigners = new WeakMap(), _TransactionBody_networkId = new WeakMap(), _TransactionBody_collateralReturn = new WeakMap(), _TransactionBody_totalCollateral = new WeakMap(), _TransactionBody_referenceInputs = new WeakMap(), _TransactionBody_votingProcedures = new WeakMap(), _TransactionBody_proposalProcedures = new WeakMap(), _TransactionBody_currentTreasuryValue = new WeakMap(), _TransactionBody_donation = new WeakMap(), _TransactionBody_originalBytes = new WeakMap(), _TransactionBody_instances = new WeakSet(), _TransactionBody_getMapSize = function _TransactionBody_getMapSize() {\n    let mapSize = 0;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_inputs, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_outputs, \"f\").length > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_fee, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_ttl, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_certs, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_withdrawals, \"f\").size > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_update, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_auxiliaryDataHash, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_validityStartInterval, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_mint, \"f\").size > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_scriptDataHash, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateral, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\")?.values() !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_requiredSigners, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_networkId, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_collateralReturn, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_totalCollateral, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_referenceInputs, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_votingProcedures, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\") !== undefined && TransactionBody_classPrivateFieldGet(this, _TransactionBody_proposalProcedures, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_currentTreasuryValue, \"f\") !== undefined)\n        ++mapSize;\n    if (TransactionBody_classPrivateFieldGet(this, _TransactionBody_donation, \"f\") !== undefined)\n        ++mapSize;\n    return mapSize;\n};\n//# sourceMappingURL=TransactionBody.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/BootstrapWitness.js\nvar BootstrapWitness_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar BootstrapWitness_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _BootstrapWitness_vkey, _BootstrapWitness_signature, _BootstrapWitness_chainCode, _BootstrapWitness_attributes, _BootstrapWitness_originalBytes;\n\n\n\nconst BOOTSTRAP_WITNESS_ARRAY_SIZE = 4;\nconst EMPTY_ATTRIBUTES_CBOR = primitives_HexBlob('a0');\nclass BootstrapWitness {\n    constructor(vkey, signature, chainCode, attributes) {\n        _BootstrapWitness_vkey.set(this, void 0);\n        _BootstrapWitness_signature.set(this, void 0);\n        _BootstrapWitness_chainCode.set(this, void 0);\n        _BootstrapWitness_attributes.set(this, void 0);\n        _BootstrapWitness_originalBytes.set(this, undefined);\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_vkey, vkey, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_signature, signature, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_chainCode, chainCode, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_attributes, attributes, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_originalBytes, \"f\"))\n            return BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_originalBytes, \"f\");\n        if (BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_chainCode, \"f\").length / 2 !== 32)\n            throw new errors_InvalidStateError(`Chaincode must be 32 bytes long, but got ${BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_chainCode, \"f\").length / 2} bytes long`);\n        writer.writeStartArray(BOOTSTRAP_WITNESS_ARRAY_SIZE);\n        writer.writeByteString(hexToBytes(BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_vkey, \"f\")));\n        writer.writeByteString(hexToBytes(BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_signature, \"f\")));\n        writer.writeByteString(hexToBytes(BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_chainCode, \"f\")));\n        writer.writeByteString(hexToBytes(BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_attributes, \"f\")));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== BOOTSTRAP_WITNESS_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${BOOTSTRAP_WITNESS_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const vkey = primitives_HexBlob.fromBytes(reader.readByteString());\n        const signature = primitives_HexBlob.fromBytes(reader.readByteString());\n        const chainCode = primitives_HexBlob.fromBytes(reader.readByteString());\n        const attributes = primitives_HexBlob.fromBytes(reader.readByteString());\n        reader.readEndArray();\n        const witness = new BootstrapWitness(vkey, signature, chainCode, attributes);\n        BootstrapWitness_classPrivateFieldSet(witness, _BootstrapWitness_originalBytes, cbor, \"f\");\n        return witness;\n    }\n    toCore() {\n        return {\n            addressAttributes: primitives_Base64Blob.fromBytes(hexToBytes(BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_attributes, \"f\"))),\n            chainCode: BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_chainCode, \"f\"),\n            key: BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_vkey, \"f\"),\n            signature: BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_signature, \"f\")\n        };\n    }\n    static fromCore(core) {\n        if (!core.chainCode)\n            throw new errors_InvalidStateError('Chaincode must be present');\n        if (core.chainCode.length / 2 !== 32)\n            throw new errors_InvalidStateError(`Chaincode must be 32 bytes long, but got ${core.chainCode.length / 2} bytes long`);\n        return new BootstrapWitness(core.key, core.signature, core.chainCode, core.addressAttributes ? primitives_HexBlob.fromBase64(core.addressAttributes) : EMPTY_ATTRIBUTES_CBOR);\n    }\n    vkey() {\n        return BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_vkey, \"f\");\n    }\n    setVkey(vkey) {\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_vkey, vkey, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_originalBytes, undefined, \"f\");\n    }\n    signature() {\n        return BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_signature, \"f\");\n    }\n    setSignature(signature) {\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_signature, signature, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_originalBytes, undefined, \"f\");\n    }\n    chainCode() {\n        return BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_chainCode, \"f\");\n    }\n    setChainCode(chainCode) {\n        if (chainCode.length / 2 !== 32)\n            throw new errors_InvalidStateError(`Chaincode must be 32 bytes long, but got ${chainCode.length / 2} bytes long`);\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_chainCode, chainCode, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_originalBytes, undefined, \"f\");\n    }\n    attributes() {\n        return BootstrapWitness_classPrivateFieldGet(this, _BootstrapWitness_attributes, \"f\");\n    }\n    setAttributes(attributes) {\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_attributes, attributes, \"f\");\n        BootstrapWitness_classPrivateFieldSet(this, _BootstrapWitness_originalBytes, undefined, \"f\");\n    }\n}\n_BootstrapWitness_vkey = new WeakMap(), _BootstrapWitness_signature = new WeakMap(), _BootstrapWitness_chainCode = new WeakMap(), _BootstrapWitness_attributes = new WeakMap(), _BootstrapWitness_originalBytes = new WeakMap();\n//# sourceMappingURL=BootstrapWitness.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/Redeemer/RedeemerTag.js\nvar RedeemerTag;\n(function (RedeemerTag) {\n    RedeemerTag[RedeemerTag[\"Spend\"] = 0] = \"Spend\";\n    RedeemerTag[RedeemerTag[\"Mint\"] = 1] = \"Mint\";\n    RedeemerTag[RedeemerTag[\"Cert\"] = 2] = \"Cert\";\n    RedeemerTag[RedeemerTag[\"Reward\"] = 3] = \"Reward\";\n    RedeemerTag[RedeemerTag[\"Voting\"] = 4] = \"Voting\";\n    RedeemerTag[RedeemerTag[\"Proposing\"] = 5] = \"Proposing\";\n})(RedeemerTag || (RedeemerTag = {}));\n//# sourceMappingURL=RedeemerTag.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/Redeemer/Redeemer.js\n/* provided dependency */ var Redeemer_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Redeemer_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Redeemer_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Redeemer_tag, _Redeemer_index, _Redeemer_data, _Redeemer_exUnits, _Redeemer_originalBytes;\n\n\n\n\n\n\n\n\nconst REDEEMER_ARRAY_SIZE = 4;\nconst Redeemer_HASH_LENGTH_IN_BYTES = 32;\nclass Redeemer {\n    constructor(tag, index, data, exUnits) {\n        _Redeemer_tag.set(this, void 0);\n        _Redeemer_index.set(this, void 0);\n        _Redeemer_data.set(this, void 0);\n        _Redeemer_exUnits.set(this, void 0);\n        _Redeemer_originalBytes.set(this, undefined);\n        Redeemer_classPrivateFieldSet(this, _Redeemer_tag, tag, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_index, index, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_data, data, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_exUnits, exUnits, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Redeemer_classPrivateFieldGet(this, _Redeemer_originalBytes, \"f\"))\n            return Redeemer_classPrivateFieldGet(this, _Redeemer_originalBytes, \"f\");\n        writer.writeStartArray(REDEEMER_ARRAY_SIZE);\n        writer.writeInt(Redeemer_classPrivateFieldGet(this, _Redeemer_tag, \"f\"));\n        writer.writeInt(Redeemer_classPrivateFieldGet(this, _Redeemer_index, \"f\"));\n        writer.writeEncodedValue(hexToBytes(Redeemer_classPrivateFieldGet(this, _Redeemer_data, \"f\").toCbor()));\n        writer.writeEncodedValue(hexToBytes(Redeemer_classPrivateFieldGet(this, _Redeemer_exUnits, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== REDEEMER_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${REDEEMER_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const tag = Number(reader.readUInt());\n        const index = reader.readUInt();\n        const data = PlutusData.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const exUnits = ExUnits.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        reader.readEndArray();\n        const redeemer = new Redeemer(tag, index, data, exUnits);\n        Redeemer_classPrivateFieldSet(redeemer, _Redeemer_originalBytes, cbor, \"f\");\n        return redeemer;\n    }\n    toCore() {\n        let purpose;\n        switch (Redeemer_classPrivateFieldGet(this, _Redeemer_tag, \"f\")) {\n            case RedeemerTag.Spend:\n                purpose = RedeemerPurpose.spend;\n                break;\n            case RedeemerTag.Mint:\n                purpose = RedeemerPurpose.mint;\n                break;\n            case RedeemerTag.Cert:\n                purpose = RedeemerPurpose.certificate;\n                break;\n            case RedeemerTag.Reward:\n                purpose = RedeemerPurpose.withdrawal;\n                break;\n            case RedeemerTag.Voting:\n                purpose = RedeemerPurpose.vote;\n                break;\n            case RedeemerTag.Proposing:\n                purpose = RedeemerPurpose.propose;\n                break;\n            default:\n                throw new errors_InvalidStateError(`Invalid redeemer type ${Redeemer_classPrivateFieldGet(this, _Redeemer_tag, \"f\")}`);\n        }\n        return {\n            data: Redeemer_classPrivateFieldGet(this, _Redeemer_data, \"f\").toCore(),\n            executionUnits: Redeemer_classPrivateFieldGet(this, _Redeemer_exUnits, \"f\").toCore(),\n            index: Number(Redeemer_classPrivateFieldGet(this, _Redeemer_index, \"f\")),\n            purpose\n        };\n    }\n    static fromCore(redeemer) {\n        let tag;\n        switch (redeemer.purpose) {\n            case RedeemerPurpose.spend:\n                tag = RedeemerTag.Spend;\n                break;\n            case RedeemerPurpose.mint:\n                tag = RedeemerTag.Mint;\n                break;\n            case RedeemerPurpose.certificate:\n                tag = RedeemerTag.Cert;\n                break;\n            case RedeemerPurpose.withdrawal:\n                tag = RedeemerTag.Reward;\n                break;\n            case RedeemerPurpose.vote:\n                tag = RedeemerTag.Voting;\n                break;\n            case RedeemerPurpose.propose:\n                tag = RedeemerTag.Proposing;\n                break;\n            default:\n                throw new errors_InvalidStateError(`Invalid redeemer type ${redeemer.purpose}`);\n        }\n        return new Redeemer(tag, BigInt(redeemer.index), PlutusData.fromCore(redeemer.data), ExUnits.fromCore(redeemer.executionUnits));\n    }\n    tag() {\n        return Redeemer_classPrivateFieldGet(this, _Redeemer_tag, \"f\");\n    }\n    setTag(tag) {\n        Redeemer_classPrivateFieldSet(this, _Redeemer_tag, tag, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_originalBytes, undefined, \"f\");\n    }\n    index() {\n        return Redeemer_classPrivateFieldGet(this, _Redeemer_index, \"f\");\n    }\n    setIndex(index) {\n        Redeemer_classPrivateFieldSet(this, _Redeemer_index, index, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_originalBytes, undefined, \"f\");\n    }\n    data() {\n        return Redeemer_classPrivateFieldGet(this, _Redeemer_data, \"f\");\n    }\n    setData(data) {\n        Redeemer_classPrivateFieldSet(this, _Redeemer_data, data, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_originalBytes, undefined, \"f\");\n    }\n    exUnits() {\n        return Redeemer_classPrivateFieldGet(this, _Redeemer_exUnits, \"f\");\n    }\n    setExUnits(exUnits) {\n        Redeemer_classPrivateFieldSet(this, _Redeemer_exUnits, exUnits, \"f\");\n        Redeemer_classPrivateFieldSet(this, _Redeemer_originalBytes, undefined, \"f\");\n    }\n    hash() {\n        const hash = blake2b(Redeemer_HASH_LENGTH_IN_BYTES).update(Redeemer_Buffer.from(this.toCbor(), 'hex')).digest();\n        return Hash32ByteBase16(primitives_HexBlob.fromBytes(hash));\n    }\n}\n_Redeemer_tag = new WeakMap(), _Redeemer_index = new WeakMap(), _Redeemer_data = new WeakMap(), _Redeemer_exUnits = new WeakMap(), _Redeemer_originalBytes = new WeakMap();\n//# sourceMappingURL=Redeemer.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/Redeemer/Redeemers.js\n/* provided dependency */ var Redeemers_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Redeemers_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Redeemers_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Redeemers_values, _Redeemers_originalBytes;\n\n\n\n\n\n\n\nconst MAP_INDEX_EMBEDDED_GROUP_SIZE = 2;\nconst MAP_VALUE_EMBEDDED_GROUP_SIZE = 2;\nclass Redeemers {\n    constructor(redeemers) {\n        _Redeemers_values.set(this, void 0);\n        _Redeemers_originalBytes.set(this, undefined);\n        Redeemers_classPrivateFieldSet(this, _Redeemers_values, [...redeemers], \"f\");\n    }\n    toCbor() {\n        if (Redeemers_classPrivateFieldGet(this, _Redeemers_originalBytes, \"f\"))\n            return Redeemers_classPrivateFieldGet(this, _Redeemers_originalBytes, \"f\");\n        const writer = new CborWriter();\n        if (inConwayEra) {\n            const redeemersMap = new Map(Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\").map((redeemer) => [`${redeemer.tag()}:${redeemer.index()}`, redeemer]));\n            writer.writeStartMap(redeemersMap.size);\n            for (const redeemer of redeemersMap.values()) {\n                writer.writeStartArray(2);\n                writer.writeInt(redeemer.tag());\n                writer.writeInt(redeemer.index());\n                writer.writeStartArray(2);\n                writer.writeEncodedValue(hexToBytes(redeemer.data().toCbor()));\n                writer.writeEncodedValue(hexToBytes(redeemer.exUnits().toCbor()));\n            }\n        }\n        else {\n            writer.writeStartArray(Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\").length);\n            for (const data of Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\")) {\n                writer.writeEncodedValue(Redeemers_Buffer.from(data.toCbor(), 'hex'));\n            }\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const redeemers = [];\n        const reader = new CborReader(cbor);\n        if (reader.peekState() === CborReaderState.StartMap) {\n            reader.readStartMap();\n            while (reader.peekState() !== CborReaderState.EndMap) {\n                const indexLength = reader.readStartArray();\n                if (indexLength !== MAP_INDEX_EMBEDDED_GROUP_SIZE)\n                    throw new errors_InvalidArgumentError('cbor', `Redeemers map index should be an array of ${MAP_INDEX_EMBEDDED_GROUP_SIZE} elements, but got an array of ${indexLength} elements`);\n                const tag = Number(reader.readUInt());\n                const index = reader.readUInt();\n                reader.readEndArray();\n                const valueLength = reader.readStartArray();\n                if (valueLength !== MAP_VALUE_EMBEDDED_GROUP_SIZE)\n                    throw new errors_InvalidArgumentError('cbor', `Redeemers map value should be an array of ${MAP_VALUE_EMBEDDED_GROUP_SIZE} elements, but got an array of ${valueLength} elements`);\n                const data = PlutusData.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                const exUnits = ExUnits.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n                reader.readEndArray();\n                redeemers.push(new Redeemer(tag, index, data, exUnits));\n            }\n            reader.readEndMap();\n        }\n        else {\n            reader.readStartArray();\n            while (reader.peekState() !== CborReaderState.EndArray) {\n                redeemers.push(Redeemer.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n            }\n            reader.readEndArray();\n        }\n        const result = new Redeemers(redeemers);\n        Redeemers_classPrivateFieldSet(result, _Redeemers_originalBytes, cbor, \"f\");\n        return result;\n    }\n    toCore() {\n        return Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\").map((redeemer) => redeemer.toCore());\n    }\n    static fromCore(redeemers) {\n        return new Redeemers(redeemers.map((redeemer) => Redeemer.fromCore(redeemer)));\n    }\n    values() {\n        return Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\");\n    }\n    setValues(redeemers) {\n        Redeemers_classPrivateFieldSet(this, _Redeemers_values, [...redeemers], \"f\");\n        Redeemers_classPrivateFieldSet(this, _Redeemers_originalBytes, undefined, \"f\");\n    }\n    size() {\n        return Redeemers_classPrivateFieldGet(this, _Redeemers_values, \"f\").length;\n    }\n}\n_Redeemers_values = new WeakMap(), _Redeemers_originalBytes = new WeakMap();\n//# sourceMappingURL=Redeemers.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/VkeyWitness.js\nvar VkeyWitness_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar VkeyWitness_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _VkeyWitness_vkey, _VkeyWitness_signature, _VkeyWitness_originalBytes;\n\n\n\nconst VKEY_ARRAY_SIZE = 2;\nclass VkeyWitness {\n    constructor(vkey, signature) {\n        _VkeyWitness_vkey.set(this, void 0);\n        _VkeyWitness_signature.set(this, void 0);\n        _VkeyWitness_originalBytes.set(this, undefined);\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_vkey, vkey, \"f\");\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_signature, signature, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_originalBytes, \"f\"))\n            return VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_originalBytes, \"f\");\n        writer.writeStartArray(VKEY_ARRAY_SIZE);\n        writer.writeByteString(hexToBytes(VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_vkey, \"f\")));\n        writer.writeByteString(hexToBytes(VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_signature, \"f\")));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== VKEY_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${VKEY_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const vkey = primitives_HexBlob.fromBytes(reader.readByteString());\n        const signature = primitives_HexBlob.fromBytes(reader.readByteString());\n        reader.readEndArray();\n        const witness = new VkeyWitness(vkey, signature);\n        VkeyWitness_classPrivateFieldSet(witness, _VkeyWitness_originalBytes, cbor, \"f\");\n        return witness;\n    }\n    toCore() {\n        return [VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_vkey, \"f\"), VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_signature, \"f\")];\n    }\n    static fromCore(signatureEntry) {\n        return new VkeyWitness(signatureEntry[0], signatureEntry[1]);\n    }\n    vkey() {\n        return VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_vkey, \"f\");\n    }\n    setVkey(vkey) {\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_vkey, vkey, \"f\");\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_originalBytes, undefined, \"f\");\n    }\n    signature() {\n        return VkeyWitness_classPrivateFieldGet(this, _VkeyWitness_signature, \"f\");\n    }\n    setSignature(signature) {\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_signature, signature, \"f\");\n        VkeyWitness_classPrivateFieldSet(this, _VkeyWitness_originalBytes, undefined, \"f\");\n    }\n}\n_VkeyWitness_vkey = new WeakMap(), _VkeyWitness_signature = new WeakMap(), _VkeyWitness_originalBytes = new WeakMap();\n//# sourceMappingURL=VkeyWitness.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/uniqWith.js\nvar uniqWith = __webpack_require__(\"./node_modules/lodash/uniqWith.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/TransactionWitnessSet.js\n/* provided dependency */ var TransactionWitnessSet_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar TransactionWitnessSet_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar TransactionWitnessSet_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _TransactionWitnessSet_instances, TransactionWitnessSet_a, _TransactionWitnessSet_vkeywitnesses, _TransactionWitnessSet_nativeScripts, _TransactionWitnessSet_bootstrapWitnesses, _TransactionWitnessSet_plutusV1Scripts, _TransactionWitnessSet_plutusData, _TransactionWitnessSet_redeemers, _TransactionWitnessSet_plutusV2Scripts, _TransactionWitnessSet_plutusV3Scripts, _TransactionWitnessSet_originalBytes, _TransactionWitnessSet_getCoreScripts, _TransactionWitnessSet_getCddlScripts, _TransactionWitnessSet_getMapSize;\n\n\n\n\n\n\n\n\n\n\n\n\nclass TransactionWitnessSet {\n    constructor() {\n        _TransactionWitnessSet_instances.add(this);\n        _TransactionWitnessSet_vkeywitnesses.set(this, void 0);\n        _TransactionWitnessSet_nativeScripts.set(this, void 0);\n        _TransactionWitnessSet_bootstrapWitnesses.set(this, void 0);\n        _TransactionWitnessSet_plutusV1Scripts.set(this, void 0);\n        _TransactionWitnessSet_plutusData.set(this, void 0);\n        _TransactionWitnessSet_redeemers.set(this, void 0);\n        _TransactionWitnessSet_plutusV2Scripts.set(this, void 0);\n        _TransactionWitnessSet_plutusV3Scripts.set(this, void 0);\n        _TransactionWitnessSet_originalBytes.set(this, undefined);\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_originalBytes, \"f\"))\n            return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_originalBytes, \"f\");\n        writer.writeStartMap(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_instances, \"m\", _TransactionWitnessSet_getMapSize).call(this));\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").size() > 0) {\n            TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").setValues(uniqWith(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").values(), (lhs, rhs) => lhs.vkey() === rhs.vkey()));\n            writer.writeInt(0n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\").size() > 0) {\n            writer.writeInt(1n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").size() > 0) {\n            TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").setValues(uniqWith(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").values(), (lhs, rhs) => lhs.vkey() === rhs.vkey()));\n            writer.writeInt(2n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\").size() > 0) {\n            writer.writeInt(3n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\").size() > 0) {\n            writer.writeInt(4n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\").size() > 0) {\n            writer.writeInt(5n);\n            writer.writeEncodedValue(hexToBytes(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\").toCbor()));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\").size() > 0) {\n            writer.writeInt(6n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\").toCbor(), 'hex'));\n        }\n        if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\").size() > 0) {\n            writer.writeInt(7n);\n            writer.writeEncodedValue(TransactionWitnessSet_Buffer.from(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\").toCbor(), 'hex'));\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const witness = new TransactionWitnessSet();\n        reader.readStartMap();\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            const key = reader.readInt();\n            switch (key) {\n                case 0n:\n                    witness.setVkeys(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), VkeyWitness.fromCbor));\n                    break;\n                case 1n:\n                    witness.setNativeScripts(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), NativeScript.fromCbor));\n                    break;\n                case 2n:\n                    witness.setBootstraps(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), BootstrapWitness.fromCbor));\n                    break;\n                case 3n:\n                    witness.setPlutusV1Scripts(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), PlutusV1Script.fromCbor));\n                    break;\n                case 4n:\n                    witness.setPlutusData(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), PlutusData.fromCbor));\n                    break;\n                case 5n: {\n                    witness.setRedeemers(Redeemers.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue())));\n                    break;\n                }\n                case 6n:\n                    witness.setPlutusV2Scripts(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), PlutusV2Script.fromCbor));\n                    break;\n                case 7n:\n                    witness.setPlutusV3Scripts(CborSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()), PlutusV3Script.fromCbor));\n                    break;\n            }\n        }\n        reader.readEndMap();\n        TransactionWitnessSet_classPrivateFieldSet(witness, _TransactionWitnessSet_originalBytes, cbor, \"f\");\n        return witness;\n    }\n    toCore() {\n        const scripts = TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_instances, \"m\", _TransactionWitnessSet_getCoreScripts).call(this);\n        return {\n            bootstrap: TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").toCore() : undefined,\n            datums: TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\").toCore() : undefined,\n            redeemers: TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\")?.size() ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\").toCore() : undefined,\n            scripts: scripts.length > 0 ? scripts : undefined,\n            signatures: TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\") ? new Map(TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").toCore()) : new Map()\n        };\n    }\n    static fromCore(coreWitness) {\n        const witness = new TransactionWitnessSet();\n        if (coreWitness.signatures) {\n            witness.setVkeys(CborSet.fromCore([...coreWitness.signatures], VkeyWitness.fromCore));\n        }\n        if (coreWitness.scripts) {\n            const scripts = TransactionWitnessSet_classPrivateFieldGet(TransactionWitnessSet, TransactionWitnessSet_a, \"m\", _TransactionWitnessSet_getCddlScripts).call(TransactionWitnessSet, coreWitness.scripts);\n            if (scripts.native)\n                witness.setNativeScripts(scripts.native);\n            if (scripts.plutusV1)\n                witness.setPlutusV1Scripts(scripts.plutusV1);\n            if (scripts.plutusV2)\n                witness.setPlutusV2Scripts(scripts.plutusV2);\n            if (scripts.plutusV3)\n                witness.setPlutusV3Scripts(scripts.plutusV3);\n        }\n        if (coreWitness.redeemers) {\n            witness.setRedeemers(Redeemers.fromCore(coreWitness.redeemers));\n        }\n        if (coreWitness.datums) {\n            witness.setPlutusData(CborSet.fromCore(coreWitness.datums, PlutusData.fromCore));\n        }\n        if (coreWitness.bootstrap) {\n            witness.setBootstraps(CborSet.fromCore(coreWitness.bootstrap, BootstrapWitness.fromCore));\n        }\n        return witness;\n    }\n    setVkeys(vkeys) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_vkeywitnesses, vkeys, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    vkeys() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\");\n    }\n    setNativeScripts(nativeScripts) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_nativeScripts, nativeScripts, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    nativeScripts() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\");\n    }\n    setBootstraps(bootstraps) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_bootstrapWitnesses, bootstraps, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    bootstraps() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\");\n    }\n    setPlutusV1Scripts(plutusV1Scripts) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_plutusV1Scripts, plutusV1Scripts, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    plutusV1Scripts() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\");\n    }\n    setPlutusData(plutusData) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_plutusData, plutusData, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    plutusData() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\");\n    }\n    setRedeemers(redeemers) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_redeemers, redeemers, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    redeemers() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\");\n    }\n    setPlutusV2Scripts(plutusV2Scripts) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_plutusV2Scripts, plutusV2Scripts, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    plutusV2Scripts() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\");\n    }\n    setPlutusV3Scripts(plutusV3Scripts) {\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_plutusV3Scripts, plutusV3Scripts, \"f\");\n        TransactionWitnessSet_classPrivateFieldSet(this, _TransactionWitnessSet_originalBytes, undefined, \"f\");\n    }\n    plutusV3Scripts() {\n        return TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\");\n    }\n}\nTransactionWitnessSet_a = TransactionWitnessSet, _TransactionWitnessSet_vkeywitnesses = new WeakMap(), _TransactionWitnessSet_nativeScripts = new WeakMap(), _TransactionWitnessSet_bootstrapWitnesses = new WeakMap(), _TransactionWitnessSet_plutusV1Scripts = new WeakMap(), _TransactionWitnessSet_plutusData = new WeakMap(), _TransactionWitnessSet_redeemers = new WeakMap(), _TransactionWitnessSet_plutusV2Scripts = new WeakMap(), _TransactionWitnessSet_plutusV3Scripts = new WeakMap(), _TransactionWitnessSet_originalBytes = new WeakMap(), _TransactionWitnessSet_instances = new WeakSet(), _TransactionWitnessSet_getCoreScripts = function _TransactionWitnessSet_getCoreScripts() {\n    const plutusV1 = TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\").toCore() : [];\n    const plutusV2 = TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\").toCore() : [];\n    const plutusV3 = TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\").toCore() : [];\n    const native = TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\") ? TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\").toCore() : [];\n    return [...plutusV1, ...plutusV2, ...plutusV3, ...native];\n}, _TransactionWitnessSet_getCddlScripts = function _TransactionWitnessSet_getCddlScripts(scripts) {\n    const [coreNative, coreV1, coreV2, coreV3] = scripts.reduce(([native, v1, v2, v3], script) => {\n        if (script.__type === ScriptType.Native) {\n            native ? native.push(script) : (native = [script]);\n        }\n        else {\n            switch (script.version) {\n                case PlutusLanguageVersion.V1:\n                    v1 ? v1.push(script) : (v1 = [script]);\n                    break;\n                case PlutusLanguageVersion.V2:\n                    v2 ? v2.push(script) : (v2 = [script]);\n                    break;\n                case PlutusLanguageVersion.V3:\n                    v3 ? v3.push(script) : (v3 = [script]);\n                    break;\n                default:\n                    throw new SerializationError(SerializationFailure.InvalidScriptType, `Script '${script}' is not supported.`);\n            }\n        }\n        return [native, v1, v2, v3];\n    }, [null, null, null, null]);\n    return {\n        ...(coreNative && { native: CborSet.fromCore(coreNative, NativeScript.fromCore) }),\n        ...(coreV1 && { plutusV1: CborSet.fromCore(coreV1, PlutusV1Script.fromCore) }),\n        ...(coreV2 && { plutusV2: CborSet.fromCore(coreV2, PlutusV2Script.fromCore) }),\n        ...(coreV3 && { plutusV3: CborSet.fromCore(coreV3, PlutusV3Script.fromCore) })\n    };\n}, _TransactionWitnessSet_getMapSize = function _TransactionWitnessSet_getMapSize() {\n    let mapSize = 0;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_vkeywitnesses, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_nativeScripts, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_bootstrapWitnesses, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV1Scripts, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusData, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_redeemers, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV2Scripts, \"f\").size() > 0)\n        ++mapSize;\n    if (TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\") !== undefined && TransactionWitnessSet_classPrivateFieldGet(this, _TransactionWitnessSet_plutusV3Scripts, \"f\").size() > 0)\n        ++mapSize;\n    return mapSize;\n};\n//# sourceMappingURL=TransactionWitnessSet.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Transaction.js\n/* provided dependency */ var Transaction_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Transaction_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Transaction_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Transaction_body, _Transaction_witnessSet, _Transaction_auxiliaryData, _Transaction_isValid, _Transaction_originalBytes;\n\n\n\n\n\n\nconst ALONZO_ERA_TX_FRAME_SIZE = 4;\nclass Transaction {\n    constructor(body, witnessSet, auxiliaryData) {\n        _Transaction_body.set(this, void 0);\n        _Transaction_witnessSet.set(this, void 0);\n        _Transaction_auxiliaryData.set(this, void 0);\n        _Transaction_isValid.set(this, true);\n        _Transaction_originalBytes.set(this, undefined);\n        Transaction_classPrivateFieldSet(this, _Transaction_body, body, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_witnessSet, witnessSet, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_auxiliaryData, auxiliaryData, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Transaction_classPrivateFieldGet(this, _Transaction_originalBytes, \"f\"))\n            return Transaction_classPrivateFieldGet(this, _Transaction_originalBytes, \"f\");\n        writer.writeStartArray(ALONZO_ERA_TX_FRAME_SIZE);\n        writer.writeEncodedValue(hexToBytes(Transaction_classPrivateFieldGet(this, _Transaction_body, \"f\").toCbor()));\n        writer.writeEncodedValue(hexToBytes(Transaction_classPrivateFieldGet(this, _Transaction_witnessSet, \"f\").toCbor()));\n        writer.writeBoolean(Transaction_classPrivateFieldGet(this, _Transaction_isValid, \"f\"));\n        if (Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\")) {\n            writer.writeEncodedValue(hexToBytes(Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\").toCbor()));\n        }\n        else {\n            writer.writeNull();\n        }\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        const bodyBytes = reader.readEncodedValue();\n        const body = TransactionBody.fromCbor(primitives_HexBlob.fromBytes(bodyBytes));\n        const witnessSet = TransactionWitnessSet.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        let isValid = true;\n        if (length === ALONZO_ERA_TX_FRAME_SIZE) {\n            isValid = reader.readBoolean();\n        }\n        let auxData;\n        if (reader.peekState() !== CborReaderState.Null)\n            auxData = AuxiliaryData.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const tx = new Transaction(body, witnessSet, auxData);\n        Transaction_classPrivateFieldSet(tx, _Transaction_isValid, isValid, \"f\");\n        Transaction_classPrivateFieldSet(tx, _Transaction_originalBytes, cbor, \"f\");\n        return tx;\n    }\n    toCore() {\n        const tx = {\n            body: Transaction_classPrivateFieldGet(this, _Transaction_body, \"f\").toCore(),\n            id: this.getId(),\n            isValid: Transaction_classPrivateFieldGet(this, _Transaction_isValid, \"f\"),\n            witness: Transaction_classPrivateFieldGet(this, _Transaction_witnessSet, \"f\").toCore()\n        };\n        if (Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\")) {\n            tx.auxiliaryData = Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\").toCore();\n        }\n        return tx;\n    }\n    static fromCore(tx) {\n        const transaction = new Transaction(TransactionBody.fromCore(tx.body), TransactionWitnessSet.fromCore(tx.witness), tx.auxiliaryData ? AuxiliaryData.fromCore(tx.auxiliaryData) : undefined);\n        if (typeof tx.isValid !== 'undefined')\n            transaction.setIsValid(tx.isValid);\n        return transaction;\n    }\n    body() {\n        return TransactionBody.fromCbor(Transaction_classPrivateFieldGet(this, _Transaction_body, \"f\").toCbor());\n    }\n    setBody(body) {\n        Transaction_classPrivateFieldSet(this, _Transaction_body, body, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_originalBytes, undefined, \"f\");\n    }\n    witnessSet() {\n        return TransactionWitnessSet.fromCbor(Transaction_classPrivateFieldGet(this, _Transaction_witnessSet, \"f\").toCbor());\n    }\n    setWitnessSet(witnessSet) {\n        Transaction_classPrivateFieldSet(this, _Transaction_witnessSet, witnessSet, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_originalBytes, undefined, \"f\");\n    }\n    isValid() {\n        return Transaction_classPrivateFieldGet(this, _Transaction_isValid, \"f\");\n    }\n    setIsValid(valid) {\n        Transaction_classPrivateFieldSet(this, _Transaction_originalBytes, undefined, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_isValid, valid, \"f\");\n    }\n    auxiliaryData() {\n        if (Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\")) {\n            return AuxiliaryData.fromCbor(Transaction_classPrivateFieldGet(this, _Transaction_auxiliaryData, \"f\").toCbor());\n        }\n        return undefined;\n    }\n    setAuxiliaryData(auxiliaryData) {\n        Transaction_classPrivateFieldSet(this, _Transaction_auxiliaryData, auxiliaryData, \"f\");\n        Transaction_classPrivateFieldSet(this, _Transaction_originalBytes, undefined, \"f\");\n    }\n    getId() {\n        return Transaction_classPrivateFieldGet(this, _Transaction_body, \"f\").hash();\n    }\n    clone() {\n        const bytes = this.toCbor();\n        return Transaction.fromCbor(bytes);\n    }\n}\n_Transaction_body = new WeakMap(), _Transaction_witnessSet = new WeakMap(), _Transaction_auxiliaryData = new WeakMap(), _Transaction_isValid = new WeakMap(), _Transaction_originalBytes = new WeakMap();\nconst TxCBOR = (tx) => primitives_HexBlob(tx);\nTxCBOR.serialize = (tx) => Transaction.fromCore(tx).toCbor();\nconst TxBodyCBOR = (tx) => primitives_HexBlob(tx);\nTxBodyCBOR.fromTxCBOR = (txCbor) => Transaction.fromCbor(txCbor).body().toCbor();\nconst deserializeTx = ((txBody) => {\n    const hex = txBody instanceof Transaction_Buffer\n        ? txBody.toString('hex')\n        : txBody instanceof Uint8Array\n            ? Transaction_Buffer.from(txBody).toString('hex')\n            : txBody;\n    const transaction = Transaction.fromCbor(TxCBOR(hex));\n    return transaction.toCore();\n});\nTxCBOR.deserialize = (tx) => deserializeTx(tx);\n//# sourceMappingURL=Transaction.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/NativeScript/index.js\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/PlutusScript/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Scripts/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Common/index.js\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/PlutusData/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborSimpleValue.js\nvar CborSimpleValue;\n(function (CborSimpleValue) {\n    CborSimpleValue[CborSimpleValue[\"False\"] = 20] = \"False\";\n    CborSimpleValue[CborSimpleValue[\"True\"] = 21] = \"True\";\n    CborSimpleValue[CborSimpleValue[\"Null\"] = 22] = \"Null\";\n    CborSimpleValue[CborSimpleValue[\"Undefined\"] = 23] = \"Undefined\";\n})(CborSimpleValue || (CborSimpleValue = {}));\n//# sourceMappingURL=CborSimpleValue.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/index.js\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/Relay/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/PoolParams/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/MoveInstantaneousReward/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/DRep/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Certificates/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/Costmdls/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/Update/index.js\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/VotingProcedures/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/Committee.js\nvar Committee_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Committee_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Committee_quorumThreshold, _Committee_committeeColdCredentials, _Committee_originalBytes;\n\n\n\n\nconst COMMITTEE_ARRAY_SIZE = 2;\nconst Committee_CREDENTIAL_ARRAY_SIZE = 2;\nconst Committee_CREDENTIAL_INDEX = 0;\nconst Committee_EPOCH_INDEX = 1;\nclass Committee {\n    constructor(quorumThreshold) {\n        _Committee_quorumThreshold.set(this, void 0);\n        _Committee_committeeColdCredentials.set(this, []);\n        _Committee_originalBytes.set(this, undefined);\n        Committee_classPrivateFieldSet(this, _Committee_quorumThreshold, quorumThreshold, \"f\");\n    }\n    toCbor() {\n        const writer = new CborWriter();\n        if (Committee_classPrivateFieldGet(this, _Committee_originalBytes, \"f\"))\n            return Committee_classPrivateFieldGet(this, _Committee_originalBytes, \"f\");\n        if (Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").length === 0)\n            throw new errors_InvalidStateError('There must be at least one Committee member');\n        writer.writeStartArray(COMMITTEE_ARRAY_SIZE);\n        writer.writeStartMap(Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").length);\n        for (const entry of Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\")) {\n            writer.writeStartArray(Committee_CREDENTIAL_ARRAY_SIZE);\n            writer.writeInt(entry[Committee_CREDENTIAL_INDEX].type);\n            writer.writeByteString(hexToBytes(entry[Committee_CREDENTIAL_INDEX].hash));\n            writer.writeInt(entry[Committee_EPOCH_INDEX]);\n        }\n        writer.writeEncodedValue(hexToBytes(Committee_classPrivateFieldGet(this, _Committee_quorumThreshold, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== COMMITTEE_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${COMMITTEE_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        reader.readStartMap();\n        const members = [];\n        while (reader.peekState() !== CborReaderState.EndMap) {\n            if (reader.readStartArray() !== Committee_CREDENTIAL_ARRAY_SIZE)\n                throw new errors_InvalidArgumentError('cbor', `Expected an array of ${Committee_CREDENTIAL_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n            const type = Number(reader.readUInt());\n            const hash = primitives_HexBlob.fromBytes(reader.readByteString());\n            reader.readEndArray();\n            const epoch = Number(reader.readUInt());\n            members.push([{ hash, type }, epoch]);\n        }\n        reader.readEndMap();\n        const quorumThreshold = UnitInterval.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const committee = new Committee(quorumThreshold);\n        for (const member of members)\n            committee.addMember(member[Committee_CREDENTIAL_INDEX], member[Committee_EPOCH_INDEX]);\n        Committee_classPrivateFieldSet(committee, _Committee_originalBytes, cbor, \"f\");\n        return committee;\n    }\n    toCore() {\n        if (Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").length === 0)\n            throw new errors_InvalidStateError('There must be at least one Committee member');\n        const members = Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").map((entry) => ({\n            coldCredential: entry[Committee_CREDENTIAL_INDEX],\n            epoch: entry[Committee_EPOCH_INDEX]\n        }));\n        return {\n            members: members,\n            quorumThreshold: Committee_classPrivateFieldGet(this, _Committee_quorumThreshold, \"f\").toCore()\n        };\n    }\n    static fromCore(coreCommittee) {\n        const committee = new Committee(UnitInterval.fromCore(coreCommittee.quorumThreshold));\n        for (const member of coreCommittee.members)\n            committee.addMember(member.coldCredential, member.epoch);\n        return committee;\n    }\n    membersKeys() {\n        return Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").map((entry) => entry[0]);\n    }\n    quorumThreshold() {\n        return Committee_classPrivateFieldGet(this, _Committee_quorumThreshold, \"f\");\n    }\n    addMember(committeeColdCredential, epoch) {\n        const member = Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").find((entry) => entry[Committee_CREDENTIAL_INDEX].type === committeeColdCredential.type &&\n            entry[Committee_CREDENTIAL_INDEX].hash === committeeColdCredential.hash);\n        if (member)\n            throw new errors_InvalidArgumentError('committeeColdCredential', 'The given credential is already present');\n        Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").push([committeeColdCredential, epoch]);\n    }\n    getMemberEpoch(committeeColdCredential) {\n        const member = Committee_classPrivateFieldGet(this, _Committee_committeeColdCredentials, \"f\").find((entry) => entry[Committee_CREDENTIAL_INDEX].type === committeeColdCredential.type &&\n            entry[Committee_CREDENTIAL_INDEX].hash === committeeColdCredential.hash);\n        if (member)\n            return member[Committee_EPOCH_INDEX];\n        return undefined;\n    }\n}\n_Committee_quorumThreshold = new WeakMap(), _Committee_committeeColdCredentials = new WeakMap(), _Committee_originalBytes = new WeakMap();\n//# sourceMappingURL=Committee.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/ProposalProcedure/index.js\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionBody/index.js\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/Redeemer/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionWitnessSet/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/TransactionMetadata/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/AuxiliaryData/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/TransactionUnspentOutput.js\nvar TransactionUnspentOutput_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar TransactionUnspentOutput_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _TransactionUnspentOutput_input, _TransactionUnspentOutput_output, _TransactionUnspentOutput_originalBytes;\n\n\n\n\nconst TRANSACTION_UNSPENT_OUTPUT_ARRAY_SIZE = 2;\nclass TransactionUnspentOutput {\n    constructor(input, output) {\n        _TransactionUnspentOutput_input.set(this, void 0);\n        _TransactionUnspentOutput_output.set(this, void 0);\n        _TransactionUnspentOutput_originalBytes.set(this, undefined);\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_input, input, \"f\");\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_output, output, \"f\");\n    }\n    toCbor() {\n        if (TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_originalBytes, \"f\"))\n            return TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_originalBytes, \"f\");\n        const writer = new CborWriter();\n        writer.writeStartArray(TRANSACTION_UNSPENT_OUTPUT_ARRAY_SIZE);\n        writer.writeEncodedValue(hexToBytes(TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_input, \"f\").toCbor()));\n        writer.writeEncodedValue(hexToBytes(TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_output, \"f\").toCbor()));\n        return writer.encodeAsHex();\n    }\n    static fromCbor(cbor) {\n        const reader = new CborReader(cbor);\n        const length = reader.readStartArray();\n        if (length !== TRANSACTION_UNSPENT_OUTPUT_ARRAY_SIZE)\n            throw new errors_InvalidArgumentError('cbor', `Expected an array of ${TRANSACTION_UNSPENT_OUTPUT_ARRAY_SIZE} elements, but got an array of ${length} elements`);\n        const input = TransactionInput.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const output = TransactionOutput.fromCbor(primitives_HexBlob.fromBytes(reader.readEncodedValue()));\n        const result = new TransactionUnspentOutput(input, output);\n        TransactionUnspentOutput_classPrivateFieldSet(result, _TransactionUnspentOutput_originalBytes, cbor, \"f\");\n        return result;\n    }\n    toCore() {\n        return [TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_input, \"f\").toCore(), TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_output, \"f\").toCore()];\n    }\n    static fromCore(core) {\n        return new TransactionUnspentOutput(TransactionInput.fromCore(core[0]), TransactionOutput.fromCore(core[1]));\n    }\n    input() {\n        return TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_input, \"f\");\n    }\n    setInput(input) {\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_input, input, \"f\");\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_originalBytes, undefined, \"f\");\n    }\n    output() {\n        return TransactionUnspentOutput_classPrivateFieldGet(this, _TransactionUnspentOutput_output, \"f\");\n    }\n    setOutput(output) {\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_output, output, \"f\");\n        TransactionUnspentOutput_classPrivateFieldSet(this, _TransactionUnspentOutput_originalBytes, undefined, \"f\");\n    }\n}\n_TransactionUnspentOutput_input = new WeakMap(), _TransactionUnspentOutput_output = new WeakMap(), _TransactionUnspentOutput_originalBytes = new WeakMap();\n//# sourceMappingURL=TransactionUnspentOutput.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Serialization/index.js\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Ed25519e/Ed25519KeyHash.js\n/* provided dependency */ var Ed25519KeyHash_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Ed25519KeyHash_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Ed25519KeyHash_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Ed25519KeyHash_hash;\n\n\nconst ED25519_PUBLIC_KEY_HASH_LENGTH = 28;\nclass Ed25519KeyHash {\n    constructor(hash) {\n        _Ed25519KeyHash_hash.set(this, void 0);\n        Ed25519KeyHash_classPrivateFieldSet(this, _Ed25519KeyHash_hash, hash, \"f\");\n    }\n    static fromBytes(hash) {\n        if (hash.length !== ED25519_PUBLIC_KEY_HASH_LENGTH)\n            throw new InvalidArgumentError('hash', `Hash should be ${ED25519_PUBLIC_KEY_HASH_LENGTH} bytes; however ${hash.length} bytes were provided.`);\n        return new Ed25519KeyHash(hash);\n    }\n    static fromHex(hash) {\n        return Ed25519KeyHash.fromBytes(Ed25519KeyHash_Buffer.from(hash, 'hex'));\n    }\n    bytes() {\n        return Ed25519KeyHash_classPrivateFieldGet(this, _Ed25519KeyHash_hash, \"f\");\n    }\n    hex() {\n        return Ed25519KeyHashHex(Ed25519KeyHash_Buffer.from(Ed25519KeyHash_classPrivateFieldGet(this, _Ed25519KeyHash_hash, \"f\")).toString('hex'));\n    }\n}\n_Ed25519KeyHash_hash = new WeakMap();\n//# sourceMappingURL=Ed25519KeyHash.js.map\n// EXTERNAL MODULE: ./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js\nvar libsodium_wrappers = __webpack_require__(\"./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js\");\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Ed25519e/Ed25519PublicKey.js\n/* provided dependency */ var Ed25519PublicKey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Ed25519PublicKey_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Ed25519PublicKey_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Ed25519PublicKey_keyMaterial;\n\n\n\n\nconst ED25519_PUBLIC_KEY_LENGTH = 32;\nclass Ed25519PublicKey {\n    constructor(keyMaterial) {\n        _Ed25519PublicKey_keyMaterial.set(this, void 0);\n        Ed25519PublicKey_classPrivateFieldSet(this, _Ed25519PublicKey_keyMaterial, keyMaterial, \"f\");\n    }\n    verify(signature, message) {\n        return libsodium_wrappers.crypto_sign_verify_detached(signature.bytes(), Ed25519PublicKey_Buffer.from(message, 'hex'), Ed25519PublicKey_classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, \"f\"));\n    }\n    static fromBytes(keyMaterial) {\n        if (keyMaterial.length !== ED25519_PUBLIC_KEY_LENGTH)\n            throw new InvalidArgumentError('keyMaterial', `Key should be ${ED25519_PUBLIC_KEY_LENGTH} bytes; however ${keyMaterial.length} bytes were provided.`);\n        return new Ed25519PublicKey(keyMaterial);\n    }\n    static fromHex(keyMaterial) {\n        return Ed25519PublicKey.fromBytes(Ed25519PublicKey_Buffer.from(keyMaterial, 'hex'));\n    }\n    hash() {\n        const hash = libsodium_wrappers.crypto_generichash(ED25519_PUBLIC_KEY_HASH_LENGTH, Ed25519PublicKey_classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, \"f\"));\n        return Ed25519KeyHash.fromBytes(hash);\n    }\n    bytes() {\n        return Ed25519PublicKey_classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, \"f\");\n    }\n    hex() {\n        return Ed25519PublicKeyHex(Ed25519PublicKey_Buffer.from(Ed25519PublicKey_classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, \"f\")).toString('hex'));\n    }\n}\n_Ed25519PublicKey_keyMaterial = new WeakMap();\n//# sourceMappingURL=Ed25519PublicKey.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Ed25519e/Ed25519Signature.js\n/* provided dependency */ var Ed25519Signature_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Ed25519Signature_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Ed25519Signature_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Ed25519Signature_signature;\n\n\nconst ED25519_SIGNATURE_LENGTH = 64;\nclass Ed25519Signature {\n    constructor(signature) {\n        _Ed25519Signature_signature.set(this, void 0);\n        Ed25519Signature_classPrivateFieldSet(this, _Ed25519Signature_signature, signature, \"f\");\n    }\n    static fromBytes(signature) {\n        if (signature.length !== ED25519_SIGNATURE_LENGTH)\n            throw new InvalidArgumentError('signature', `signature should be ${ED25519_SIGNATURE_LENGTH} bytes; however ${signature.length} bytes were provided.`);\n        return new Ed25519Signature(signature);\n    }\n    static fromHex(signature) {\n        return Ed25519Signature.fromBytes(Ed25519Signature_Buffer.from(signature, 'hex'));\n    }\n    bytes() {\n        return Ed25519Signature_classPrivateFieldGet(this, _Ed25519Signature_signature, \"f\");\n    }\n    hex() {\n        return Ed25519SignatureHex(Ed25519Signature_Buffer.from(Ed25519Signature_classPrivateFieldGet(this, _Ed25519Signature_signature, \"f\")).toString('hex'));\n    }\n}\n_Ed25519Signature_signature = new WeakMap();\n//# sourceMappingURL=Ed25519Signature.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Bip32/arithmetic.js\nconst add28Mul8 = (x, y) => {\n    let carry = 0;\n    const out = new Uint8Array(32);\n    for (let i = 0; i < 28; i++) {\n        const r = x[i] + (y[i] << 3) + carry;\n        out[i] = r & 0xff;\n        carry = r >> 8;\n    }\n    for (let i = 28; i < 32; i++) {\n        const r = x[i] + carry;\n        out[i] = r & 0xff;\n        carry = r >> 8;\n    }\n    return out;\n};\nconst add256bits = (x, y) => {\n    let carry = 0;\n    const out = new Uint8Array(32);\n    for (let i = 0; i < 32; i++) {\n        const r = x[i] + y[i] + carry;\n        out[i] = r;\n        carry = r >> 8;\n    }\n    return out;\n};\nconst le32 = (i) => new Uint8Array([i & 0xff, (i >> 8) & 0xff, (i >> 16) & 0xff, (i >> 24) & 0xff]);\n//# sourceMappingURL=arithmetic.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Bip32/Bip32KeyDerivation.js\n/* provided dependency */ var Bip32KeyDerivation_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst isHardenedDerivation = (index) => index >= 2147483648;\nconst deriveHardened = (index, scalar, iv, chainCode) => {\n    const data = Bip32KeyDerivation_Buffer.allocUnsafe(1 + 64 + 4);\n    data.writeUInt32LE(index, 1 + 64);\n    scalar.copy(data, 1);\n    iv.copy(data, 1 + 32);\n    data[0] = 0x00;\n    const zMac = libsodium_wrappers.crypto_auth_hmacsha512(data, chainCode);\n    data[0] = 0x01;\n    const ccMac = libsodium_wrappers.crypto_auth_hmacsha512(data, chainCode);\n    return { ccMac, zMac };\n};\nconst deriveSoft = (index, scalar, chainCode) => {\n    const data = Bip32KeyDerivation_Buffer.allocUnsafe(1 + 32 + 4);\n    data.writeUInt32LE(index, 1 + 32);\n    const vk = Bip32KeyDerivation_Buffer.from(libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(scalar));\n    vk.copy(data, 1);\n    data[0] = 0x02;\n    const zMac = libsodium_wrappers.crypto_auth_hmacsha512(data, chainCode);\n    data[0] = 0x03;\n    const ccMac = libsodium_wrappers.crypto_auth_hmacsha512(data, chainCode);\n    return { ccMac, zMac };\n};\nconst pointOfTrunc28Mul8 = (sk) => {\n    const scalar = add28Mul8(new Uint8Array(32).fill(0), sk);\n    return libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(scalar);\n};\nconst derivePrivate = (key, index) => {\n    const kl = key.subarray(0, 32);\n    const kr = key.subarray(32, 64);\n    const cc = key.subarray(64, 96);\n    const { ccMac, zMac } = isHardenedDerivation(index) ? deriveHardened(index, kl, kr, cc) : deriveSoft(index, kl, cc);\n    const chainCode = ccMac.slice(32, 64);\n    const zl = zMac.slice(0, 32);\n    const zr = zMac.slice(32, 64);\n    const left = add28Mul8(kl, zl);\n    const right = add256bits(kr, zr);\n    return Bip32KeyDerivation_Buffer.concat([left, right, chainCode]);\n};\nconst derivePublic = (key, index) => {\n    const pk = key.subarray(0, 32);\n    const cc = key.subarray(32, 64);\n    const data = Bip32KeyDerivation_Buffer.allocUnsafe(1 + 32 + 4);\n    data.writeUInt32LE(index, 1 + 32);\n    if (isHardenedDerivation(index))\n        throw new InvalidArgumentError('index', 'Public key can not be derived from a hardened index.');\n    pk.copy(data, 1);\n    data[0] = 0x02;\n    const z = libsodium_wrappers.crypto_auth_hmacsha512(data, cc);\n    data[0] = 0x03;\n    const c = libsodium_wrappers.crypto_auth_hmacsha512(data, cc);\n    const chainCode = c.slice(32, 64);\n    const zl = z.slice(0, 32);\n    const p = pointOfTrunc28Mul8(zl);\n    return Bip32KeyDerivation_Buffer.concat([libsodium_wrappers.crypto_core_ed25519_add(p, pk), chainCode]);\n};\n//# sourceMappingURL=Bip32KeyDerivation.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Bip32/Bip32PublicKey.js\n/* provided dependency */ var Bip32PublicKey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Bip32PublicKey_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Bip32PublicKey_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Bip32PublicKey_key;\n\n\n\n\n\nconst BIP32_ED25519_PUBLIC_KEY_LENGTH = 64;\nclass Bip32PublicKey {\n    constructor(key) {\n        _Bip32PublicKey_key.set(this, void 0);\n        Bip32PublicKey_classPrivateFieldSet(this, _Bip32PublicKey_key, key, \"f\");\n    }\n    static fromBytes(key) {\n        if (key.length !== BIP32_ED25519_PUBLIC_KEY_LENGTH)\n            throw new InvalidArgumentError('key', `Key should be ${BIP32_ED25519_PUBLIC_KEY_LENGTH} bytes; however ${key.length} bytes were provided.`);\n        return new Bip32PublicKey(key);\n    }\n    static fromHex(key) {\n        return Bip32PublicKey.fromBytes(Bip32PublicKey_Buffer.from(key, 'hex'));\n    }\n    toRawKey() {\n        return Ed25519PublicKey.fromBytes(Bip32PublicKey_classPrivateFieldGet(this, _Bip32PublicKey_key, \"f\").slice(0, ED25519_PUBLIC_KEY_LENGTH));\n    }\n    derive(derivationIndices) {\n        let key = Bip32PublicKey_Buffer.from(Bip32PublicKey_classPrivateFieldGet(this, _Bip32PublicKey_key, \"f\"));\n        for (const index of derivationIndices) {\n            key = derivePublic(key, index);\n        }\n        return Bip32PublicKey.fromBytes(key);\n    }\n    bytes() {\n        return Bip32PublicKey_classPrivateFieldGet(this, _Bip32PublicKey_key, \"f\");\n    }\n    hex() {\n        return Bip32PublicKeyHex(Bip32PublicKey_Buffer.from(Bip32PublicKey_classPrivateFieldGet(this, _Bip32PublicKey_key, \"f\")).toString('hex'));\n    }\n    hash() {\n        const hash = libsodium_wrappers.crypto_generichash(BIP32_PUBLIC_KEY_HASH_LENGTH, Bip32PublicKey_classPrivateFieldGet(this, _Bip32PublicKey_key, \"f\"));\n        return Bip32PublicKeyHashHex(Bip32PublicKey_Buffer.from(hash).toString('hex'));\n    }\n}\n_Bip32PublicKey_key = new WeakMap();\n//# sourceMappingURL=Bip32PublicKey.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Ed25519e/Ed25519PrivateKey.js\n/* provided dependency */ var Ed25519PrivateKey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Ed25519PrivateKey_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Ed25519PrivateKey_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Ed25519PrivateKey_keyMaterial;\n\n\n\n\n\nconst SCALAR_INDEX = 0;\nconst SCALAR_SIZE = 32;\nconst IV_INDEX = 32;\nconst IV_SIZE = 32;\nconst NORMAL_ED25519_PRIVATE_KEY_LENGTH = 32;\nconst EXTENDED_ED25519_PRIVATE_KEY_LENGTH = 64;\nconst extendedScalar = (extendedKey) => extendedKey.slice(SCALAR_INDEX, SCALAR_SIZE);\nconst extendedIv = (extendedKey) => extendedKey.slice(IV_INDEX, IV_INDEX + IV_SIZE);\nconst signExtendedDetached = (extendedKey, message) => {\n    const scalar = extendedScalar(extendedKey);\n    const publicKey = libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(scalar);\n    const nonce = libsodium_wrappers.crypto_core_ed25519_scalar_reduce(libsodium_wrappers.crypto_hash_sha512(Ed25519PrivateKey_Buffer.concat([extendedIv(extendedKey), message])));\n    const r = libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(nonce);\n    let hram = libsodium_wrappers.crypto_hash_sha512(Ed25519PrivateKey_Buffer.concat([r, publicKey, message]));\n    hram = libsodium_wrappers.crypto_core_ed25519_scalar_reduce(hram);\n    return Ed25519PrivateKey_Buffer.concat([\n        r,\n        libsodium_wrappers.crypto_core_ed25519_scalar_add(libsodium_wrappers.crypto_core_ed25519_scalar_mul(hram, scalar), nonce)\n    ]);\n};\nvar Ed25519PrivateKeyType;\n(function (Ed25519PrivateKeyType) {\n    Ed25519PrivateKeyType[\"Normal\"] = \"Normal\";\n    Ed25519PrivateKeyType[\"Extended\"] = \"Extended\";\n})(Ed25519PrivateKeyType || (Ed25519PrivateKeyType = {}));\nclass Ed25519PrivateKey {\n    constructor(keyMaterial, type) {\n        _Ed25519PrivateKey_keyMaterial.set(this, void 0);\n        Ed25519PrivateKey_classPrivateFieldSet(this, _Ed25519PrivateKey_keyMaterial, keyMaterial, \"f\");\n        this.__type = type;\n    }\n    toPublic() {\n        return Ed25519PublicKey.fromBytes(this.__type === Ed25519PrivateKeyType.Extended\n            ? libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(extendedScalar(Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\")))\n            : libsodium_wrappers.crypto_sign_seed_keypair(Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\")).publicKey);\n    }\n    sign(message) {\n        return Ed25519Signature.fromBytes(this.__type === Ed25519PrivateKeyType.Extended\n            ? signExtendedDetached(Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\"), Ed25519PrivateKey_Buffer.from(message, 'hex'))\n            : libsodium_wrappers.crypto_sign_detached(Ed25519PrivateKey_Buffer.from(message, 'hex'), Ed25519PrivateKey_Buffer.concat([Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\"), this.toPublic().bytes()])));\n    }\n    static fromNormalBytes(keyMaterial) {\n        if (keyMaterial.length !== NORMAL_ED25519_PRIVATE_KEY_LENGTH)\n            throw new InvalidArgumentError('keyMaterial', `Key should be ${NORMAL_ED25519_PRIVATE_KEY_LENGTH} bytes; however ${keyMaterial.length} bytes were provided.`);\n        return new Ed25519PrivateKey(keyMaterial, Ed25519PrivateKeyType.Normal);\n    }\n    static fromExtendedBytes(keyMaterial) {\n        if (keyMaterial.length !== EXTENDED_ED25519_PRIVATE_KEY_LENGTH)\n            throw new InvalidArgumentError('keyMaterial', `Key should be ${EXTENDED_ED25519_PRIVATE_KEY_LENGTH} bytes; however ${keyMaterial.length} bytes were provided.`);\n        return new Ed25519PrivateKey(keyMaterial, Ed25519PrivateKeyType.Extended);\n    }\n    static fromNormalHex(keyMaterial) {\n        return Ed25519PrivateKey.fromNormalBytes(Ed25519PrivateKey_Buffer.from(keyMaterial, 'hex'));\n    }\n    static fromExtendedHex(keyMaterial) {\n        return Ed25519PrivateKey.fromExtendedBytes(Ed25519PrivateKey_Buffer.from(keyMaterial, 'hex'));\n    }\n    bytes() {\n        return Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\");\n    }\n    hex() {\n        return this.__type === Ed25519PrivateKeyType.Extended\n            ? Ed25519PrivateExtendedKeyHex(Ed25519PrivateKey_Buffer.from(Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\")).toString('hex'))\n            : Ed25519PrivateNormalKeyHex(Ed25519PrivateKey_Buffer.from(Ed25519PrivateKey_classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, \"f\")).toString('hex'));\n    }\n}\n_Ed25519PrivateKey_keyMaterial = new WeakMap();\n//# sourceMappingURL=Ed25519PrivateKey.js.map\n// EXTERNAL MODULE: ./node_modules/pbkdf2/browser.js\nvar browser = __webpack_require__(\"./node_modules/pbkdf2/browser.js\");\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Bip32/Bip32PrivateKey.js\n/* provided dependency */ var Bip32PrivateKey_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Bip32PrivateKey_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Bip32PrivateKey_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _Bip32PrivateKey_key;\n\n\n\n\n\n\n\nconst Bip32PrivateKey_SCALAR_INDEX = 0;\nconst Bip32PrivateKey_SCALAR_SIZE = 32;\nconst PBKDF2_ITERATIONS = 4096;\nconst PBKDF2_KEY_SIZE = 96;\nconst PBKDF2_DIGEST_ALGORITHM = 'sha512';\nconst CHAIN_CODE_INDEX = 64;\nconst CHAIN_CODE_SIZE = 32;\nconst clampScalar = (scalar) => {\n    scalar[0] &= 248;\n    scalar[31] &= 31;\n    scalar[31] |= 64;\n    return scalar;\n};\nconst Bip32PrivateKey_extendedScalar = (extendedKey) => extendedKey.slice(Bip32PrivateKey_SCALAR_INDEX, Bip32PrivateKey_SCALAR_SIZE);\nconst BIP32_ED25519_PRIVATE_KEY_LENGTH = 96;\nclass Bip32PrivateKey {\n    constructor(key) {\n        _Bip32PrivateKey_key.set(this, void 0);\n        Bip32PrivateKey_classPrivateFieldSet(this, _Bip32PrivateKey_key, key, \"f\");\n    }\n    static fromBip39Entropy(entropy, password) {\n        const xprv = (0,browser.pbkdf2Sync)(password, entropy, PBKDF2_ITERATIONS, PBKDF2_KEY_SIZE, PBKDF2_DIGEST_ALGORITHM);\n        return Bip32PrivateKey.fromBytes(clampScalar(xprv));\n    }\n    static fromBytes(key) {\n        if (key.length !== BIP32_ED25519_PRIVATE_KEY_LENGTH)\n            throw new InvalidArgumentError('key', `Key should be ${BIP32_ED25519_PRIVATE_KEY_LENGTH} bytes; however ${key.length} bytes were provided.`);\n        return new Bip32PrivateKey(key);\n    }\n    static fromHex(key) {\n        return Bip32PrivateKey.fromBytes(Bip32PrivateKey_Buffer.from(key, 'hex'));\n    }\n    derive(derivationIndices) {\n        let key = Bip32PrivateKey_Buffer.from(Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\"));\n        for (const index of derivationIndices) {\n            key = derivePrivate(key, index);\n        }\n        return Bip32PrivateKey.fromBytes(key);\n    }\n    toRawKey() {\n        return Ed25519PrivateKey.fromExtendedBytes(Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\").slice(0, EXTENDED_ED25519_PRIVATE_KEY_LENGTH));\n    }\n    toPublic() {\n        const scalar = Bip32PrivateKey_extendedScalar(Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\").slice(0, EXTENDED_ED25519_PRIVATE_KEY_LENGTH));\n        const publicKey = libsodium_wrappers.crypto_scalarmult_ed25519_base_noclamp(scalar);\n        return Bip32PublicKey.fromBytes(Bip32PrivateKey_Buffer.concat([publicKey, Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\").slice(CHAIN_CODE_INDEX, CHAIN_CODE_INDEX + CHAIN_CODE_SIZE)]));\n    }\n    bytes() {\n        return Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\");\n    }\n    hex() {\n        return Bip32PrivateKeyHex(Bip32PrivateKey_Buffer.from(Bip32PrivateKey_classPrivateFieldGet(this, _Bip32PrivateKey_key, \"f\")).toString('hex'));\n    }\n}\n_Bip32PrivateKey_key = new WeakMap();\n//# sourceMappingURL=Bip32PrivateKey.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/errors.js\n\nconst esm_errors_formatErrorMessage = (reason, detail) => reason + (detail ? ` (${detail})` : '');\nconst esm_errors_isWithInnerError = (error) => error !== null && typeof error === 'object' && 'innerError' in error;\nconst esm_errors_isErrorLike = (error) => {\n    if (!error || typeof error !== 'object' || !('message' in error && 'stack' in error))\n        return false;\n    const { message, stack } = error;\n    return typeof message === 'string' && typeof stack === 'string';\n};\nconst esm_errors_stripStackTrace = (error) => {\n    if (!error)\n        return;\n    if (esm_errors_isErrorLike(error)) {\n        delete error.stack;\n    }\n    if (esm_errors_isWithInnerError(error)) {\n        esm_errors_stripStackTrace(error.innerError);\n    }\n};\nclass esm_errors_ComposableError extends CustomError {\n    constructor(message, innerError) {\n        let firstLineOfInnerErrorStack = '';\n        let innerErrorStack = [];\n        if (esm_errors_isErrorLike(innerError) && innerError.stack) {\n            [firstLineOfInnerErrorStack, ...innerErrorStack] = innerError.stack.split(esm_errors_ComposableError.stackDelimiter);\n            message = `${message} due to\\n ${firstLineOfInnerErrorStack}`;\n        }\n        if (typeof innerError === 'string')\n            message = `${message} due to\\n ${innerError}`;\n        super(message);\n        this.innerError = innerError;\n        if (!this.stack || innerErrorStack.length === 0)\n            return;\n        const [firstLineOfStack] = this.stack.split(esm_errors_ComposableError.stackDelimiter);\n        Object.defineProperty(this, 'stack', {\n            configurable: true,\n            value: `${firstLineOfStack}${innerErrorStack.join(esm_errors_ComposableError.stackDelimiter)}`\n        });\n    }\n}\nesm_errors_ComposableError.stackDelimiter = '\\n    at ';\nclass esm_errors_InvalidStringError extends esm_errors_ComposableError {\n    constructor(expectation, innerError) {\n        super(`Invalid string: \"${expectation}\"`, innerError);\n    }\n}\nclass esm_errors_InvalidArgumentError extends CustomError {\n    constructor(argName, message) {\n        super(`Invalid argument '${argName}': ${message}`);\n    }\n}\nclass esm_errors_InvalidStateError extends CustomError {\n    constructor(message) {\n        super(`Invalid state': ${message}`);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/primitives.js\n/* provided dependency */ var esm_primitives_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nconst esm_primitives_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst esm_primitives_isOneOf = (target, options) => (Array.isArray(options) && options.includes(target)) || target === options;\nconst esm_primitives_assertIsBech32WithPrefix = (target, prefix, expectedDecodedLength) => {\n    let decoded;\n    try {\n        decoded = dist.bech32.decode(target, esm_primitives_MAX_BECH32_LENGTH_LIMIT);\n    }\n    catch (error) {\n        throw new esm_errors_InvalidStringError(`expected bech32-encoded string with '${prefix}' prefix`, error);\n    }\n    if (!esm_primitives_isOneOf(decoded.prefix, prefix)) {\n        throw new esm_errors_InvalidStringError(`expected bech32 prefix '${prefix}', got '${decoded.prefix}''`);\n    }\n    if (expectedDecodedLength && !esm_primitives_isOneOf(decoded.words.length, expectedDecodedLength)) {\n        throw new esm_errors_InvalidStringError(`expected decoded length of '${expectedDecodedLength}', got '${decoded.words.length}'`);\n    }\n};\nconst esm_primitives_typedBech32 = (target, prefix, expectedDecodedLength) => {\n    esm_primitives_assertIsBech32WithPrefix(target, prefix, expectedDecodedLength);\n    return target;\n};\nconst esm_primitives_assertLength = (expectedLength, target) => {\n    if (expectedLength && target.length !== expectedLength) {\n        throw new esm_errors_InvalidStringError(`expected length '${expectedLength}', got ${target.length}`);\n    }\n};\nconst esm_primitives_assertIsHexString = (target, expectedLength) => {\n    esm_primitives_assertLength(expectedLength, target);\n    if (target.length > 0 && !/^[\\da-f]+$/i.test(target)) {\n        throw new esm_errors_InvalidStringError('expected hex string');\n    }\n};\nconst esm_primitives_typedHex = (value, length) => {\n    esm_primitives_assertIsHexString(value, length);\n    return value;\n};\nconst esm_primitives_Base64Blob = (target) => {\n    if (/^(?:[\\d+/a-z]{4})*(?:[\\d+/a-z]{2}==|[\\d+/a-z]{3}=)?$/i.test(target)) {\n        return target;\n    }\n    throw new esm_errors_InvalidStringError('expected base64 string');\n};\nesm_primitives_Base64Blob.fromBytes = (bytes) => esm_primitives_Buffer.from(bytes).toString('base64');\nconst esm_primitives_HexBlob = (target) => esm_primitives_typedHex(target);\nesm_primitives_HexBlob.fromBytes = (bytes) => esm_primitives_Buffer.from(bytes).toString('hex');\nesm_primitives_HexBlob.fromBase64 = (rawData) => esm_primitives_Buffer.from(rawData, 'base64').toString('hex');\nesm_primitives_HexBlob.toTypedBech32 = (prefix, hexString) => dist.bech32.encode(prefix, dist.bech32.toWords(Uint8Array.from(esm_primitives_Buffer.from(hexString, 'hex'))));\nconst esm_primitives_castHexBlob = (target, expectedLength) => {\n    esm_primitives_assertLength(expectedLength, target);\n    return target;\n};\n//# sourceMappingURL=primitives.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Bip32/index.js\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/Ed25519e/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/crypto/node_modules/@cardano-sdk/util/dist/esm/isPromise.js\nconst isPromise = (obj) => typeof obj === 'object' && typeof obj.then === 'function';\n//# sourceMappingURL=isPromise.js.map\n;// ./node_modules/@cardano-sdk/crypto/node_modules/@cardano-sdk/util/dist/esm/freeable.js\nvar freeable_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar freeable_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar _ManagedFreeableScope_scopeStack, _ManagedFreeableScope_disposed, _AutoFree_scope, _AutoFree_callback;\n\nclass ManagedFreeableScope {\n    constructor() {\n        _ManagedFreeableScope_scopeStack.set(this, []);\n        _ManagedFreeableScope_disposed.set(this, false);\n    }\n    manage(freeable) {\n        if (freeable === undefined)\n            return freeable;\n        if (freeable_classPrivateFieldGet(this, _ManagedFreeableScope_disposed, \"f\"))\n            throw new Error('This scope is already disposed.');\n        freeable_classPrivateFieldGet(this, _ManagedFreeableScope_scopeStack, \"f\").push(freeable);\n        return freeable;\n    }\n    dispose() {\n        if (freeable_classPrivateFieldGet(this, _ManagedFreeableScope_disposed, \"f\"))\n            return;\n        for (const resource of freeable_classPrivateFieldGet(this, _ManagedFreeableScope_scopeStack, \"f\")) {\n            if (resource?.ptr === 0 || !resource?.free) {\n                continue;\n            }\n            resource?.free();\n        }\n        freeable_classPrivateFieldSet(this, _ManagedFreeableScope_disposed, true, \"f\");\n    }\n}\n_ManagedFreeableScope_scopeStack = new WeakMap(), _ManagedFreeableScope_disposed = new WeakMap();\nclass AutoFree {\n    constructor(cb) {\n        _AutoFree_scope.set(this, void 0);\n        _AutoFree_callback.set(this, void 0);\n        freeable_classPrivateFieldSet(this, _AutoFree_callback, cb, \"f\");\n        freeable_classPrivateFieldSet(this, _AutoFree_scope, new ManagedFreeableScope(), \"f\");\n    }\n    execute() {\n        let result;\n        try {\n            result = freeable_classPrivateFieldGet(this, _AutoFree_callback, \"f\").call(this, freeable_classPrivateFieldGet(this, _AutoFree_scope, \"f\"));\n            if (isPromise(result)) {\n                return result\n                    .then((value) => {\n                    freeable_classPrivateFieldGet(this, _AutoFree_scope, \"f\").dispose();\n                    return value;\n                })\n                    .catch((error) => {\n                    freeable_classPrivateFieldGet(this, _AutoFree_scope, \"f\").dispose();\n                    throw error;\n                });\n            }\n            freeable_classPrivateFieldGet(this, _AutoFree_scope, \"f\").dispose();\n            return result;\n        }\n        catch (error) {\n            freeable_classPrivateFieldGet(this, _AutoFree_scope, \"f\").dispose();\n            throw error;\n        }\n    }\n}\n_AutoFree_scope = new WeakMap(), _AutoFree_callback = new WeakMap();\nconst usingAutoFree = (cb) => new AutoFree(cb).execute();\n//# sourceMappingURL=freeable.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/strategies/CmlBip32Ed25519.js\n/* provided dependency */ var CmlBip32Ed25519_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CmlBip32Ed25519_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CmlBip32Ed25519_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _CmlBip32Ed25519_CML;\n\n\nconst EXTENDED_KEY_HEX_LENGTH = 128;\nclass CmlBip32Ed25519 {\n    constructor(CML) {\n        _CmlBip32Ed25519_CML.set(this, void 0);\n        CmlBip32Ed25519_classPrivateFieldSet(this, _CmlBip32Ed25519_CML, CML, \"f\");\n    }\n    fromBip39Entropy(entropy, passphrase) {\n        const hexKey = usingAutoFree((scope) => {\n            const cmlKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PrivateKey.from_bip39_entropy(entropy, CmlBip32Ed25519_Buffer.from(passphrase)));\n            return cmlKey.as_bytes();\n        });\n        return Bip32PrivateKeyHex(CmlBip32Ed25519_Buffer.from(hexKey).toString('hex'));\n    }\n    getPublicKey(privateKey) {\n        return usingAutoFree((scope) => {\n            const cmlPrivateKey = privateKey.length === EXTENDED_KEY_HEX_LENGTH\n                ? scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PrivateKey.from_extended_bytes(CmlBip32Ed25519_Buffer.from(privateKey, 'hex')))\n                : scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PrivateKey.from_normal_bytes(CmlBip32Ed25519_Buffer.from(privateKey, 'hex')));\n            const pubKeyBytes = scope.manage(cmlPrivateKey.to_public()).as_bytes();\n            return Ed25519PublicKeyHex(CmlBip32Ed25519_Buffer.from(pubKeyBytes).toString('hex'));\n        });\n    }\n    getPubKeyHash(publicKey) {\n        return usingAutoFree((scope) => {\n            const cmlPubKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PublicKey.from_bytes(CmlBip32Ed25519_Buffer.from(publicKey, 'hex')));\n            const keyHash = scope.manage(cmlPubKey.hash()).to_bytes();\n            return Ed25519KeyHashHex(CmlBip32Ed25519_Buffer.from(keyHash).toString('hex'));\n        });\n    }\n    getRawPrivateKey(bip32PrivateKey) {\n        return usingAutoFree((scope) => {\n            const cmlPrivateKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PrivateKey.from_bytes(CmlBip32Ed25519_Buffer.from(bip32PrivateKey, 'hex')));\n            const bytes = scope.manage(cmlPrivateKey.to_raw_key()).as_bytes();\n            return Ed25519PrivateExtendedKeyHex(CmlBip32Ed25519_Buffer.from(bytes).toString('hex'));\n        });\n    }\n    getRawPublicKey(bip32PublicKey) {\n        return usingAutoFree((scope) => {\n            const cmlPublicKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PublicKey.from_bytes(CmlBip32Ed25519_Buffer.from(bip32PublicKey, 'hex')));\n            const bytes = scope.manage(cmlPublicKey.to_raw_key()).as_bytes();\n            return Ed25519PublicKeyHex(CmlBip32Ed25519_Buffer.from(bytes).toString('hex'));\n        });\n    }\n    getBip32PublicKey(privateKey) {\n        return usingAutoFree((scope) => {\n            const cmlPrivateKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PrivateKey.from_bytes(CmlBip32Ed25519_Buffer.from(privateKey, 'hex')));\n            const pubKeyBytes = scope.manage(cmlPrivateKey.to_public()).as_bytes();\n            return Bip32PublicKeyHex(CmlBip32Ed25519_Buffer.from(pubKeyBytes).toString('hex'));\n        });\n    }\n    derivePrivateKey(parentKey, derivationIndices) {\n        return usingAutoFree((scope) => {\n            let cmlKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PrivateKey.from_bytes(CmlBip32Ed25519_Buffer.from(parentKey, 'hex')));\n            for (const index of derivationIndices) {\n                cmlKey = scope.manage(cmlKey.derive(index));\n            }\n            return Bip32PrivateKeyHex(CmlBip32Ed25519_Buffer.from(cmlKey.as_bytes()).toString('hex'));\n        });\n    }\n    derivePublicKey(parentKey, derivationIndices) {\n        return usingAutoFree((scope) => {\n            let cmlKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Bip32PublicKey.from_bytes(CmlBip32Ed25519_Buffer.from(parentKey, 'hex')));\n            for (const index of derivationIndices) {\n                cmlKey = scope.manage(cmlKey.derive(index));\n            }\n            return Bip32PublicKeyHex(CmlBip32Ed25519_Buffer.from(cmlKey.as_bytes()).toString('hex'));\n        });\n    }\n    sign(privateKey, message) {\n        return usingAutoFree((scope) => {\n            const cmlPrivateKey = privateKey.length === EXTENDED_KEY_HEX_LENGTH\n                ? scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PrivateKey.from_extended_bytes(CmlBip32Ed25519_Buffer.from(privateKey, 'hex')))\n                : scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PrivateKey.from_normal_bytes(CmlBip32Ed25519_Buffer.from(privateKey, 'hex')));\n            const signature = scope.manage(cmlPrivateKey.sign(CmlBip32Ed25519_Buffer.from(message, 'hex'))).to_bytes();\n            return Ed25519SignatureHex(CmlBip32Ed25519_Buffer.from(signature).toString('hex'));\n        });\n    }\n    verify(signature, message, publicKey) {\n        return usingAutoFree((scope) => {\n            const cmlKey = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").PublicKey.from_bytes(CmlBip32Ed25519_Buffer.from(publicKey, 'hex')));\n            const cmlSignature = scope.manage(CmlBip32Ed25519_classPrivateFieldGet(this, _CmlBip32Ed25519_CML, \"f\").Ed25519Signature.from_bytes(CmlBip32Ed25519_Buffer.from(signature, 'hex')));\n            return cmlKey.verify(CmlBip32Ed25519_Buffer.from(message, 'hex'), cmlSignature);\n        });\n    }\n}\n_CmlBip32Ed25519_CML = new WeakMap();\n//# sourceMappingURL=CmlBip32Ed25519.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/strategies/SodiumBip32Ed25519.js\n\n\n\nconst SodiumBip32Ed25519_EXTENDED_KEY_HEX_LENGTH = 128;\nclass SodiumBip32Ed25519 {\n    constructor() {\n    }\n    static async create() {\n        await libsodium_wrappers.ready;\n        return Promise.resolve(new SodiumBip32Ed25519());\n    }\n    fromBip39Entropy(entropy, passphrase) {\n        return Bip32PrivateKey.fromBip39Entropy(entropy, passphrase).hex();\n    }\n    getPublicKey(privateKey) {\n        const key = privateKey.length === SodiumBip32Ed25519_EXTENDED_KEY_HEX_LENGTH\n            ? Ed25519PrivateKey.fromExtendedHex(privateKey)\n            : Ed25519PrivateKey.fromNormalHex(privateKey);\n        return key.toPublic().hex();\n    }\n    getPubKeyHash(publicKey) {\n        const pubKey = Ed25519PublicKey.fromHex(publicKey);\n        return pubKey.hash().hex();\n    }\n    getRawPrivateKey(bip32PrivateKey) {\n        return Bip32PrivateKey.fromHex(bip32PrivateKey).toRawKey().hex();\n    }\n    getRawPublicKey(bip32PublicKey) {\n        const pubKey = Bip32PublicKey.fromHex(bip32PublicKey);\n        return pubKey.toRawKey().hex();\n    }\n    getBip32PublicKey(privateKey) {\n        const privKey = Bip32PrivateKey.fromHex(privateKey);\n        return privKey.toPublic().hex();\n    }\n    derivePrivateKey(parentKey, derivationIndices) {\n        const privKey = Bip32PrivateKey.fromHex(parentKey);\n        return privKey.derive(derivationIndices).hex();\n    }\n    derivePublicKey(parentKey, derivationIndices) {\n        const pubKey = Bip32PublicKey.fromHex(parentKey);\n        return pubKey.derive(derivationIndices).hex();\n    }\n    sign(privateKey, message) {\n        const key = privateKey.length === SodiumBip32Ed25519_EXTENDED_KEY_HEX_LENGTH\n            ? Ed25519PrivateKey.fromExtendedHex(privateKey)\n            : Ed25519PrivateKey.fromNormalHex(privateKey);\n        return key.sign(message).hex();\n    }\n    verify(signature, message, publicKey) {\n        const key = Ed25519PublicKey.fromHex(publicKey);\n        return key.verify(Ed25519Signature.fromHex(signature), message);\n    }\n}\n//# sourceMappingURL=SodiumBip32Ed25519.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/strategies/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/crypto/dist/esm/index.js\n\n\n\n\n\n\n\n\n\nconst ready = async () => await libsodium_wrappers.ready;\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/buffer/index.js\nvar buffer = __webpack_require__(\"./node_modules/buffer/index.js\");\n// EXTERNAL MODULE: ./node_modules/@harmoniclabs/cbor/dist/index.js\nvar cbor_dist = __webpack_require__(\"./node_modules/@harmoniclabs/cbor/dist/index.js\");\n// EXTERNAL MODULE: ./node_modules/blakejs/index.js\nvar blakejs = __webpack_require__(\"./node_modules/blakejs/index.js\");\n// EXTERNAL MODULE: ./node_modules/crypto-browserify/index.js\nvar crypto_browserify = __webpack_require__(\"./node_modules/crypto-browserify/index.js\");\n// EXTERNAL MODULE: ./node_modules/bip39/src/index.js\nvar src = __webpack_require__(\"./node_modules/bip39/src/index.js\");\n;// ./node_modules/@meshsdk/common/dist/index.js\n/* provided dependency */ var dist_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n// src/constants/protocol-parameters.ts\nvar DEFAULT_PROTOCOL_PARAMETERS = {\n  epoch: 0,\n  coinsPerUtxoSize: 4310,\n  priceMem: 0.0577,\n  priceStep: 721e-7,\n  minFeeA: 44,\n  minFeeB: 155381,\n  keyDeposit: 2e6,\n  maxTxSize: 16384,\n  maxValSize: 5e3,\n  poolDeposit: 5e8,\n  maxCollateralInputs: 3,\n  decentralisation: 0,\n  maxBlockSize: 98304,\n  collateralPercent: 150,\n  maxBlockHeaderSize: 1100,\n  minPoolCost: \"340000000\",\n  maxTxExMem: \"16000000\",\n  maxTxExSteps: \"10000000000\",\n  maxBlockExMem: \"80000000\",\n  maxBlockExSteps: \"40000000000\",\n  minFeeRefScriptCostPerByte: 15\n};\nvar DREP_DEPOSIT = \"500000000\";\nvar resolveTxFees = (txSize, minFeeA = DEFAULT_PROTOCOL_PARAMETERS.minFeeA, minFeeB = DEFAULT_PROTOCOL_PARAMETERS.minFeeB) => {\n  const fees = BigInt(minFeeA) * BigInt(txSize) + BigInt(minFeeB);\n  return fees.toString();\n};\n\n// src/constants/supported-wallets.ts\nvar SUPPORTED_WALLETS = [\n  \"begin\",\n  \"eternl\",\n  \"flint\",\n  \"lace\",\n  \"nami\",\n  \"nufi\",\n  \"gerowallet\",\n  \"typhoncip30\",\n  \"vespr\",\n  \"yoroi\"\n];\n\n// src/constants/cost-models.ts\nvar DEFAULT_V1_COST_MODEL_LIST = [\n  100788,\n  420,\n  1,\n  1,\n  1e3,\n  173,\n  0,\n  1,\n  1e3,\n  59957,\n  4,\n  1,\n  11183,\n  32,\n  201305,\n  8356,\n  4,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  100,\n  100,\n  16e3,\n  100,\n  94375,\n  32,\n  132994,\n  32,\n  61462,\n  4,\n  72010,\n  178,\n  0,\n  1,\n  22151,\n  32,\n  91189,\n  769,\n  4,\n  2,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  1e3,\n  42921,\n  4,\n  2,\n  24548,\n  29498,\n  38,\n  1,\n  898148,\n  27279,\n  1,\n  51775,\n  558,\n  1,\n  39184,\n  1e3,\n  60594,\n  1,\n  141895,\n  32,\n  83150,\n  32,\n  15299,\n  32,\n  76049,\n  1,\n  13169,\n  4,\n  22100,\n  10,\n  28999,\n  74,\n  1,\n  28999,\n  74,\n  1,\n  43285,\n  552,\n  1,\n  44749,\n  541,\n  1,\n  33852,\n  32,\n  68246,\n  32,\n  72362,\n  32,\n  7243,\n  32,\n  7391,\n  32,\n  11546,\n  32,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  90434,\n  519,\n  0,\n  1,\n  74433,\n  32,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  270652,\n  22588,\n  4,\n  1457325,\n  64566,\n  4,\n  20467,\n  1,\n  4,\n  0,\n  141992,\n  32,\n  100788,\n  420,\n  1,\n  1,\n  81663,\n  32,\n  59498,\n  32,\n  20142,\n  32,\n  24588,\n  32,\n  20744,\n  32,\n  25933,\n  32,\n  24623,\n  32,\n  53384111,\n  14333,\n  10\n];\nvar DEFAULT_V2_COST_MODEL_LIST = [\n  100788,\n  420,\n  1,\n  1,\n  1e3,\n  173,\n  0,\n  1,\n  1e3,\n  59957,\n  4,\n  1,\n  11183,\n  32,\n  201305,\n  8356,\n  4,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  100,\n  100,\n  16e3,\n  100,\n  94375,\n  32,\n  132994,\n  32,\n  61462,\n  4,\n  72010,\n  178,\n  0,\n  1,\n  22151,\n  32,\n  91189,\n  769,\n  4,\n  2,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  1e3,\n  42921,\n  4,\n  2,\n  24548,\n  29498,\n  38,\n  1,\n  898148,\n  27279,\n  1,\n  51775,\n  558,\n  1,\n  39184,\n  1e3,\n  60594,\n  1,\n  141895,\n  32,\n  83150,\n  32,\n  15299,\n  32,\n  76049,\n  1,\n  13169,\n  4,\n  22100,\n  10,\n  28999,\n  74,\n  1,\n  28999,\n  74,\n  1,\n  43285,\n  552,\n  1,\n  44749,\n  541,\n  1,\n  33852,\n  32,\n  68246,\n  32,\n  72362,\n  32,\n  7243,\n  32,\n  7391,\n  32,\n  11546,\n  32,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  90434,\n  519,\n  0,\n  1,\n  74433,\n  32,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  85848,\n  228465,\n  122,\n  0,\n  1,\n  1,\n  955506,\n  213312,\n  0,\n  2,\n  270652,\n  22588,\n  4,\n  1457325,\n  64566,\n  4,\n  20467,\n  1,\n  4,\n  0,\n  141992,\n  32,\n  100788,\n  420,\n  1,\n  1,\n  81663,\n  32,\n  59498,\n  32,\n  20142,\n  32,\n  24588,\n  32,\n  20744,\n  32,\n  25933,\n  32,\n  24623,\n  32,\n  43053543,\n  10,\n  53384111,\n  14333,\n  10,\n  43574283,\n  26308,\n  10\n];\nvar DEFAULT_V3_COST_MODEL_LIST = [\n  100788,\n  420,\n  1,\n  1,\n  1e3,\n  173,\n  0,\n  1,\n  1e3,\n  59957,\n  4,\n  1,\n  11183,\n  32,\n  201305,\n  8356,\n  4,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  16e3,\n  100,\n  100,\n  100,\n  16e3,\n  100,\n  94375,\n  32,\n  132994,\n  32,\n  61462,\n  4,\n  72010,\n  178,\n  0,\n  1,\n  22151,\n  32,\n  91189,\n  769,\n  4,\n  2,\n  85848,\n  123203,\n  7305,\n  -900,\n  1716,\n  549,\n  57,\n  85848,\n  0,\n  1,\n  1,\n  1e3,\n  42921,\n  4,\n  2,\n  24548,\n  29498,\n  38,\n  1,\n  898148,\n  27279,\n  1,\n  51775,\n  558,\n  1,\n  39184,\n  1e3,\n  60594,\n  1,\n  141895,\n  32,\n  83150,\n  32,\n  15299,\n  32,\n  76049,\n  1,\n  13169,\n  4,\n  22100,\n  10,\n  28999,\n  74,\n  1,\n  28999,\n  74,\n  1,\n  43285,\n  552,\n  1,\n  44749,\n  541,\n  1,\n  33852,\n  32,\n  68246,\n  32,\n  72362,\n  32,\n  7243,\n  32,\n  7391,\n  32,\n  11546,\n  32,\n  85848,\n  123203,\n  7305,\n  -900,\n  1716,\n  549,\n  57,\n  85848,\n  0,\n  1,\n  90434,\n  519,\n  0,\n  1,\n  74433,\n  32,\n  85848,\n  123203,\n  7305,\n  -900,\n  1716,\n  549,\n  57,\n  85848,\n  0,\n  1,\n  1,\n  85848,\n  123203,\n  7305,\n  -900,\n  1716,\n  549,\n  57,\n  85848,\n  0,\n  1,\n  955506,\n  213312,\n  0,\n  2,\n  270652,\n  22588,\n  4,\n  1457325,\n  64566,\n  4,\n  20467,\n  1,\n  4,\n  0,\n  141992,\n  32,\n  100788,\n  420,\n  1,\n  1,\n  81663,\n  32,\n  59498,\n  32,\n  20142,\n  32,\n  24588,\n  32,\n  20744,\n  32,\n  25933,\n  32,\n  24623,\n  32,\n  43053543,\n  10,\n  53384111,\n  14333,\n  10,\n  43574283,\n  26308,\n  10,\n  16e3,\n  100,\n  16e3,\n  100,\n  962335,\n  18,\n  2780678,\n  6,\n  442008,\n  1,\n  52538055,\n  3756,\n  18,\n  267929,\n  18,\n  76433006,\n  8868,\n  18,\n  52948122,\n  18,\n  1995836,\n  36,\n  3227919,\n  12,\n  901022,\n  1,\n  166917843,\n  4307,\n  36,\n  284546,\n  36,\n  158221314,\n  26549,\n  36,\n  74698472,\n  36,\n  333849714,\n  1,\n  254006273,\n  72,\n  2174038,\n  72,\n  2261318,\n  64571,\n  4,\n  207616,\n  8310,\n  4,\n  1293828,\n  28716,\n  63,\n  0,\n  1,\n  1006041,\n  43623,\n  251,\n  0,\n  1,\n  100181,\n  726,\n  719,\n  0,\n  1,\n  100181,\n  726,\n  719,\n  0,\n  1,\n  100181,\n  726,\n  719,\n  0,\n  1,\n  107878,\n  680,\n  0,\n  1,\n  95336,\n  1,\n  281145,\n  18848,\n  0,\n  1,\n  180194,\n  159,\n  1,\n  1,\n  158519,\n  8942,\n  0,\n  1,\n  159378,\n  8813,\n  0,\n  1,\n  107490,\n  3298,\n  1,\n  106057,\n  655,\n  1,\n  1964219,\n  24520,\n  3\n];\n\n// src/constants/language-views.ts\nvar SUPPORTED_LANGUAGE_VIEWS = {\n  ALONZO: {\n    V1: \"a141005901d59f1a000302590001011a00060bc719026d00011a000249f01903e800011a000249f018201a0025cea81971f70419744d186419744d186419744d186419744d186419744d186419744d18641864186419744d18641a000249f018201a000249f018201a000249f018201a000249f01903e800011a000249f018201a000249f01903e800081a000242201a00067e2318760001011a000249f01903e800081a000249f01a0001b79818f7011a000249f0192710011a0002155e19052e011903e81a000249f01903e8011a000249f018201a000249f018201a000249f0182001011a000249f0011a000249f0041a000194af18f8011a000194af18f8011a0002377c190556011a0002bdea1901f1011a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000242201a00067e23187600010119f04c192bd200011a000249f018201a000242201a00067e2318760001011a000242201a00067e2318760001011a0025cea81971f704001a000141bb041a000249f019138800011a000249f018201a000302590001011a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a000249f018201a00330da70101ff\"\n  },\n  BABBAGE: {\n    V1: \"a141005901b69f1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201a009063b91903fd0aff\",\n    V2: \"a20198af1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a0011b22c1a0005fdde00021a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201b00000004a817c8001b00000004a817c8001a009063b91903fd0a1b00000004a817c800001b00000004a817c80041005901b69f1a0003236119032c01011903e819023b00011903e8195e7104011903e818201a0001ca761928eb041959d818641959d818641959d818641959d818641959d818641959d81864186418641959d81864194c5118201a0002acfa182019b551041a000363151901ff00011a00015c3518201a000797751936f404021a0002ff941a0006ea7818dc0001011903e8196ff604021a0003bd081a00034ec5183e011a00102e0f19312a011a00032e801901a5011a0002da781903e819cf06011a00013a34182019a8f118201903e818201a00013aac0119e143041903e80a1a00030219189c011a00030219189c011a0003207c1901d9011a000330001901ff0119ccf3182019fd40182019ffd5182019581e18201940b318201a00012adf18201a0002ff941a0006ea7818dc0001011a00010f92192da7000119eabb18201a0002ff941a0006ea7818dc0001011a0002ff941a0006ea7818dc0001011a000c504e197712041a001d6af61a0001425b041a00040c660004001a00014fab18201a0003236119032c010119a0de18201a00033d7618201979f41820197fb8182019a95d1820197df718201995aa18201a009063b91903fd0aff\"\n  }\n};\nvar resolveLanguageView = (era, version) => {\n  return SUPPORTED_LANGUAGE_VIEWS[era][version];\n};\n\n// src/constants/index.ts\nvar DEFAULT_REDEEMER_BUDGET = {\n  mem: 7e6,\n  steps: 3e9\n};\nvar POLICY_ID_LENGTH = 56;\nvar LANGUAGE_VERSIONS = {\n  V1: \"V1\",\n  V2: \"V2\",\n  V3: \"V3\"\n};\nvar HARDENED_KEY_START = 2147483648;\nvar SUPPORTED_CLOCKS = {\n  testnet: [\"74\", \"1598400\", \"1595967616\", \"432000\"],\n  preview: [\"183\", \"15811222\", \"1682467200\", \"86400\"],\n  preprod: [\"65\", \"26438400\", \"1682121600\", \"432000\"],\n  mainnet: [\"208\", \"4492800\", \"1596059091\", \"432000\"]\n};\nvar SUPPORTED_HANDLES = {\n  0: \"8d18d786e92776c824607fd8e193ec535c79dc61ea2405ddf3b09fe3\",\n  1: \"f0ff48bbb7bbe9d59a40f1ce90e9e9d0ff5002ec48f232b49ca0fb9a\"\n};\nvar SUPPORTED_OGMIOS_LINKS = {\n  mainnet: \"wss://ogmios-api.mainnet.dandelion.link\",\n  preprod: \"wss://ogmios-api.iohk-preprod.dandelion.link\",\n  preview: \"__TBD_SOON_TM__\",\n  testnet: \"wss://ogmios-api.testnet.dandelion.link\"\n};\nvar SUPPORTED_TOKENS = {\n  LQ: \"da8c30857834c6ae7203935b89278c532b3995245295456f993e1d244c51\",\n  MIN: \"29d222ce763455e3d7a09a665ce554f00ac89d2e99a1a83d267170c64d494e\",\n  NTX: \"edfd7a1d77bcb8b884c474bdc92a16002d1fb720e454fa6e993444794e5458\",\n  iBTC: \"f66d78b4a3cb3d37afa0ec36461e51ecbde00f26c8f0a68f94b6988069425443\",\n  iETH: \"f66d78b4a3cb3d37afa0ec36461e51ecbde00f26c8f0a68f94b6988069455448\",\n  iUSD: \"f66d78b4a3cb3d37afa0ec36461e51ecbde00f26c8f0a68f94b6988069555344\",\n  MILK: \"8a1cfae21368b8bebbbed9800fec304e95cce39a2a57dc35e2e3ebaa4d494c4b\",\n  AGIX: \"f43a62fdc3965df486de8a0d32fe800963589c41b38946602a0dc53541474958\",\n  MELD: \"6ac8ef33b510ec004fe11585f7c5a9f0c07f0c23428ab4f29c1d7d104d454c44\",\n  INDY: \"533bb94a8850ee3ccbe483106489399112b74c905342cb1792a797a0494e4459\",\n  CLAY: \"38ad9dc3aec6a2f38e220142b9aa6ade63ebe71f65e7cc2b7d8a8535434c4159\",\n  MCOS: \"6f46e1304b16d884c85c62fb0eef35028facdc41aaa0fd319a152ed64d434f53\",\n  DING: \"ce5b9e0f8a88255b65f2e4d065c6e716e9fa9a8a86dfb86423dd1ac044494e47\",\n  GERO: \"10a49b996e2402269af553a8a96fb8eb90d79e9eca79e2b4223057b64745524f\",\n  NMKR: \"5dac8536653edc12f6f5e1045d8164b9f59998d3bdc300fc928434894e4d4b52\",\n  PAVIA: \"884892bcdc360bcef87d6b3f806e7f9cd5ac30d999d49970e7a903ae5041564941\",\n  HOSKY: \"a0028f350aaabe0545fdcb56b039bfb08e4bb4d8c4d7c3c7d481c235484f534b59\",\n  YUMMI: \"078eafce5cd7edafdf63900edef2c1ea759e77f30ca81d6bbdeec92479756d6d69\",\n  C3: \"8e51398904a5d3fc129fbf4f1589701de23c7824d5c90fdb9490e15a434841524c4933\",\n  GIMBAL: \"2b0a04a7b60132b1805b296c7fcb3b217ff14413991bf76f72663c3067696d62616c\",\n  SUNDAE: \"9a9693a9a37912a5097918f97918d15240c92ab729a0b7c4aa144d7753554e444145\",\n  GREENS: \"4623ab311b7d982d8d26fcbe1a9439ca56661aafcdcd8d8a0ef31fd6475245454e53\",\n  GENS: \"dda5fdb1002f7389b33e036b6afee82a8189becb6cba852e8b79b4fb0014df1047454e53\",\n  SOCIETY: \"25f0fc240e91bd95dcdaebd2ba7713fc5168ac77234a3d79449fc20c534f4349455459\",\n  DJED: \"8db269c3ec630e06ae29f74bc39edd1f87c819f1056206e879a1cd61446a65644d6963726f555344\",\n  SHEN: \"8db269c3ec630e06ae29f74bc39edd1f87c819f1056206e879a1cd615368656e4d6963726f555344\",\n  WMT: \"1d7f33bd23d85e1a25d87d86fac4f199c3197a2f7afeb662a0f34e1e776f726c646d6f62696c65746f6b656e\",\n  COPI: \"b6a7467ea1deb012808ef4e87b5ff371e85f7142d7b356a40d9b42a0436f726e75636f70696173205b76696120436861696e506f72742e696f5d\"\n};\nvar CIP68_100 = (tokenNameHex) => {\n  return `000643b0${tokenNameHex}`;\n};\nvar CIP68_222 = (tokenNameHex) => {\n  return `000de140${tokenNameHex}`;\n};\n\n// src/interfaces/fetcher.ts\nvar DEFAULT_FETCHER_OPTIONS = {\n  maxPage: 20,\n  order: \"desc\"\n};\n\n// src/types/asset.ts\nvar mergeAssets = (assets) => {\n  const merged = [];\n  assets.forEach((asset) => {\n    const existing = merged.find((a) => a.unit === asset.unit);\n    if (existing) {\n      existing.quantity = (BigInt(existing.quantity) + BigInt(asset.quantity)).toString();\n    } else {\n      merged.push(asset);\n    }\n  });\n  return merged;\n};\n\n// src/types/asset-metadata.ts\nvar royaltiesStandardKeys = [\"rate\", \"address\"];\nvar metadataStandardKeys = [\n  \"name\",\n  \"image\",\n  \"mediaType\",\n  \"description\",\n  \"instagram\",\n  \"twitter\",\n  \"discord\",\n  \"website\"\n];\nvar fungibleAssetKeys = [\"ticker\", \"decimals\"];\nvar metadataToCip68 = (metadata) => {\n  switch (typeof metadata) {\n    case \"object\":\n      if (metadata instanceof Array) {\n        return metadata.map((item) => metadataToCip68(item));\n      }\n      const metadataMap = /* @__PURE__ */ new Map();\n      const keys = Object.keys(metadata);\n      keys.forEach((key) => {\n        metadataMap.set(key, metadataToCip68(metadata[key]));\n      });\n      return {\n        alternative: 0,\n        fields: [metadataMap, 1]\n      };\n    default:\n      return metadata;\n  }\n};\n\n// src/types/network.ts\nvar ALL_NETWORKS = [\"testnet\", \"preview\", \"preprod\", \"mainnet\"];\nvar isNetwork = (value2) => {\n  return ALL_NETWORKS.includes(value2);\n};\n\n// src/types/protocol.ts\nvar castProtocol = (data) => {\n  const result = {};\n  for (const rawKey in DEFAULT_PROTOCOL_PARAMETERS) {\n    const key = rawKey;\n    const defaultValue = DEFAULT_PROTOCOL_PARAMETERS[key];\n    const value2 = data[key];\n    if (typeof defaultValue === \"number\") {\n      result[key] = !value2 && value2 !== 0 ? defaultValue : Number(value2);\n    } else if (typeof defaultValue === \"string\") {\n      result[key] = !value2 && value2 !== \"\" ? defaultValue : value2.toString();\n    }\n  }\n  return result;\n};\n\n// src/types/transaction-builder/txin.ts\nvar txInToUtxo = (txIn) => {\n  return {\n    input: {\n      txHash: txIn.txHash,\n      outputIndex: txIn.txIndex\n    },\n    output: {\n      address: txIn.address || \"\",\n      amount: txIn.amount || []\n    }\n  };\n};\n\n// src/types/transaction-builder/index.ts\nvar emptyTxBuilderBody = () => ({\n  inputs: [],\n  outputs: [],\n  fee: \"0\",\n  extraInputs: [],\n  collaterals: [],\n  requiredSignatures: [],\n  referenceInputs: [],\n  mints: [],\n  changeAddress: \"\",\n  metadata: /* @__PURE__ */ new Map(),\n  validityRange: {},\n  certificates: [],\n  withdrawals: [],\n  votes: [],\n  signingKey: [],\n  selectionConfig: {\n    threshold: \"0\",\n    strategy: \"experimental\",\n    includeTxFees: true\n  },\n  chainedTxs: [],\n  inputsForEvaluation: {},\n  network: \"mainnet\",\n  expectedNumberKeyWitnesses: 0,\n  expectedByronAddressWitnesses: []\n});\nfunction cloneTxBuilderBody(body) {\n  const { extraInputs, ...otherProps } = body;\n  const cloned = structuredClone(otherProps);\n  cloned.extraInputs = extraInputs;\n  return cloned;\n}\nvar validityRangeToObj = (validityRange) => {\n  return {\n    invalidBefore: validityRange.invalidBefore ?? null,\n    invalidHereafter: validityRange.invalidHereafter ?? null\n  };\n};\n\n// src/data/mesh/constructors.ts\nvar mConStr = (alternative, fields) => ({\n  alternative,\n  fields\n});\nvar mConStr0 = (fields) => ({\n  alternative: 0,\n  fields\n});\nvar mConStr1 = (fields) => ({\n  alternative: 1,\n  fields\n});\nvar mConStr2 = (fields) => ({\n  alternative: 2,\n  fields\n});\nvar mConStr3 = (fields) => ({\n  alternative: 3,\n  fields\n});\n\n// src/data/mesh/aliases.ts\nvar mAssetClass = (currencySymbolHex, tokenNameHex) => {\n  if (currencySymbolHex.length !== 56 && currencySymbolHex !== \"\") {\n    throw new Error(\n      `Invalid policy id for [${currencySymbolHex}] - should be ${POLICY_ID_LENGTH} bytes long or empty string for lovelace`\n    );\n  }\n  if (tokenNameHex.length > 64) {\n    throw new Error(\n      `Invalid asset name for [${tokenNameHex}] - should be less than 32 bytes (64 hex length) long`\n    );\n  }\n  return mConStr0([currencySymbolHex, tokenNameHex]);\n};\nvar mOutputReference = (txHash, index) => {\n  if (txHash.length !== 64) {\n    throw new Error(\"Invalid transaction hash - should be 32 bytes long\");\n  }\n  return mConStr0([txHash, index]);\n};\nvar mTxOutRef = (txHash, index) => {\n  if (txHash.length !== 64) {\n    throw new Error(\"Invalid transaction hash - should be 32 bytes long\");\n  }\n  return mConStr0([mConStr0([txHash]), index]);\n};\nvar mTuple = (key, value2) => [key, value2];\nvar mOption = (value2) => {\n  if (value2) {\n    return mSome(value2);\n  }\n  return mNone();\n};\nvar mSome = (value2) => mConStr0([value2]);\nvar mNone = () => mConStr1([]);\n\n// src/data/mesh/credentials.ts\nvar mVerificationKey = (bytes) => mConStr0([bytes]);\nvar mScript = (bytes) => mConStr1([bytes]);\nvar mMaybeStakingHash = (stakeCredential, isStakeScriptCredential = false) => {\n  if (stakeCredential === \"\") {\n    return mConStr1([]);\n  }\n  if (isStakeScriptCredential) {\n    return mConStr0([mConStr0([mScript(stakeCredential)])]);\n  }\n  return mConStr0([mConStr0([mVerificationKey(stakeCredential)])]);\n};\nvar mPubKeyAddress = (bytes, stakeCredential, isStakeScriptCredential = false) => mConStr0([\n  { alternative: 0, fields: [bytes] },\n  mMaybeStakingHash(stakeCredential || \"\", isStakeScriptCredential)\n]);\nvar mScriptAddress = (bytes, stakeCredential, isStakeScriptCredential = false) => mConStr0([\n  { alternative: 1, fields: [bytes] },\n  mMaybeStakingHash(stakeCredential || \"\", isStakeScriptCredential)\n]);\nvar mCredential = (hash, isScriptCredential = false) => isScriptCredential ? mScript(hash) : mVerificationKey(hash);\n\n// src/data/mesh/primitives.ts\nvar mBool = (b) => b ? mConStr1([]) : mConStr0([]);\nvar mStringToPlutusBSArray = (hexString) => {\n  const chunks = [];\n  for (let i = 0; i < hexString.length; i += 64) {\n    const chunk = hexString.substring(i, i + 64);\n    chunks.push(chunk);\n  }\n  return chunks;\n};\nvar mPlutusBSArrayToString = (bsArray) => {\n  return bsArray.join(\"\");\n};\n\n// src/data/json/constructors.ts\nvar conStr = (constructor, fields) => {\n  if (!Array.isArray(fields)) {\n    throw new Error(\"fields of a constructor must be an array\");\n  }\n  return {\n    constructor,\n    fields\n  };\n};\nvar conStr0 = (fields) => conStr(0, fields);\nvar conStr1 = (fields) => conStr(1, fields);\nvar conStr2 = (fields) => conStr(2, fields);\nvar conStr3 = (fields) => conStr(3, fields);\n\n// src/data/json/primitives.ts\nvar bool = (b) => b ? conStr1([]) : conStr0([]);\nvar builtinByteString = (bytes) => {\n  return byteString(bytes);\n};\nvar byteString = (bytes) => {\n  if (bytes.length % 2 !== 0) {\n    throw new Error(\"Invalid hex string - odd length: \" + bytes);\n  }\n  if (!/^[0-9a-fA-F]*$/.test(bytes)) {\n    throw new Error(\"Invalid hex string - non-hex string character: \" + bytes);\n  }\n  return {\n    bytes\n  };\n};\nvar integer = (int) => ({ int });\nvar list = (pList, validation = true) => {\n  if (validation) {\n    pList.forEach((item) => {\n      if (typeof item !== \"object\") {\n        throw new Error(\n          \"List item of JSON Cardano data type must be an object - \" + item\n        );\n      }\n    });\n  }\n  return { list: pList };\n};\nvar stringToBSArray = (hexString) => {\n  const processRawStringIntoPlutusByteArray = (hexString2) => {\n    const chunks = [];\n    for (let i = 0; i < hexString2.length; i += 64) {\n      const chunk = hexString2.substring(i, i + 64);\n      chunks.push(chunk);\n    }\n    return chunks;\n  };\n  return list(\n    processRawStringIntoPlutusByteArray(hexString).map(builtinByteString)\n  );\n};\nvar plutusBSArrayToString = (bsArray) => {\n  return bsArray.list.map((bs) => bs.bytes).join(\"\");\n};\nvar assocMap = (mapItems, validation = true) => ({\n  map: mapItems.map(([k, v]) => {\n    if (validation) {\n      if (typeof k !== \"object\" || typeof v !== \"object\") {\n        throw new Error(\n          `Map item of JSON Cardano data type must be an object - ${k}, ${v}`\n        );\n      }\n    }\n    return { k, v };\n  })\n});\nvar pairs = (mapItems, validation = true) => ({\n  map: mapItems.map(([k, v]) => {\n    if (validation) {\n      if (typeof k !== \"object\" || typeof v !== \"object\") {\n        throw new Error(\n          `Map item of JSON Cardano data type must be an object - ${k}, ${v}`\n        );\n      }\n    }\n    return { k, v };\n  })\n});\n\n// src/data/json/aliases.ts\nvar hashByteString = (bytes) => {\n  if (bytes.length !== 56) {\n    throw new Error(\n      `Invalid hash for [${bytes}] - should be 28 bytes (56 hex length) long`\n    );\n  }\n  return byteString(bytes);\n};\nvar scriptHash = (bytes) => hashByteString(bytes);\nvar pubKeyHash = (bytes) => hashByteString(bytes);\nvar policyId = (bytes) => {\n  if (bytes.length !== POLICY_ID_LENGTH && bytes !== \"\") {\n    throw new Error(\n      `Invalid policy id for [${bytes}] - should be ${POLICY_ID_LENGTH / 2} bytes (${POLICY_ID_LENGTH} hex length) long or empty string for lovelace`\n    );\n  }\n  return byteString(bytes);\n};\nvar currencySymbol = (bytes) => policyId(bytes);\nvar assetName = (bytes) => {\n  if (bytes.length > 64) {\n    throw new Error(\n      `Invalid asset name for [${bytes}] - should be less than 32 bytes (64 hex length) long`\n    );\n  }\n  return byteString(bytes);\n};\nvar tokenName = (bytes) => assetName(bytes);\nvar assetClass = (currencySymbolHex, tokenNameHex) => conStr0([currencySymbol(currencySymbolHex), tokenName(tokenNameHex)]);\nvar outputReference = (txHash, index) => {\n  if (txHash.length !== 64) {\n    throw new Error(\"Invalid transaction hash - should be 32 bytes long\");\n  }\n  return conStr0([byteString(txHash), integer(index)]);\n};\nvar txOutRef = (txHash, index) => {\n  if (txHash.length !== 64) {\n    throw new Error(\"Invalid transaction hash - should be 32 bytes long\");\n  }\n  return conStr0([conStr0([byteString(txHash)]), integer(index)]);\n};\nvar posixTime = (int) => ({ int });\nvar dict = (itemsMap) => ({\n  map: itemsMap.map(([k, v]) => ({ k, v }))\n});\nvar tuple = (key, value2) => ({ list: [key, value2] });\nvar dist_option = (value2) => {\n  if (!value2) {\n    return none();\n  }\n  return some(value2);\n};\nvar some = (value2) => conStr0([value2]);\nvar none = () => conStr1([]);\n\n// src/data/json/credentials.ts\nvar verificationKey = (bytes) => conStr0([pubKeyHash(bytes)]);\nvar script = (bytes) => conStr1([scriptHash(bytes)]);\nvar maybeStakingHash = (stakeCredential, isStakeScriptCredential = false) => {\n  if (stakeCredential === \"\") {\n    return conStr1([]);\n  }\n  if (isStakeScriptCredential) {\n    return conStr0([conStr0([script(stakeCredential)])]);\n  }\n  return conStr0([conStr0([verificationKey(stakeCredential)])]);\n};\nvar pubKeyAddress = (bytes, stakeCredential, isStakeScriptCredential = false) => conStr0([\n  conStr0([pubKeyHash(bytes)]),\n  maybeStakingHash(stakeCredential || \"\", isStakeScriptCredential)\n]);\nvar scriptAddress = (bytes, stakeCredential, isStakeScriptCredential = false) => conStr0([\n  script(bytes),\n  maybeStakingHash(stakeCredential || \"\", isStakeScriptCredential)\n]);\nvar credential = (hash, isScriptCredential = false) => isScriptCredential ? script(hash) : verificationKey(hash);\n\n// src/data/json/mpf.ts\nvar jsonProofToPlutusData = (proof) => {\n  const proofSteps = [];\n  const proofJson = proof;\n  proofJson.forEach((proof2) => {\n    const skip = integer(proof2.skip);\n    switch (proof2.type) {\n      case \"branch\":\n        proofSteps.push(\n          conStr0([skip, byteString(proof2.neighbors.toString(\"hex\"))])\n        );\n        break;\n      case \"fork\":\n        const { prefix, nibble, root } = proof2.neighbor;\n        const neighbor = conStr0([\n          integer(nibble),\n          byteString(prefix.toString(\"hex\")),\n          byteString(root.toString(\"hex\"))\n        ]);\n        proofSteps.push(conStr1([skip, neighbor]));\n        break;\n      case \"leaf\":\n        const { key, value: value2 } = proof2.neighbor;\n        proofSteps.push(conStr2([skip, byteString(key), byteString(value2)]));\n        break;\n    }\n  });\n  return proofSteps;\n};\n\n// src/data/parser.ts\nvar dist_bytesToHex = (bytes) => dist_Buffer.from(bytes).toString(\"hex\");\nvar dist_hexToBytes = (hex) => dist_Buffer.from(hex, \"hex\");\nvar stringToHex = (str) => dist_Buffer.from(str, \"utf8\").toString(\"hex\");\nvar hexToString = (hex) => dist_Buffer.from(hex, \"hex\").toString(\"utf8\");\nvar toBytes = (hex) => {\n  if (hex.length % 2 === 0 && /^[0-9A-F]*$/i.test(hex))\n    return dist_Buffer.from(hex, \"hex\");\n  return dist_Buffer.from(hex, \"utf-8\");\n};\nvar fromUTF8 = (utf8) => {\n  if (utf8.length % 2 === 0 && /^[0-9A-F]*$/i.test(utf8)) return utf8;\n  return dist_bytesToHex(dist_Buffer.from(utf8, \"utf-8\"));\n};\nvar toUTF8 = (hex) => dist_Buffer.from(hex, \"hex\").toString(\"utf-8\");\nvar parseAssetUnit = (unit) => {\n  const policyId2 = unit.slice(0, POLICY_ID_LENGTH);\n  const assetName2 = unit.includes(\".\") ? fromUTF8(unit.split(\".\")[1]) : unit.slice(POLICY_ID_LENGTH);\n  return { policyId: policyId2, assetName: assetName2 };\n};\n\n// src/data/time.ts\nvar SLOT_CONFIG_NETWORK = {\n  mainnet: {\n    zeroTime: 1596059091e3,\n    zeroSlot: 4492800,\n    slotLength: 1e3,\n    startEpoch: 208,\n    epochLength: 432e3\n  },\n  // Starting at Shelley era\n  preview: {\n    zeroTime: 1666656e6,\n    zeroSlot: 0,\n    slotLength: 1e3,\n    startEpoch: 0,\n    epochLength: 86400\n  },\n  // Starting at Shelley era\n  preprod: {\n    zeroTime: 16540416e5 + 1728e6,\n    zeroSlot: 86400,\n    slotLength: 1e3,\n    startEpoch: 4,\n    epochLength: 432e3\n  },\n  // Starting at Shelley era\n  /** Customizable slot config (Initialized with 0 values). */\n  testnet: {\n    zeroTime: 0,\n    zeroSlot: 0,\n    slotLength: 0,\n    startEpoch: 0,\n    epochLength: 0\n  }\n};\nvar slotToBeginUnixTime = (slot, slotConfig) => {\n  const msAfterBegin = (slot - slotConfig.zeroSlot) * slotConfig.slotLength;\n  return slotConfig.zeroTime + msAfterBegin;\n};\nvar unixTimeToEnclosingSlot = (unixTime, slotConfig) => {\n  const timePassed = unixTime - slotConfig.zeroTime;\n  const slotsPassed = Math.floor(timePassed / slotConfig.slotLength);\n  return slotsPassed + slotConfig.zeroSlot;\n};\nvar resolveSlotNo = (network, milliseconds = Date.now()) => {\n  return unixTimeToEnclosingSlot(\n    milliseconds,\n    SLOT_CONFIG_NETWORK[network]\n  ).toString();\n};\nvar resolveEpochNo = (network, milliseconds = Date.now()) => {\n  const config = SLOT_CONFIG_NETWORK[network];\n  const msBigInt = BigInt(milliseconds);\n  const epoch = (msBigInt - BigInt(config.zeroTime)) / 1000n / BigInt(config.epochLength) + BigInt(config.startEpoch);\n  return Number(epoch);\n};\n\n// src/utils/asset-fingerprint.ts\n\n\nvar resolveFingerprint = (policyId2, assetName2) => {\n  return dist_AssetFingerprint.fromParts(\n    toBytes(policyId2),\n    toBytes(assetName2)\n  ).fingerprint();\n};\nvar DATA = \"asset\";\nvar dist_AssetFingerprint = class _AssetFingerprint {\n  hashBuf;\n  constructor(hashBuf) {\n    this.hashBuf = hashBuf;\n  }\n  static fromHash(hash) {\n    return new _AssetFingerprint(hash);\n  }\n  static fromParts(policyId2, assetName2) {\n    const hashBuf = blake2b(20).update(new Uint8Array([...policyId2, ...assetName2])).digest(\"binary\");\n    return _AssetFingerprint.fromHash(hashBuf);\n  }\n  static fromBech32(fingerprint) {\n    const { prefix, words } = dist.bech32.decode(fingerprint);\n    if (prefix !== DATA) {\n      throw new Error(\"Invalid asset fingerprint\");\n    }\n    const hashBuf = dist_Buffer.from(dist.bech32.fromWords(words));\n    return _AssetFingerprint.fromHash(hashBuf);\n  }\n  fingerprint() {\n    const words = dist.bech32.toWords(this.hashBuf);\n    return dist.bech32.encode(DATA, words);\n  }\n  hash() {\n    return dist_Buffer.from(this.hashBuf).toString(\"hex\");\n  }\n  prefix() {\n    return DATA;\n  }\n  // The last six characters of the data part form a checksum and contain no information\n  checksum() {\n    return this.fingerprint().slice(-6);\n  }\n};\n\n// src/utils/big-num.ts\nvar BigNum = class _BigNum {\n  value;\n  constructor(value2) {\n    if (!value2) {\n      this.value = BigInt(0);\n      return;\n    }\n    this.value = BigInt(value2);\n  }\n  static new(value2) {\n    if (!value2) {\n      return new _BigNum(0);\n    }\n    return new _BigNum(value2);\n  }\n  // Operators\n  divFloor(other) {\n    this.value = this.value / other.value;\n    return this;\n  }\n  checkedMul(other) {\n    this.value *= other.value;\n    return this;\n  }\n  checkedAdd(other) {\n    this.value += other.value;\n    return this;\n  }\n  checkedSub(other) {\n    this.value -= other.value;\n    return this;\n  }\n  clampedSub(other) {\n    const result = this.value - other.value;\n    this.value = result < 0n ? 0n : result;\n    return this;\n  }\n  // Comparators\n  lessThan(other) {\n    return this.value < other.value;\n  }\n  compare(other) {\n    if (this.value === other.value) {\n      return 0;\n    } else if (this.value < other.value) {\n      return -1;\n    } else {\n      return 1;\n    }\n  }\n  // Override\n  toString() {\n    return this.value.toString();\n  }\n};\n\n// src/utils/data-hash.ts\n\nvar hashDrepAnchor = (jsonLD) => {\n  const jsonHash = (0,blakejs.blake2b)(JSON.stringify(jsonLD, null, 2), void 0, 32);\n  return dist_Buffer.from(jsonHash).toString(\"hex\");\n};\n\n// src/utils/file.ts\nfunction getFile(url) {\n  var Httpreq = new XMLHttpRequest();\n  Httpreq.open(\"GET\", url, false);\n  Httpreq.send(null);\n  return Httpreq.responseText;\n}\n\n// src/data/value.ts\nvar value = (assets) => {\n  return MeshValue.fromAssets(assets).toJSON();\n};\nvar mValue = (assets) => {\n  return MeshValue.fromAssets(assets).toData();\n};\nvar MeshValue = class _MeshValue {\n  value;\n  constructor(value2 = {}) {\n    this.value = value2;\n  }\n  /**\n   * Converting assets into MeshValue\n   * @param assets The assets to convert\n   * @returns MeshValue\n   */\n  static fromAssets = (assets) => {\n    const value2 = new _MeshValue();\n    value2.addAssets(assets);\n    return value2;\n  };\n  /**\n   * Converting Value (the JSON representation of Cardano data Value) into MeshValue\n   * @param plutusValue The Value to convert\n   * @returns MeshValue\n   */\n  static fromValue = (plutusValue) => {\n    const assets = [];\n    plutusValue.map.forEach((policyMap) => {\n      const policy = policyMap.k.bytes;\n      policyMap.v.map.forEach((tokenMap) => {\n        const token = tokenMap.k.bytes;\n        const quantity = tokenMap.v.int.toString();\n        const unsanitizedUnit = policy + token;\n        const unit = unsanitizedUnit === \"\" ? \"lovelace\" : unsanitizedUnit;\n        assets.push({ unit, quantity });\n      });\n    });\n    return _MeshValue.fromAssets(assets);\n  };\n  /**\n   * Add an asset to the Value class's value record.\n   * @param asset The asset to add\n   * @returns The updated MeshValue object\n   */\n  addAsset = (asset) => {\n    const quantity = BigInt(asset.quantity);\n    const { unit } = asset;\n    if (this.value[unit]) {\n      this.value[unit] += quantity;\n    } else {\n      this.value[unit] = quantity;\n    }\n    return this;\n  };\n  /**\n   * Add an array of assets to the Value class's value record.\n   * @param assets The assets to add\n   * @returns The updated MeshValue object\n   */\n  addAssets = (assets) => {\n    assets.forEach((asset) => {\n      this.addAsset(asset);\n    });\n    return this;\n  };\n  /**\n   * Substract an asset from the Value class's value record.\n   * @param asset The asset to subtract\n   * @returns The updated MeshValue object\n   */\n  negateAsset = (asset) => {\n    const { unit, quantity: assetQty } = asset;\n    const quantity = BigNum.new(this.value[unit]);\n    quantity.clampedSub(BigNum.new(assetQty));\n    if (quantity.value === BigInt(0)) {\n      delete this.value[unit];\n    } else {\n      this.value[unit] = quantity.value;\n    }\n    return this;\n  };\n  /**\n   * Subtract an array of assets from the Value class's value record.\n   * @param assets The assets to subtract\n   * @returns The updated MeshValue object\n   */\n  negateAssets = (assets) => {\n    assets.forEach((asset) => {\n      this.negateAsset(asset);\n    });\n    return this;\n  };\n  /**\n   * Get the quantity of asset object per unit\n   * @param unit The unit to get the quantity of\n   * @returns The quantity of the asset\n   */\n  get = (unit) => {\n    return this.value[unit] ? BigInt(this.value[unit]) : BigInt(0);\n  };\n  /**\n   * Get all asset units\n   * @returns The asset units\n   */\n  units = () => {\n    return Object.keys(this.value);\n  };\n  /**\n   * Check if the value is greater than or equal to another value\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  geq = (other) => {\n    return Object.keys(other.value).every((key) => this.geqUnit(key, other));\n  };\n  /**\n   * Check if the specific unit of value is greater than or equal to that unit of another value\n   * @param unit - The unit to compare\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  geqUnit = (unit, other) => {\n    if (this.value[unit] === void 0 || other.value[unit] === void 0) {\n      return false;\n    }\n    return BigInt(this.value[unit]) >= BigInt(other.value[unit]);\n  };\n  /**\n   * Check if the value is less than or equal to another value\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  leq = (other) => {\n    return Object.keys(this.value).every((key) => this.leqUnit(key, other));\n  };\n  /**\n   * Check if the specific unit of value is less than or equal to that unit of another value\n   * @param unit - The unit to compare\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  leqUnit = (unit, other) => {\n    if (this.value[unit] === void 0 || other.value[unit] === void 0) {\n      return false;\n    }\n    return BigInt(this.value[unit]) <= BigInt(other.value[unit]);\n  };\n  /**\n   * Check if the value is equal to another value\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  eq = (other) => {\n    return Object.keys(this.value).every((key) => this.eqUnit(key, other));\n  };\n  /**\n   * Check if the specific unit of value is equal to that unit of another value\n   * @param unit - The unit to compare\n   * @param other - The value to compare against\n   * @returns boolean\n   */\n  eqUnit = (unit, other) => {\n    if (this.value[unit] === void 0 || other.value[unit] === void 0) {\n      return false;\n    }\n    return BigInt(this.value[unit]) === BigInt(other.value[unit]);\n  };\n  /**\n   * Check if the value is empty\n   * @returns boolean\n   */\n  isEmpty = () => {\n    return Object.keys(this.value).length === 0;\n  };\n  /**\n   * Merge the given values\n   * @param values The other values to merge\n   * @returns this\n   */\n  merge = (values) => {\n    const valuesArray = Array.isArray(values) ? values : [values];\n    valuesArray.forEach((other) => {\n      Object.entries(other.value).forEach(([key, value2]) => {\n        this.value[key] = (this.value[key] !== void 0 ? BigInt(this.value[key]) : BigInt(0)) + BigInt(value2);\n      });\n    });\n    return this;\n  };\n  /**\n   * Convert the MeshValue object into an array of Asset\n   * @returns The array of Asset\n   */\n  toAssets = () => {\n    const assets = [];\n    Object.entries(this.value).forEach(([unit, quantity]) => {\n      assets.push({ unit, quantity: quantity.toString() });\n    });\n    return assets;\n  };\n  /**\n   * Convert the MeshValue object into Cardano data Value in Mesh Data type\n   */\n  toData = () => {\n    const valueMap = /* @__PURE__ */ new Map();\n    this.toAssets().forEach((asset) => {\n      const sanitizedName = asset.unit.replace(\"lovelace\", \"\");\n      const policy = sanitizedName.slice(0, 56) || \"\";\n      const token = sanitizedName.slice(56) || \"\";\n      if (!valueMap.has(policy)) {\n        valueMap.set(policy, /* @__PURE__ */ new Map());\n      }\n      const tokenMap = valueMap.get(policy);\n      const quantity = tokenMap?.get(token);\n      if (!quantity) {\n        tokenMap.set(token, BigInt(asset.quantity));\n      } else {\n        tokenMap.set(token, quantity + BigInt(asset.quantity));\n      }\n    });\n    return valueMap;\n  };\n  /**\n   * Convert the MeshValue object into a JSON representation of Cardano data Value\n   * @returns Cardano data Value in JSON\n   */\n  toJSON = () => {\n    const valueMapToParse = [];\n    const valueMap = {};\n    this.toAssets().forEach((asset) => {\n      const sanitizedName = asset.unit.replace(\"lovelace\", \"\");\n      const policy = sanitizedName.slice(0, 56) || \"\";\n      const token = sanitizedName.slice(56) || \"\";\n      if (!valueMap[policy]) {\n        valueMap[policy] = {};\n      }\n      if (!valueMap[policy][token]) {\n        valueMap[policy][token] = Number(asset.quantity);\n      } else {\n        valueMap[policy][token] += Number(asset.quantity);\n      }\n    });\n    Object.keys(valueMap).forEach((policy) => {\n      const policyByte = currencySymbol(policy);\n      const tokens = Object.keys(valueMap[policy]).map(\n        (name) => [tokenName(name), integer(valueMap[policy][name])]\n      );\n      const policyMap = assocMap(tokens);\n      valueMapToParse.push([policyByte, policyMap]);\n    });\n    return assocMap(valueMapToParse);\n  };\n};\n\n// src/utxo-selection/experimental.ts\nvar experimentalSelectUtxos = (requiredAssets, inputs, threshold) => {\n  const totalRequiredAssets = new Map(requiredAssets);\n  totalRequiredAssets.set(\n    \"lovelace\",\n    String(\n      Number(totalRequiredAssets.get(\"lovelace\") || 0) + Number(threshold)\n    )\n  );\n  const utxoMap = /* @__PURE__ */ new Map();\n  for (let i = 0; i < inputs.length; i++) {\n    utxoMap.set(i, inputs[i]);\n  }\n  const selectedInputs = /* @__PURE__ */ new Set();\n  const onlyLovelace = /* @__PURE__ */ new Set();\n  const singletons = /* @__PURE__ */ new Set();\n  const pairs2 = /* @__PURE__ */ new Set();\n  const rest = /* @__PURE__ */ new Set();\n  const collaterals = /* @__PURE__ */ new Set();\n  for (let i = 0; i < inputs.length; i++) {\n    switch (inputs[i].output.amount.length) {\n      case 1: {\n        const quantity = inputs[i].output.amount[0]?.quantity;\n        if (quantity == \"5000000\" || quantity == \"10000000\") {\n          collaterals.add(i);\n          break;\n        }\n        onlyLovelace.add(i);\n        break;\n      }\n      case 2: {\n        singletons.add(i);\n        break;\n      }\n      case 3: {\n        pairs2.add(i);\n        break;\n      }\n      default: {\n        rest.add(i);\n        break;\n      }\n    }\n  }\n  const addUtxoWithAssetAmount = (inputIndex, assetUnit, set) => {\n    const utxo = utxoMap.get(inputIndex);\n    if (!utxo) return;\n    const amount = getAssetAmount(utxo, assetUnit);\n    if (Number(amount) > 0) {\n      selectedInputs.add(inputIndex);\n      set.delete(inputIndex);\n      for (const asset of utxo.output.amount) {\n        totalRequiredAssets.set(\n          asset.unit,\n          String(\n            Number(totalRequiredAssets.get(asset.unit)) - Number(asset.quantity)\n          )\n        );\n      }\n    }\n  };\n  for (const assetUnit of totalRequiredAssets.keys()) {\n    if (assetUnit == \"lovelace\") continue;\n    for (const inputIndex of singletons) {\n      const assetRequired = totalRequiredAssets.get(assetUnit);\n      if (!assetRequired || Number(assetRequired) <= 0) break;\n      addUtxoWithAssetAmount(inputIndex, assetUnit, singletons);\n    }\n    for (const inputIndex of pairs2) {\n      const assetRequired = totalRequiredAssets.get(assetUnit);\n      if (!assetRequired || Number(assetRequired) <= 0) break;\n      addUtxoWithAssetAmount(inputIndex, assetUnit, pairs2);\n    }\n    for (const inputIndex of rest) {\n      const assetRequired = totalRequiredAssets.get(assetUnit);\n      if (!assetRequired || Number(assetRequired) <= 0) break;\n      addUtxoWithAssetAmount(inputIndex, assetUnit, rest);\n    }\n  }\n  for (const inputIndex of onlyLovelace) {\n    const assetRequired = totalRequiredAssets.get(\"lovelace\");\n    if (!assetRequired || Number(assetRequired) <= 0) break;\n    addUtxoWithAssetAmount(inputIndex, \"lovelace\", onlyLovelace);\n  }\n  for (const inputIndex of singletons) {\n    const assetRequired = totalRequiredAssets.get(\"lovelace\");\n    if (!assetRequired || Number(assetRequired) <= 0) break;\n    addUtxoWithAssetAmount(inputIndex, \"lovelace\", singletons);\n  }\n  for (const inputIndex of pairs2) {\n    const assetRequired = totalRequiredAssets.get(\"lovelace\");\n    if (!assetRequired || Number(assetRequired) <= 0) break;\n    addUtxoWithAssetAmount(inputIndex, \"lovelace\", pairs2);\n  }\n  for (const inputIndex of rest) {\n    const assetRequired = totalRequiredAssets.get(\"lovelace\");\n    if (!assetRequired || Number(assetRequired) <= 0) break;\n    addUtxoWithAssetAmount(inputIndex, \"lovelace\", rest);\n  }\n  for (const inputIndex of collaterals) {\n    const assetRequired = totalRequiredAssets.get(\"lovelace\");\n    if (!assetRequired || Number(assetRequired) <= 0) break;\n    addUtxoWithAssetAmount(inputIndex, \"lovelace\", collaterals);\n  }\n  for (const assetUnit of totalRequiredAssets.keys()) {\n    if (Number(totalRequiredAssets.get(assetUnit)) > 0) {\n      console.warn(\"Insufficient funds for\", assetUnit);\n      console.warn(\n        \"Remaining quantity\",\n        Number(totalRequiredAssets.get(assetUnit))\n      );\n      return [];\n    }\n  }\n  const selectedUtxos = [];\n  for (const inputIndex of selectedInputs) {\n    const utxo = utxoMap.get(inputIndex);\n    if (utxo) {\n      selectedUtxos.push(utxo);\n    }\n  }\n  return selectedUtxos;\n};\nvar getAssetAmount = (utxo, assetUnit) => {\n  for (const utxoAsset of utxo.output.amount) {\n    if (utxoAsset.unit == assetUnit) return utxoAsset.quantity;\n  }\n  return \"0\";\n};\n\n// src/utxo-selection/common.ts\nvar enoughValueHasBeenSelected = (selection, assets) => {\n  return Array.from(assets, (asset) => ({\n    unit: asset[0],\n    quantity: BigNum.new(asset[1])\n  })).every((asset) => {\n    return selection.filter((utxo) => {\n      return utxo.output.amount.find((a) => a.unit === asset.unit) !== void 0;\n    }).reduce((selectedQuantity, utxo) => {\n      const utxoQuantity = utxo.output.amount.reduce(\n        (quantity, a) => quantity.checkedAdd(\n          BigNum.new(asset.unit === a.unit ? a.quantity : \"0\")\n        ),\n        BigNum.new(\"0\")\n      );\n      return selectedQuantity.checkedAdd(utxoQuantity);\n    }, BigNum.new(\"0\")).lessThan(asset.quantity) === false;\n  });\n};\nvar largestLovelaceQuantity = (utxoA, utxoB) => {\n  const aLovelaceQuantity = BigNum.new(\n    utxoA.output.amount.find((asset) => asset.unit === \"lovelace\")?.quantity ?? \"0\"\n  );\n  const bLovelaceQuantity = BigNum.new(\n    utxoB.output.amount.find((asset) => asset.unit === \"lovelace\")?.quantity ?? \"0\"\n  );\n  return bLovelaceQuantity.compare(aLovelaceQuantity);\n};\nvar maxTxFees = (parameters) => {\n  const { maxTxSize, minFeeA, minFeeB } = parameters;\n  return BigNum.new(resolveTxFees(maxTxSize, minFeeA, minFeeB));\n};\nvar multiAssetUTxO = (utxo) => utxo.output.amount.length > 1;\nvar selectedLovelaceQuantity = (multiAsset) => {\n  return multiAsset.reduce((sum, utxo) => {\n    const lovelace = utxo.output.amount.find((asset) => asset.unit === \"lovelace\")?.quantity ?? \"0\";\n    return sum.checkedAdd(BigNum.new(lovelace));\n  }, BigNum.new(\"0\"));\n};\nvar remainingLovelace = (quantity, initialUTxOSet) => {\n  const sortedUTxOs = initialUTxOSet.sort(largestLovelaceQuantity);\n  const requestedOutputSet = /* @__PURE__ */ new Map([[\"lovelace\", quantity]]);\n  const selection = selectValue(sortedUTxOs, requestedOutputSet);\n  return selection;\n};\nvar selectValue = (inputUTxO, outputSet, selection = []) => {\n  if (inputUTxO.length === 0 || enoughValueHasBeenSelected(selection, outputSet)) {\n    return selection;\n  }\n  if (valueCanBeSelected(inputUTxO[0], outputSet)) {\n    return selectValue(inputUTxO.slice(1), outputSet, [\n      ...selection,\n      inputUTxO[0]\n    ]);\n  }\n  return selectValue(inputUTxO.slice(1), outputSet, selection);\n};\nvar valueCanBeSelected = (utxo, assets) => {\n  return Array.from(assets.keys()).some((unit) => {\n    return utxo.output.amount.find((asset) => asset.unit === unit) !== void 0;\n  });\n};\n\n// src/utxo-selection/keepRelevant.ts\nvar keepRelevant = (requiredAssets, inputs, threshold = \"5000000\") => {\n  const requestedLovelace = BigNum.new(\n    requiredAssets.get(\"lovelace\") ?? \"0\"\n  ).checkedAdd(BigNum.new(threshold));\n  const multiAsset = inputs.filter(\n    (utxo) => utxo.output.amount.filter((asset) => asset.unit !== \"lovelace\").some((asset) => requiredAssets.has(asset.unit))\n  );\n  const selectedLovelace = selectedLovelaceQuantity(multiAsset);\n  const lovelace = selectedLovelace.lessThan(requestedLovelace) ? remainingLovelace(\n    requestedLovelace.clampedSub(selectedLovelace).toString(),\n    inputs.filter((input) => {\n      return !multiAsset.some(\n        (selectedUtxo) => selectedUtxo.input.txHash === input.input.txHash && selectedUtxo.input.outputIndex === input.input.outputIndex\n      );\n    })\n  ) : [];\n  return [...lovelace, ...multiAsset];\n};\n\n// src/utxo-selection/largestFirst.ts\nvar largestFirst = (lovelace, initialUTxOSet, includeTxFees = false, { maxTxSize, minFeeA, minFeeB } = DEFAULT_PROTOCOL_PARAMETERS) => {\n  const sortedUTxOs = initialUTxOSet.filter((utxo) => multiAssetUTxO(utxo) === false).sort(largestLovelaceQuantity);\n  const maxTxFees2 = BigNum.new(resolveTxFees(maxTxSize, minFeeA, minFeeB));\n  const quantity = includeTxFees ? BigNum.new(lovelace).checkedAdd(maxTxFees2).toString() : lovelace;\n  const requestedOutputSet = /* @__PURE__ */ new Map([[\"lovelace\", quantity]]);\n  const selection = selectValue(sortedUTxOs, requestedOutputSet);\n  return selection;\n};\n\n// src/utxo-selection/largestFirstMultiAsset.ts\nvar largestFirstMultiAsset = (requestedOutputSet, initialUTxOSet, includeTxFees = false, parameters = DEFAULT_PROTOCOL_PARAMETERS) => {\n  const sortedMultiAssetUTxOs = initialUTxOSet.filter(multiAssetUTxO).sort(largestLovelaceQuantity);\n  const txFees = maxTxFees(parameters);\n  const lovelace = requestedOutputSet.get(\"lovelace\") ?? \"0\";\n  const quantity = includeTxFees ? BigNum.new(lovelace).checkedAdd(txFees).toString() : lovelace;\n  requestedOutputSet.set(\"lovelace\", quantity);\n  const selection = selectValue(sortedMultiAssetUTxOs, requestedOutputSet);\n  return selection;\n};\n\n// src/utxo-selection/index.ts\nvar UtxoSelection = class {\n  threshold;\n  includeTxFees;\n  constructor(threshold = \"5000000\", includeTxFees = true) {\n    this.threshold = threshold;\n    this.includeTxFees = includeTxFees;\n  }\n  largestFirst(requiredAssets, inputs) {\n    const lovelaceAmount = requiredAssets.get(\"lovelace\") ?? \"0\";\n    const requiredAssetWithThreshold = BigInt(lovelaceAmount) + BigInt(this.threshold);\n    return largestFirst(\n      requiredAssetWithThreshold.toString(),\n      inputs,\n      this.includeTxFees\n    );\n  }\n  keepRelevant(requiredAssets, inputs) {\n    return keepRelevant(requiredAssets, inputs, this.threshold);\n  }\n  largestFirstMultiAsset(requiredAssets, inputs) {\n    const lovelaceAmount = requiredAssets.get(\"lovelace\") ?? \"0\";\n    requiredAssets.set(\n      \"lovelace\",\n      (BigInt(lovelaceAmount) + BigInt(this.threshold)).toString()\n    );\n    return largestFirstMultiAsset(requiredAssets, inputs, this.includeTxFees);\n  }\n  experimental(requiredAssets, inputs) {\n    return experimentalSelectUtxos(requiredAssets, inputs, this.threshold);\n  }\n};\n\n// src/index.ts\n\n\n\n// EXTERNAL MODULE: ./node_modules/base32-encoding/index.js\nvar base32_encoding = __webpack_require__(\"./node_modules/base32-encoding/index.js\");\n// EXTERNAL MODULE: ./node_modules/@harmoniclabs/plutus-data/dist/index.js\nvar plutus_data_dist = __webpack_require__(\"./node_modules/@harmoniclabs/plutus-data/dist/index.js\");\n// EXTERNAL MODULE: ./node_modules/@harmoniclabs/uplc/dist/index.js\nvar uplc_dist = __webpack_require__(\"./node_modules/@harmoniclabs/uplc/dist/index.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/isEqual.js\nvar isEqual = __webpack_require__(\"./node_modules/lodash/isEqual.js\");\n;// ./node_modules/@cardano-sdk/util/dist/esm/equals.js\n\nconst deepEquals = (a, b) => isEqual(a, b);\nconst strictEquals = (a, b) => a === b;\nconst sameArrayItems = (arrayA, arrayB, itemEquals) => arrayA.length === arrayB.length && arrayA.every((a) => arrayB.some((b) => itemEquals(a, b)));\nconst areNumbersEqualInConstantTime = (a, b) => (a ^ b) === 0;\nconst areStringsEqualInConstantTime = (a, b) => {\n    const maxLength = Math.max(a.length, b.length);\n    const results = Array.from({ length: maxLength }, (_, i) => (a.charCodeAt(i) === b.charCodeAt(i) ? 1 : 0));\n    const areAllCharactersEqual = results.reduce((accumulator, currentValue) => (accumulator & currentValue), 1);\n    return areAllCharactersEqual === 1;\n};\n//# sourceMappingURL=equals.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/isPromise.js\nconst isPromise_isPromise = (obj) => typeof obj === 'object' && typeof obj.then === 'function';\n//# sourceMappingURL=isPromise.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/freeable.js\nvar esm_freeable_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar esm_freeable_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar freeable_ManagedFreeableScope_scopeStack, freeable_ManagedFreeableScope_disposed, freeable_AutoFree_scope, freeable_AutoFree_callback;\n\nclass freeable_ManagedFreeableScope {\n    constructor() {\n        freeable_ManagedFreeableScope_scopeStack.set(this, []);\n        freeable_ManagedFreeableScope_disposed.set(this, false);\n    }\n    manage(freeable) {\n        if (freeable === undefined)\n            return freeable;\n        if (esm_freeable_classPrivateFieldGet(this, freeable_ManagedFreeableScope_disposed, \"f\"))\n            throw new Error('This scope is already disposed.');\n        esm_freeable_classPrivateFieldGet(this, freeable_ManagedFreeableScope_scopeStack, \"f\").push(freeable);\n        return freeable;\n    }\n    dispose() {\n        if (esm_freeable_classPrivateFieldGet(this, freeable_ManagedFreeableScope_disposed, \"f\"))\n            return;\n        for (const resource of esm_freeable_classPrivateFieldGet(this, freeable_ManagedFreeableScope_scopeStack, \"f\")) {\n            if (resource?.ptr === 0 || !resource?.free) {\n                continue;\n            }\n            resource?.free();\n        }\n        esm_freeable_classPrivateFieldSet(this, freeable_ManagedFreeableScope_disposed, true, \"f\");\n    }\n}\nfreeable_ManagedFreeableScope_scopeStack = new WeakMap(), freeable_ManagedFreeableScope_disposed = new WeakMap();\nclass freeable_AutoFree {\n    constructor(cb) {\n        freeable_AutoFree_scope.set(this, void 0);\n        freeable_AutoFree_callback.set(this, void 0);\n        esm_freeable_classPrivateFieldSet(this, freeable_AutoFree_callback, cb, \"f\");\n        esm_freeable_classPrivateFieldSet(this, freeable_AutoFree_scope, new freeable_ManagedFreeableScope(), \"f\");\n    }\n    execute() {\n        let result;\n        try {\n            result = esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_callback, \"f\").call(this, esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_scope, \"f\"));\n            if (isPromise_isPromise(result)) {\n                return result\n                    .then((value) => {\n                    esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_scope, \"f\").dispose();\n                    return value;\n                })\n                    .catch((error) => {\n                    esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_scope, \"f\").dispose();\n                    throw error;\n                });\n            }\n            esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_scope, \"f\").dispose();\n            return result;\n        }\n        catch (error) {\n            esm_freeable_classPrivateFieldGet(this, freeable_AutoFree_scope, \"f\").dispose();\n            throw error;\n        }\n    }\n}\nfreeable_AutoFree_scope = new WeakMap(), freeable_AutoFree_callback = new WeakMap();\nconst freeable_usingAutoFree = (cb) => new freeable_AutoFree(cb).execute();\n//# sourceMappingURL=freeable.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/BigIntMath.js\nconst BigIntMath_BigIntMath = {\n    abs(x) {\n        return x < 0n ? -x : x;\n    },\n    max(arr) {\n        if (arr.length === 0)\n            return null;\n        let max = arr[0];\n        for (const num of arr.slice(1)) {\n            if (num > max)\n                max = num;\n        }\n        return max;\n    },\n    subtract(arr) {\n        if (arr.length === 0)\n            return 0n;\n        return arr.reduce((result, num) => result - num);\n    },\n    sum(arr) {\n        return arr.reduce((result, num) => result + num, 0n);\n    }\n};\n//# sourceMappingURL=BigIntMath.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/hexString.js\n/* provided dependency */ var hexString_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nconst hexStringToBuffer = (hex) => hexString_Buffer.from(hex, 'hex');\nconst bufferToHexString = (bytes) => bytes.toString('hex');\n//# sourceMappingURL=hexString.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/isNotNil.js\nconst isNotNil_isNotNil = (item) => typeof item !== 'undefined' && item !== null;\n//# sourceMappingURL=isNotNil.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/replaceNullsToUndefineds.js\nconst replaceNullsWithUndefineds = (obj) => {\n    const newObj = {};\n    for (const k of Object.keys(obj)) {\n        const v = obj[k];\n        newObj[k] =\n            v === null\n                ? undefined\n                : v && typeof v === 'object' && v.__proto__.constructor === Object\n                    ? replaceNullsWithUndefineds(v)\n                    : v;\n    }\n    return newObj;\n};\n//# sourceMappingURL=replaceNullsToUndefineds.js.map\n// EXTERNAL MODULE: ./node_modules/serialize-error/index.js\nvar serialize_error = __webpack_require__(\"./node_modules/serialize-error/index.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/transform.js\nvar transform = __webpack_require__(\"./node_modules/lodash/transform.js\");\n;// ./node_modules/@cardano-sdk/util/dist/esm/serializableObject.js\n/* provided dependency */ var serializableObject_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nconst PLAIN_TYPES = new Set(['boolean', 'number', 'string']);\nconst matchPrototype = (errorTypes, error) => {\n    if (typeof error === 'object' && error !== null) {\n        for (let ErrorType of errorTypes) {\n            if (error.name === ErrorType.name) {\n                return ErrorType.prototype;\n            }\n            ErrorType = Object.getPrototypeOf(ErrorType.prototype)?.constructor;\n        }\n    }\n    return Error.prototype;\n};\nconst defaultTransformKey = (key) => key;\nconst defaultTransformationTypeKey = '__type';\nconst hasInnerError = (error) => error !== null && typeof error === 'object' && 'innerError' in error;\nconst innerErrorHasData = (innerError) => typeof innerError === 'object' && innerError !== null && 'data' in innerError;\nconst toSerializableObject = (obj, options = {}) => {\n    if (PLAIN_TYPES.has(typeof obj))\n        return obj;\n    const { transformationTypeKey = defaultTransformationTypeKey, serializeKey = defaultTransformKey } = options;\n    if (typeof obj === 'undefined') {\n        return {\n            [transformationTypeKey]: 'undefined'\n        };\n    }\n    if (typeof obj === 'object') {\n        if (obj === null)\n            return null;\n        if (Array.isArray(obj)) {\n            return obj.map((item) => toSerializableObject(item, options));\n        }\n        if (ArrayBuffer.isView(obj)) {\n            const arr = new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n            const value = serializableObject_Buffer.from(arr).toString('hex');\n            return { [transformationTypeKey]: 'Buffer', value };\n        }\n        if (obj instanceof Error) {\n            if (hasInnerError(obj) && innerErrorHasData(obj.innerError)) {\n                obj.innerError.data = toSerializableObject(obj.innerError.data);\n            }\n            return {\n                [transformationTypeKey]: 'Error',\n                value: (0,serialize_error.serializeError)(obj)\n            };\n        }\n        if (obj instanceof Date) {\n            return {\n                [transformationTypeKey]: 'Date',\n                value: obj.getTime()\n            };\n        }\n        if (obj instanceof Set) {\n            return {\n                [transformationTypeKey]: 'Set',\n                value: [...obj].map((item) => toSerializableObject(item, options))\n            };\n        }\n        if (obj instanceof Map) {\n            return {\n                [transformationTypeKey]: 'Map',\n                value: [...obj.entries()].map(([key, value]) => [\n                    toSerializableObject(key, options),\n                    toSerializableObject(value, options)\n                ])\n            };\n        }\n        return transform(obj, (result, value, key) => {\n            result[serializeKey(key)] = toSerializableObject(value, options);\n            return result;\n        }, {});\n    }\n    if (typeof obj === 'bigint')\n        return {\n            [transformationTypeKey]: 'bigint',\n            value: obj.toString()\n        };\n};\nconst fromSerializableObjectUnknown = (obj, options = {}) => {\n    if (PLAIN_TYPES.has(typeof obj))\n        return obj;\n    if (typeof obj === 'object') {\n        if (obj === null)\n            return null;\n        if (Array.isArray(obj)) {\n            return obj.map((item) => fromSerializableObjectUnknown(item, options));\n        }\n        const { transformationTypeKey = defaultTransformationTypeKey, deserializeKey = defaultTransformKey, errorTypes = [] } = options;\n        const docAsAny = obj;\n        switch (docAsAny[transformationTypeKey]) {\n            case 'undefined':\n                return undefined;\n            case 'bigint':\n                return BigInt(docAsAny.value);\n            case 'Buffer':\n                return new Uint8Array(serializableObject_Buffer.from(docAsAny.value, 'hex'));\n            case 'Date':\n                return new Date(docAsAny.value);\n            case 'Set':\n                return new Set(docAsAny.value.map((item) => fromSerializableObjectUnknown(item, options)));\n            case 'Map':\n                return new Map(docAsAny.value.map((keyValues) => keyValues.map((kv) => fromSerializableObjectUnknown(kv, options))));\n            case 'Error': {\n                const error = fromSerializableObjectUnknown(docAsAny.value, options);\n                return Object.setPrototypeOf(error, matchPrototype(errorTypes, error));\n            }\n            default:\n                return transform(obj, (result, value, key) => {\n                    result[deserializeKey(key)] = fromSerializableObjectUnknown(value, options);\n                    return result;\n                }, {});\n        }\n    }\n};\nconst fromSerializableObject = (serializableObject, options) => fromSerializableObjectUnknown(serializableObject, options);\n//# sourceMappingURL=serializableObject.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/network.js\nconst connectionErrorCodes = new Set([\n    'ETIMEDOUT',\n    'ECONNRESET',\n    'ECONNREFUSED',\n    'EPIPE',\n    'ENOTFOUND',\n    'ENETUNREACH',\n    'EAI_AGAIN'\n]);\nconst connectionErrorNames = new Set(['WebSocketClosed', 'ServerNotReady']);\nconst isConnectionError = (error) => {\n    if (!error || typeof error !== 'object')\n        return false;\n    if ((error?.name && connectionErrorNames.has(error.name)) || (error?.code && connectionErrorCodes.has(error.code))) {\n        return true;\n    }\n    return isConnectionError(error.innerError);\n};\n//# sourceMappingURL=network.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/logging.js\nconst loggerMethodNames = ['debug', 'error', 'fatal', 'info', 'trace', 'warn'];\nconst contextLogger = (logger, context, contextStringify = (ctx) => (logger.contextStringify ? logger.contextStringify(ctx) : `[${ctx.join('|')}]`)) => {\n    const derivedLogger = {\n        baseLogger: logger.baseLogger || logger,\n        contextArray: [...(logger.contextArray || []), context],\n        contextStringify\n    };\n    const contextStr = contextStringify(derivedLogger.contextArray);\n    return { ...derivedLogger, ...Object.fromEntries(loggerMethodNames.map((method) => [\n            method,\n            (message, ...optionalParams) => {\n                derivedLogger.baseLogger[method](contextStr, message, ...optionalParams);\n            }\n        ])) };\n};\n//# sourceMappingURL=logging.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/Range.js\n\nclass InvalidRangeError extends CustomError {\n    constructor(message) {\n        super();\n        this.message = message;\n    }\n}\nclass OutsideRangeError extends CustomError {\n    constructor(value, { lowerBound, upperBound }, description) {\n        super();\n        this.message = `${description} - ${value} must be between ${lowerBound} and ${upperBound}`;\n    }\n}\nconst throwIfInvalidRange = ({ lowerBound, upperBound }) => {\n    if (!lowerBound && !upperBound) {\n        throw new InvalidRangeError('Must provide at least one bound');\n    }\n    else if (lowerBound === upperBound) {\n        throw new InvalidRangeError(`Lower bound: ${lowerBound}, cannot equal upper bound ${upperBound}`);\n    }\n    else if (lowerBound && lowerBound > upperBound) {\n        throw new InvalidRangeError(`Lower bound: ${lowerBound}, cannot be larger than upper bound: ${upperBound}`);\n    }\n};\nconst inRange = (value, range) => {\n    throwIfInvalidRange(range);\n    const { lowerBound, upperBound } = range;\n    if (!lowerBound && upperBound) {\n        return value <= upperBound;\n    }\n    else if (lowerBound && !upperBound) {\n        return value >= lowerBound;\n    }\n    return value >= lowerBound && value <= upperBound;\n};\nconst throwIfOutsideRange = (value, range, description) => {\n    if (!inRange(value, range)) {\n        throw new OutsideRangeError(value, range, description);\n    }\n};\n//# sourceMappingURL=Range.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/RunnableModule.js\n\n\nclass InvalidModuleState extends CustomError {\n    constructor(moduleName, methodName, requiredState) {\n        super();\n        this.message = `${methodName} cannot be called unless ${moduleName} is ${requiredState}`;\n    }\n}\nclass RunnableModule {\n    constructor(name, logger) {\n        this.state = null;\n        this.logger = contextLogger(logger, name);\n        this.name = name;\n    }\n    async initialize() {\n        this.initializeBefore();\n        await this.initializeImpl();\n        this.initializeAfter();\n    }\n    async start() {\n        this.startBefore();\n        await this.startImpl();\n        this.startAfter();\n    }\n    async shutdown() {\n        this.shutdownBefore();\n        await this.shutdownImpl();\n        this.shutdownAfter();\n    }\n    initializeBefore() {\n        if (this.state !== null) {\n            throw new InvalidModuleState(this.name, 'initializeBefore', null);\n        }\n        this.state = 'initializing';\n        this.logger.debug('Initializing...');\n    }\n    initializeAfter() {\n        if (this.state !== 'initializing') {\n            throw new InvalidModuleState(this.name, 'initializeAfter', 'initializing');\n        }\n        this.state = 'initialized';\n        this.logger.debug('Initialized');\n    }\n    startBefore() {\n        if (this.state !== 'initialized') {\n            throw new InvalidModuleState(this.name, 'start', 'initialized');\n        }\n        this.state = 'starting';\n        this.logger.debug('Starting...');\n    }\n    startAfter() {\n        if (this.state !== 'starting') {\n            throw new InvalidModuleState(this.name, 'start', 'starting');\n        }\n        this.state = 'running';\n        this.logger.debug('Started');\n    }\n    shutdownBefore() {\n        if (this.state !== 'running') {\n            throw new InvalidModuleState(this.name, 'shutdown', 'running');\n        }\n        this.state = 'stopping';\n        this.logger.debug('Stopping...');\n    }\n    shutdownAfter() {\n        if (this.state !== 'stopping') {\n            throw new InvalidModuleState(this.name, 'shutdown', 'stopping');\n        }\n        this.state = 'initialized';\n        this.logger.debug('Shutdown complete');\n    }\n}\n//# sourceMappingURL=RunnableModule.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/environment.js\nvar Environment;\n(function (Environment) {\n    Environment[\"Production\"] = \"production\";\n    Environment[\"Development\"] = \"development\";\n})(Environment || (Environment = {}));\nconst isProductionEnvironment = () => \"development\" === Environment.Production;\nconst getEnvironmentConfiguration = () => isProductionEnvironment() ? Environment.Production : Environment.Development;\n//# sourceMappingURL=environment.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/patchObject.js\nconst patchObject = (baseObject, patches) => new Proxy(baseObject, {\n    get(target, p, receiver) {\n        const value = p in patches ? patches[p] : target[p];\n        return typeof value === 'function' ? value.bind(receiver) : value;\n    }\n});\n//# sourceMappingURL=patchObject.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/string.js\nconst StringUtils = {\n    byteSize: (str) => new Blob([str]).size,\n    chunkByBytes: (str, maxBytes) => {\n        let chunkSize = 0;\n        let chunkStart = 0;\n        const result = [];\n        for (let char = 0; char < str.length; char++) {\n            const isEndOfArray = char === str.length - 1;\n            const currentChunkSize = chunkSize + StringUtils.byteSize(str[char]);\n            const nextCharSize = !isEndOfArray ? currentChunkSize + StringUtils.byteSize(str[char + 1]) : maxBytes + 1;\n            const atLimit = currentChunkSize === maxBytes || nextCharSize > maxBytes || isEndOfArray;\n            if (atLimit) {\n                const chunk = str.slice(chunkStart, char + 1);\n                result.push(chunk);\n                chunkStart = char + 1;\n                chunkSize = 0;\n            }\n            else {\n                chunkSize = currentChunkSize;\n            }\n        }\n        return result;\n    }\n};\n//# sourceMappingURL=string.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/isUndefined.js\nvar isUndefined = __webpack_require__(\"./node_modules/lodash/isUndefined.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/merge.js\nvar merge = __webpack_require__(\"./node_modules/lodash/merge.js\");\n;// ./node_modules/@cardano-sdk/util/dist/esm/transformer.js\n\n\nconst deepOmitBy = (obj, predicate) => {\n    if (Array.isArray(obj))\n        return obj;\n    if (obj && typeof obj === 'object') {\n        return (Object.entries(obj)\n            .map(([k, v]) => [k, typeof v === 'object' ? deepOmitBy(v, predicate) : v, predicate(v)])\n            .reduce((result, [k, v, omit]) => (omit ? result : merge(result, { [k]: v })), {}));\n    }\n    return obj;\n};\nconst transformObj = async (from, transformer, context) => {\n    const entries = Object.entries(transformer);\n    const result = Object.create({});\n    for (const [key, value] of entries) {\n        result[key] = await (typeof value === 'function'\n            ? value(from, context)\n            : transformObj(from, value, context));\n    }\n    return deepOmitBy(result, isUndefined);\n};\n//# sourceMappingURL=transformer.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/Percent.js\n\nconst Percent_Percent = (value) => value;\nconst Percent_calcPercentages = (parts, total = sum(parts)) => {\n    if (parts.length === 0) {\n        return [];\n    }\n    let partsSum = sum(parts);\n    if (total < partsSum)\n        total = partsSum;\n    if (total === 0) {\n        parts = parts.map(() => 1);\n        partsSum = sum(parts);\n        total = partsSum;\n    }\n    return parts.map((part) => Percent_Percent(part / total));\n};\n//# sourceMappingURL=Percent.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/util.js\nconst resolveObjectValues = async (obj) => Object.fromEntries(await Promise.all(Object.entries(obj).map(([key, promise]) => Promise.resolve(promise).then((value) => [key, value]))));\n//# sourceMappingURL=util.js.map\n;// ./node_modules/@cardano-sdk/util/dist/esm/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/coalesceTokenMaps.js\n\nconst coalesceTokenMaps = (totals) => {\n    const result = new Map();\n    for (const assetTotals of totals.filter(isNotNil)) {\n        for (const [assetId, assetQuantity] of assetTotals.entries()) {\n            const sum = result.get(assetId) || 0n;\n            result.set(assetId, sum + assetQuantity);\n        }\n    }\n    if (result.size === 0) {\n        return undefined;\n    }\n    return result;\n};\n//# sourceMappingURL=coalesceTokenMaps.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/removeNegativesFromTokenMap.js\nconst removeNegativesFromTokenMap = (assets) => {\n    const result = new Map(assets);\n    for (const [assetId, assetQuantity] of result) {\n        if (assetQuantity < 0) {\n            result.delete(assetId);\n        }\n    }\n    return result;\n};\n//# sourceMappingURL=removeNegativesFromTokenMap.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/uniq.js\nvar uniq = __webpack_require__(\"./node_modules/lodash/uniq.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/subtractTokenMaps.js\n\nconst subtractMaps = (lhs, rhs) => {\n    if (!rhs) {\n        if (!lhs)\n            return undefined;\n        const nonEmptyValues = new Map();\n        for (const [key, value] of lhs.entries()) {\n            if (value !== 0n)\n                nonEmptyValues.set(key, value);\n        }\n        return nonEmptyValues;\n    }\n    if (!lhs) {\n        const negativeValues = new Map();\n        for (const [key, value] of rhs.entries()) {\n            if (value !== 0n)\n                negativeValues.set(key, -value);\n        }\n        return negativeValues;\n    }\n    const result = new Map();\n    const intersection = new Array();\n    for (const [key, value] of lhs.entries()) {\n        if (rhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, value);\n    }\n    for (const [key, value] of rhs.entries()) {\n        if (lhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, -value);\n    }\n    const uniqIntersection = uniq(intersection);\n    for (const id of uniqIntersection) {\n        const lshVal = lhs.get(id);\n        const rshVal = rhs.get(id);\n        const remainingCoins = lshVal - rshVal;\n        if (remainingCoins !== 0n)\n            result.set(id, remainingCoins);\n    }\n    return result;\n};\nconst subtractTokenMaps = (assets) => {\n    if (!assets || assets.length === 0)\n        return undefined;\n    return assets.reduce(subtractMaps);\n};\n//# sourceMappingURL=subtractTokenMaps.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/isValidHandle.js\nconst REGEX_HANDLE = new RegExp(/^[a-z0-9_.-]{1,15}$/);\nconst REGEX_SUB_HANDLE = new RegExp(/(?:^[a-z0-9_.-]{1,15}$)|(?:^(?!.{29})[a-z0-9_.-]+@[a-z0-9_.-]{1,15}$)/g);\nconst isValidHandle = (handle) => {\n    REGEX_SUB_HANDLE.lastIndex = 0;\n    return (REGEX_HANDLE.test(handle) ||\n        REGEX_SUB_HANDLE.test(handle) ||\n        handle === '0|0');\n};\n//# sourceMappingURL=isValidHandle.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/crc8.js\nlet TABLE = [\n    0x00, 0x07, 0x0e, 0x09, 0x1c, 0x1b, 0x12, 0x15, 0x38, 0x3f, 0x36, 0x31, 0x24, 0x23, 0x2a, 0x2d, 0x70, 0x77, 0x7e,\n    0x79, 0x6c, 0x6b, 0x62, 0x65, 0x48, 0x4f, 0x46, 0x41, 0x54, 0x53, 0x5a, 0x5d, 0xe0, 0xe7, 0xee, 0xe9, 0xfc, 0xfb,\n    0xf2, 0xf5, 0xd8, 0xdf, 0xd6, 0xd1, 0xc4, 0xc3, 0xca, 0xcd, 0x90, 0x97, 0x9e, 0x99, 0x8c, 0x8b, 0x82, 0x85, 0xa8,\n    0xaf, 0xa6, 0xa1, 0xb4, 0xb3, 0xba, 0xbd, 0xc7, 0xc0, 0xc9, 0xce, 0xdb, 0xdc, 0xd5, 0xd2, 0xff, 0xf8, 0xf1, 0xf6,\n    0xe3, 0xe4, 0xed, 0xea, 0xb7, 0xb0, 0xb9, 0xbe, 0xab, 0xac, 0xa5, 0xa2, 0x8f, 0x88, 0x81, 0x86, 0x93, 0x94, 0x9d,\n    0x9a, 0x27, 0x20, 0x29, 0x2e, 0x3b, 0x3c, 0x35, 0x32, 0x1f, 0x18, 0x11, 0x16, 0x03, 0x04, 0x0d, 0x0a, 0x57, 0x50,\n    0x59, 0x5e, 0x4b, 0x4c, 0x45, 0x42, 0x6f, 0x68, 0x61, 0x66, 0x73, 0x74, 0x7d, 0x7a, 0x89, 0x8e, 0x87, 0x80, 0x95,\n    0x92, 0x9b, 0x9c, 0xb1, 0xb6, 0xbf, 0xb8, 0xad, 0xaa, 0xa3, 0xa4, 0xf9, 0xfe, 0xf7, 0xf0, 0xe5, 0xe2, 0xeb, 0xec,\n    0xc1, 0xc6, 0xcf, 0xc8, 0xdd, 0xda, 0xd3, 0xd4, 0x69, 0x6e, 0x67, 0x60, 0x75, 0x72, 0x7b, 0x7c, 0x51, 0x56, 0x5f,\n    0x58, 0x4d, 0x4a, 0x43, 0x44, 0x19, 0x1e, 0x17, 0x10, 0x05, 0x02, 0x0b, 0x0c, 0x21, 0x26, 0x2f, 0x28, 0x3d, 0x3a,\n    0x33, 0x34, 0x4e, 0x49, 0x40, 0x47, 0x52, 0x55, 0x5c, 0x5b, 0x76, 0x71, 0x78, 0x7f, 0x6a, 0x6d, 0x64, 0x63, 0x3e,\n    0x39, 0x30, 0x37, 0x22, 0x25, 0x2c, 0x2b, 0x06, 0x01, 0x08, 0x0f, 0x1a, 0x1d, 0x14, 0x13, 0xae, 0xa9, 0xa0, 0xa7,\n    0xb2, 0xb5, 0xbc, 0xbb, 0x96, 0x91, 0x98, 0x9f, 0x8a, 0x8d, 0x84, 0x83, 0xde, 0xd9, 0xd0, 0xd7, 0xc2, 0xc5, 0xcc,\n    0xcb, 0xe6, 0xe1, 0xe8, 0xef, 0xfa, 0xfd, 0xf4, 0xf3\n];\nif (typeof Int32Array !== 'undefined') {\n    TABLE = new Int32Array(TABLE);\n}\nconst crc8 = (current, previous = 0) => {\n    let crc = Math.trunc(previous);\n    for (const byte of current) {\n        crc = TABLE[(crc ^ byte) & 0xff] & 0xff;\n    }\n    return crc;\n};\n/* harmony default export */ const Asset_crc8 = (crc8);\n//# sourceMappingURL=crc8.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/cip67.js\n/* provided dependency */ var cip67_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst ASSET_LABEL_LENGTH = 8;\nconst ASSET_LABEL_BRACKET = '0';\nconst AssetNameLabel = (value) => value;\nconst AssetNameLabelNum = {\n    ReferenceNFT: 100,\n    UserFT: 333,\n    UserNFT: 222,\n    UserRFT: 444,\n    VirtualHandle: 0\n};\nconst assertLabelNumInterval = (labelNum) => {\n    if (labelNum < 0 || labelNum > 65535) {\n        throw new errors_InvalidArgumentError('Label num', `Label ${labelNum} out of range 0 - 65535.`);\n    }\n};\nconst cip67_checksum = (labelNumHex) => Asset_crc8(Uint8Array.from(cip67_Buffer.from(labelNumHex, 'hex')))\n    .toString(16)\n    .padStart(2, '0');\nconst isInvalidChecksum = (labelNumHex, labelChecksum) => labelChecksum !== cip67_checksum(labelNumHex);\nconst isInvalidLength = (label) => label.length !== ASSET_LABEL_LENGTH;\nconst isInvalidBracket = (lead, end) => lead !== ASSET_LABEL_BRACKET || end !== ASSET_LABEL_BRACKET;\nconst assetNameLabelHexToNum = (label) => {\n    const labelLeadBracket = label[0];\n    const labelEndBracket = label[7];\n    const labelNumHex = label.slice(1, 5);\n    const labelChecksum = label.slice(5, 7);\n    if (isInvalidLength(label) ||\n        isInvalidBracket(labelLeadBracket, labelEndBracket) ||\n        isInvalidChecksum(labelNumHex, labelChecksum)) {\n        return null;\n    }\n    return AssetNameLabel(Number.parseInt(labelNumHex, 16));\n};\nAssetNameLabel.decode = (assetName) => {\n    const assetNameLabel = assetName.slice(0, ASSET_LABEL_LENGTH);\n    const assetNameContent = assetName.slice(ASSET_LABEL_LENGTH);\n    const assetNameLabelNum = assetNameLabelHexToNum(assetNameLabel);\n    if (assetNameLabelNum === null) {\n        return null;\n    }\n    return {\n        content: AssetName(assetNameContent),\n        label: assetNameLabelNum\n    };\n};\nAssetNameLabel.encode = (assetName, labelNum) => {\n    assertLabelNumInterval(labelNum);\n    const labelNumHex = labelNum.toString(16).padStart(4, ASSET_LABEL_BRACKET);\n    return AssetName(`${ASSET_LABEL_BRACKET}${labelNumHex}${cip67_checksum(labelNumHex)}${ASSET_LABEL_BRACKET}${assetName}`);\n};\n//# sourceMappingURL=cip67.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/getAssetNameAsText.js\n/* provided dependency */ var getAssetNameAsText_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nconst getAssetNameAsText = (id) => {\n    const assetName = AssetId.getAssetName(id);\n    const assetNameContent = AssetNameLabel.decode(assetName)?.content;\n    return getAssetNameAsText_Buffer.from(assetNameContent || assetName, 'hex').toString('utf8');\n};\n//# sourceMappingURL=getAssetNameAsText.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/util/index.js\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@biglup/is-cid/dist/esm/index.js\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n\n// node_modules/multiformats/dist/src/bytes.js\nvar empty = new Uint8Array(0);\nfunction equals(aa, bb) {\n  if (aa === bb)\n    return true;\n  if (aa.byteLength !== bb.byteLength) {\n    return false;\n  }\n  for (let ii = 0; ii < aa.byteLength; ii++) {\n    if (aa[ii] !== bb[ii]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction coerce(o) {\n  if (o instanceof Uint8Array && o.constructor.name === \"Uint8Array\")\n    return o;\n  if (o instanceof ArrayBuffer)\n    return new Uint8Array(o);\n  if (ArrayBuffer.isView(o)) {\n    return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n  }\n  throw new Error(\"Unknown type, must be binary type\");\n}\n\n// node_modules/multiformats/dist/src/vendor/base-x.js\nfunction base(ALPHABET, name) {\n  if (ALPHABET.length >= 255) {\n    throw new TypeError(\"Alphabet too long\");\n  }\n  var BASE_MAP = new Uint8Array(256);\n  for (var j = 0; j < BASE_MAP.length; j++) {\n    BASE_MAP[j] = 255;\n  }\n  for (var i = 0; i < ALPHABET.length; i++) {\n    var x = ALPHABET.charAt(i);\n    var xc = x.charCodeAt(0);\n    if (BASE_MAP[xc] !== 255) {\n      throw new TypeError(x + \" is ambiguous\");\n    }\n    BASE_MAP[xc] = i;\n  }\n  var BASE = ALPHABET.length;\n  var LEADER = ALPHABET.charAt(0);\n  var FACTOR = Math.log(BASE) / Math.log(256);\n  var iFACTOR = Math.log(256) / Math.log(BASE);\n  function encode3(source) {\n    if (source instanceof Uint8Array)\n      ;\n    else if (ArrayBuffer.isView(source)) {\n      source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n    } else if (Array.isArray(source)) {\n      source = Uint8Array.from(source);\n    }\n    if (!(source instanceof Uint8Array)) {\n      throw new TypeError(\"Expected Uint8Array\");\n    }\n    if (source.length === 0) {\n      return \"\";\n    }\n    var zeroes = 0;\n    var length2 = 0;\n    var pbegin = 0;\n    var pend = source.length;\n    while (pbegin !== pend && source[pbegin] === 0) {\n      pbegin++;\n      zeroes++;\n    }\n    var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n    var b58 = new Uint8Array(size);\n    while (pbegin !== pend) {\n      var carry = source[pbegin];\n      var i2 = 0;\n      for (var it1 = size - 1; (carry !== 0 || i2 < length2) && it1 !== -1; it1--, i2++) {\n        carry += 256 * b58[it1] >>> 0;\n        b58[it1] = carry % BASE >>> 0;\n        carry = carry / BASE >>> 0;\n      }\n      if (carry !== 0) {\n        throw new Error(\"Non-zero carry\");\n      }\n      length2 = i2;\n      pbegin++;\n    }\n    var it2 = size - length2;\n    while (it2 !== size && b58[it2] === 0) {\n      it2++;\n    }\n    var str = LEADER.repeat(zeroes);\n    for (; it2 < size; ++it2) {\n      str += ALPHABET.charAt(b58[it2]);\n    }\n    return str;\n  }\n  function decodeUnsafe(source) {\n    if (typeof source !== \"string\") {\n      throw new TypeError(\"Expected String\");\n    }\n    if (source.length === 0) {\n      return new Uint8Array();\n    }\n    var psz = 0;\n    if (source[psz] === \" \") {\n      return;\n    }\n    var zeroes = 0;\n    var length2 = 0;\n    while (source[psz] === LEADER) {\n      zeroes++;\n      psz++;\n    }\n    var size = (source.length - psz) * FACTOR + 1 >>> 0;\n    var b256 = new Uint8Array(size);\n    while (source[psz]) {\n      var carry = BASE_MAP[source.charCodeAt(psz)];\n      if (carry === 255) {\n        return;\n      }\n      var i2 = 0;\n      for (var it3 = size - 1; (carry !== 0 || i2 < length2) && it3 !== -1; it3--, i2++) {\n        carry += BASE * b256[it3] >>> 0;\n        b256[it3] = carry % 256 >>> 0;\n        carry = carry / 256 >>> 0;\n      }\n      if (carry !== 0) {\n        throw new Error(\"Non-zero carry\");\n      }\n      length2 = i2;\n      psz++;\n    }\n    if (source[psz] === \" \") {\n      return;\n    }\n    var it4 = size - length2;\n    while (it4 !== size && b256[it4] === 0) {\n      it4++;\n    }\n    var vch = new Uint8Array(zeroes + (size - it4));\n    var j2 = zeroes;\n    while (it4 !== size) {\n      vch[j2++] = b256[it4++];\n    }\n    return vch;\n  }\n  function decode5(string) {\n    var buffer = decodeUnsafe(string);\n    if (buffer) {\n      return buffer;\n    }\n    throw new Error(`Non-${name} character`);\n  }\n  return {\n    encode: encode3,\n    decodeUnsafe,\n    decode: decode5\n  };\n}\nvar esm_src = base;\nvar _brrp__multiformats_scope_baseX = esm_src;\nvar base_x_default = _brrp__multiformats_scope_baseX;\n\n// node_modules/multiformats/dist/src/bases/base.js\nvar esm_Encoder = class {\n  constructor(name, prefix, baseEncode) {\n    __publicField(this, \"name\");\n    __publicField(this, \"prefix\");\n    __publicField(this, \"baseEncode\");\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n  }\n  encode(bytes) {\n    if (bytes instanceof Uint8Array) {\n      return `${this.prefix}${this.baseEncode(bytes)}`;\n    } else {\n      throw Error(\"Unknown type, must be binary type\");\n    }\n  }\n};\nvar esm_Decoder = class {\n  constructor(name, prefix, baseDecode) {\n    __publicField(this, \"name\");\n    __publicField(this, \"prefix\");\n    __publicField(this, \"baseDecode\");\n    __publicField(this, \"prefixCodePoint\");\n    this.name = name;\n    this.prefix = prefix;\n    if (prefix.codePointAt(0) === void 0) {\n      throw new Error(\"Invalid prefix character\");\n    }\n    this.prefixCodePoint = prefix.codePointAt(0);\n    this.baseDecode = baseDecode;\n  }\n  decode(text) {\n    if (typeof text === \"string\") {\n      if (text.codePointAt(0) !== this.prefixCodePoint) {\n        throw Error(`Unable to decode multibase string ${JSON.stringify(text)}, ${this.name} decoder only supports inputs prefixed with ${this.prefix}`);\n      }\n      return this.baseDecode(text.slice(this.prefix.length));\n    } else {\n      throw Error(\"Can only multibase decode strings\");\n    }\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n};\nvar ComposedDecoder = class {\n  constructor(decoders) {\n    __publicField(this, \"decoders\");\n    this.decoders = decoders;\n  }\n  or(decoder) {\n    return or(this, decoder);\n  }\n  decode(input) {\n    const prefix = input[0];\n    const decoder = this.decoders[prefix];\n    if (decoder != null) {\n      return decoder.decode(input);\n    } else {\n      throw RangeError(`Unable to decode multibase string ${JSON.stringify(input)}, only inputs prefixed with ${Object.keys(this.decoders)} are supported`);\n    }\n  }\n};\nfunction or(left, right) {\n  return new ComposedDecoder({\n    ...left.decoders ?? { [left.prefix]: left },\n    ...right.decoders ?? { [right.prefix]: right }\n  });\n}\nvar Codec = class {\n  constructor(name, prefix, baseEncode, baseDecode) {\n    __publicField(this, \"name\");\n    __publicField(this, \"prefix\");\n    __publicField(this, \"baseEncode\");\n    __publicField(this, \"baseDecode\");\n    __publicField(this, \"encoder\");\n    __publicField(this, \"decoder\");\n    this.name = name;\n    this.prefix = prefix;\n    this.baseEncode = baseEncode;\n    this.baseDecode = baseDecode;\n    this.encoder = new esm_Encoder(name, prefix, baseEncode);\n    this.decoder = new esm_Decoder(name, prefix, baseDecode);\n  }\n  encode(input) {\n    return this.encoder.encode(input);\n  }\n  decode(input) {\n    return this.decoder.decode(input);\n  }\n};\nfunction from({ name, prefix, encode: encode3, decode: decode5 }) {\n  return new Codec(name, prefix, encode3, decode5);\n}\nfunction baseX({ name, prefix, alphabet }) {\n  const { encode: encode3, decode: decode5 } = base_x_default(alphabet, name);\n  return from({\n    prefix,\n    name,\n    encode: encode3,\n    decode: (text) => coerce(decode5(text))\n  });\n}\nfunction decode(string, alphabet, bitsPerChar, name) {\n  const codes = {};\n  for (let i = 0; i < alphabet.length; ++i) {\n    codes[alphabet[i]] = i;\n  }\n  let end = string.length;\n  while (string[end - 1] === \"=\") {\n    --end;\n  }\n  const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n  let bits = 0;\n  let buffer = 0;\n  let written = 0;\n  for (let i = 0; i < end; ++i) {\n    const value = codes[string[i]];\n    if (value === void 0) {\n      throw new SyntaxError(`Non-${name} character`);\n    }\n    buffer = buffer << bitsPerChar | value;\n    bits += bitsPerChar;\n    if (bits >= 8) {\n      bits -= 8;\n      out[written++] = 255 & buffer >> bits;\n    }\n  }\n  if (bits >= bitsPerChar || (255 & buffer << 8 - bits) !== 0) {\n    throw new SyntaxError(\"Unexpected end of data\");\n  }\n  return out;\n}\nfunction encode(data, alphabet, bitsPerChar) {\n  const pad = alphabet[alphabet.length - 1] === \"=\";\n  const mask = (1 << bitsPerChar) - 1;\n  let out = \"\";\n  let bits = 0;\n  let buffer = 0;\n  for (let i = 0; i < data.length; ++i) {\n    buffer = buffer << 8 | data[i];\n    bits += 8;\n    while (bits > bitsPerChar) {\n      bits -= bitsPerChar;\n      out += alphabet[mask & buffer >> bits];\n    }\n  }\n  if (bits !== 0) {\n    out += alphabet[mask & buffer << bitsPerChar - bits];\n  }\n  if (pad) {\n    while ((out.length * bitsPerChar & 7) !== 0) {\n      out += \"=\";\n    }\n  }\n  return out;\n}\nfunction rfc4648({ name, prefix, bitsPerChar, alphabet }) {\n  return from({\n    prefix,\n    name,\n    encode(input) {\n      return encode(input, alphabet, bitsPerChar);\n    },\n    decode(input) {\n      return decode(input, alphabet, bitsPerChar, name);\n    }\n  });\n}\n\n// node_modules/multiformats/dist/src/bases/base32.js\nvar esm_base32 = rfc4648({\n  prefix: \"b\",\n  name: \"base32\",\n  alphabet: \"abcdefghijklmnopqrstuvwxyz234567\",\n  bitsPerChar: 5\n});\nvar base32upper = rfc4648({\n  prefix: \"B\",\n  name: \"base32upper\",\n  alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567\",\n  bitsPerChar: 5\n});\nvar base32pad = rfc4648({\n  prefix: \"c\",\n  name: \"base32pad\",\n  alphabet: \"abcdefghijklmnopqrstuvwxyz234567=\",\n  bitsPerChar: 5\n});\nvar base32padupper = rfc4648({\n  prefix: \"C\",\n  name: \"base32padupper\",\n  alphabet: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=\",\n  bitsPerChar: 5\n});\nvar esm_base32hex = rfc4648({\n  prefix: \"v\",\n  name: \"base32hex\",\n  alphabet: \"0123456789abcdefghijklmnopqrstuv\",\n  bitsPerChar: 5\n});\nvar base32hexupper = rfc4648({\n  prefix: \"V\",\n  name: \"base32hexupper\",\n  alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV\",\n  bitsPerChar: 5\n});\nvar base32hexpad = rfc4648({\n  prefix: \"t\",\n  name: \"base32hexpad\",\n  alphabet: \"0123456789abcdefghijklmnopqrstuv=\",\n  bitsPerChar: 5\n});\nvar base32hexpadupper = rfc4648({\n  prefix: \"T\",\n  name: \"base32hexpadupper\",\n  alphabet: \"0123456789ABCDEFGHIJKLMNOPQRSTUV=\",\n  bitsPerChar: 5\n});\nvar base32z = rfc4648({\n  prefix: \"h\",\n  name: \"base32z\",\n  alphabet: \"ybndrfg8ejkmcpqxot1uwisza345h769\",\n  bitsPerChar: 5\n});\n\n// node_modules/multiformats/dist/src/bases/base58.js\nvar base58btc = baseX({\n  name: \"base58btc\",\n  prefix: \"z\",\n  alphabet: \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"\n});\nvar esm_base58flickr = baseX({\n  name: \"base58flickr\",\n  prefix: \"Z\",\n  alphabet: \"123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ\"\n});\n\n// node_modules/multiformats/dist/src/vendor/varint.js\nvar encode_1 = encode2;\nvar MSB = 128;\nvar REST = 127;\nvar MSBALL = ~REST;\nvar INT = Math.pow(2, 31);\nfunction encode2(num, out, offset) {\n  out = out || [];\n  offset = offset || 0;\n  var oldOffset = offset;\n  while (num >= INT) {\n    out[offset++] = num & 255 | MSB;\n    num /= 128;\n  }\n  while (num & MSBALL) {\n    out[offset++] = num & 255 | MSB;\n    num >>>= 7;\n  }\n  out[offset] = num | 0;\n  encode2.bytes = offset - oldOffset + 1;\n  return out;\n}\nvar decode2 = read;\nvar MSB$1 = 128;\nvar REST$1 = 127;\nfunction read(buf, offset) {\n  var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n  do {\n    if (counter >= l) {\n      read.bytes = 0;\n      throw new RangeError(\"Could not decode varint\");\n    }\n    b = buf[counter++];\n    res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n    shift += 7;\n  } while (b >= MSB$1);\n  read.bytes = counter - offset;\n  return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar esm_length = function(value) {\n  return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n  encode: encode_1,\n  decode: decode2,\n  encodingLength: esm_length\n};\nvar _brrp_varint = varint;\nvar varint_default = _brrp_varint;\n\n// node_modules/multiformats/dist/src/varint.js\nfunction decode3(data, offset = 0) {\n  const code = varint_default.decode(data, offset);\n  return [code, varint_default.decode.bytes];\n}\nfunction encodeTo(int, target, offset = 0) {\n  varint_default.encode(int, target, offset);\n  return target;\n}\nfunction encodingLength(int) {\n  return varint_default.encodingLength(int);\n}\n\n// node_modules/multiformats/dist/src/hashes/digest.js\nfunction create(code, digest) {\n  const size = digest.byteLength;\n  const sizeOffset = encodingLength(code);\n  const digestOffset = sizeOffset + encodingLength(size);\n  const bytes = new Uint8Array(digestOffset + size);\n  encodeTo(code, bytes, 0);\n  encodeTo(size, bytes, sizeOffset);\n  bytes.set(digest, digestOffset);\n  return new Digest(code, size, digest, bytes);\n}\nfunction decode4(multihash) {\n  const bytes = coerce(multihash);\n  const [code, sizeOffset] = decode3(bytes);\n  const [size, digestOffset] = decode3(bytes.subarray(sizeOffset));\n  const digest = bytes.subarray(sizeOffset + digestOffset);\n  if (digest.byteLength !== size) {\n    throw new Error(\"Incorrect length\");\n  }\n  return new Digest(code, size, digest, bytes);\n}\nfunction equals2(a, b) {\n  if (a === b) {\n    return true;\n  } else {\n    const data = b;\n    return a.code === data.code && a.size === data.size && data.bytes instanceof Uint8Array && equals(a.bytes, data.bytes);\n  }\n}\nvar Digest = class {\n  /**\n   * Creates a multihash digest.\n   */\n  constructor(code, size, digest, bytes) {\n    __publicField(this, \"code\");\n    __publicField(this, \"size\");\n    __publicField(this, \"digest\");\n    __publicField(this, \"bytes\");\n    this.code = code;\n    this.size = size;\n    this.digest = digest;\n    this.bytes = bytes;\n  }\n};\n\n// node_modules/multiformats/dist/src/cid.js\nfunction format(link, base2) {\n  const { bytes, version } = link;\n  switch (version) {\n    case 0:\n      return toStringV0(bytes, baseCache(link), base2 ?? base58btc.encoder);\n    default:\n      return toStringV1(bytes, baseCache(link), base2 ?? esm_base32.encoder);\n  }\n}\nvar cache = /* @__PURE__ */ new WeakMap();\nfunction baseCache(cid) {\n  const baseCache2 = cache.get(cid);\n  if (baseCache2 == null) {\n    const baseCache3 = /* @__PURE__ */ new Map();\n    cache.set(cid, baseCache3);\n    return baseCache3;\n  }\n  return baseCache2;\n}\nvar esm_a;\nvar CID = class _CID {\n  /**\n   * @param version - Version of the CID\n   * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n   * @param multihash - (Multi)hash of the of the content.\n   */\n  constructor(version, code, multihash, bytes) {\n    __publicField(this, \"code\");\n    __publicField(this, \"version\");\n    __publicField(this, \"multihash\");\n    __publicField(this, \"bytes\");\n    __publicField(this, \"/\");\n    __publicField(this, esm_a, \"CID\");\n    this.code = code;\n    this.version = version;\n    this.multihash = multihash;\n    this.bytes = bytes;\n    this[\"/\"] = bytes;\n  }\n  /**\n   * Signalling `cid.asCID === cid` has been replaced with `cid['/'] === cid.bytes`\n   * please either use `CID.asCID(cid)` or switch to new signalling mechanism\n   *\n   * @deprecated\n   */\n  get asCID() {\n    return this;\n  }\n  // ArrayBufferView\n  get byteOffset() {\n    return this.bytes.byteOffset;\n  }\n  // ArrayBufferView\n  get byteLength() {\n    return this.bytes.byteLength;\n  }\n  toV0() {\n    switch (this.version) {\n      case 0: {\n        return this;\n      }\n      case 1: {\n        const { code, multihash } = this;\n        if (code !== DAG_PB_CODE) {\n          throw new Error(\"Cannot convert a non dag-pb CID to CIDv0\");\n        }\n        if (multihash.code !== SHA_256_CODE) {\n          throw new Error(\"Cannot convert non sha2-256 multihash CID to CIDv0\");\n        }\n        return _CID.createV0(multihash);\n      }\n      default: {\n        throw Error(`Can not convert CID version ${this.version} to version 0. This is a bug please report`);\n      }\n    }\n  }\n  toV1() {\n    switch (this.version) {\n      case 0: {\n        const { code, digest } = this.multihash;\n        const multihash = create(code, digest);\n        return _CID.createV1(this.code, multihash);\n      }\n      case 1: {\n        return this;\n      }\n      default: {\n        throw Error(`Can not convert CID version ${this.version} to version 1. This is a bug please report`);\n      }\n    }\n  }\n  equals(other) {\n    return _CID.equals(this, other);\n  }\n  static equals(self, other) {\n    const unknown = other;\n    return unknown != null && self.code === unknown.code && self.version === unknown.version && equals2(self.multihash, unknown.multihash);\n  }\n  toString(base2) {\n    return format(this, base2);\n  }\n  toJSON() {\n    return { \"/\": format(this) };\n  }\n  link() {\n    return this;\n  }\n  // Legacy\n  [(esm_a = Symbol.toStringTag, Symbol.for(\"nodejs.util.inspect.custom\"))]() {\n    return `CID(${this.toString()})`;\n  }\n  /**\n   * Takes any input `value` and returns a `CID` instance if it was\n   * a `CID` otherwise returns `null`. If `value` is instanceof `CID`\n   * it will return value back. If `value` is not instance of this CID\n   * class, but is compatible CID it will return new instance of this\n   * `CID` class. Otherwise returns null.\n   *\n   * This allows two different incompatible versions of CID library to\n   * co-exist and interop as long as binary interface is compatible.\n   */\n  static asCID(input) {\n    if (input == null) {\n      return null;\n    }\n    const value = input;\n    if (value instanceof _CID) {\n      return value;\n    } else if (value[\"/\"] != null && value[\"/\"] === value.bytes || value.asCID === value) {\n      const { version, code, multihash, bytes } = value;\n      return new _CID(version, code, multihash, bytes ?? encodeCID(version, code, multihash.bytes));\n    } else if (value[cidSymbol] === true) {\n      const { version, multihash, code } = value;\n      const digest = decode4(multihash);\n      return _CID.create(version, code, digest);\n    } else {\n      return null;\n    }\n  }\n  /**\n   * @param version - Version of the CID\n   * @param code - Code of the codec content is encoded in, see https://github.com/multiformats/multicodec/blob/master/table.csv\n   * @param digest - (Multi)hash of the of the content.\n   */\n  static create(version, code, digest) {\n    if (typeof code !== \"number\") {\n      throw new Error(\"String codecs are no longer supported\");\n    }\n    if (!(digest.bytes instanceof Uint8Array)) {\n      throw new Error(\"Invalid digest\");\n    }\n    switch (version) {\n      case 0: {\n        if (code !== DAG_PB_CODE) {\n          throw new Error(`Version 0 CID must use dag-pb (code: ${DAG_PB_CODE}) block encoding`);\n        } else {\n          return new _CID(version, code, digest, digest.bytes);\n        }\n      }\n      case 1: {\n        const bytes = encodeCID(version, code, digest.bytes);\n        return new _CID(version, code, digest, bytes);\n      }\n      default: {\n        throw new Error(\"Invalid version\");\n      }\n    }\n  }\n  /**\n   * Simplified version of `create` for CIDv0.\n   */\n  static createV0(digest) {\n    return _CID.create(0, DAG_PB_CODE, digest);\n  }\n  /**\n   * Simplified version of `create` for CIDv1.\n   *\n   * @param code - Content encoding format code.\n   * @param digest - Multihash of the content.\n   */\n  static createV1(code, digest) {\n    return _CID.create(1, code, digest);\n  }\n  /**\n   * Decoded a CID from its binary representation. The byte array must contain\n   * only the CID with no additional bytes.\n   *\n   * An error will be thrown if the bytes provided do not contain a valid\n   * binary representation of a CID.\n   */\n  static decode(bytes) {\n    const [cid, remainder] = _CID.decodeFirst(bytes);\n    if (remainder.length !== 0) {\n      throw new Error(\"Incorrect length\");\n    }\n    return cid;\n  }\n  /**\n   * Decoded a CID from its binary representation at the beginning of a byte\n   * array.\n   *\n   * Returns an array with the first element containing the CID and the second\n   * element containing the remainder of the original byte array. The remainder\n   * will be a zero-length byte array if the provided bytes only contained a\n   * binary CID representation.\n   */\n  static decodeFirst(bytes) {\n    const specs = _CID.inspectBytes(bytes);\n    const prefixSize = specs.size - specs.multihashSize;\n    const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n    if (multihashBytes.byteLength !== specs.multihashSize) {\n      throw new Error(\"Incorrect length\");\n    }\n    const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n    const digest = new Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n    const cid = specs.version === 0 ? _CID.createV0(digest) : _CID.createV1(specs.codec, digest);\n    return [cid, bytes.subarray(specs.size)];\n  }\n  /**\n   * Inspect the initial bytes of a CID to determine its properties.\n   *\n   * Involves decoding up to 4 varints. Typically this will require only 4 to 6\n   * bytes but for larger multicodec code values and larger multihash digest\n   * lengths these varints can be quite large. It is recommended that at least\n   * 10 bytes be made available in the `initialBytes` argument for a complete\n   * inspection.\n   */\n  static inspectBytes(initialBytes) {\n    let offset = 0;\n    const next = () => {\n      const [i, length2] = decode3(initialBytes.subarray(offset));\n      offset += length2;\n      return i;\n    };\n    let version = next();\n    let codec = DAG_PB_CODE;\n    if (version === 18) {\n      version = 0;\n      offset = 0;\n    } else {\n      codec = next();\n    }\n    if (version !== 0 && version !== 1) {\n      throw new RangeError(`Invalid CID version ${version}`);\n    }\n    const prefixSize = offset;\n    const multihashCode = next();\n    const digestSize = next();\n    const size = offset + digestSize;\n    const multihashSize = size - prefixSize;\n    return { version, codec, multihashCode, digestSize, multihashSize, size };\n  }\n  /**\n   * Takes cid in a string representation and creates an instance. If `base`\n   * decoder is not provided will use a default from the configuration. It will\n   * throw an error if encoding of the CID is not compatible with supplied (or\n   * a default decoder).\n   */\n  static parse(source, base2) {\n    const [prefix, bytes] = parseCIDtoBytes(source, base2);\n    const cid = _CID.decode(bytes);\n    if (cid.version === 0 && source[0] !== \"Q\") {\n      throw Error(\"Version 0 CID string must not include multibase prefix\");\n    }\n    baseCache(cid).set(prefix, source);\n    return cid;\n  }\n};\nfunction parseCIDtoBytes(source, base2) {\n  switch (source[0]) {\n    // CIDv0 is parsed differently\n    case \"Q\": {\n      const decoder = base2 ?? base58btc;\n      return [\n        base58btc.prefix,\n        decoder.decode(`${base58btc.prefix}${source}`)\n      ];\n    }\n    case base58btc.prefix: {\n      const decoder = base2 ?? base58btc;\n      return [base58btc.prefix, decoder.decode(source)];\n    }\n    case esm_base32.prefix: {\n      const decoder = base2 ?? esm_base32;\n      return [esm_base32.prefix, decoder.decode(source)];\n    }\n    default: {\n      if (base2 == null) {\n        throw Error(\"To parse non base32 or base58btc encoded CID multibase decoder must be provided\");\n      }\n      return [source[0], base2.decode(source)];\n    }\n  }\n}\nfunction toStringV0(bytes, cache2, base2) {\n  const { prefix } = base2;\n  if (prefix !== base58btc.prefix) {\n    throw Error(`Cannot string encode V0 in ${base2.name} encoding`);\n  }\n  const cid = cache2.get(prefix);\n  if (cid == null) {\n    const cid2 = base2.encode(bytes).slice(1);\n    cache2.set(prefix, cid2);\n    return cid2;\n  } else {\n    return cid;\n  }\n}\nfunction toStringV1(bytes, cache2, base2) {\n  const { prefix } = base2;\n  const cid = cache2.get(prefix);\n  if (cid == null) {\n    const cid2 = base2.encode(bytes);\n    cache2.set(prefix, cid2);\n    return cid2;\n  } else {\n    return cid;\n  }\n}\nvar DAG_PB_CODE = 112;\nvar SHA_256_CODE = 18;\nfunction encodeCID(version, code, multihash) {\n  const codeOffset = encodingLength(version);\n  const hashOffset = codeOffset + encodingLength(code);\n  const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n  encodeTo(version, bytes, 0);\n  encodeTo(code, bytes, codeOffset);\n  bytes.set(multihash, hashOffset);\n  return bytes;\n}\nvar cidSymbol = Symbol.for(\"@ipld/js-cid/CID\");\n\n// src/index.ts\nvar isString = (input) => typeof input === \"string\";\nvar isValid = (hash) => {\n  try {\n    if (isString(hash)) {\n      return Boolean(CID.parse(hash));\n    }\n    return Boolean(CID.asCID(hash));\n  } catch {\n    return false;\n  }\n};\n\n//# sourceMappingURL=index.mjs.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/types.js\n\n\nconst looksLikeIpfsUrlWithoutProtocol = (uri) => {\n    const [cid] = uri.split('/');\n    if (!cid)\n        return false;\n    return isValid(cid);\n};\nconst Uri = (uri) => {\n    if (/^[a-z]+:\\/\\/.+/.test(uri)) {\n        return uri;\n    }\n    if (uri.startsWith('data:')) {\n        return uri;\n    }\n    if (looksLikeIpfsUrlWithoutProtocol(uri)) {\n        return `ipfs://${uri}`;\n    }\n    throw new errors_InvalidStringError('Expected Uri to start with \"[protocol]:\", where protocol is usually \"https\", \"ipfs\" or \"data\"');\n};\nconst ImageMediaType = (mediaType) => {\n    if (/^image\\/.+$/.test(mediaType)) {\n        return mediaType;\n    }\n    throw new errors_InvalidStringError('Expected media type to be \"image/*\"');\n};\nconst MediaType = (mediaType) => {\n    if (/^[a-z]+\\/.+$/.test(mediaType)) {\n        return mediaType;\n    }\n    throw new errors_InvalidStringError('Expected media type to be \"*/*\"');\n};\n//# sourceMappingURL=types.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/errors.js\n\nclass InvalidFileError extends CustomError {\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/util.js\nconst asString = (value) => (typeof value === 'string' ? value : undefined);\n//# sourceMappingURL=util.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/difference.js\nvar difference = __webpack_require__(\"./node_modules/lodash/difference.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/fromMetadatum.js\n/* provided dependency */ var fromMetadatum_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\n\n\n\n\nconst fromMetadatum_isString = (obj) => typeof obj === 'string';\nconst VersionRegExp = /^\\d+\\.?\\d?$/;\nconst metadatumToString = (metadatum) => {\n    if (Array.isArray(metadatum)) {\n        const result = metadatum.map(asString);\n        if (result.some((str) => typeof str === 'undefined')) {\n            return undefined;\n        }\n        return result.join('');\n    }\n    return asString(metadatum);\n};\nconst mapOtherProperties = (metadata, primaryProperties) => {\n    const extraProperties = difference([...metadata.keys()].filter(fromMetadatum_isString), primaryProperties);\n    if (extraProperties.length === 0)\n        return;\n    return extraProperties.reduce((result, key) => {\n        result.set(key, metadata.get(key));\n        return result;\n    }, new Map());\n};\nconst missingFieldLogMessage = (fieldType, assetId, rootLevel) => `Omitting cip25 ${rootLevel ? 'root' : 'file'} metadata: missing \"${fieldType}\". AssetId: ${assetId}`;\nconst mapFile = (metadatum, assetId, logger) => {\n    const file = asMetadatumMap(metadatum);\n    if (!file)\n        throw new InvalidFileError();\n    const name = asString(file.get('name'));\n    const mediaType = asString(file.get('mediaType'));\n    if (!mediaType) {\n        logger.warn(missingFieldLogMessage('mediaType', assetId, false));\n        return null;\n    }\n    const src = metadatumToString(file.get('src'));\n    if (!src) {\n        logger.warn(missingFieldLogMessage('source', assetId, false));\n        return null;\n    }\n    return {\n        mediaType: MediaType(mediaType),\n        name,\n        otherProperties: mapOtherProperties(file, ['mediaType', 'name', 'src']),\n        src: Uri(src)\n    };\n};\nconst getPolicyMetadata = (policy, policyId) => asMetadatumMap(policy.get(policyId) ||\n    (() => {\n        for (const [key, value] of policy.entries()) {\n            if (ArrayBuffer.isView(key) && fromMetadatum_Buffer.from(key).toString('hex') === policyId)\n                return value;\n        }\n    })());\nconst getAssetMetadata = (policy, assetName) => asMetadatumMap(policy.get(assetName) ||\n    policy.get(fromMetadatum_Buffer.from(assetName, 'hex').toString('utf8')) ||\n    (() => {\n        for (const [key, value] of policy.entries()) {\n            if (ArrayBuffer.isView(key) && fromMetadatum_Buffer.from(key).toString('hex') === assetName)\n                return value;\n        }\n    })());\nconst getName = (assetMetadata, version, asset, logger, stripInvisibleCharacters = false) => {\n    const name = asString(assetMetadata.get('name'));\n    if (name)\n        return name;\n    if (version === '1.0') {\n        try {\n            return AssetName.toUTF8(asset.name, stripInvisibleCharacters);\n        }\n        catch (error) {\n            logger.warn(error);\n        }\n    }\n};\nconst parseVersion = (version) => {\n    if (!version)\n        return '1.0';\n    if (typeof version === 'bigint') {\n        return `${version}.0`;\n    }\n    const stringVersion = asString(version);\n    if (stringVersion && VersionRegExp.test(stringVersion)) {\n        return `${Number(stringVersion)}.0`;\n    }\n};\nconst fromMetadatum = (asset, metadata, logger, strict = false) => {\n    const cip25Metadata = metadata?.get(721n);\n    if (!cip25Metadata)\n        return null;\n    const cip25MetadatumMap = asMetadatumMap(cip25Metadata);\n    if (!cip25MetadatumMap)\n        return null;\n    const policy = getPolicyMetadata(cip25MetadatumMap, asset.policyId);\n    if (!policy)\n        return null;\n    const version = parseVersion(policy.get('version'));\n    if (!version)\n        return null;\n    const assetMetadata = getAssetMetadata(policy, asset.name);\n    if (!assetMetadata)\n        return null;\n    const name = getName(assetMetadata, version, asset, logger, true);\n    const image = metadatumToString(assetMetadata.get('image'));\n    const assetId = AssetId.fromParts(asset.policyId, asset.name);\n    if ((strict && !name) || !image) {\n        logger.warn(missingFieldLogMessage(!name ? 'name' : 'image', assetId, true));\n        return null;\n    }\n    const mediaType = asString(assetMetadata.get('mediaType'));\n    const files = asMetadatumArray(assetMetadata.get('files'));\n    try {\n        return {\n            description: metadatumToString(assetMetadata.get('description')),\n            files: files?.map((file) => mapFile(file, assetId, logger)).filter(isNotNil),\n            image: Uri(image),\n            mediaType: mediaType ? ImageMediaType(mediaType) : undefined,\n            name: name || '',\n            otherProperties: mapOtherProperties(assetMetadata, ['name', 'image', 'mediaType', 'description', 'files']),\n            version\n        };\n    }\n    catch (error) {\n        logger.warn('Invalid CIP-25 metadata', assetMetadata, error);\n        return null;\n    }\n};\n//# sourceMappingURL=fromMetadatum.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/logging.js\nconst logging_loggerMethodNames = ['debug', 'error', 'fatal', 'info', 'trace', 'warn'];\nconst logging_contextLogger = (logger, context, contextStringify = (ctx) => (logger.contextStringify ? logger.contextStringify(ctx) : `[${ctx.join('|')}]`)) => {\n    const derivedLogger = {\n        baseLogger: logger.baseLogger || logger,\n        contextArray: [...(logger.contextArray || []), context],\n        contextStringify\n    };\n    const contextStr = contextStringify(derivedLogger.contextArray);\n    return { ...derivedLogger, ...Object.fromEntries(logging_loggerMethodNames.map((method) => [\n            method,\n            (message, ...optionalParams) => {\n                derivedLogger.baseLogger[method](contextStr, message, ...optionalParams);\n            }\n        ])) };\n};\n//# sourceMappingURL=logging.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/fromPlutusData.js\n\n\n\n\nconst tryCoerce = (value, ctor, logger) => {\n    if (typeof value !== 'string')\n        return;\n    try {\n        return ctor(value);\n    }\n    catch (error) {\n        logger.warn(error instanceof Error ? error.message : error);\n    }\n};\nconst mapOtherPropertyValue = (value, logger) => {\n    if (typeof value === 'string' || isPlutusBigInt(value) || isPlutusBoundedBytes(value))\n        return value;\n    if (isPlutusMap(value)) {\n        const properties = fromPlutusData_mapOtherProperties(tryConvertPlutusMapToUtf8Record(value, logger), logger);\n        return new Map(Object.entries(properties));\n    }\n    const list = isPlutusList(value) ? value.items : value.fields.items;\n    return list.map((item) => mapOtherPropertyValue(item, logger));\n};\nconst fromPlutusData_mapOtherProperties = (additionalProperties, logger) => Object.entries(additionalProperties).reduce((result, [key, value]) => {\n    if (typeof value !== 'undefined') {\n        result.set(key, mapOtherPropertyValue(value, logger));\n    }\n    return result;\n}, new Map());\nconst undefinedIfEmpty = (map) => (map.size > 0 ? map : undefined);\nconst fromPlutusData_mapFile = (file, logger) => {\n    if (!isPlutusMap(file)) {\n        logger.warn('expected \"files[n]\" to be a map');\n        return;\n    }\n    const { mediaType: mediaTypeStr, src: srcStr, name, ...additionalProperties } = tryConvertPlutusMapToUtf8Record(file, logger);\n    const mediaType = tryCoerce(mediaTypeStr, MediaType, logger);\n    const src = tryCoerce(srcStr, Uri, logger);\n    if (typeof src !== 'string' || typeof mediaType !== 'string') {\n        logger.warn('invalid \"files[n].src\" or \"files[n].mediaType\"');\n        return;\n    }\n    return {\n        mediaType,\n        name: asString(name),\n        otherProperties: undefinedIfEmpty(fromPlutusData_mapOtherProperties(additionalProperties, logger)),\n        src\n    };\n};\nconst mapFiles = (files, logger) => {\n    if (!files)\n        return;\n    if (!isPlutusList(files)) {\n        logger.warn('expected \"files\" to be a list');\n        return;\n    }\n    return files.items.map((file) => fromPlutusData_mapFile(file, logger)).filter(isNotNil);\n};\nconst getConditionalValidators = (strict, logger) => ({\n    isNameValid: (name) => {\n        if (typeof name === 'string')\n            return true;\n        if (typeof name === 'undefined') {\n            if (strict) {\n                logger.debug('Invalid PlutusData: \"name\" is required');\n                return false;\n            }\n            return true;\n        }\n        logger.debug('Invalid PlutusData: \"name\" must be utf8 bounded bytes');\n        return false;\n    },\n    isValidDatumShape: (plutusData) => {\n        const minNumberOfFields = strict ? 3 : 2;\n        const isValid = isConstrPlutusData(plutusData) &&\n            plutusData.constructor === 0n &&\n            plutusData.fields.items.length >= minNumberOfFields;\n        if (!isValid)\n            logger.debug(`Invalid PlutusData: expecting ConstrPlutusData with 0th constructor and ${minNumberOfFields} items`);\n        return isValid;\n    }\n});\nconst fromPlutusData = (plutusData, parentLogger, strict = false) => {\n    const logger = logging_contextLogger(parentLogger, 'NftMetadata.fromPlutusData');\n    const conditionalValidators = getConditionalValidators(strict, logger);\n    if (!conditionalValidators.isValidDatumShape(plutusData)) {\n        return null;\n    }\n    const [nftMetadata, version] = plutusData.fields.items;\n    if (!isPlutusMap(nftMetadata) || !isPlutusBigInt(version)) {\n        logger.debug('Invalid PlutusData: expecting a map at [0] and integer at [1]');\n        return null;\n    }\n    const nftMetadataRecord = tryConvertPlutusMapToUtf8Record(nftMetadata, logger);\n    const { name, image, mediaType, description, files, ...additionalProperties } = nftMetadataRecord;\n    if (!conditionalValidators.isNameValid(name)) {\n        return null;\n    }\n    if (typeof image !== 'string') {\n        logger.debug('Invalid PlutusData: \"image\" must be UTF-8 bounded bytes');\n        return null;\n    }\n    const imageAsUri = tryCoerce(image, Uri, logger);\n    if (!imageAsUri) {\n        return null;\n    }\n    return {\n        description: asString(description),\n        files: mapFiles(files, logger),\n        image: imageAsUri,\n        mediaType: tryCoerce(mediaType, ImageMediaType, logger),\n        name: name || '',\n        otherProperties: undefinedIfEmpty(fromPlutusData_mapOtherProperties(additionalProperties, logger)),\n        version: version.toString()\n    };\n};\n//# sourceMappingURL=fromPlutusData.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/NftMetadata/index.js\n\n\n\n\nconst NftMetadata = {\n    fromMetadatum: fromMetadatum,\n    fromPlutusData: fromPlutusData\n};\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Asset/index.js\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/StakePoolProvider/util.js\nconst PoolDataSortFields = ['cost', 'name', 'margin', 'pledge', 'ticker'];\nconst PoolMetricsSortFields = ['blocks', 'liveStake', 'saturation'];\nconst PoolAPYSortFields = ['apy'];\nconst PoolROSSortFields = ['ros', 'lastRos'];\nconst isPoolDataSortField = (value) => PoolDataSortFields.includes(value);\nconst isPoolMetricsSortField = (value) => PoolMetricsSortFields.includes(value);\nconst isPoolAPYSortField = (value) => PoolAPYSortFields.includes(value);\nconst isPoolROSSortField = (value) => PoolROSSortFields.includes(value);\nconst SortFields = [...PoolDataSortFields, ...PoolMetricsSortFields, ...PoolAPYSortFields, ...PoolROSSortFields];\n//# sourceMappingURL=util.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/StakePoolProvider/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/providerUtil.js\n\nconst withProviderErrors = (providerImplementation, toProviderError) => Object.keys(providerImplementation).reduce((provider, key) => {\n    const originalValue = providerImplementation[key];\n    provider[key] =\n        typeof originalValue === 'function'\n            ? (...args) => originalValue(...args).catch(toProviderError)\n            : originalValue;\n    return provider;\n}, {});\nconst tryParseBigIntKey = (key) => {\n    if (key.startsWith('0x'))\n        return key.slice(2);\n    if (key.length === 0)\n        return key;\n    try {\n        return BigInt(key);\n    }\n    catch {\n        return key;\n    }\n};\nconst providerUtil_jsonToMetadatum = (obj) => {\n    switch (typeof obj) {\n        case 'number':\n            return BigInt(obj);\n        case 'string':\n        case 'bigint':\n            return obj;\n        case 'object': {\n            if (obj === null)\n                break;\n            if (Array.isArray(obj)) {\n                return obj.map(providerUtil_jsonToMetadatum);\n            }\n            return new Map(Object.keys(obj).map((key) => [tryParseBigIntKey(key), providerUtil_jsonToMetadatum(obj[key])]));\n        }\n    }\n    throw new ProviderError(ProviderFailure.NotImplemented, null, `Unsupported metadatum type: ${typeof obj}`);\n};\n//# sourceMappingURL=providerUtil.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/providerFactory.js\nvar providerFactory_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar _ProviderFactory_providers;\nclass ProviderFactory {\n    constructor() {\n        _ProviderFactory_providers.set(this, new Map());\n    }\n    register(name, providerFactoryMethod) {\n        providerFactory_classPrivateFieldGet(this, _ProviderFactory_providers, \"f\").set(name, providerFactoryMethod);\n    }\n    create(name, params, logger) {\n        if (!providerFactory_classPrivateFieldGet(this, _ProviderFactory_providers, \"f\").has(name))\n            throw new Error(`Provider unsupported: ${name}`);\n        return providerFactory_classPrivateFieldGet(this, _ProviderFactory_providers, \"f\").get(name)(params, logger);\n    }\n    getProviders() {\n        return [...providerFactory_classPrivateFieldGet(this, _ProviderFactory_providers, \"f\").keys()];\n    }\n}\n_ProviderFactory_providers = new WeakMap();\n//# sourceMappingURL=providerFactory.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/HandleProvider/types.js\nconst handleProviderPaths = {\n    getPolicyIds: '/policyIds',\n    healthCheck: '/health',\n    resolveHandles: '/resolve'\n};\n//# sourceMappingURL=types.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/HandleProvider/index.js\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/Provider/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/misc/index.js\n\n//# sourceMappingURL=index.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/groupBy.js\nvar groupBy = __webpack_require__(\"./node_modules/lodash/groupBy.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/last.js\nvar last = __webpack_require__(\"./node_modules/lodash/last.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/memoize.js\nvar memoize = __webpack_require__(\"./node_modules/lodash/memoize.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/orderBy.js\nvar orderBy = __webpack_require__(\"./node_modules/lodash/orderBy.js\");\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/slotCalc.js\n\n\n\n\n\n\nclass EraSummaryError extends CustomError {\n}\nconst createSlotEpochCalcImpl = (eraSummaries) => {\n    const eraSummariesWithoutSkippedEras = Object.values(groupBy(eraSummaries, 'start.slot')).map(last);\n    const eraSummariesAsc = orderBy(eraSummariesWithoutSkippedEras, ({ start }) => start.slot);\n    return (slotNo) => {\n        const relevantEraSummariesAsc = orderBy(eraSummariesAsc.filter(({ start }) => start.slot <= slotNo), ({ start }) => start.slot);\n        if (relevantEraSummariesAsc.length === 0) {\n            throw new EraSummaryError(`No EraSummary for slot ${slotNo} found`);\n        }\n        let epochNo = 0;\n        let currentEraSummary;\n        for (let i = 0; i < relevantEraSummariesAsc.length; i++) {\n            currentEraSummary = relevantEraSummariesAsc[i];\n            const nextEraSummary = relevantEraSummariesAsc[i + 1];\n            epochNo += Math.floor(((nextEraSummary?.start.slot || slotNo) - currentEraSummary.start.slot) /\n                currentEraSummary.parameters.epochLength);\n        }\n        return { epochEraSummary: currentEraSummary, epochNo };\n    };\n};\nconst createSlotEpochCalc = memoize((eraSummaries) => {\n    const calc = createSlotEpochCalcImpl(eraSummaries);\n    return (slotNo) => EpochNo(calc(slotNo).epochNo);\n});\nconst createSlotTimeCalc = (eraSummaries) => {\n    const eraSummariesWithoutSkippedEras = Object.values(groupBy(eraSummaries, 'start.slot')).map(last);\n    const eraSummariesDesc = orderBy(eraSummariesWithoutSkippedEras, ({ start }) => start.slot, 'desc');\n    return (slotNo) => {\n        const activeEraSummary = eraSummariesDesc.find(({ start }) => start.slot <= slotNo);\n        if (!activeEraSummary) {\n            throw new EraSummaryError(`No EraSummary for slot ${slotNo} found`);\n        }\n        return new Date(activeEraSummary.start.time.getTime() +\n            (slotNo - activeEraSummary.start.slot) * activeEraSummary.parameters.slotLength);\n    };\n};\nconst createSlotEpochInfoCalc = (eraSummaries) => {\n    const slotTimeCalc = createSlotTimeCalc(eraSummaries);\n    const epochCalc = createSlotEpochCalcImpl(eraSummaries);\n    return (slot) => {\n        const { epochNo, epochEraSummary } = epochCalc(slot);\n        const firstSlot = epochEraSummary.start.slot +\n            Math.floor((slot - epochEraSummary.start.slot) / epochEraSummary.parameters.epochLength) *\n                epochEraSummary.parameters.epochLength;\n        const lastSlot = firstSlot + epochEraSummary.parameters.epochLength - 1;\n        return {\n            epochNo: EpochNo(epochNo),\n            firstSlot: {\n                date: slotTimeCalc(Slot(firstSlot)),\n                slot: Slot(firstSlot)\n            },\n            lastSlot: {\n                date: slotTimeCalc(Slot(lastSlot)),\n                slot: Slot(lastSlot)\n            }\n        };\n    };\n};\nconst epochSlotsCalcImplementation = (epochNo, eraSummaries) => {\n    let atEpoch = 0;\n    let atSlot = eraSummaries[0].start.slot;\n    let eraSummaryIdx = 0;\n    const maxEraSummaryIdx = eraSummaries.length - 1;\n    const checkNextEraSummary = () => eraSummaryIdx < maxEraSummaryIdx && atSlot >= eraSummaries[eraSummaryIdx + 1].start.slot;\n    const findNextEraSummary = () => {\n        while (checkNextEraSummary())\n            eraSummaryIdx++;\n    };\n    findNextEraSummary();\n    while (atEpoch !== epochNo) {\n        atSlot += eraSummaries[eraSummaryIdx].parameters.epochLength;\n        atEpoch++;\n        if (checkNextEraSummary())\n            findNextEraSummary();\n    }\n    const eraSummary = eraSummaries[eraSummaryIdx];\n    return {\n        eraSummary,\n        firstSlot: Slot(atSlot),\n        lastSlot: Slot(atSlot + eraSummary.parameters.epochLength - 1)\n    };\n};\nconst epochSlotsCalc = memoize(epochSlotsCalcImplementation);\nconst epochSlotsCalcFactory = memoize((provider) => memoize(async (epochNo) => epochSlotsCalcImplementation(epochNo, await provider.eraSummaries())));\n//# sourceMappingURL=slotCalc.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/coalesceValueQuantities.js\n\n\nconst coalesceValueQuantities = (quantities) => ({\n    assets: coalesceTokenMaps(quantities.map(({ assets }) => assets)),\n    coins: BigIntMath.sum(quantities.map(({ coins }) => coins))\n});\n//# sourceMappingURL=coalesceValueQuantities.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/nativeScript.js\n\n\n\n\n\n\nconst nativeScriptPolicyId = (script) => PolicyId(NativeScript.fromCore(script).hash());\nconst jsonToNativeScript = (json) => {\n    let coreScript;\n    if (!json.type) {\n        throw new SerializationError(SerializationFailure.InvalidScript, \"Invalid Native Script. Missing 'type' field.\");\n    }\n    switch (json.type) {\n        case 'sig': {\n            coreScript = {\n                __type: ScriptType.Native,\n                keyHash: Ed25519KeyHashHex(json.keyHash),\n                kind: NativeScriptKind.RequireSignature\n            };\n            break;\n        }\n        case 'all': {\n            coreScript = {\n                __type: ScriptType.Native,\n                kind: NativeScriptKind.RequireAllOf,\n                scripts: new Array()\n            };\n            for (let i = 0; i < json.scripts.length; ++i) {\n                coreScript.scripts.push(jsonToNativeScript(json.scripts[i]));\n            }\n            break;\n        }\n        case 'any': {\n            coreScript = {\n                __type: ScriptType.Native,\n                kind: NativeScriptKind.RequireAnyOf,\n                scripts: new Array()\n            };\n            for (let i = 0; i < json.scripts.length; ++i) {\n                coreScript.scripts.push(jsonToNativeScript(json.scripts[i]));\n            }\n            break;\n        }\n        case 'atLeast': {\n            const required = Number.parseInt(json.required);\n            coreScript = {\n                __type: ScriptType.Native,\n                kind: NativeScriptKind.RequireNOf,\n                required,\n                scripts: new Array()\n            };\n            for (let i = 0; i < json.scripts.length; ++i) {\n                coreScript.scripts.push(jsonToNativeScript(json.scripts[i]));\n            }\n            break;\n        }\n        case 'before': {\n            coreScript = {\n                __type: ScriptType.Native,\n                kind: NativeScriptKind.RequireTimeBefore,\n                slot: Slot(Number.parseInt(json.slot))\n            };\n            break;\n        }\n        case 'after': {\n            coreScript = {\n                __type: ScriptType.Native,\n                kind: NativeScriptKind.RequireTimeAfter,\n                slot: Slot(Number.parseInt(json.slot))\n            };\n            break;\n        }\n        default: {\n            throw new SerializationError(SerializationFailure.InvalidNativeScriptKind, `Native Script value '${json.type}' is not supported.`);\n        }\n    }\n    return coreScript;\n};\n//# sourceMappingURL=nativeScript.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/subtractValueQuantities.js\n\n\nconst subtractValueQuantities = (quantities) => ({\n    assets: subtractTokenMaps(quantities.map(({ assets }) => assets)),\n    coins: BigIntMath.subtract(quantities.map(({ coins }) => coins))\n});\n//# sourceMappingURL=subtractValueQuantities.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/txInspector.js\n\n\n\n\n\n\n\nconst resolveInputs = async (txIns, inputResolver) => {\n    const resolvedInputs = [];\n    const unresolvedInputs = [];\n    for (const input of txIns) {\n        const resolvedInput = await inputResolver.resolveInput(input);\n        if (resolvedInput) {\n            resolvedInputs.push({\n                address: resolvedInput.address,\n                index: input.index,\n                txId: input.txId,\n                value: resolvedInput.value\n            });\n        }\n        else {\n            unresolvedInputs.push(input);\n        }\n    }\n    return {\n        resolvedInputs,\n        unresolvedInputs\n    };\n};\nconst totalAddressInputsValueInspector = (ownAddresses, inputResolver) => async (tx) => {\n    const { resolvedInputs } = await resolveInputs(tx.body.inputs, inputResolver);\n    const receivedInputs = resolvedInputs.filter((input) => isAddressWithin(ownAddresses)(input));\n    const receivedInputsValues = receivedInputs.map((input) => input.value);\n    return coalesceValueQuantities(receivedInputsValues);\n};\nconst totalAddressOutputsValueInspector = (ownAddresses) => async (tx) => {\n    const receivedOutputs = tx.body.outputs.filter((out) => isAddressWithin(ownAddresses)(out));\n    return coalesceValueQuantities(receivedOutputs.map((output) => output.value));\n};\nconst getCertificatesByType = (tx, rewardAccounts, certificateTypes) => {\n    if (!tx.body.certificates || tx.body.certificates.length === 0)\n        return [];\n    const certificates = certificateTypes\n        ? tx.body.certificates?.filter((certificate) => isCertType(certificate, certificateTypes))\n        : tx.body.certificates;\n    return certificates.filter((certificate) => {\n        if (isCertType(certificate, StakeCredentialCertificateTypes)) {\n            return rewardAccounts.some((account) => RewardAccount.toHash(account) === certificate.stakeCredential.hash);\n        }\n        if (isCertType(certificate, [CertificateType.PoolRegistration]))\n            return rewardAccounts.includes(certificate.poolParameters.rewardAccount);\n        return false;\n    });\n};\nconst signedCertificatesInspector = (rewardAccounts, certificateTypes) => async (tx) => getCertificatesByType(tx, rewardAccounts, certificateTypes);\nconst sentInspector = ({ addresses, rewardAccounts, inputResolver }) => async (tx) => {\n    const certificates = rewardAccounts?.length ? await signedCertificatesInspector(rewardAccounts)(tx) : [];\n    let inputs = [];\n    if (addresses) {\n        const { resolvedInputs } = await resolveInputs(tx.body.inputs, inputResolver);\n        const sentInputs = resolvedInputs.filter((input) => isAddressWithin(addresses)(input));\n        inputs = sentInputs.map((input) => ({ address: input.address, index: input.index, txId: input.txId }));\n    }\n    return {\n        certificates,\n        inputs\n    };\n};\nconst valueSentInspector = (ownAddresses, inputResolver) => async (tx) => {\n    let assets = new Map();\n    if ((await sentInspector({ addresses: ownAddresses, inputResolver })(tx)).inputs.length === 0)\n        return { coins: 0n };\n    const totalOutputValue = await totalAddressOutputsValueInspector(ownAddresses)(tx);\n    const totalInputValue = await totalAddressInputsValueInspector(ownAddresses, inputResolver)(tx);\n    const diff = subtractValueQuantities([totalInputValue, totalOutputValue]);\n    if (diff.assets)\n        assets = removeNegativesFromTokenMap(diff.assets);\n    return {\n        assets: assets.size > 0 ? assets : undefined,\n        coins: diff.coins < 0n ? 0n : diff.coins\n    };\n};\nconst valueReceivedInspector = (ownAddresses, inputResolver) => async (tx) => {\n    let assets = new Map();\n    const totalOutputValue = await totalAddressOutputsValueInspector(ownAddresses)(tx);\n    const totalInputValue = await totalAddressInputsValueInspector(ownAddresses, inputResolver)(tx);\n    const diff = subtractValueQuantities([totalOutputValue, totalInputValue]);\n    if (diff.assets)\n        assets = removeNegativesFromTokenMap(diff.assets);\n    return {\n        assets: assets.size > 0 ? assets : undefined,\n        coins: diff.coins < 0n ? 0n : diff.coins\n    };\n};\nconst certificateInspector = (type) => async (tx) => tx.body.certificates?.filter((cert) => cert.__typename === type) ?? [];\nconst delegationInspector = certificateInspector(CertificateType.StakeDelegation);\nconst stakeKeyDeregistrationInspector = certificateInspector(CertificateType.StakeDeregistration);\nconst stakeKeyRegistrationInspector = certificateInspector(CertificateType.StakeRegistration);\nconst poolRegistrationInspector = certificateInspector(CertificateType.PoolRegistration);\nconst poolRetirementInspector = certificateInspector(CertificateType.PoolRetirement);\nconst withdrawalInspector = async (tx) => tx.body.withdrawals?.length ? BigIntMath.sum(tx.body.withdrawals.map(({ quantity }) => quantity)) : 0n;\nconst mintInspector = (matchQuantityCriteria) => async (tx) => {\n    const assets = [];\n    const scriptMap = new Map();\n    if (!tx.body.mint)\n        return assets;\n    const scripts = [...(tx.auxiliaryData?.scripts || []), ...(tx.witness?.scripts || [])];\n    for (const script of scripts) {\n        switch (script.__type) {\n            case ScriptType.Native: {\n                const policyId = nativeScriptPolicyId(script);\n                if (scriptMap.has(policyId))\n                    continue;\n                scriptMap.set(policyId, script);\n                break;\n            }\n            case ScriptType.Plutus:\n            default:\n        }\n    }\n    for (const [key, value] of tx.body.mint.entries()) {\n        const [policyId, assetName] = [AssetId.getPolicyId(key), AssetId.getAssetName(key)];\n        const mintedAsset = {\n            assetName,\n            fingerprint: AssetFingerprint.fromParts(policyId, assetName),\n            policyId,\n            quantity: value,\n            script: scriptMap.get(policyId)\n        };\n        if (matchQuantityCriteria(mintedAsset.quantity))\n            assets.push(mintedAsset);\n    }\n    return assets;\n};\nconst assetsMintedInspector = mintInspector((quantity) => quantity > 0);\nconst assetsBurnedInspector = mintInspector((quantity) => quantity < 0);\nconst metadataInspector = async (tx) => tx.auxiliaryData?.blob ?? new Map();\nconst createTxInspector = (inspectors) => async (tx) => {\n    const results = await Promise.all(Object.entries(inspectors).map(async ([key, inspector]) => {\n        const result = await inspector(tx);\n        return { key, result };\n    }));\n    return results.reduce((acc, { key, result }) => {\n        acc[key] = result;\n        return acc;\n    }, {});\n};\n//# sourceMappingURL=txInspector.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/promiseTimeout.js\n\nconst promiseTimeout = (promise, timeout) => {\n    let timeoutId;\n    return Promise.race([\n        promise,\n        new Promise((_, reject) => (timeoutId = setTimeout(() => reject(new TimeoutError('Failed to resolve the promise in time')), timeout)))\n    ]).finally(() => {\n        if (timeoutId)\n            clearTimeout(timeoutId);\n    });\n};\n//# sourceMappingURL=promiseTimeout.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/tryGetAssetInfos.js\n\n\nconst tryGetAssetInfos = async ({ assetIds, assetProvider, logger, timeout }) => {\n    try {\n        return await promiseTimeout(assetProvider.getAssets({\n            assetIds,\n            extraData: { nftMetadata: true, tokenMetadata: true }\n        }), timeout);\n    }\n    catch (error) {\n        logger.error('Error: Failed to retrieve assets', error);\n        return assetIds.map((assetId) => {\n            const policyId = AssetId.getPolicyId(assetId);\n            const name = AssetId.getAssetName(assetId);\n            return {\n                assetId,\n                fingerprint: AssetFingerprint.fromParts(policyId, name),\n                name,\n                policyId,\n                quantity: 0n,\n                supply: 0n\n            };\n        });\n    }\n};\n//# sourceMappingURL=tryGetAssetInfos.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/tokenTransferInspector.js\n\n\n\n\n\n\n\nconst coalesceByAddress = (elements) => {\n    const grouped = elements.reduce((acc, elem) => {\n        if (!acc.has(elem.address))\n            acc.set(elem.address, []);\n        acc.get(elem.address)?.push(elem);\n        return acc;\n    }, new Map());\n    const coalescedByAddress = new Map();\n    for (const [address, elem] of grouped) {\n        coalescedByAddress.set(address, coalesceValueQuantities(elem.map((x) => x.value)));\n    }\n    return coalescedByAddress;\n};\nconst initializeAddressMap = (addresses) => new Map(addresses.map((address) => [address, { assets: new Map(), coins: 0n }]));\nconst updateFromAddressMap = (addressMap, key, value) => {\n    if (value.coins < 0n) {\n        addressMap.get(key).coins = value.coins;\n    }\n    for (const [assetId, quantity] of value.assets?.entries() ?? [])\n        if (quantity < 0n) {\n            addressMap.get(key).assets?.set(assetId, quantity);\n        }\n};\nconst updateToAddressMap = (addressMap, key, value) => {\n    if (value.coins > 0n) {\n        addressMap.get(key).coins = value.coins;\n    }\n    for (const [assetId, quantity] of value.assets?.entries() ?? []) {\n        if (quantity > 0n) {\n            addressMap.get(key).assets?.set(assetId, quantity);\n        }\n    }\n};\nconst computeNetDifferences = (inputs, outputs, fromAddress, toAddress) => {\n    for (const [key, inputValue] of inputs.entries()) {\n        const outputValue = outputs.get(key) ?? { assets: new Map(), coins: 0n };\n        const difference = subtractValueQuantities([outputValue, inputValue]);\n        updateFromAddressMap(fromAddress, key, difference);\n        updateToAddressMap(toAddress, key, difference);\n    }\n    for (const [key, outputValue] of outputs.entries()) {\n        if (!inputs.has(key)) {\n            updateToAddressMap(toAddress, key, outputValue);\n        }\n    }\n};\nconst removeZeroBalanceEntries = (addressMap) => {\n    for (const [key, value] of addressMap.entries()) {\n        if (value.coins === 0n && value.assets?.size === 0) {\n            addressMap.delete(key);\n        }\n    }\n};\nconst intoTokenTransferValue = async ({ logger, assetProvider, timeout, addressMap }) => {\n    const tokenTransferValue = new Map();\n    for (const [address, value] of addressMap.entries()) {\n        const coins = value.coins;\n        const assetIds = uniq(value.assets && value.assets.size > 0 ? [...value.assets.keys()] : []);\n        const assetInfos = new Map();\n        if (assetIds.length > 0) {\n            const assets = await tryGetAssetInfos({\n                assetIds,\n                assetProvider,\n                logger,\n                timeout\n            });\n            for (const asset of assets) {\n                const amount = value.assets?.get(asset.assetId) ?? 0n;\n                assetInfos.set(asset.assetId, { amount, assetInfo: asset });\n            }\n        }\n        tokenTransferValue.set(address, {\n            assets: assetInfos,\n            coins\n        });\n    }\n    return tokenTransferValue;\n};\nconst tokenTransferInspector = ({ inputResolver, fromAddressAssetProvider, toAddressAssetProvider, timeout, logger }) => async (tx) => {\n    let resolvedInputs;\n    try {\n        const inputResolution = await promiseTimeout(resolveInputs(tx.body.inputs, inputResolver), timeout);\n        resolvedInputs = inputResolution.resolvedInputs;\n    }\n    catch (error) {\n        if (error instanceof TimeoutError) {\n            logger.error('Error: Inputs resolution timed out');\n        }\n        resolvedInputs = [];\n    }\n    const coalescedInputsByAddress = coalesceByAddress(resolvedInputs);\n    const coalescedOutputsByAddress = coalesceByAddress(tx.body.outputs);\n    const addresses = uniq([...coalescedInputsByAddress.keys(), ...coalescedOutputsByAddress.keys()]);\n    const fromAddress = initializeAddressMap(addresses);\n    const toAddress = initializeAddressMap(addresses);\n    computeNetDifferences(coalescedInputsByAddress, coalescedOutputsByAddress, fromAddress, toAddress);\n    removeZeroBalanceEntries(fromAddress);\n    removeZeroBalanceEntries(toAddress);\n    return {\n        fromAddress: await intoTokenTransferValue({\n            addressMap: fromAddress,\n            assetProvider: fromAddressAssetProvider,\n            logger,\n            timeout\n        }),\n        toAddress: await intoTokenTransferValue({\n            addressMap: toAddress,\n            assetProvider: toAddressAssetProvider,\n            logger,\n            timeout\n        })\n    };\n};\n//# sourceMappingURL=tokenTransferInspector.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/transactionSummaryInspector.js\n\n\n\n\n\n\n\n\n\n\nconst getCollateral = async (tx, inputResolver, addresses) => {\n    if (!tx.body.collaterals || tx.body.collaterals.length === 0)\n        return 0n;\n    const resolvedCollateralInputs = (await resolveInputs(tx.body.collaterals, inputResolver)).resolvedInputs.filter((input) => addresses.includes(input.address));\n    const totalOwnedValueAtRisk = BigIntMath.sum(resolvedCollateralInputs.map(({ value }) => value.coins));\n    if (tx.body.collateralReturn) {\n        if (!addresses.includes(tx.body.collateralReturn.address))\n            return totalOwnedValueAtRisk;\n        return BigIntMath.max([totalOwnedValueAtRisk - tx.body.collateralReturn.value.coins, 0n]) ?? 0n;\n    }\n    return totalOwnedValueAtRisk;\n};\nconst totalInputsValue = (resolvedInputs) => {\n    const receivedInputsValues = resolvedInputs.resolvedInputs.map((input) => input.value);\n    return coalesceValueQuantities(receivedInputsValues);\n};\nconst totalOutputsValue = (outputs) => coalesceValueQuantities(outputs.map((output) => output.value));\nconst mintInspectionToTokenMap = (mintedAssets) => new Map(mintedAssets.map((asset) => [AssetId.fromParts(asset.policyId, asset.assetName), asset.quantity]));\nconst getImplicitAssets = async (tx) => {\n    const mintedAssets = mintInspectionToTokenMap(await assetsMintedInspector(tx));\n    const burnedAssets = mintInspectionToTokenMap(await assetsBurnedInspector(tx));\n    return coalesceTokenMaps([mintedAssets, burnedAssets]);\n};\nconst getUnaccountedFunds = async (tx, resolvedInputs, implicitCoin, fee, implicitAssets = new Map()) => {\n    const totalInputs = totalInputsValue(resolvedInputs);\n    const totalOutputs = totalOutputsValue(tx.body.outputs);\n    totalInputs.assets = coalesceTokenMaps([totalInputs.assets, implicitAssets]);\n    totalInputs.coins += implicitCoin;\n    totalOutputs.coins += fee;\n    return subtractValueQuantities([totalOutputs, totalInputs]);\n};\nconst intoAssetInfoWithAmount = async ({ assetProvider, logger, timeout, tokenMap }) => {\n    if (!tokenMap)\n        return new Map();\n    const assetIds = tokenMap && tokenMap.size > 0 ? [...tokenMap.keys()] : [];\n    const assetInfos = new Map();\n    if (assetIds.length > 0) {\n        const assets = await tryGetAssetInfos({\n            assetIds,\n            assetProvider,\n            logger,\n            timeout\n        });\n        for (const asset of assets) {\n            const amount = tokenMap?.get(asset.assetId) ?? 0n;\n            assetInfos.set(asset.assetId, { amount, assetInfo: asset });\n        }\n    }\n    return assetInfos;\n};\nconst transactionSummaryInspector = ({ inputResolver, addresses, rewardAccounts, protocolParameters, assetProvider, dRepKeyHash, timeout, logger }) => async (tx) => {\n    let resolvedInputs;\n    try {\n        resolvedInputs = await promiseTimeout(resolveInputs(tx.body.inputs, inputResolver), timeout);\n    }\n    catch (error) {\n        if (error instanceof TimeoutError) {\n            logger.error('Error: Inputs resolution timed out');\n        }\n        resolvedInputs = {\n            resolvedInputs: [],\n            unresolvedInputs: tx.body.inputs\n        };\n    }\n    const fee = tx.body.fee;\n    const implicit = computeImplicitCoin(protocolParameters, { certificates: tx.body.certificates, withdrawals: tx.body.withdrawals }, rewardAccounts || [], dRepKeyHash);\n    const collateral = await getCollateral(tx, inputResolver, addresses);\n    const withdrawals = implicit.withdrawals || 0n;\n    const totalOutputValue = await totalAddressOutputsValueInspector(addresses)(tx);\n    const totalInputValue = await totalAddressInputsValueInspector(addresses, inputResolver)(tx);\n    const implicitCoin = withdrawals + (implicit.reclaimDeposit || 0n) - (implicit.deposit || 0n);\n    const implicitAssets = await getImplicitAssets(tx);\n    const diff = {\n        assets: subtractTokenMaps([totalOutputValue.assets, totalInputValue.assets]),\n        coins: totalOutputValue.coins - (totalInputValue.coins + withdrawals)\n    };\n    return {\n        assets: await intoAssetInfoWithAmount({\n            assetProvider,\n            logger,\n            timeout,\n            tokenMap: diff.assets\n        }),\n        coins: diff.coins,\n        collateral,\n        deposit: implicit.deposit || 0n,\n        fee,\n        returnedDeposit: implicit.reclaimDeposit || 0n,\n        unresolved: {\n            inputs: resolvedInputs.unresolvedInputs,\n            value: await getUnaccountedFunds(tx, resolvedInputs, implicitCoin, fee, implicitAssets)\n        }\n    };\n};\n//# sourceMappingURL=transactionSummaryInspector.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/utxo.js\nconst createUtxoId = (txHash, index) => `${txHash}:${index}`;\n//# sourceMappingURL=utxo.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/calcStabilityWindow.js\nconst calculateStabilityWindowSlotsCount = ({ securityParameter, activeSlotsCoefficient }) => (3 * securityParameter) / activeSlotsCoefficient;\n//# sourceMappingURL=calcStabilityWindow.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/time.js\nconst Milliseconds = (value) => value;\nconst Seconds = (value) => value;\nconst Minutes = (value) => value;\nconst Hours = (value) => value;\nconst Days = (value) => value;\nHours.toDays = (value) => (value / 24);\nDays.toHours = (value) => (value * 24);\nMinutes.toHours = (value) => (value / 60);\nHours.toMinutes = (value) => (value * 60);\nSeconds.toMinutes = (value) => (value / 60);\nMinutes.toSeconds = (value) => (value * 60);\nSeconds.toMilliseconds = (value) => (value * 1000);\nMilliseconds.toSeconds = (value) => (value / 1000);\nclass TimeSpan {\n    constructor(elapsed) {\n        this.elapsed = Milliseconds(0);\n        this.elapsed = elapsed;\n    }\n    static fromMilliseconds(milliseconds) {\n        return new TimeSpan(milliseconds);\n    }\n    static fromSeconds(seconds) {\n        return new TimeSpan(Seconds.toMilliseconds(seconds));\n    }\n    static fromMinutes(minutes) {\n        return new TimeSpan(Seconds.toMilliseconds(Minutes.toSeconds(minutes)));\n    }\n    static fromHours(hours) {\n        return new TimeSpan(Seconds.toMilliseconds(Minutes.toSeconds(Hours.toMinutes(hours))));\n    }\n    getTotalDays() {\n        return Hours.toDays(this.getTotalHours());\n    }\n    getTotalHours() {\n        return Minutes.toHours(this.getTotalMinutes());\n    }\n    getTotalMinutes() {\n        return Seconds.toMinutes(this.getTotalSeconds());\n    }\n    getTotalSeconds() {\n        return Milliseconds.toSeconds(this.elapsed);\n    }\n    getTotalMilliseconds() {\n        return this.elapsed;\n    }\n    getDays() {\n        return Days(Math.floor(this.getTotalDays()));\n    }\n    getHours() {\n        return Hours(Math.floor(this.getTotalHours() - this.getDays() * 24));\n    }\n    getMinutes() {\n        return Minutes(Math.floor(this.getTotalMinutes() - Math.floor(this.getTotalHours()) * 60));\n    }\n    getSeconds() {\n        return Seconds(Math.floor(this.getTotalSeconds() - Math.floor(this.getTotalMinutes()) * 60));\n    }\n    getMilliseconds() {\n        return Milliseconds(this.elapsed - Math.floor(this.getTotalSeconds()) * 1000);\n    }\n    toString() {\n        let result = this.getTotalSeconds() < 0 ? '-P' : 'P';\n        let time = '';\n        if (this.getHours() !== 0)\n            time += `${Math.abs(this.getHours()).toString()}H`;\n        if (this.getMinutes() !== 0)\n            time += `${Math.abs(this.getMinutes()).toString()}M`;\n        if (this.getSeconds() !== 0)\n            time += `${Math.abs(this.getSeconds()).toString()}S`;\n        if (this.getDays() !== 0 || time === '')\n            result += `${Math.abs(this.getDays()).toString()}D`;\n        if (time !== '')\n            result += `T${time}`;\n        return result;\n    }\n}\n//# sourceMappingURL=time.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/util/index.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/const.js\nconst MULTISIG_CIP_ID = 1854;\nconst HD_WALLET_CIP_ID = 1852;\n//# sourceMappingURL=const.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/types/CardanoNodeErrors.js\n\nvar GeneralCardanoNodeErrorCode;\n(function (GeneralCardanoNodeErrorCode) {\n    GeneralCardanoNodeErrorCode[GeneralCardanoNodeErrorCode[\"ServerNotReady\"] = 503] = \"ServerNotReady\";\n    GeneralCardanoNodeErrorCode[GeneralCardanoNodeErrorCode[\"Unknown\"] = 500] = \"Unknown\";\n    GeneralCardanoNodeErrorCode[GeneralCardanoNodeErrorCode[\"ConnectionFailure\"] = -1] = \"ConnectionFailure\";\n})(GeneralCardanoNodeErrorCode || (GeneralCardanoNodeErrorCode = {}));\nvar ChainSyncErrorCode;\n(function (ChainSyncErrorCode) {\n    ChainSyncErrorCode[ChainSyncErrorCode[\"IntersectionNotFound\"] = 1000] = \"IntersectionNotFound\";\n    ChainSyncErrorCode[ChainSyncErrorCode[\"IntersectionInterleaved\"] = 1001] = \"IntersectionInterleaved\";\n})(ChainSyncErrorCode || (ChainSyncErrorCode = {}));\nvar StateQueryErrorCode;\n(function (StateQueryErrorCode) {\n    StateQueryErrorCode[StateQueryErrorCode[\"AcquireLedgerStateFailure\"] = 2000] = \"AcquireLedgerStateFailure\";\n    StateQueryErrorCode[StateQueryErrorCode[\"EraMismatch\"] = 2001] = \"EraMismatch\";\n    StateQueryErrorCode[StateQueryErrorCode[\"UnavailableInCurrentEra\"] = 2002] = \"UnavailableInCurrentEra\";\n    StateQueryErrorCode[StateQueryErrorCode[\"AcquiredExpired\"] = 2003] = \"AcquiredExpired\";\n    StateQueryErrorCode[StateQueryErrorCode[\"InvalidGenesis\"] = 2004] = \"InvalidGenesis\";\n})(StateQueryErrorCode || (StateQueryErrorCode = {}));\nvar TxSubmissionErrorCode;\n(function (TxSubmissionErrorCode) {\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"EraMismatch\"] = 3005] = \"EraMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidSignatories\"] = 3100] = \"InvalidSignatories\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingSignatories\"] = 3101] = \"MissingSignatories\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingScripts\"] = 3102] = \"MissingScripts\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"FailingNativeScript\"] = 3103] = \"FailingNativeScript\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ExtraneousScripts\"] = 3104] = \"ExtraneousScripts\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingMetadataHash\"] = 3105] = \"MissingMetadataHash\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingMetadata\"] = 3106] = \"MissingMetadata\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MetadataHashMismatch\"] = 3107] = \"MetadataHashMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidMetadata\"] = 3108] = \"InvalidMetadata\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingRedeemers\"] = 3109] = \"MissingRedeemers\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ExtraneousRedeemers\"] = 3110] = \"ExtraneousRedeemers\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingDatums\"] = 3111] = \"MissingDatums\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ExtraneousDatums\"] = 3112] = \"ExtraneousDatums\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ScriptIntegrityHashMismatch\"] = 3113] = \"ScriptIntegrityHashMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"OrphanScriptInputs\"] = 3114] = \"OrphanScriptInputs\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingCostModels\"] = 3115] = \"MissingCostModels\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MalformedScripts\"] = 3116] = \"MalformedScripts\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownOutputReferences\"] = 3117] = \"UnknownOutputReferences\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"OutsideOfValidityInterval\"] = 3118] = \"OutsideOfValidityInterval\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"TransactionTooLarge\"] = 3119] = \"TransactionTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ValueTooLarge\"] = 3120] = \"ValueTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"EmptyInputSet\"] = 3121] = \"EmptyInputSet\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"TransactionFeeTooSmall\"] = 3122] = \"TransactionFeeTooSmall\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ValueNotConserved\"] = 3123] = \"ValueNotConserved\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"NetworkMismatch\"] = 3124] = \"NetworkMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InsufficientlyFundedOutputs\"] = 3125] = \"InsufficientlyFundedOutputs\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"BootstrapAttributesTooLarge\"] = 3126] = \"BootstrapAttributesTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MintingOrBurningAda\"] = 3127] = \"MintingOrBurningAda\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InsufficientCollateral\"] = 3128] = \"InsufficientCollateral\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"CollateralLockedByScript\"] = 3129] = \"CollateralLockedByScript\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnforeseeableSlot\"] = 3130] = \"UnforeseeableSlot\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"TooManyCollateralInputs\"] = 3131] = \"TooManyCollateralInputs\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MissingCollateralInputs\"] = 3132] = \"MissingCollateralInputs\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"NonAdaCollateral\"] = 3133] = \"NonAdaCollateral\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ExecutionUnitsTooLarge\"] = 3134] = \"ExecutionUnitsTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"TotalCollateralMismatch\"] = 3135] = \"TotalCollateralMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"SpendsMismatch\"] = 3136] = \"SpendsMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnauthorizedVote\"] = 3137] = \"UnauthorizedVote\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownGovernanceProposal\"] = 3138] = \"UnknownGovernanceProposal\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidProtocolParametersUpdate\"] = 3139] = \"InvalidProtocolParametersUpdate\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownStakePool\"] = 3140] = \"UnknownStakePool\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"IncompleteWithdrawals\"] = 3141] = \"IncompleteWithdrawals\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"RetirementTooLate\"] = 3142] = \"RetirementTooLate\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"StakePoolCostTooLow\"] = 3143] = \"StakePoolCostTooLow\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"MetadataHashTooLarge\"] = 3144] = \"MetadataHashTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"CredentialAlreadyRegistered\"] = 3145] = \"CredentialAlreadyRegistered\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownCredential\"] = 3146] = \"UnknownCredential\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"NonEmptyRewardAccount\"] = 3147] = \"NonEmptyRewardAccount\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidGenesisDelegation\"] = 3148] = \"InvalidGenesisDelegation\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidMIRTransfer\"] = 3149] = \"InvalidMIRTransfer\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ForbiddenWithdrawal\"] = 3150] = \"ForbiddenWithdrawal\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"CredentialDepositMismatch\"] = 3151] = \"CredentialDepositMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"DRepAlreadyRegistered\"] = 3152] = \"DRepAlreadyRegistered\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"DRepNotRegistered\"] = 3153] = \"DRepNotRegistered\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownConstitutionalCommitteeMember\"] = 3154] = \"UnknownConstitutionalCommitteeMember\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"GovernanceProposalDepositMismatch\"] = 3155] = \"GovernanceProposalDepositMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ConflictingCommitteeUpdate\"] = 3156] = \"ConflictingCommitteeUpdate\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidCommitteeUpdate\"] = 3157] = \"InvalidCommitteeUpdate\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"TreasuryWithdrawalMismatch\"] = 3158] = \"TreasuryWithdrawalMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidOrMissingPreviousProposal\"] = 3159] = \"InvalidOrMissingPreviousProposal\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"VotingOnExpiredActions\"] = 3160] = \"VotingOnExpiredActions\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ExecutionBudgetOutOfBounds\"] = 3161] = \"ExecutionBudgetOutOfBounds\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"InvalidHardForkVersionBump\"] = 3162] = \"InvalidHardForkVersionBump\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ConstitutionGuardrailsHashMismatch\"] = 3163] = \"ConstitutionGuardrailsHashMismatch\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ConflictingInputsAndReferences\"] = 3164] = \"ConflictingInputsAndReferences\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnauthorizedGovernanceAction\"] = 3165] = \"UnauthorizedGovernanceAction\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"ReferenceScriptsTooLarge\"] = 3166] = \"ReferenceScriptsTooLarge\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnknownVoters\"] = 3167] = \"UnknownVoters\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"EmptyTreasuryWithdrawal\"] = 3168] = \"EmptyTreasuryWithdrawal\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnexpectedMempoolError\"] = 3997] = \"UnexpectedMempoolError\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"UnrecognizedCertificateType\"] = 3998] = \"UnrecognizedCertificateType\";\n    TxSubmissionErrorCode[TxSubmissionErrorCode[\"DeserialisationFailure\"] = -32602] = \"DeserialisationFailure\";\n})(TxSubmissionErrorCode || (TxSubmissionErrorCode = {}));\nclass CardanoNodeError extends CustomError {\n    constructor(code, data, message) {\n        super(message);\n        this.code = code;\n        this.data = data;\n    }\n}\nclass GeneralCardanoNodeError extends CardanoNodeError {\n}\nclass ChainSyncError extends CardanoNodeError {\n}\nclass TxSubmissionError extends CardanoNodeError {\n}\nclass StateQueryError extends CardanoNodeError {\n}\n//# sourceMappingURL=CardanoNodeErrors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/types/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/node_modules/@cardano-sdk/util/dist/esm/environment.js\nvar environment_Environment;\n(function (Environment) {\n    Environment[\"Production\"] = \"production\";\n    Environment[\"Development\"] = \"development\";\n})(environment_Environment || (environment_Environment = {}));\nconst environment_isProductionEnvironment = () => \"development\" === environment_Environment.Production;\nconst environment_getEnvironmentConfiguration = () => environment_isProductionEnvironment() ? environment_Environment.Production : environment_Environment.Development;\nconst isBackgroundProcess = () => typeof window === 'undefined' || window.location.href.includes('_generated_background');\n//# sourceMappingURL=environment.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/util/cardanoNodeErrors.js\n\n\n\nconst asSpecificCardanoNodeError = (ErrorType) => (error) => {\n    if (Array.isArray(error)) {\n        for (const err of error) {\n            if (err instanceof ErrorType) {\n                if (environment_isProductionEnvironment())\n                    errors_stripStackTrace(err);\n                return err;\n            }\n        }\n        return null;\n    }\n    if (error instanceof ErrorType) {\n        if (environment_isProductionEnvironment())\n            errors_stripStackTrace(error);\n        return error;\n    }\n    return null;\n};\nconst asTxSubmissionError = asSpecificCardanoNodeError(TxSubmissionError);\nconst asChainSyncError = asSpecificCardanoNodeError(ChainSyncError);\nconst asStateQueryError = asSpecificCardanoNodeError(StateQueryError);\nconst asGeneralCardanoNodeError = asSpecificCardanoNodeError(GeneralCardanoNodeError);\nconst asCardanoNodeError = (error) => asGeneralCardanoNodeError(error) ||\n    asTxSubmissionError(error) ||\n    asStateQueryError(error) ||\n    asChainSyncError(error) ||\n    new GeneralCardanoNodeError(GeneralCardanoNodeErrorCode.Unknown, error, 'Unknown Cardano node error, see \"data\"');\nconst stateQueryErrorCodes = new Set(Object.values(StateQueryErrorCode));\nconst generalCardanoNodeErrorCodes = new Set(Object.values(GeneralCardanoNodeErrorCode));\nconst txSubmissionErrorCodes = new Set(Object.values(TxSubmissionErrorCode));\nconst chainSyncErrorCodes = new Set(Object.values(ChainSyncErrorCode));\nconst isChainSyncErrorCode = (code) => typeof code === 'number' && chainSyncErrorCodes.has(code);\nconst isTxSubmissionErrorCode = (code) => typeof code === 'number' && txSubmissionErrorCodes.has(code);\nconst isStateQueryErrorCode = (code) => typeof code === 'number' && stateQueryErrorCodes.has(code);\nconst isGeneralCardanoNodeErrorCode = (code) => typeof code === 'number' && generalCardanoNodeErrorCodes.has(code);\nconst asChainSyncErrorCode = (code) => isChainSyncErrorCode(code) ? code : null;\nconst asStateQueryErrorCode = (code) => isStateQueryErrorCode(code) ? code : null;\nconst asGeneralCardanoNodeErrorCode = (code) => isGeneralCardanoNodeErrorCode(code) ? code : null;\nconst asTxSubmissionErrorCode = (code) => isTxSubmissionErrorCode(code) ? code : null;\nconst isProviderError = (error) => error instanceof ProviderError;\nconst isOutsideOfValidityIntervalError = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.OutsideOfValidityInterval;\nconst isValueNotConservedError = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.ValueNotConserved;\nconst isIncompleteWithdrawalsError = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.IncompleteWithdrawals;\nconst isUnknownOutputReferences = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.UnknownOutputReferences;\nconst isCredentialAlreadyRegistered = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.CredentialAlreadyRegistered;\nconst isDrepAlreadyRegistered = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.DRepAlreadyRegistered;\nconst isUnknownCredential = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.UnknownCredential;\nconst isDrepNotRegistered = (error) => error instanceof TxSubmissionError && error.code === TxSubmissionErrorCode.DRepNotRegistered;\n//# sourceMappingURL=cardanoNodeErrors.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/util/stakeDistribution.js\nconst toLiveStake = (stakeDistribution) => [...stakeDistribution.values()].reduce((accumulator, { stake }) => accumulator + stake.pool, BigInt(0));\n//# sourceMappingURL=stakeDistribution.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/util/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/CardanoNode/index.js\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@cardano-sdk/core/dist/esm/index.js\n\n\n\n\n\n\n\n\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@meshsdk/core-cst/dist/index.js\n/* provided dependency */ var core_cst_dist_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar __create = Object.create;\nvar dist_defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __require = /* @__PURE__ */ ((x) => typeof require !== \"undefined\" ? require : typeof Proxy !== \"undefined\" ? new Proxy(x, {\n  get: (a, b) => (typeof require !== \"undefined\" ? require : a)[b]\n}) : x)(function(x) {\n  if (typeof require !== \"undefined\") return require.apply(this, arguments);\n  throw Error('Dynamic require of \"' + x + '\" is not supported');\n});\nvar __commonJS = (cb, mod) => function __require2() {\n  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of __getOwnPropNames(from))\n      if (!__hasOwnProp.call(to, key) && key !== except)\n        dist_defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? dist_defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// ../../node_modules/bignumber.js/bignumber.js\nvar require_bignumber = __commonJS({\n  \"../../node_modules/bignumber.js/bignumber.js\"(exports, module) {\n    \"use strict\";\n    (function(globalObject) {\n      \"use strict\";\n      var BigNumber, isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i, mathceil = Math.ceil, mathfloor = Math.floor, bignumberError = \"[BigNumber Error] \", tooManyDigits = bignumberError + \"Number primitive has more than 15 significant digits: \", BASE = 1e14, LOG_BASE = 14, MAX_SAFE_INTEGER = 9007199254740991, POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13], SQRT_BASE = 1e7, MAX = 1e9;\n      function clone(configObject) {\n        var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {\n          prefix: \"\",\n          groupSize: 3,\n          secondaryGroupSize: 0,\n          groupSeparator: \",\",\n          decimalSeparator: \".\",\n          fractionGroupSize: 0,\n          fractionGroupSeparator: \"\\xA0\",\n          // non-breaking space\n          suffix: \"\"\n        }, ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\", alphabetHasNormalDecimalDigits = true;\n        function BigNumber2(v, b) {\n          var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;\n          if (!(x instanceof BigNumber2)) return new BigNumber2(v, b);\n          if (b == null) {\n            if (v && v._isBigNumber === true) {\n              x.s = v.s;\n              if (!v.c || v.e > MAX_EXP) {\n                x.c = x.e = null;\n              } else if (v.e < MIN_EXP) {\n                x.c = [x.e = 0];\n              } else {\n                x.e = v.e;\n                x.c = v.c.slice();\n              }\n              return;\n            }\n            if ((isNum = typeof v == \"number\") && v * 0 == 0) {\n              x.s = 1 / v < 0 ? (v = -v, -1) : 1;\n              if (v === ~~v) {\n                for (e = 0, i = v; i >= 10; i /= 10, e++) ;\n                if (e > MAX_EXP) {\n                  x.c = x.e = null;\n                } else {\n                  x.e = e;\n                  x.c = [v];\n                }\n                return;\n              }\n              str = String(v);\n            } else {\n              if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\n              x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\n            }\n            if ((e = str.indexOf(\".\")) > -1) str = str.replace(\".\", \"\");\n            if ((i = str.search(/e/i)) > 0) {\n              if (e < 0) e = i;\n              e += +str.slice(i + 1);\n              str = str.substring(0, i);\n            } else if (e < 0) {\n              e = str.length;\n            }\n          } else {\n            intCheck(b, 2, ALPHABET.length, \"Base\");\n            if (b == 10 && alphabetHasNormalDecimalDigits) {\n              x = new BigNumber2(v);\n              return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\n            }\n            str = String(v);\n            if (isNum = typeof v == \"number\") {\n              if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\n              x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\n              if (BigNumber2.DEBUG && str.replace(/^0\\.0*|\\./, \"\").length > 15) {\n                throw Error(tooManyDigits + v);\n              }\n            } else {\n              x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\n            }\n            alphabet = ALPHABET.slice(0, b);\n            e = i = 0;\n            for (len = str.length; i < len; i++) {\n              if (alphabet.indexOf(c = str.charAt(i)) < 0) {\n                if (c == \".\") {\n                  if (i > e) {\n                    e = len;\n                    continue;\n                  }\n                } else if (!caseChanged) {\n                  if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {\n                    caseChanged = true;\n                    i = -1;\n                    e = 0;\n                    continue;\n                  }\n                }\n                return parseNumeric(x, String(v), isNum, b);\n              }\n            }\n            isNum = false;\n            str = convertBase(str, b, 10, x.s);\n            if ((e = str.indexOf(\".\")) > -1) str = str.replace(\".\", \"\");\n            else e = str.length;\n          }\n          for (i = 0; str.charCodeAt(i) === 48; i++) ;\n          for (len = str.length; str.charCodeAt(--len) === 48; ) ;\n          if (str = str.slice(i, ++len)) {\n            len -= i;\n            if (isNum && BigNumber2.DEBUG && len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\n              throw Error(tooManyDigits + x.s * v);\n            }\n            if ((e = e - i - 1) > MAX_EXP) {\n              x.c = x.e = null;\n            } else if (e < MIN_EXP) {\n              x.c = [x.e = 0];\n            } else {\n              x.e = e;\n              x.c = [];\n              i = (e + 1) % LOG_BASE;\n              if (e < 0) i += LOG_BASE;\n              if (i < len) {\n                if (i) x.c.push(+str.slice(0, i));\n                for (len -= LOG_BASE; i < len; ) {\n                  x.c.push(+str.slice(i, i += LOG_BASE));\n                }\n                i = LOG_BASE - (str = str.slice(i)).length;\n              } else {\n                i -= len;\n              }\n              for (; i--; str += \"0\") ;\n              x.c.push(+str);\n            }\n          } else {\n            x.c = [x.e = 0];\n          }\n        }\n        BigNumber2.clone = clone;\n        BigNumber2.ROUND_UP = 0;\n        BigNumber2.ROUND_DOWN = 1;\n        BigNumber2.ROUND_CEIL = 2;\n        BigNumber2.ROUND_FLOOR = 3;\n        BigNumber2.ROUND_HALF_UP = 4;\n        BigNumber2.ROUND_HALF_DOWN = 5;\n        BigNumber2.ROUND_HALF_EVEN = 6;\n        BigNumber2.ROUND_HALF_CEIL = 7;\n        BigNumber2.ROUND_HALF_FLOOR = 8;\n        BigNumber2.EUCLID = 9;\n        BigNumber2.config = BigNumber2.set = function(obj) {\n          var p, v;\n          if (obj != null) {\n            if (typeof obj == \"object\") {\n              if (obj.hasOwnProperty(p = \"DECIMAL_PLACES\")) {\n                v = obj[p];\n                intCheck(v, 0, MAX, p);\n                DECIMAL_PLACES = v;\n              }\n              if (obj.hasOwnProperty(p = \"ROUNDING_MODE\")) {\n                v = obj[p];\n                intCheck(v, 0, 8, p);\n                ROUNDING_MODE = v;\n              }\n              if (obj.hasOwnProperty(p = \"EXPONENTIAL_AT\")) {\n                v = obj[p];\n                if (v && v.pop) {\n                  intCheck(v[0], -MAX, 0, p);\n                  intCheck(v[1], 0, MAX, p);\n                  TO_EXP_NEG = v[0];\n                  TO_EXP_POS = v[1];\n                } else {\n                  intCheck(v, -MAX, MAX, p);\n                  TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\n                }\n              }\n              if (obj.hasOwnProperty(p = \"RANGE\")) {\n                v = obj[p];\n                if (v && v.pop) {\n                  intCheck(v[0], -MAX, -1, p);\n                  intCheck(v[1], 1, MAX, p);\n                  MIN_EXP = v[0];\n                  MAX_EXP = v[1];\n                } else {\n                  intCheck(v, -MAX, MAX, p);\n                  if (v) {\n                    MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\n                  } else {\n                    throw Error(bignumberError + p + \" cannot be zero: \" + v);\n                  }\n                }\n              }\n              if (obj.hasOwnProperty(p = \"CRYPTO\")) {\n                v = obj[p];\n                if (v === !!v) {\n                  if (v) {\n                    if (typeof crypto != \"undefined\" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {\n                      CRYPTO = v;\n                    } else {\n                      CRYPTO = !v;\n                      throw Error(bignumberError + \"crypto unavailable\");\n                    }\n                  } else {\n                    CRYPTO = v;\n                  }\n                } else {\n                  throw Error(bignumberError + p + \" not true or false: \" + v);\n                }\n              }\n              if (obj.hasOwnProperty(p = \"MODULO_MODE\")) {\n                v = obj[p];\n                intCheck(v, 0, 9, p);\n                MODULO_MODE = v;\n              }\n              if (obj.hasOwnProperty(p = \"POW_PRECISION\")) {\n                v = obj[p];\n                intCheck(v, 0, MAX, p);\n                POW_PRECISION = v;\n              }\n              if (obj.hasOwnProperty(p = \"FORMAT\")) {\n                v = obj[p];\n                if (typeof v == \"object\") FORMAT = v;\n                else throw Error(bignumberError + p + \" not an object: \" + v);\n              }\n              if (obj.hasOwnProperty(p = \"ALPHABET\")) {\n                v = obj[p];\n                if (typeof v == \"string\" && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\n                  alphabetHasNormalDecimalDigits = v.slice(0, 10) == \"0123456789\";\n                  ALPHABET = v;\n                } else {\n                  throw Error(bignumberError + p + \" invalid: \" + v);\n                }\n              }\n            } else {\n              throw Error(bignumberError + \"Object expected: \" + obj);\n            }\n          }\n          return {\n            DECIMAL_PLACES,\n            ROUNDING_MODE,\n            EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\n            RANGE: [MIN_EXP, MAX_EXP],\n            CRYPTO,\n            MODULO_MODE,\n            POW_PRECISION,\n            FORMAT,\n            ALPHABET\n          };\n        };\n        BigNumber2.isBigNumber = function(v) {\n          if (!v || v._isBigNumber !== true) return false;\n          if (!BigNumber2.DEBUG) return true;\n          var i, n, c = v.c, e = v.e, s = v.s;\n          out: if ({}.toString.call(c) == \"[object Array]\") {\n            if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\n              if (c[0] === 0) {\n                if (e === 0 && c.length === 1) return true;\n                break out;\n              }\n              i = (e + 1) % LOG_BASE;\n              if (i < 1) i += LOG_BASE;\n              if (String(c[0]).length == i) {\n                for (i = 0; i < c.length; i++) {\n                  n = c[i];\n                  if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\n                }\n                if (n !== 0) return true;\n              }\n            }\n          } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\n            return true;\n          }\n          throw Error(bignumberError + \"Invalid BigNumber: \" + v);\n        };\n        BigNumber2.maximum = BigNumber2.max = function() {\n          return maxOrMin(arguments, -1);\n        };\n        BigNumber2.minimum = BigNumber2.min = function() {\n          return maxOrMin(arguments, 1);\n        };\n        BigNumber2.random = function() {\n          var pow2_53 = 9007199254740992;\n          var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {\n            return mathfloor(Math.random() * pow2_53);\n          } : function() {\n            return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);\n          };\n          return function(dp) {\n            var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE);\n            if (dp == null) dp = DECIMAL_PLACES;\n            else intCheck(dp, 0, MAX);\n            k = mathceil(dp / LOG_BASE);\n            if (CRYPTO) {\n              if (crypto.getRandomValues) {\n                a = crypto.getRandomValues(new Uint32Array(k *= 2));\n                for (; i < k; ) {\n                  v = a[i] * 131072 + (a[i + 1] >>> 11);\n                  if (v >= 9e15) {\n                    b = crypto.getRandomValues(new Uint32Array(2));\n                    a[i] = b[0];\n                    a[i + 1] = b[1];\n                  } else {\n                    c.push(v % 1e14);\n                    i += 2;\n                  }\n                }\n                i = k / 2;\n              } else if (crypto.randomBytes) {\n                a = crypto.randomBytes(k *= 7);\n                for (; i < k; ) {\n                  v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\n                  if (v >= 9e15) {\n                    crypto.randomBytes(7).copy(a, i);\n                  } else {\n                    c.push(v % 1e14);\n                    i += 7;\n                  }\n                }\n                i = k / 7;\n              } else {\n                CRYPTO = false;\n                throw Error(bignumberError + \"crypto unavailable\");\n              }\n            }\n            if (!CRYPTO) {\n              for (; i < k; ) {\n                v = random53bitInt();\n                if (v < 9e15) c[i++] = v % 1e14;\n              }\n            }\n            k = c[--i];\n            dp %= LOG_BASE;\n            if (k && dp) {\n              v = POWS_TEN[LOG_BASE - dp];\n              c[i] = mathfloor(k / v) * v;\n            }\n            for (; c[i] === 0; c.pop(), i--) ;\n            if (i < 0) {\n              c = [e = 0];\n            } else {\n              for (e = -1; c[0] === 0; c.splice(0, 1), e -= LOG_BASE) ;\n              for (i = 1, v = c[0]; v >= 10; v /= 10, i++) ;\n              if (i < LOG_BASE) e -= LOG_BASE - i;\n            }\n            rand.e = e;\n            rand.c = c;\n            return rand;\n          };\n        }();\n        BigNumber2.sum = function() {\n          var i = 1, args = arguments, sum = new BigNumber2(args[0]);\n          for (; i < args.length; ) sum = sum.plus(args[i++]);\n          return sum;\n        };\n        convertBase = /* @__PURE__ */ function() {\n          var decimal = \"0123456789\";\n          function toBaseOut(str, baseIn, baseOut, alphabet) {\n            var j, arr = [0], arrL, i = 0, len = str.length;\n            for (; i < len; ) {\n              for (arrL = arr.length; arrL--; arr[arrL] *= baseIn) ;\n              arr[0] += alphabet.indexOf(str.charAt(i++));\n              for (j = 0; j < arr.length; j++) {\n                if (arr[j] > baseOut - 1) {\n                  if (arr[j + 1] == null) arr[j + 1] = 0;\n                  arr[j + 1] += arr[j] / baseOut | 0;\n                  arr[j] %= baseOut;\n                }\n              }\n            }\n            return arr.reverse();\n          }\n          return function(str, baseIn, baseOut, sign, callerIsToString) {\n            var alphabet, d, e, k, r, x, xc, y, i = str.indexOf(\".\"), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;\n            if (i >= 0) {\n              k = POW_PRECISION;\n              POW_PRECISION = 0;\n              str = str.replace(\".\", \"\");\n              y = new BigNumber2(baseIn);\n              x = y.pow(str.length - i);\n              POW_PRECISION = k;\n              y.c = toBaseOut(\n                toFixedPoint(coeffToString(x.c), x.e, \"0\"),\n                10,\n                baseOut,\n                decimal\n              );\n              y.e = y.c.length;\n            }\n            xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));\n            e = k = xc.length;\n            for (; xc[--k] == 0; xc.pop()) ;\n            if (!xc[0]) return alphabet.charAt(0);\n            if (i < 0) {\n              --e;\n            } else {\n              x.c = xc;\n              x.e = e;\n              x.s = sign;\n              x = div(x, y, dp, rm, baseOut);\n              xc = x.c;\n              r = x.r;\n              e = x.e;\n            }\n            d = e + dp + 1;\n            i = xc[d];\n            k = baseOut / 2;\n            r = r || d < 0 || xc[d + 1] != null;\n            r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));\n            if (d < 1 || !xc[0]) {\n              str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\n            } else {\n              xc.length = d;\n              if (r) {\n                for (--baseOut; ++xc[--d] > baseOut; ) {\n                  xc[d] = 0;\n                  if (!d) {\n                    ++e;\n                    xc = [1].concat(xc);\n                  }\n                }\n              }\n              for (k = xc.length; !xc[--k]; ) ;\n              for (i = 0, str = \"\"; i <= k; str += alphabet.charAt(xc[i++])) ;\n              str = toFixedPoint(str, e, alphabet.charAt(0));\n            }\n            return str;\n          };\n        }();\n        div = /* @__PURE__ */ function() {\n          function multiply(x, k, base) {\n            var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % SQRT_BASE, khi = k / SQRT_BASE | 0;\n            for (x = x.slice(); i--; ) {\n              xlo = x[i] % SQRT_BASE;\n              xhi = x[i] / SQRT_BASE | 0;\n              m = khi * xlo + xhi * klo;\n              temp = klo * xlo + m % SQRT_BASE * SQRT_BASE + carry;\n              carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\n              x[i] = temp % base;\n            }\n            if (carry) x = [carry].concat(x);\n            return x;\n          }\n          function compare2(a, b, aL, bL) {\n            var i, cmp;\n            if (aL != bL) {\n              cmp = aL > bL ? 1 : -1;\n            } else {\n              for (i = cmp = 0; i < aL; i++) {\n                if (a[i] != b[i]) {\n                  cmp = a[i] > b[i] ? 1 : -1;\n                  break;\n                }\n              }\n            }\n            return cmp;\n          }\n          function subtract(a, b, aL, base) {\n            var i = 0;\n            for (; aL--; ) {\n              a[aL] -= i;\n              i = a[aL] < b[aL] ? 1 : 0;\n              a[aL] = i * base + a[aL] - b[aL];\n            }\n            for (; !a[0] && a.length > 1; a.splice(0, 1)) ;\n          }\n          return function(x, y, dp, rm, base) {\n            var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;\n            if (!xc || !xc[0] || !yc || !yc[0]) {\n              return new BigNumber2(\n                // Return NaN if either NaN, or both Infinity or 0.\n                !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : (\n                  // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\n                  xc && xc[0] == 0 || !yc ? s * 0 : s / 0\n                )\n              );\n            }\n            q = new BigNumber2(s);\n            qc = q.c = [];\n            e = x.e - y.e;\n            s = dp + e + 1;\n            if (!base) {\n              base = BASE;\n              e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\n              s = s / LOG_BASE | 0;\n            }\n            for (i = 0; yc[i] == (xc[i] || 0); i++) ;\n            if (yc[i] > (xc[i] || 0)) e--;\n            if (s < 0) {\n              qc.push(1);\n              more = true;\n            } else {\n              xL = xc.length;\n              yL = yc.length;\n              i = 0;\n              s += 2;\n              n = mathfloor(base / (yc[0] + 1));\n              if (n > 1) {\n                yc = multiply(yc, n, base);\n                xc = multiply(xc, n, base);\n                yL = yc.length;\n                xL = xc.length;\n              }\n              xi = yL;\n              rem = xc.slice(0, yL);\n              remL = rem.length;\n              for (; remL < yL; rem[remL++] = 0) ;\n              yz = yc.slice();\n              yz = [0].concat(yz);\n              yc0 = yc[0];\n              if (yc[1] >= base / 2) yc0++;\n              do {\n                n = 0;\n                cmp = compare2(yc, rem, yL, remL);\n                if (cmp < 0) {\n                  rem0 = rem[0];\n                  if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\n                  n = mathfloor(rem0 / yc0);\n                  if (n > 1) {\n                    if (n >= base) n = base - 1;\n                    prod = multiply(yc, n, base);\n                    prodL = prod.length;\n                    remL = rem.length;\n                    while (compare2(prod, rem, prodL, remL) == 1) {\n                      n--;\n                      subtract(prod, yL < prodL ? yz : yc, prodL, base);\n                      prodL = prod.length;\n                      cmp = 1;\n                    }\n                  } else {\n                    if (n == 0) {\n                      cmp = n = 1;\n                    }\n                    prod = yc.slice();\n                    prodL = prod.length;\n                  }\n                  if (prodL < remL) prod = [0].concat(prod);\n                  subtract(rem, prod, remL, base);\n                  remL = rem.length;\n                  if (cmp == -1) {\n                    while (compare2(yc, rem, yL, remL) < 1) {\n                      n++;\n                      subtract(rem, yL < remL ? yz : yc, remL, base);\n                      remL = rem.length;\n                    }\n                  }\n                } else if (cmp === 0) {\n                  n++;\n                  rem = [0];\n                }\n                qc[i++] = n;\n                if (rem[0]) {\n                  rem[remL++] = xc[xi] || 0;\n                } else {\n                  rem = [xc[xi]];\n                  remL = 1;\n                }\n              } while ((xi++ < xL || rem[0] != null) && s--);\n              more = rem[0] != null;\n              if (!qc[0]) qc.splice(0, 1);\n            }\n            if (base == BASE) {\n              for (i = 1, s = qc[0]; s >= 10; s /= 10, i++) ;\n              round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\n            } else {\n              q.e = e;\n              q.r = +more;\n            }\n            return q;\n          };\n        }();\n        function format(n, i, rm, id) {\n          var c0, e, ne, len, str;\n          if (rm == null) rm = ROUNDING_MODE;\n          else intCheck(rm, 0, 8);\n          if (!n.c) return n.toString();\n          c0 = n.c[0];\n          ne = n.e;\n          if (i == null) {\n            str = coeffToString(n.c);\n            str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? toExponential(str, ne) : toFixedPoint(str, ne, \"0\");\n          } else {\n            n = round(new BigNumber2(n), i, rm);\n            e = n.e;\n            str = coeffToString(n.c);\n            len = str.length;\n            if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\n              for (; len < i; str += \"0\", len++) ;\n              str = toExponential(str, e);\n            } else {\n              i -= ne;\n              str = toFixedPoint(str, e, \"0\");\n              if (e + 1 > len) {\n                if (--i > 0) for (str += \".\"; i--; str += \"0\") ;\n              } else {\n                i += e - len;\n                if (i > 0) {\n                  if (e + 1 == len) str += \".\";\n                  for (; i--; str += \"0\") ;\n                }\n              }\n            }\n          }\n          return n.s < 0 && c0 ? \"-\" + str : str;\n        }\n        function maxOrMin(args, n) {\n          var k, y, i = 1, x = new BigNumber2(args[0]);\n          for (; i < args.length; i++) {\n            y = new BigNumber2(args[i]);\n            if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\n              x = y;\n            }\n          }\n          return x;\n        }\n        function normalise(n, c, e) {\n          var i = 1, j = c.length;\n          for (; !c[--j]; c.pop()) ;\n          for (j = c[0]; j >= 10; j /= 10, i++) ;\n          if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\n            n.c = n.e = null;\n          } else if (e < MIN_EXP) {\n            n.c = [n.e = 0];\n          } else {\n            n.e = e;\n            n.c = c;\n          }\n          return n;\n        }\n        parseNumeric = /* @__PURE__ */ function() {\n          var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, dotAfter = /^([^.]+)\\.$/, dotBefore = /^\\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\n          return function(x, str, isNum, b) {\n            var base, s = isNum ? str : str.replace(whitespaceOrPlus, \"\");\n            if (isInfinityOrNaN.test(s)) {\n              x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\n            } else {\n              if (!isNum) {\n                s = s.replace(basePrefix, function(m, p1, p2) {\n                  base = (p2 = p2.toLowerCase()) == \"x\" ? 16 : p2 == \"b\" ? 2 : 8;\n                  return !b || b == base ? p1 : m;\n                });\n                if (b) {\n                  base = b;\n                  s = s.replace(dotAfter, \"$1\").replace(dotBefore, \"0.$1\");\n                }\n                if (str != s) return new BigNumber2(s, base);\n              }\n              if (BigNumber2.DEBUG) {\n                throw Error(bignumberError + \"Not a\" + (b ? \" base \" + b : \"\") + \" number: \" + str);\n              }\n              x.s = null;\n            }\n            x.c = x.e = null;\n          };\n        }();\n        function round(x, sd, rm, r) {\n          var d, i, j, k, n, ni, rd, xc = x.c, pows10 = POWS_TEN;\n          if (xc) {\n            out: {\n              for (d = 1, k = xc[0]; k >= 10; k /= 10, d++) ;\n              i = sd - d;\n              if (i < 0) {\n                i += LOG_BASE;\n                j = sd;\n                n = xc[ni = 0];\n                rd = mathfloor(n / pows10[d - j - 1] % 10);\n              } else {\n                ni = mathceil((i + 1) / LOG_BASE);\n                if (ni >= xc.length) {\n                  if (r) {\n                    for (; xc.length <= ni; xc.push(0)) ;\n                    n = rd = 0;\n                    d = 1;\n                    i %= LOG_BASE;\n                    j = i - LOG_BASE + 1;\n                  } else {\n                    break out;\n                  }\n                } else {\n                  n = k = xc[ni];\n                  for (d = 1; k >= 10; k /= 10, d++) ;\n                  i %= LOG_BASE;\n                  j = i - LOG_BASE + d;\n                  rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\n                }\n              }\n              r = r || sd < 0 || // Are there any non-zero digits after the rounding digit?\n              // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\n              // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\n              xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\n              r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.\n              (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));\n              if (sd < 1 || !xc[0]) {\n                xc.length = 0;\n                if (r) {\n                  sd -= x.e + 1;\n                  xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\n                  x.e = -sd || 0;\n                } else {\n                  xc[0] = x.e = 0;\n                }\n                return x;\n              }\n              if (i == 0) {\n                xc.length = ni;\n                k = 1;\n                ni--;\n              } else {\n                xc.length = ni + 1;\n                k = pows10[LOG_BASE - i];\n                xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\n              }\n              if (r) {\n                for (; ; ) {\n                  if (ni == 0) {\n                    for (i = 1, j = xc[0]; j >= 10; j /= 10, i++) ;\n                    j = xc[0] += k;\n                    for (k = 1; j >= 10; j /= 10, k++) ;\n                    if (i != k) {\n                      x.e++;\n                      if (xc[0] == BASE) xc[0] = 1;\n                    }\n                    break;\n                  } else {\n                    xc[ni] += k;\n                    if (xc[ni] != BASE) break;\n                    xc[ni--] = 0;\n                    k = 1;\n                  }\n                }\n              }\n              for (i = xc.length; xc[--i] === 0; xc.pop()) ;\n            }\n            if (x.e > MAX_EXP) {\n              x.c = x.e = null;\n            } else if (x.e < MIN_EXP) {\n              x.c = [x.e = 0];\n            }\n          }\n          return x;\n        }\n        function valueOf(n) {\n          var str, e = n.e;\n          if (e === null) return n.toString();\n          str = coeffToString(n.c);\n          str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(str, e) : toFixedPoint(str, e, \"0\");\n          return n.s < 0 ? \"-\" + str : str;\n        }\n        P.absoluteValue = P.abs = function() {\n          var x = new BigNumber2(this);\n          if (x.s < 0) x.s = 1;\n          return x;\n        };\n        P.comparedTo = function(y, b) {\n          return compare(this, new BigNumber2(y, b));\n        };\n        P.decimalPlaces = P.dp = function(dp, rm) {\n          var c, n, v, x = this;\n          if (dp != null) {\n            intCheck(dp, 0, MAX);\n            if (rm == null) rm = ROUNDING_MODE;\n            else intCheck(rm, 0, 8);\n            return round(new BigNumber2(x), dp + x.e + 1, rm);\n          }\n          if (!(c = x.c)) return null;\n          n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\n          if (v = c[v]) for (; v % 10 == 0; v /= 10, n--) ;\n          if (n < 0) n = 0;\n          return n;\n        };\n        P.dividedBy = P.div = function(y, b) {\n          return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE);\n        };\n        P.dividedToIntegerBy = P.idiv = function(y, b) {\n          return div(this, new BigNumber2(y, b), 0, 1);\n        };\n        P.exponentiatedBy = P.pow = function(n, m) {\n          var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;\n          n = new BigNumber2(n);\n          if (n.c && !n.isInteger()) {\n            throw Error(bignumberError + \"Exponent not an integer: \" + valueOf(n));\n          }\n          if (m != null) m = new BigNumber2(m);\n          nIsBig = n.e > 14;\n          if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\n            y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\n            return m ? y.mod(m) : y;\n          }\n          nIsNeg = n.s < 0;\n          if (m) {\n            if (m.c ? !m.c[0] : !m.s) return new BigNumber2(NaN);\n            isModExp = !nIsNeg && x.isInteger() && m.isInteger();\n            if (isModExp) x = x.mod(m);\n          } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\n            k = x.s < 0 && isOdd(n) ? -0 : 0;\n            if (x.e > -1) k = 1 / k;\n            return new BigNumber2(nIsNeg ? 1 / k : k);\n          } else if (POW_PRECISION) {\n            k = mathceil(POW_PRECISION / LOG_BASE + 2);\n          }\n          if (nIsBig) {\n            half = new BigNumber2(0.5);\n            if (nIsNeg) n.s = 1;\n            nIsOdd = isOdd(n);\n          } else {\n            i = Math.abs(+valueOf(n));\n            nIsOdd = i % 2;\n          }\n          y = new BigNumber2(ONE);\n          for (; ; ) {\n            if (nIsOdd) {\n              y = y.times(x);\n              if (!y.c) break;\n              if (k) {\n                if (y.c.length > k) y.c.length = k;\n              } else if (isModExp) {\n                y = y.mod(m);\n              }\n            }\n            if (i) {\n              i = mathfloor(i / 2);\n              if (i === 0) break;\n              nIsOdd = i % 2;\n            } else {\n              n = n.times(half);\n              round(n, n.e + 1, 1);\n              if (n.e > 14) {\n                nIsOdd = isOdd(n);\n              } else {\n                i = +valueOf(n);\n                if (i === 0) break;\n                nIsOdd = i % 2;\n              }\n            }\n            x = x.times(x);\n            if (k) {\n              if (x.c && x.c.length > k) x.c.length = k;\n            } else if (isModExp) {\n              x = x.mod(m);\n            }\n          }\n          if (isModExp) return y;\n          if (nIsNeg) y = ONE.div(y);\n          return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\n        };\n        P.integerValue = function(rm) {\n          var n = new BigNumber2(this);\n          if (rm == null) rm = ROUNDING_MODE;\n          else intCheck(rm, 0, 8);\n          return round(n, n.e + 1, rm);\n        };\n        P.isEqualTo = P.eq = function(y, b) {\n          return compare(this, new BigNumber2(y, b)) === 0;\n        };\n        P.isFinite = function() {\n          return !!this.c;\n        };\n        P.isGreaterThan = P.gt = function(y, b) {\n          return compare(this, new BigNumber2(y, b)) > 0;\n        };\n        P.isGreaterThanOrEqualTo = P.gte = function(y, b) {\n          return (b = compare(this, new BigNumber2(y, b))) === 1 || b === 0;\n        };\n        P.isInteger = function() {\n          return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\n        };\n        P.isLessThan = P.lt = function(y, b) {\n          return compare(this, new BigNumber2(y, b)) < 0;\n        };\n        P.isLessThanOrEqualTo = P.lte = function(y, b) {\n          return (b = compare(this, new BigNumber2(y, b))) === -1 || b === 0;\n        };\n        P.isNaN = function() {\n          return !this.s;\n        };\n        P.isNegative = function() {\n          return this.s < 0;\n        };\n        P.isPositive = function() {\n          return this.s > 0;\n        };\n        P.isZero = function() {\n          return !!this.c && this.c[0] == 0;\n        };\n        P.minus = function(y, b) {\n          var i, j, t, xLTy, x = this, a = x.s;\n          y = new BigNumber2(y, b);\n          b = y.s;\n          if (!a || !b) return new BigNumber2(NaN);\n          if (a != b) {\n            y.s = -b;\n            return x.plus(y);\n          }\n          var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;\n          if (!xe || !ye) {\n            if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN);\n            if (!xc[0] || !yc[0]) {\n              return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : (\n                // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\n                ROUNDING_MODE == 3 ? -0 : 0\n              ));\n            }\n          }\n          xe = bitFloor(xe);\n          ye = bitFloor(ye);\n          xc = xc.slice();\n          if (a = xe - ye) {\n            if (xLTy = a < 0) {\n              a = -a;\n              t = xc;\n            } else {\n              ye = xe;\n              t = yc;\n            }\n            t.reverse();\n            for (b = a; b--; t.push(0)) ;\n            t.reverse();\n          } else {\n            j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\n            for (a = b = 0; b < j; b++) {\n              if (xc[b] != yc[b]) {\n                xLTy = xc[b] < yc[b];\n                break;\n              }\n            }\n          }\n          if (xLTy) {\n            t = xc;\n            xc = yc;\n            yc = t;\n            y.s = -y.s;\n          }\n          b = (j = yc.length) - (i = xc.length);\n          if (b > 0) for (; b--; xc[i++] = 0) ;\n          b = BASE - 1;\n          for (; j > a; ) {\n            if (xc[--j] < yc[j]) {\n              for (i = j; i && !xc[--i]; xc[i] = b) ;\n              --xc[i];\n              xc[j] += BASE;\n            }\n            xc[j] -= yc[j];\n          }\n          for (; xc[0] == 0; xc.splice(0, 1), --ye) ;\n          if (!xc[0]) {\n            y.s = ROUNDING_MODE == 3 ? -1 : 1;\n            y.c = [y.e = 0];\n            return y;\n          }\n          return normalise(y, xc, ye);\n        };\n        P.modulo = P.mod = function(y, b) {\n          var q, s, x = this;\n          y = new BigNumber2(y, b);\n          if (!x.c || !y.s || y.c && !y.c[0]) {\n            return new BigNumber2(NaN);\n          } else if (!y.c || x.c && !x.c[0]) {\n            return new BigNumber2(x);\n          }\n          if (MODULO_MODE == 9) {\n            s = y.s;\n            y.s = 1;\n            q = div(x, y, 0, 3);\n            y.s = s;\n            q.s *= s;\n          } else {\n            q = div(x, y, 0, MODULO_MODE);\n          }\n          y = x.minus(q.times(y));\n          if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\n          return y;\n        };\n        P.multipliedBy = P.times = function(y, b) {\n          var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c;\n          if (!xc || !yc || !xc[0] || !yc[0]) {\n            if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\n              y.c = y.e = y.s = null;\n            } else {\n              y.s *= x.s;\n              if (!xc || !yc) {\n                y.c = y.e = null;\n              } else {\n                y.c = [0];\n                y.e = 0;\n              }\n            }\n            return y;\n          }\n          e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\n          y.s *= x.s;\n          xcL = xc.length;\n          ycL = yc.length;\n          if (xcL < ycL) {\n            zc = xc;\n            xc = yc;\n            yc = zc;\n            i = xcL;\n            xcL = ycL;\n            ycL = i;\n          }\n          for (i = xcL + ycL, zc = []; i--; zc.push(0)) ;\n          base = BASE;\n          sqrtBase = SQRT_BASE;\n          for (i = ycL; --i >= 0; ) {\n            c = 0;\n            ylo = yc[i] % sqrtBase;\n            yhi = yc[i] / sqrtBase | 0;\n            for (k = xcL, j = i + k; j > i; ) {\n              xlo = xc[--k] % sqrtBase;\n              xhi = xc[k] / sqrtBase | 0;\n              m = yhi * xlo + xhi * ylo;\n              xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;\n              c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\n              zc[j--] = xlo % base;\n            }\n            zc[j] = c;\n          }\n          if (c) {\n            ++e;\n          } else {\n            zc.splice(0, 1);\n          }\n          return normalise(y, zc, e);\n        };\n        P.negated = function() {\n          var x = new BigNumber2(this);\n          x.s = -x.s || null;\n          return x;\n        };\n        P.plus = function(y, b) {\n          var t, x = this, a = x.s;\n          y = new BigNumber2(y, b);\n          b = y.s;\n          if (!a || !b) return new BigNumber2(NaN);\n          if (a != b) {\n            y.s = -b;\n            return x.minus(y);\n          }\n          var xe = x.e / LOG_BASE, ye = y.e / LOG_BASE, xc = x.c, yc = y.c;\n          if (!xe || !ye) {\n            if (!xc || !yc) return new BigNumber2(a / 0);\n            if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0);\n          }\n          xe = bitFloor(xe);\n          ye = bitFloor(ye);\n          xc = xc.slice();\n          if (a = xe - ye) {\n            if (a > 0) {\n              ye = xe;\n              t = yc;\n            } else {\n              a = -a;\n              t = xc;\n            }\n            t.reverse();\n            for (; a--; t.push(0)) ;\n            t.reverse();\n          }\n          a = xc.length;\n          b = yc.length;\n          if (a - b < 0) {\n            t = yc;\n            yc = xc;\n            xc = t;\n            b = a;\n          }\n          for (a = 0; b; ) {\n            a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\n            xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\n          }\n          if (a) {\n            xc = [a].concat(xc);\n            ++ye;\n          }\n          return normalise(y, xc, ye);\n        };\n        P.precision = P.sd = function(sd, rm) {\n          var c, n, v, x = this;\n          if (sd != null && sd !== !!sd) {\n            intCheck(sd, 1, MAX);\n            if (rm == null) rm = ROUNDING_MODE;\n            else intCheck(rm, 0, 8);\n            return round(new BigNumber2(x), sd, rm);\n          }\n          if (!(c = x.c)) return null;\n          v = c.length - 1;\n          n = v * LOG_BASE + 1;\n          if (v = c[v]) {\n            for (; v % 10 == 0; v /= 10, n--) ;\n            for (v = c[0]; v >= 10; v /= 10, n++) ;\n          }\n          if (sd && x.e + 1 > n) n = x.e + 1;\n          return n;\n        };\n        P.shiftedBy = function(k) {\n          intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\n          return this.times(\"1e\" + k);\n        };\n        P.squareRoot = P.sqrt = function() {\n          var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2(\"0.5\");\n          if (s !== 1 || !c || !c[0]) {\n            return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\n          }\n          s = Math.sqrt(+valueOf(x));\n          if (s == 0 || s == 1 / 0) {\n            n = coeffToString(c);\n            if ((n.length + e) % 2 == 0) n += \"0\";\n            s = Math.sqrt(+n);\n            e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\n            if (s == 1 / 0) {\n              n = \"5e\" + e;\n            } else {\n              n = s.toExponential();\n              n = n.slice(0, n.indexOf(\"e\") + 1) + e;\n            }\n            r = new BigNumber2(n);\n          } else {\n            r = new BigNumber2(s + \"\");\n          }\n          if (r.c[0]) {\n            e = r.e;\n            s = e + dp;\n            if (s < 3) s = 0;\n            for (; ; ) {\n              t = r;\n              r = half.times(t.plus(div(x, t, dp, 1)));\n              if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\n                if (r.e < e) --s;\n                n = n.slice(s - 3, s + 1);\n                if (n == \"9999\" || !rep && n == \"4999\") {\n                  if (!rep) {\n                    round(t, t.e + DECIMAL_PLACES + 2, 0);\n                    if (t.times(t).eq(x)) {\n                      r = t;\n                      break;\n                    }\n                  }\n                  dp += 4;\n                  s += 4;\n                  rep = 1;\n                } else {\n                  if (!+n || !+n.slice(1) && n.charAt(0) == \"5\") {\n                    round(r, r.e + DECIMAL_PLACES + 2, 1);\n                    m = !r.times(r).eq(x);\n                  }\n                  break;\n                }\n              }\n            }\n          }\n          return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\n        };\n        P.toExponential = function(dp, rm) {\n          if (dp != null) {\n            intCheck(dp, 0, MAX);\n            dp++;\n          }\n          return format(this, dp, rm, 1);\n        };\n        P.toFixed = function(dp, rm) {\n          if (dp != null) {\n            intCheck(dp, 0, MAX);\n            dp = dp + this.e + 1;\n          }\n          return format(this, dp, rm);\n        };\n        P.toFormat = function(dp, rm, format2) {\n          var str, x = this;\n          if (format2 == null) {\n            if (dp != null && rm && typeof rm == \"object\") {\n              format2 = rm;\n              rm = null;\n            } else if (dp && typeof dp == \"object\") {\n              format2 = dp;\n              dp = rm = null;\n            } else {\n              format2 = FORMAT;\n            }\n          } else if (typeof format2 != \"object\") {\n            throw Error(bignumberError + \"Argument not an object: \" + format2);\n          }\n          str = x.toFixed(dp, rm);\n          if (x.c) {\n            var i, arr = str.split(\".\"), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || \"\", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;\n            if (g2) {\n              i = g1;\n              g1 = g2;\n              g2 = i;\n              len -= i;\n            }\n            if (g1 > 0 && len > 0) {\n              i = len % g1 || g1;\n              intPart = intDigits.substr(0, i);\n              for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\n              if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\n              if (isNeg) intPart = \"-\" + intPart;\n            }\n            str = fractionPart ? intPart + (format2.decimalSeparator || \"\") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(\n              new RegExp(\"\\\\d{\" + g2 + \"}\\\\B\", \"g\"),\n              \"$&\" + (format2.fractionGroupSeparator || \"\")\n            ) : fractionPart) : intPart;\n          }\n          return (format2.prefix || \"\") + str + (format2.suffix || \"\");\n        };\n        P.toFraction = function(md) {\n          var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;\n          if (md != null) {\n            n = new BigNumber2(md);\n            if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\n              throw Error(bignumberError + \"Argument \" + (n.isInteger() ? \"out of range: \" : \"not an integer: \") + valueOf(n));\n            }\n          }\n          if (!xc) return new BigNumber2(x);\n          d = new BigNumber2(ONE);\n          n1 = d0 = new BigNumber2(ONE);\n          d1 = n0 = new BigNumber2(ONE);\n          s = coeffToString(xc);\n          e = d.e = s.length - x.e - 1;\n          d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\n          md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;\n          exp = MAX_EXP;\n          MAX_EXP = 1 / 0;\n          n = new BigNumber2(s);\n          n0.c[0] = 0;\n          for (; ; ) {\n            q = div(n, d, 0, 1);\n            d2 = d0.plus(q.times(d1));\n            if (d2.comparedTo(md) == 1) break;\n            d0 = d1;\n            d1 = d2;\n            n1 = n0.plus(q.times(d2 = n1));\n            n0 = d2;\n            d = n.minus(q.times(d2 = d));\n            n = d2;\n          }\n          d2 = div(md.minus(d0), d1, 0, 1);\n          n0 = n0.plus(d2.times(n1));\n          d0 = d0.plus(d2.times(d1));\n          n0.s = n1.s = x.s;\n          e = e * 2;\n          r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\n            div(n0, d0, e, ROUNDING_MODE).minus(x).abs()\n          ) < 1 ? [n1, d1] : [n0, d0];\n          MAX_EXP = exp;\n          return r;\n        };\n        P.toNumber = function() {\n          return +valueOf(this);\n        };\n        P.toPrecision = function(sd, rm) {\n          if (sd != null) intCheck(sd, 1, MAX);\n          return format(this, sd, rm, 2);\n        };\n        P.toString = function(b) {\n          var str, n = this, s = n.s, e = n.e;\n          if (e === null) {\n            if (s) {\n              str = \"Infinity\";\n              if (s < 0) str = \"-\" + str;\n            } else {\n              str = \"NaN\";\n            }\n          } else {\n            if (b == null) {\n              str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? toExponential(coeffToString(n.c), e) : toFixedPoint(coeffToString(n.c), e, \"0\");\n            } else if (b === 10 && alphabetHasNormalDecimalDigits) {\n              n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\n              str = toFixedPoint(coeffToString(n.c), n.e, \"0\");\n            } else {\n              intCheck(b, 2, ALPHABET.length, \"Base\");\n              str = convertBase(toFixedPoint(coeffToString(n.c), e, \"0\"), 10, b, s, true);\n            }\n            if (s < 0 && n.c[0]) str = \"-\" + str;\n          }\n          return str;\n        };\n        P.valueOf = P.toJSON = function() {\n          return valueOf(this);\n        };\n        P._isBigNumber = true;\n        if (configObject != null) BigNumber2.set(configObject);\n        return BigNumber2;\n      }\n      function bitFloor(n) {\n        var i = n | 0;\n        return n > 0 || n === i ? i : i - 1;\n      }\n      function coeffToString(a) {\n        var s, z, i = 1, j = a.length, r = a[0] + \"\";\n        for (; i < j; ) {\n          s = a[i++] + \"\";\n          z = LOG_BASE - s.length;\n          for (; z--; s = \"0\" + s) ;\n          r += s;\n        }\n        for (j = r.length; r.charCodeAt(--j) === 48; ) ;\n        return r.slice(0, j + 1 || 1);\n      }\n      function compare(x, y) {\n        var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;\n        if (!i || !j) return null;\n        a = xc && !xc[0];\n        b = yc && !yc[0];\n        if (a || b) return a ? b ? 0 : -j : i;\n        if (i != j) return i;\n        a = i < 0;\n        b = k == l;\n        if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\n        if (!b) return k > l ^ a ? 1 : -1;\n        j = (k = xc.length) < (l = yc.length) ? k : l;\n        for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\n        return k == l ? 0 : k > l ^ a ? 1 : -1;\n      }\n      function intCheck(n, min, max, name) {\n        if (n < min || n > max || n !== mathfloor(n)) {\n          throw Error(bignumberError + (name || \"Argument\") + (typeof n == \"number\" ? n < min || n > max ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + String(n));\n        }\n      }\n      function isOdd(n) {\n        var k = n.c.length - 1;\n        return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\n      }\n      function toExponential(str, e) {\n        return (str.length > 1 ? str.charAt(0) + \".\" + str.slice(1) : str) + (e < 0 ? \"e\" : \"e+\") + e;\n      }\n      function toFixedPoint(str, e, z) {\n        var len, zs;\n        if (e < 0) {\n          for (zs = z + \".\"; ++e; zs += z) ;\n          str = zs + str;\n        } else {\n          len = str.length;\n          if (++e > len) {\n            for (zs = z, e -= len; --e; zs += z) ;\n            str += zs;\n          } else if (e < len) {\n            str = str.slice(0, e) + \".\" + str.slice(e);\n          }\n        }\n        return str;\n      }\n      BigNumber = clone();\n      BigNumber[\"default\"] = BigNumber.BigNumber = BigNumber;\n      if (typeof define == \"function\" && define.amd) {\n        define(function() {\n          return BigNumber;\n        });\n      } else if (typeof module != \"undefined\" && module.exports) {\n        module.exports = BigNumber;\n      } else {\n        if (!globalObject) {\n          globalObject = typeof self != \"undefined\" && self ? self : window;\n        }\n        globalObject.BigNumber = BigNumber;\n      }\n    })(exports);\n  }\n});\n\n// ../../node_modules/json-bigint/lib/stringify.js\nvar require_stringify = __commonJS({\n  \"../../node_modules/json-bigint/lib/stringify.js\"(exports, module) {\n    \"use strict\";\n    var BigNumber = require_bignumber();\n    var JSON2 = module.exports;\n    (function() {\n      \"use strict\";\n      function f(n) {\n        return n < 10 ? \"0\" + n : n;\n      }\n      var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g, escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g, gap, indent, meta = {\n        // table of character substitutions\n        \"\\b\": \"\\\\b\",\n        \"\t\": \"\\\\t\",\n        \"\\n\": \"\\\\n\",\n        \"\\f\": \"\\\\f\",\n        \"\\r\": \"\\\\r\",\n        '\"': '\\\\\"',\n        \"\\\\\": \"\\\\\\\\\"\n      }, rep;\n      function quote(string) {\n        escapable.lastIndex = 0;\n        return escapable.test(string) ? '\"' + string.replace(escapable, function(a) {\n          var c = meta[a];\n          return typeof c === \"string\" ? c : \"\\\\u\" + (\"0000\" + a.charCodeAt(0).toString(16)).slice(-4);\n        }) + '\"' : '\"' + string + '\"';\n      }\n      function str(key, holder) {\n        var i, k, v, length, mind = gap, partial, value = holder[key], isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n        if (value && typeof value === \"object\" && typeof value.toJSON === \"function\") {\n          value = value.toJSON(key);\n        }\n        if (typeof rep === \"function\") {\n          value = rep.call(holder, key, value);\n        }\n        switch (typeof value) {\n          case \"string\":\n            if (isBigNumber) {\n              return value;\n            } else {\n              return quote(value);\n            }\n          case \"number\":\n            return isFinite(value) ? String(value) : \"null\";\n          case \"boolean\":\n          case \"null\":\n          case \"bigint\":\n            return String(value);\n          // If the type is 'object', we might be dealing with an object or an array or\n          // null.\n          case \"object\":\n            if (!value) {\n              return \"null\";\n            }\n            gap += indent;\n            partial = [];\n            if (Object.prototype.toString.apply(value) === \"[object Array]\") {\n              length = value.length;\n              for (i = 0; i < length; i += 1) {\n                partial[i] = str(i, value) || \"null\";\n              }\n              v = partial.length === 0 ? \"[]\" : gap ? \"[\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"]\" : \"[\" + partial.join(\",\") + \"]\";\n              gap = mind;\n              return v;\n            }\n            if (rep && typeof rep === \"object\") {\n              length = rep.length;\n              for (i = 0; i < length; i += 1) {\n                if (typeof rep[i] === \"string\") {\n                  k = rep[i];\n                  v = str(k, value);\n                  if (v) {\n                    partial.push(quote(k) + (gap ? \": \" : \":\") + v);\n                  }\n                }\n              }\n            } else {\n              Object.keys(value).forEach(function(k2) {\n                var v2 = str(k2, value);\n                if (v2) {\n                  partial.push(quote(k2) + (gap ? \": \" : \":\") + v2);\n                }\n              });\n            }\n            v = partial.length === 0 ? \"{}\" : gap ? \"{\\n\" + gap + partial.join(\",\\n\" + gap) + \"\\n\" + mind + \"}\" : \"{\" + partial.join(\",\") + \"}\";\n            gap = mind;\n            return v;\n        }\n      }\n      if (typeof JSON2.stringify !== \"function\") {\n        JSON2.stringify = function(value, replacer, space) {\n          var i;\n          gap = \"\";\n          indent = \"\";\n          if (typeof space === \"number\") {\n            for (i = 0; i < space; i += 1) {\n              indent += \" \";\n            }\n          } else if (typeof space === \"string\") {\n            indent = space;\n          }\n          rep = replacer;\n          if (replacer && typeof replacer !== \"function\" && (typeof replacer !== \"object\" || typeof replacer.length !== \"number\")) {\n            throw new Error(\"JSON.stringify\");\n          }\n          return str(\"\", { \"\": value });\n        };\n      }\n    })();\n  }\n});\n\n// ../../node_modules/json-bigint/lib/parse.js\nvar require_parse = __commonJS({\n  \"../../node_modules/json-bigint/lib/parse.js\"(exports, module) {\n    \"use strict\";\n    var BigNumber = null;\n    var suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\n    var suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n    var json_parse = function(options) {\n      \"use strict\";\n      var _options = {\n        strict: false,\n        // not being strict means do not generate syntax errors for \"duplicate key\"\n        storeAsString: false,\n        // toggles whether the values should be stored as BigNumber (default) or a string\n        alwaysParseAsBig: false,\n        // toggles whether all numbers should be Big\n        useNativeBigInt: false,\n        // toggles whether to use native BigInt instead of bignumber.js\n        protoAction: \"error\",\n        constructorAction: \"error\"\n      };\n      if (options !== void 0 && options !== null) {\n        if (options.strict === true) {\n          _options.strict = true;\n        }\n        if (options.storeAsString === true) {\n          _options.storeAsString = true;\n        }\n        _options.alwaysParseAsBig = options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n        _options.useNativeBigInt = options.useNativeBigInt === true ? options.useNativeBigInt : false;\n        if (typeof options.constructorAction !== \"undefined\") {\n          if (options.constructorAction === \"error\" || options.constructorAction === \"ignore\" || options.constructorAction === \"preserve\") {\n            _options.constructorAction = options.constructorAction;\n          } else {\n            throw new Error(\n              `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n            );\n          }\n        }\n        if (typeof options.protoAction !== \"undefined\") {\n          if (options.protoAction === \"error\" || options.protoAction === \"ignore\" || options.protoAction === \"preserve\") {\n            _options.protoAction = options.protoAction;\n          } else {\n            throw new Error(\n              `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n            );\n          }\n        }\n      }\n      var at, ch, escapee = {\n        '\"': '\"',\n        \"\\\\\": \"\\\\\",\n        \"/\": \"/\",\n        b: \"\\b\",\n        f: \"\\f\",\n        n: \"\\n\",\n        r: \"\\r\",\n        t: \"\t\"\n      }, text, error = function(m) {\n        throw {\n          name: \"SyntaxError\",\n          message: m,\n          at,\n          text\n        };\n      }, next = function(c) {\n        if (c && c !== ch) {\n          error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n        }\n        ch = text.charAt(at);\n        at += 1;\n        return ch;\n      }, number = function() {\n        var number2, string2 = \"\";\n        if (ch === \"-\") {\n          string2 = \"-\";\n          next(\"-\");\n        }\n        while (ch >= \"0\" && ch <= \"9\") {\n          string2 += ch;\n          next();\n        }\n        if (ch === \".\") {\n          string2 += \".\";\n          while (next() && ch >= \"0\" && ch <= \"9\") {\n            string2 += ch;\n          }\n        }\n        if (ch === \"e\" || ch === \"E\") {\n          string2 += ch;\n          next();\n          if (ch === \"-\" || ch === \"+\") {\n            string2 += ch;\n            next();\n          }\n          while (ch >= \"0\" && ch <= \"9\") {\n            string2 += ch;\n            next();\n          }\n        }\n        number2 = +string2;\n        if (!isFinite(number2)) {\n          error(\"Bad number\");\n        } else {\n          if (BigNumber == null) BigNumber = require_bignumber();\n          if (string2.length > 15)\n            return _options.storeAsString ? string2 : _options.useNativeBigInt ? BigInt(string2) : new BigNumber(string2);\n          else\n            return !_options.alwaysParseAsBig ? number2 : _options.useNativeBigInt ? BigInt(number2) : new BigNumber(number2);\n        }\n      }, string = function() {\n        var hex, i, string2 = \"\", uffff;\n        if (ch === '\"') {\n          var startAt = at;\n          while (next()) {\n            if (ch === '\"') {\n              if (at - 1 > startAt) string2 += text.substring(startAt, at - 1);\n              next();\n              return string2;\n            }\n            if (ch === \"\\\\\") {\n              if (at - 1 > startAt) string2 += text.substring(startAt, at - 1);\n              next();\n              if (ch === \"u\") {\n                uffff = 0;\n                for (i = 0; i < 4; i += 1) {\n                  hex = parseInt(next(), 16);\n                  if (!isFinite(hex)) {\n                    break;\n                  }\n                  uffff = uffff * 16 + hex;\n                }\n                string2 += String.fromCharCode(uffff);\n              } else if (typeof escapee[ch] === \"string\") {\n                string2 += escapee[ch];\n              } else {\n                break;\n              }\n              startAt = at;\n            }\n          }\n        }\n        error(\"Bad string\");\n      }, white = function() {\n        while (ch && ch <= \" \") {\n          next();\n        }\n      }, word = function() {\n        switch (ch) {\n          case \"t\":\n            next(\"t\");\n            next(\"r\");\n            next(\"u\");\n            next(\"e\");\n            return true;\n          case \"f\":\n            next(\"f\");\n            next(\"a\");\n            next(\"l\");\n            next(\"s\");\n            next(\"e\");\n            return false;\n          case \"n\":\n            next(\"n\");\n            next(\"u\");\n            next(\"l\");\n            next(\"l\");\n            return null;\n        }\n        error(\"Unexpected '\" + ch + \"'\");\n      }, value, array = function() {\n        var array2 = [];\n        if (ch === \"[\") {\n          next(\"[\");\n          white();\n          if (ch === \"]\") {\n            next(\"]\");\n            return array2;\n          }\n          while (ch) {\n            array2.push(value());\n            white();\n            if (ch === \"]\") {\n              next(\"]\");\n              return array2;\n            }\n            next(\",\");\n            white();\n          }\n        }\n        error(\"Bad array\");\n      }, object = function() {\n        var key, object2 = /* @__PURE__ */ Object.create(null);\n        if (ch === \"{\") {\n          next(\"{\");\n          white();\n          if (ch === \"}\") {\n            next(\"}\");\n            return object2;\n          }\n          while (ch) {\n            key = string();\n            white();\n            next(\":\");\n            if (_options.strict === true && Object.hasOwnProperty.call(object2, key)) {\n              error('Duplicate key \"' + key + '\"');\n            }\n            if (suspectProtoRx.test(key) === true) {\n              if (_options.protoAction === \"error\") {\n                error(\"Object contains forbidden prototype property\");\n              } else if (_options.protoAction === \"ignore\") {\n                value();\n              } else {\n                object2[key] = value();\n              }\n            } else if (suspectConstructorRx.test(key) === true) {\n              if (_options.constructorAction === \"error\") {\n                error(\"Object contains forbidden constructor property\");\n              } else if (_options.constructorAction === \"ignore\") {\n                value();\n              } else {\n                object2[key] = value();\n              }\n            } else {\n              object2[key] = value();\n            }\n            white();\n            if (ch === \"}\") {\n              next(\"}\");\n              return object2;\n            }\n            next(\",\");\n            white();\n          }\n        }\n        error(\"Bad object\");\n      };\n      value = function() {\n        white();\n        switch (ch) {\n          case \"{\":\n            return object();\n          case \"[\":\n            return array();\n          case '\"':\n            return string();\n          case \"-\":\n            return number();\n          default:\n            return ch >= \"0\" && ch <= \"9\" ? number() : word();\n        }\n      };\n      return function(source, reviver) {\n        var result;\n        text = source + \"\";\n        at = 0;\n        ch = \" \";\n        result = value();\n        white();\n        if (ch) {\n          error(\"Syntax error\");\n        }\n        return typeof reviver === \"function\" ? function walk(holder, key) {\n          var k, v, value2 = holder[key];\n          if (value2 && typeof value2 === \"object\") {\n            Object.keys(value2).forEach(function(k2) {\n              v = walk(value2, k2);\n              if (v !== void 0) {\n                value2[k2] = v;\n              } else {\n                delete value2[k2];\n              }\n            });\n          }\n          return reviver.call(holder, key, value2);\n        }({ \"\": result }, \"\") : result;\n      };\n    };\n    module.exports = json_parse;\n  }\n});\n\n// ../../node_modules/json-bigint/index.js\nvar require_json_bigint = __commonJS({\n  \"../../node_modules/json-bigint/index.js\"(exports, module) {\n    \"use strict\";\n    var json_stringify = require_stringify().stringify;\n    var json_parse = require_parse();\n    module.exports = function(options) {\n      return {\n        parse: json_parse(options),\n        stringify: json_stringify\n      };\n    };\n    module.exports.parse = json_parse();\n    module.exports.stringify = json_stringify;\n  }\n});\n\n// ../../node_modules/minimalistic-assert/index.js\nvar require_minimalistic_assert = __commonJS({\n  \"../../node_modules/minimalistic-assert/index.js\"(exports, module) {\n    \"use strict\";\n    module.exports = assert;\n    function assert(val, msg) {\n      if (!val)\n        throw new Error(msg || \"Assertion failed\");\n    }\n    assert.equal = function assertEqual(l, r, msg) {\n      if (l != r)\n        throw new Error(msg || \"Assertion failed: \" + l + \" != \" + r);\n    };\n  }\n});\n\n// ../../node_modules/inherits/inherits_browser.js\nvar require_inherits_browser = __commonJS({\n  \"../../node_modules/inherits/inherits_browser.js\"(exports, module) {\n    \"use strict\";\n    if (typeof Object.create === \"function\") {\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      module.exports = function inherits(ctor, superCtor) {\n        if (superCtor) {\n          ctor.super_ = superCtor;\n          var TempCtor = function() {\n          };\n          TempCtor.prototype = superCtor.prototype;\n          ctor.prototype = new TempCtor();\n          ctor.prototype.constructor = ctor;\n        }\n      };\n    }\n  }\n});\n\n// ../../node_modules/inherits/inherits.js\nvar require_inherits = __commonJS({\n  \"../../node_modules/inherits/inherits.js\"(exports, module) {\n    \"use strict\";\n    try {\n      util = __require(\"util\");\n      if (typeof util.inherits !== \"function\") throw \"\";\n      module.exports = util.inherits;\n    } catch (e) {\n      module.exports = require_inherits_browser();\n    }\n    var util;\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/utils.js\nvar require_utils = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/utils.js\"(exports) {\n    \"use strict\";\n    var assert = require_minimalistic_assert();\n    var inherits = require_inherits();\n    exports.inherits = inherits;\n    function isSurrogatePair(msg, i) {\n      if ((msg.charCodeAt(i) & 64512) !== 55296) {\n        return false;\n      }\n      if (i < 0 || i + 1 >= msg.length) {\n        return false;\n      }\n      return (msg.charCodeAt(i + 1) & 64512) === 56320;\n    }\n    function 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          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 = 65536 + ((c & 1023) << 10) + (msg.charCodeAt(++i) & 1023);\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    }\n    exports.toArray = toArray;\n    function 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    }\n    exports.toHex = toHex;\n    function htonl(w) {\n      var res = w >>> 24 | w >>> 8 & 65280 | w << 8 & 16711680 | (w & 255) << 24;\n      return res >>> 0;\n    }\n    exports.htonl = htonl;\n    function 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    }\n    exports.toHex32 = toHex32;\n    function zero2(word) {\n      if (word.length === 1)\n        return \"0\" + word;\n      else\n        return word;\n    }\n    exports.zero2 = zero2;\n    function 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    }\n    exports.zero8 = zero8;\n    function 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    }\n    exports.join32 = join32;\n    function 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 & 255;\n          res[k + 2] = m >>> 8 & 255;\n          res[k + 3] = m & 255;\n        } else {\n          res[k + 3] = m >>> 24;\n          res[k + 2] = m >>> 16 & 255;\n          res[k + 1] = m >>> 8 & 255;\n          res[k] = m & 255;\n        }\n      }\n      return res;\n    }\n    exports.split32 = split32;\n    function rotr32(w, b) {\n      return w >>> b | w << 32 - b;\n    }\n    exports.rotr32 = rotr32;\n    function rotl32(w, b) {\n      return w << b | w >>> 32 - b;\n    }\n    exports.rotl32 = rotl32;\n    function sum32(a, b) {\n      return a + b >>> 0;\n    }\n    exports.sum32 = sum32;\n    function sum32_3(a, b, c) {\n      return a + b + c >>> 0;\n    }\n    exports.sum32_3 = sum32_3;\n    function sum32_4(a, b, c, d) {\n      return a + b + c + d >>> 0;\n    }\n    exports.sum32_4 = sum32_4;\n    function sum32_5(a, b, c, d, e) {\n      return a + b + c + d + e >>> 0;\n    }\n    exports.sum32_5 = sum32_5;\n    function sum64(buf, pos, ah, al) {\n      var bh = buf[pos];\n      var bl = buf[pos + 1];\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    }\n    exports.sum64 = sum64;\n    function 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    }\n    exports.sum64_hi = sum64_hi;\n    function sum64_lo(ah, al, bh, bl) {\n      var lo = al + bl;\n      return lo >>> 0;\n    }\n    exports.sum64_lo = sum64_lo;\n    function 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      var hi = ah + bh + ch + dh + carry;\n      return hi >>> 0;\n    }\n    exports.sum64_4_hi = sum64_4_hi;\n    function sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n      var lo = al + bl + cl + dl;\n      return lo >>> 0;\n    }\n    exports.sum64_4_lo = sum64_4_lo;\n    function 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      var hi = ah + bh + ch + dh + eh + carry;\n      return hi >>> 0;\n    }\n    exports.sum64_5_hi = sum64_5_hi;\n    function sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n      var lo = al + bl + cl + dl + el;\n      return lo >>> 0;\n    }\n    exports.sum64_5_lo = sum64_5_lo;\n    function rotr64_hi(ah, al, num) {\n      var r = al << 32 - num | ah >>> num;\n      return r >>> 0;\n    }\n    exports.rotr64_hi = rotr64_hi;\n    function rotr64_lo(ah, al, num) {\n      var r = ah << 32 - num | al >>> num;\n      return r >>> 0;\n    }\n    exports.rotr64_lo = rotr64_lo;\n    function shr64_hi(ah, al, num) {\n      return ah >>> num;\n    }\n    exports.shr64_hi = shr64_hi;\n    function shr64_lo(ah, al, num) {\n      var r = ah << 32 - num | al >>> num;\n      return r >>> 0;\n    }\n    exports.shr64_lo = shr64_lo;\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/common.js\nvar require_common = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/common.js\"(exports) {\n    \"use strict\";\n    var utils = require_utils();\n    var assert = require_minimalistic_assert();\n    function 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      this._delta8 = this.blockSize / 8;\n      this._delta32 = this.blockSize / 32;\n    }\n    exports.BlockHash = BlockHash;\n    BlockHash.prototype.update = function update(msg, enc) {\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      if (this.pending.length >= this._delta8) {\n        msg = this.pending;\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        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      return this;\n    };\n    BlockHash.prototype.digest = function digest(enc) {\n      this.update(this._pad());\n      assert(this.pending === null);\n      return this._digest(enc);\n    };\n    BlockHash.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] = 128;\n      for (var i = 1; i < k; i++)\n        res[i] = 0;\n      len <<= 3;\n      if (this.endian === \"big\") {\n        for (var t = 8; t < this.padLength; t++)\n          res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = len >>> 24 & 255;\n        res[i++] = len >>> 16 & 255;\n        res[i++] = len >>> 8 & 255;\n        res[i++] = len & 255;\n      } else {\n        res[i++] = len & 255;\n        res[i++] = len >>> 8 & 255;\n        res[i++] = len >>> 16 & 255;\n        res[i++] = len >>> 24 & 255;\n        res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = 0;\n        res[i++] = 0;\n        for (t = 8; t < this.padLength; t++)\n          res[i++] = 0;\n      }\n      return res;\n    };\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha/common.js\nvar require_common2 = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/common.js\"(exports) {\n    \"use strict\";\n    var utils = require_utils();\n    var rotr32 = utils.rotr32;\n    function 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    }\n    exports.ft_1 = ft_1;\n    function ch32(x, y, z) {\n      return x & y ^ ~x & z;\n    }\n    exports.ch32 = ch32;\n    function maj32(x, y, z) {\n      return x & y ^ x & z ^ y & z;\n    }\n    exports.maj32 = maj32;\n    function p32(x, y, z) {\n      return x ^ y ^ z;\n    }\n    exports.p32 = p32;\n    function s0_256(x) {\n      return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n    }\n    exports.s0_256 = s0_256;\n    function s1_256(x) {\n      return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n    }\n    exports.s1_256 = s1_256;\n    function g0_256(x) {\n      return rotr32(x, 7) ^ rotr32(x, 18) ^ x >>> 3;\n    }\n    exports.g0_256 = g0_256;\n    function g1_256(x) {\n      return rotr32(x, 17) ^ rotr32(x, 19) ^ x >>> 10;\n    }\n    exports.g1_256 = g1_256;\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha/1.js\nvar require__ = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/1.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var common = require_common();\n    var shaCommon = require_common2();\n    var rotl32 = utils.rotl32;\n    var sum32 = utils.sum32;\n    var sum32_5 = utils.sum32_5;\n    var ft_1 = shaCommon.ft_1;\n    var BlockHash = common.BlockHash;\n    var sha1_K = [\n      1518500249,\n      1859775393,\n      2400959708,\n      3395469782\n    ];\n    function SHA1() {\n      if (!(this instanceof SHA1))\n        return new SHA1();\n      BlockHash.call(this);\n      this.h = [\n        1732584193,\n        4023233417,\n        2562383102,\n        271733878,\n        3285377520\n      ];\n      this.W = new Array(80);\n    }\n    utils.inherits(SHA1, BlockHash);\n    module.exports = SHA1;\n    SHA1.blockSize = 512;\n    SHA1.outSize = 160;\n    SHA1.hmacStrength = 80;\n    SHA1.padLength = 64;\n    SHA1.prototype._update = function _update(msg, start) {\n      var W = this.W;\n      for (var i = 0; i < 16; i++)\n        W[i] = msg[start + i];\n      for (; i < W.length; i++)\n        W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\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      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      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    SHA1.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  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha/256.js\nvar require__2 = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/256.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var common = require_common();\n    var shaCommon = require_common2();\n    var assert = require_minimalistic_assert();\n    var sum32 = utils.sum32;\n    var sum32_4 = utils.sum32_4;\n    var sum32_5 = utils.sum32_5;\n    var ch32 = shaCommon.ch32;\n    var maj32 = shaCommon.maj32;\n    var s0_256 = shaCommon.s0_256;\n    var s1_256 = shaCommon.s1_256;\n    var g0_256 = shaCommon.g0_256;\n    var g1_256 = shaCommon.g1_256;\n    var BlockHash = common.BlockHash;\n    var sha256_K = [\n      1116352408,\n      1899447441,\n      3049323471,\n      3921009573,\n      961987163,\n      1508970993,\n      2453635748,\n      2870763221,\n      3624381080,\n      310598401,\n      607225278,\n      1426881987,\n      1925078388,\n      2162078206,\n      2614888103,\n      3248222580,\n      3835390401,\n      4022224774,\n      264347078,\n      604807628,\n      770255983,\n      1249150122,\n      1555081692,\n      1996064986,\n      2554220882,\n      2821834349,\n      2952996808,\n      3210313671,\n      3336571891,\n      3584528711,\n      113926993,\n      338241895,\n      666307205,\n      773529912,\n      1294757372,\n      1396182291,\n      1695183700,\n      1986661051,\n      2177026350,\n      2456956037,\n      2730485921,\n      2820302411,\n      3259730800,\n      3345764771,\n      3516065817,\n      3600352804,\n      4094571909,\n      275423344,\n      430227734,\n      506948616,\n      659060556,\n      883997877,\n      958139571,\n      1322822218,\n      1537002063,\n      1747873779,\n      1955562222,\n      2024104815,\n      2227730452,\n      2361852424,\n      2428436474,\n      2756734187,\n      3204031479,\n      3329325298\n    ];\n    function SHA256() {\n      if (!(this instanceof SHA256))\n        return new SHA256();\n      BlockHash.call(this);\n      this.h = [\n        1779033703,\n        3144134277,\n        1013904242,\n        2773480762,\n        1359893119,\n        2600822924,\n        528734635,\n        1541459225\n      ];\n      this.k = sha256_K;\n      this.W = new Array(64);\n    }\n    utils.inherits(SHA256, BlockHash);\n    module.exports = SHA256;\n    SHA256.blockSize = 512;\n    SHA256.outSize = 256;\n    SHA256.hmacStrength = 192;\n    SHA256.padLength = 64;\n    SHA256.prototype._update = function _update(msg, start) {\n      var W = this.W;\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      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      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      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    SHA256.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  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha/224.js\nvar require__3 = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/224.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var SHA256 = require__2();\n    function SHA224() {\n      if (!(this instanceof SHA224))\n        return new SHA224();\n      SHA256.call(this);\n      this.h = [\n        3238371032,\n        914150663,\n        812702999,\n        4144912697,\n        4290775857,\n        1750603025,\n        1694076839,\n        3204075428\n      ];\n    }\n    utils.inherits(SHA224, SHA256);\n    module.exports = SHA224;\n    SHA224.blockSize = 512;\n    SHA224.outSize = 224;\n    SHA224.hmacStrength = 192;\n    SHA224.padLength = 64;\n    SHA224.prototype._digest = function digest(enc) {\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});\n\n// ../../node_modules/hash.js/lib/hash/sha/512.js\nvar require__4 = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/512.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var common = require_common();\n    var assert = require_minimalistic_assert();\n    var rotr64_hi = utils.rotr64_hi;\n    var rotr64_lo = utils.rotr64_lo;\n    var shr64_hi = utils.shr64_hi;\n    var shr64_lo = utils.shr64_lo;\n    var sum64 = utils.sum64;\n    var sum64_hi = utils.sum64_hi;\n    var sum64_lo = utils.sum64_lo;\n    var sum64_4_hi = utils.sum64_4_hi;\n    var sum64_4_lo = utils.sum64_4_lo;\n    var sum64_5_hi = utils.sum64_5_hi;\n    var sum64_5_lo = utils.sum64_5_lo;\n    var BlockHash = common.BlockHash;\n    var sha512_K = [\n      1116352408,\n      3609767458,\n      1899447441,\n      602891725,\n      3049323471,\n      3964484399,\n      3921009573,\n      2173295548,\n      961987163,\n      4081628472,\n      1508970993,\n      3053834265,\n      2453635748,\n      2937671579,\n      2870763221,\n      3664609560,\n      3624381080,\n      2734883394,\n      310598401,\n      1164996542,\n      607225278,\n      1323610764,\n      1426881987,\n      3590304994,\n      1925078388,\n      4068182383,\n      2162078206,\n      991336113,\n      2614888103,\n      633803317,\n      3248222580,\n      3479774868,\n      3835390401,\n      2666613458,\n      4022224774,\n      944711139,\n      264347078,\n      2341262773,\n      604807628,\n      2007800933,\n      770255983,\n      1495990901,\n      1249150122,\n      1856431235,\n      1555081692,\n      3175218132,\n      1996064986,\n      2198950837,\n      2554220882,\n      3999719339,\n      2821834349,\n      766784016,\n      2952996808,\n      2566594879,\n      3210313671,\n      3203337956,\n      3336571891,\n      1034457026,\n      3584528711,\n      2466948901,\n      113926993,\n      3758326383,\n      338241895,\n      168717936,\n      666307205,\n      1188179964,\n      773529912,\n      1546045734,\n      1294757372,\n      1522805485,\n      1396182291,\n      2643833823,\n      1695183700,\n      2343527390,\n      1986661051,\n      1014477480,\n      2177026350,\n      1206759142,\n      2456956037,\n      344077627,\n      2730485921,\n      1290863460,\n      2820302411,\n      3158454273,\n      3259730800,\n      3505952657,\n      3345764771,\n      106217008,\n      3516065817,\n      3606008344,\n      3600352804,\n      1432725776,\n      4094571909,\n      1467031594,\n      275423344,\n      851169720,\n      430227734,\n      3100823752,\n      506948616,\n      1363258195,\n      659060556,\n      3750685593,\n      883997877,\n      3785050280,\n      958139571,\n      3318307427,\n      1322822218,\n      3812723403,\n      1537002063,\n      2003034995,\n      1747873779,\n      3602036899,\n      1955562222,\n      1575990012,\n      2024104815,\n      1125592928,\n      2227730452,\n      2716904306,\n      2361852424,\n      442776044,\n      2428436474,\n      593698344,\n      2756734187,\n      3733110249,\n      3204031479,\n      2999351573,\n      3329325298,\n      3815920427,\n      3391569614,\n      3928383900,\n      3515267271,\n      566280711,\n      3940187606,\n      3454069534,\n      4118630271,\n      4000239992,\n      116418474,\n      1914138554,\n      174292421,\n      2731055270,\n      289380356,\n      3203993006,\n      460393269,\n      320620315,\n      685471733,\n      587496836,\n      852142971,\n      1086792851,\n      1017036298,\n      365543100,\n      1126000580,\n      2618297676,\n      1288033470,\n      3409855158,\n      1501505948,\n      4234509866,\n      1607167915,\n      987167468,\n      1816402316,\n      1246189591\n    ];\n    function SHA512() {\n      if (!(this instanceof SHA512))\n        return new SHA512();\n      BlockHash.call(this);\n      this.h = [\n        1779033703,\n        4089235720,\n        3144134277,\n        2227873595,\n        1013904242,\n        4271175723,\n        2773480762,\n        1595750129,\n        1359893119,\n        2917565137,\n        2600822924,\n        725511199,\n        528734635,\n        4215389547,\n        1541459225,\n        327033209\n      ];\n      this.k = sha512_K;\n      this.W = new Array(160);\n    }\n    utils.inherits(SHA512, BlockHash);\n    module.exports = SHA512;\n    SHA512.blockSize = 1024;\n    SHA512.outSize = 512;\n    SHA512.hmacStrength = 192;\n    SHA512.padLength = 128;\n    SHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n      var W = this.W;\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]);\n        var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n        var c1_hi = W[i - 14];\n        var c1_lo = W[i - 13];\n        var c2_hi = g0_512_hi(W[i - 30], W[i - 29]);\n        var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n        var c3_hi = W[i - 32];\n        var c3_lo = W[i - 31];\n        W[i] = sum64_4_hi(\n          c0_hi,\n          c0_lo,\n          c1_hi,\n          c1_lo,\n          c2_hi,\n          c2_lo,\n          c3_hi,\n          c3_lo\n        );\n        W[i + 1] = sum64_4_lo(\n          c0_hi,\n          c0_lo,\n          c1_hi,\n          c1_lo,\n          c2_hi,\n          c2_lo,\n          c3_hi,\n          c3_lo\n        );\n      }\n    };\n    SHA512.prototype._update = function _update(msg, start) {\n      this._prepareBlock(msg, start);\n      var W = this.W;\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      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        var T1_hi = sum64_5_hi(\n          c0_hi,\n          c0_lo,\n          c1_hi,\n          c1_lo,\n          c2_hi,\n          c2_lo,\n          c3_hi,\n          c3_lo,\n          c4_hi,\n          c4_lo\n        );\n        var T1_lo = sum64_5_lo(\n          c0_hi,\n          c0_lo,\n          c1_hi,\n          c1_lo,\n          c2_hi,\n          c2_lo,\n          c3_hi,\n          c3_lo,\n          c4_hi,\n          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        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        hh = gh;\n        hl = gl;\n        gh = fh;\n        gl = fl;\n        fh = eh;\n        fl = el;\n        eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n        el = sum64_lo(dl, dl, T1_hi, T1_lo);\n        dh = ch;\n        dl = cl;\n        ch = bh;\n        cl = bl;\n        bh = ah;\n        bl = al;\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      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    SHA512.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    function ch64_hi(xh, xl, yh, yl, zh) {\n      var r = xh & yh ^ ~xh & zh;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function ch64_lo(xh, xl, yh, yl, zh, zl) {\n      var r = xl & yl ^ ~xl & zl;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function maj64_hi(xh, xl, yh, yl, zh) {\n      var r = xh & yh ^ xh & zh ^ yh & zh;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function maj64_lo(xh, xl, yh, yl, zh, zl) {\n      var r = xl & yl ^ xl & zl ^ yl & zl;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function s0_512_hi(xh, xl) {\n      var c0_hi = rotr64_hi(xh, xl, 28);\n      var c1_hi = rotr64_hi(xl, xh, 2);\n      var c2_hi = rotr64_hi(xl, xh, 7);\n      var r = c0_hi ^ c1_hi ^ c2_hi;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function s0_512_lo(xh, xl) {\n      var c0_lo = rotr64_lo(xh, xl, 28);\n      var c1_lo = rotr64_lo(xl, xh, 2);\n      var c2_lo = rotr64_lo(xl, xh, 7);\n      var r = c0_lo ^ c1_lo ^ c2_lo;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function 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);\n      var r = c0_hi ^ c1_hi ^ c2_hi;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function 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);\n      var r = c0_lo ^ c1_lo ^ c2_lo;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function 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      var r = c0_hi ^ c1_hi ^ c2_hi;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function 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      var r = c0_lo ^ c1_lo ^ c2_lo;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function g1_512_hi(xh, xl) {\n      var c0_hi = rotr64_hi(xh, xl, 19);\n      var c1_hi = rotr64_hi(xl, xh, 29);\n      var c2_hi = shr64_hi(xh, xl, 6);\n      var r = c0_hi ^ c1_hi ^ c2_hi;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n    function g1_512_lo(xh, xl) {\n      var c0_lo = rotr64_lo(xh, xl, 19);\n      var c1_lo = rotr64_lo(xl, xh, 29);\n      var c2_lo = shr64_lo(xh, xl, 6);\n      var r = c0_lo ^ c1_lo ^ c2_lo;\n      if (r < 0)\n        r += 4294967296;\n      return r;\n    }\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha/384.js\nvar require__5 = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha/384.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var SHA512 = require__4();\n    function SHA384() {\n      if (!(this instanceof SHA384))\n        return new SHA384();\n      SHA512.call(this);\n      this.h = [\n        3418070365,\n        3238371032,\n        1654270250,\n        914150663,\n        2438529370,\n        812702999,\n        355462360,\n        4144912697,\n        1731405415,\n        4290775857,\n        2394180231,\n        1750603025,\n        3675008525,\n        1694076839,\n        1203062813,\n        3204075428\n      ];\n    }\n    utils.inherits(SHA384, SHA512);\n    module.exports = SHA384;\n    SHA384.blockSize = 1024;\n    SHA384.outSize = 384;\n    SHA384.hmacStrength = 192;\n    SHA384.padLength = 128;\n    SHA384.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  }\n});\n\n// ../../node_modules/hash.js/lib/hash/sha.js\nvar require_sha = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/sha.js\"(exports) {\n    \"use strict\";\n    exports.sha1 = require__();\n    exports.sha224 = require__3();\n    exports.sha256 = require__2();\n    exports.sha384 = require__5();\n    exports.sha512 = require__4();\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/ripemd.js\nvar require_ripemd = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/ripemd.js\"(exports) {\n    \"use strict\";\n    var utils = require_utils();\n    var common = require_common();\n    var rotl32 = utils.rotl32;\n    var sum32 = utils.sum32;\n    var sum32_3 = utils.sum32_3;\n    var sum32_4 = utils.sum32_4;\n    var BlockHash = common.BlockHash;\n    function RIPEMD160() {\n      if (!(this instanceof RIPEMD160))\n        return new RIPEMD160();\n      BlockHash.call(this);\n      this.h = [1732584193, 4023233417, 2562383102, 271733878, 3285377520];\n      this.endian = \"little\";\n    }\n    utils.inherits(RIPEMD160, BlockHash);\n    exports.ripemd160 = RIPEMD160;\n    RIPEMD160.blockSize = 512;\n    RIPEMD160.outSize = 160;\n    RIPEMD160.hmacStrength = 192;\n    RIPEMD160.padLength = 64;\n    RIPEMD160.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          ),\n          E\n        );\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          ),\n          Eh\n        );\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    RIPEMD160.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    function 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    function K(j) {\n      if (j <= 15)\n        return 0;\n      else if (j <= 31)\n        return 1518500249;\n      else if (j <= 47)\n        return 1859775393;\n      else if (j <= 63)\n        return 2400959708;\n      else\n        return 2840853838;\n    }\n    function Kh(j) {\n      if (j <= 15)\n        return 1352829926;\n      else if (j <= 31)\n        return 1548603684;\n      else if (j <= 47)\n        return 1836072691;\n      else if (j <= 63)\n        return 2053994217;\n      else\n        return 0;\n    }\n    var r = [\n      0,\n      1,\n      2,\n      3,\n      4,\n      5,\n      6,\n      7,\n      8,\n      9,\n      10,\n      11,\n      12,\n      13,\n      14,\n      15,\n      7,\n      4,\n      13,\n      1,\n      10,\n      6,\n      15,\n      3,\n      12,\n      0,\n      9,\n      5,\n      2,\n      14,\n      11,\n      8,\n      3,\n      10,\n      14,\n      4,\n      9,\n      15,\n      8,\n      1,\n      2,\n      7,\n      0,\n      6,\n      13,\n      11,\n      5,\n      12,\n      1,\n      9,\n      11,\n      10,\n      0,\n      8,\n      12,\n      4,\n      13,\n      3,\n      7,\n      15,\n      14,\n      5,\n      6,\n      2,\n      4,\n      0,\n      5,\n      9,\n      7,\n      12,\n      2,\n      10,\n      14,\n      1,\n      3,\n      8,\n      11,\n      6,\n      15,\n      13\n    ];\n    var rh = [\n      5,\n      14,\n      7,\n      0,\n      9,\n      2,\n      11,\n      4,\n      13,\n      6,\n      15,\n      8,\n      1,\n      10,\n      3,\n      12,\n      6,\n      11,\n      3,\n      7,\n      0,\n      13,\n      5,\n      10,\n      14,\n      15,\n      8,\n      12,\n      4,\n      9,\n      1,\n      2,\n      15,\n      5,\n      1,\n      3,\n      7,\n      14,\n      6,\n      9,\n      11,\n      8,\n      12,\n      2,\n      10,\n      0,\n      4,\n      13,\n      8,\n      6,\n      4,\n      1,\n      3,\n      11,\n      15,\n      0,\n      5,\n      12,\n      2,\n      13,\n      9,\n      7,\n      10,\n      14,\n      12,\n      15,\n      10,\n      4,\n      1,\n      5,\n      8,\n      7,\n      6,\n      2,\n      13,\n      14,\n      0,\n      3,\n      9,\n      11\n    ];\n    var s = [\n      11,\n      14,\n      15,\n      12,\n      5,\n      8,\n      7,\n      9,\n      11,\n      13,\n      14,\n      15,\n      6,\n      7,\n      9,\n      8,\n      7,\n      6,\n      8,\n      13,\n      11,\n      9,\n      7,\n      15,\n      7,\n      12,\n      15,\n      9,\n      11,\n      7,\n      13,\n      12,\n      11,\n      13,\n      6,\n      7,\n      14,\n      9,\n      13,\n      15,\n      14,\n      8,\n      13,\n      6,\n      5,\n      12,\n      7,\n      5,\n      11,\n      12,\n      14,\n      15,\n      14,\n      15,\n      9,\n      8,\n      9,\n      14,\n      5,\n      6,\n      8,\n      6,\n      5,\n      12,\n      9,\n      15,\n      5,\n      11,\n      6,\n      8,\n      13,\n      12,\n      5,\n      12,\n      13,\n      14,\n      11,\n      8,\n      5,\n      6\n    ];\n    var sh = [\n      8,\n      9,\n      9,\n      11,\n      13,\n      15,\n      15,\n      5,\n      7,\n      7,\n      8,\n      11,\n      14,\n      14,\n      12,\n      6,\n      9,\n      13,\n      15,\n      7,\n      12,\n      8,\n      9,\n      11,\n      7,\n      7,\n      12,\n      7,\n      6,\n      15,\n      13,\n      11,\n      9,\n      7,\n      15,\n      11,\n      8,\n      6,\n      6,\n      14,\n      12,\n      13,\n      5,\n      14,\n      13,\n      13,\n      7,\n      5,\n      15,\n      5,\n      8,\n      11,\n      14,\n      14,\n      6,\n      14,\n      6,\n      9,\n      12,\n      9,\n      12,\n      5,\n      15,\n      8,\n      8,\n      5,\n      12,\n      9,\n      12,\n      5,\n      14,\n      6,\n      8,\n      13,\n      6,\n      5,\n      15,\n      13,\n      11,\n      11\n    ];\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash/hmac.js\nvar require_hmac = __commonJS({\n  \"../../node_modules/hash.js/lib/hash/hmac.js\"(exports, module) {\n    \"use strict\";\n    var utils = require_utils();\n    var assert = require_minimalistic_assert();\n    function Hmac(hash2, key, enc) {\n      if (!(this instanceof Hmac))\n        return new Hmac(hash2, key, enc);\n      this.Hash = hash2;\n      this.blockSize = hash2.blockSize / 8;\n      this.outSize = hash2.outSize / 8;\n      this.inner = null;\n      this.outer = null;\n      this._init(utils.toArray(key, enc));\n    }\n    module.exports = Hmac;\n    Hmac.prototype._init = function init(key) {\n      if (key.length > this.blockSize)\n        key = new this.Hash().update(key).digest();\n      assert(key.length <= this.blockSize);\n      for (var i = key.length; i < this.blockSize; i++)\n        key.push(0);\n      for (i = 0; i < key.length; i++)\n        key[i] ^= 54;\n      this.inner = new this.Hash().update(key);\n      for (i = 0; i < key.length; i++)\n        key[i] ^= 106;\n      this.outer = new this.Hash().update(key);\n    };\n    Hmac.prototype.update = function update(msg, enc) {\n      this.inner.update(msg, enc);\n      return this;\n    };\n    Hmac.prototype.digest = function digest(enc) {\n      this.outer.update(this.inner.digest());\n      return this.outer.digest(enc);\n    };\n  }\n});\n\n// ../../node_modules/hash.js/lib/hash.js\nvar require_hash = __commonJS({\n  \"../../node_modules/hash.js/lib/hash.js\"(exports) {\n    \"use strict\";\n    var hash2 = exports;\n    hash2.utils = require_utils();\n    hash2.common = require_common();\n    hash2.sha = require_sha();\n    hash2.ripemd = require_ripemd();\n    hash2.hmac = require_hmac();\n    hash2.sha1 = hash2.sha.sha1;\n    hash2.sha256 = hash2.sha.sha256;\n    hash2.sha224 = hash2.sha.sha224;\n    hash2.sha384 = hash2.sha.sha384;\n    hash2.sha512 = hash2.sha.sha512;\n    hash2.ripemd160 = hash2.ripemd.ripemd160;\n  }\n});\n\n// src/index.ts\n\n\n// src/types/cardano-sdk.ts\n\n\n\nvar dist_Slot = Slot;\nvar dist_Value = Value;\nvar dist_Transaction = Transaction;\nvar dist_TransactionId = (value) => {\n  return TransactionId(value);\n};\nvar dist_TransactionBody = TransactionBody;\nvar dist_TransactionWitnessSet = TransactionWitnessSet;\nvar AuxilliaryData = AuxiliaryData;\nvar dist_TransactionMetadatum = TransactionMetadatum;\nvar dist_MetadatumMap = MetadatumMap;\nvar dist_MetadatumList = MetadatumList;\nvar dist_TransactionUnspentOutput = TransactionUnspentOutput;\nvar dist_TransactionInput = TransactionInput;\nvar dist_TransactionOutput = TransactionOutput;\nvar dist_PlutusData = PlutusData;\nvar dist_PlutusList = PlutusList;\nvar dist_PlutusMap = PlutusMap;\nvar dist_Redeemers = Redeemers;\nvar dist_Redeemer = Redeemer;\nvar dist_RedeemerPurpose = RedeemerPurpose;\nvar dist_RedeemerTag = RedeemerTag;\nvar dist_Script = Script;\nvar dist_PolicyId = PolicyId;\nvar dist_AssetName = AssetName;\nvar dist_AssetId = AssetId;\nvar ScriptHash = Hash28ByteBase16;\nvar dist_Address = Address;\nvar dist_RewardAddress = RewardAddress;\nvar dist_AddressType = AddressType;\nvar dist_BaseAddress = BaseAddress;\nvar dist_EnterpriseAddress = EnterpriseAddress;\nvar dist_PaymentAddress = PaymentAddress;\nvar core_cst_dist_AssetFingerprint = AssetFingerprint;\nvar dist_Credential = Credential;\nvar Ed25519PublicKeyHex2 = Ed25519PublicKeyHex;\nvar dist_Ed25519PrivateNormalKeyHex = (value) => esm_primitives_typedHex(value, 64);\nvar dist_Ed25519PrivateExtendedKeyHex = (value) => esm_primitives_typedHex(value, 128);\nvar Ed25519KeyHash2 = Ed25519KeyHash;\nvar Ed25519KeyHashHex2 = Ed25519KeyHashHex;\nvar Hash28ByteBase162 = Hash28ByteBase16;\nvar Hash32ByteBase162 = (value) => {\n  return Hash32ByteBase16(value);\n};\nvar dist_CredentialType = CredentialType;\nvar dist_Certificate = Certificate;\nvar dist_PoolId = PoolId;\nvar dist_StakeRegistration = StakeRegistration;\nvar dist_StakeDelegation = StakeDelegation;\nvar dist_CertificateType = CertificateType;\nvar dist_VkeyWitness = VkeyWitness;\nvar Ed25519SignatureHex2 = Ed25519SignatureHex;\nvar Ed25519PublicKey2 = Ed25519PublicKey;\nvar Ed25519Signature2 = Ed25519Signature;\nvar Bip32PrivateKey2 = Bip32PrivateKey;\nvar Bip32PrivateKeyHex2 = Bip32PrivateKeyHex;\nvar Bip32PublicKey2 = Bip32PublicKey;\nvar Bip32PublicKeyHex2 = Bip32PublicKeyHex;\nvar dist_PlutusLanguageVersion = PlutusLanguageVersion;\nvar dist_NativeScript = NativeScript;\nvar dist_PlutusV1Script = PlutusV1Script;\nvar dist_PlutusV2Script = PlutusV2Script;\nvar dist_PlutusV3Script = PlutusV3Script;\nvar dist_PlutusDataKind = PlutusDataKind;\nvar dist_PointerAddress = PointerAddress;\nvar dist_CertIndex = CertIndex;\nvar dist_TxIndex = TxIndex;\nvar dist_Costmdls = Costmdls;\nvar dist_CostModel = CostModel;\nvar dist_CborWriter = CborWriter;\nvar dist_ConstrPlutusData = ConstrPlutusData;\nvar dist_RewardAccount = RewardAccount;\nvar dist_Hash = Hash;\nvar DatumHash = (value) => {\n  return Hash32ByteBase16(value);\n};\nvar dist_Datum = Datum;\nvar dist_ExUnits = ExUnits;\nvar dist_NetworkId = NetworkId;\nvar dist_DatumKind = DatumKind;\nvar dist_CborSet = CborSet;\nvar RequireAllOf = NativeScriptKind.RequireAllOf;\nvar RequireAnyOf = NativeScriptKind.RequireAnyOf;\nvar RequireNOf = NativeScriptKind.RequireNOf;\nvar RequireSignature = NativeScriptKind.RequireSignature;\nvar RequireTimeAfter = NativeScriptKind.RequireTimeAfter;\nvar RequireTimeBefore = NativeScriptKind.RequireTimeBefore;\nvar dist_VrfVkBech32 = VrfVkBech32;\nvar dist_ScriptPubkey = ScriptPubkey;\nvar dist_DRepID = DRepID;\nvar dist_DRep = DRep;\nvar dist_StakeCredentialStatus = StakeCredentialStatus;\nvar dist_HexBlob = esm_primitives_HexBlob;\nvar dist_TxCBOR = TxCBOR;\nvar Ed25519PrivateKey2 = Ed25519PrivateKey;\nvar dist_computeAuxiliaryDataHash = computeAuxiliaryDataHash;\nvar blake2b2 = blake2b;\nvar dist_BootstrapWitness = BootstrapWitness;\n\n// src/message-signing/check-signature.ts\n\n\n// src/message-signing/cose-sign1.ts\nvar import_json_bigint = __toESM(require_json_bigint(), 1);\n\n\n\nvar CoseSign1 = class _CoseSign1 {\n  protectedMap;\n  unProtectedMap;\n  payload;\n  signature;\n  constructor(payload) {\n    this.protectedMap = payload.protectedMap;\n    this.unProtectedMap = payload.unProtectedMap;\n    this.payload = payload.payload;\n    if (!this.unProtectedMap.map.find((value) => {\n      return import_json_bigint.default.stringify(value.k) === import_json_bigint.default.stringify(new cbor_dist.CborText(\"hashed\"));\n    })) {\n      this.unProtectedMap.map.push({\n        k: new cbor_dist.CborText(\"hashed\"),\n        v: new cbor_dist.CborSimple(false)\n      });\n    }\n    this.signature = payload.signature;\n  }\n  static fromCbor(cbor) {\n    const decoded = cbor_dist.Cbor.parse(cbor);\n    if (!(0,cbor_dist.isRawCborArray)(decoded.toRawObj()))\n      throw Error(\"Invalid CBOR\");\n    if (decoded.array.length !== 4) throw Error(\"Invalid COSE_SIGN1\");\n    let protectedMap;\n    const protectedSerialized = decoded.array[0];\n    try {\n      protectedMap = cbor_dist.Cbor.parse(protectedSerialized.bytes);\n      if (!(0,cbor_dist.isRawCborMap)(protectedMap.toRawObj())) {\n        throw Error();\n      }\n    } catch (error) {\n      throw Error(\"Invalid protected\");\n    }\n    let unProtectedMap = decoded.array[1];\n    if (!(0,cbor_dist.isRawCborMap)(unProtectedMap.toRawObj()))\n      throw Error(\"Invalid unprotected\");\n    const payload = decoded.array[2];\n    const signature = decoded.array[3];\n    return new _CoseSign1({\n      protectedMap,\n      unProtectedMap,\n      payload,\n      signature\n    });\n  }\n  createSigStructure(externalAad = buffer.Buffer.alloc(0)) {\n    let protectedSerialized = new cbor_dist.CborBytes(buffer.Buffer.alloc(0));\n    if (this.protectedMap.map.length !== 0) {\n      protectedSerialized = new cbor_dist.CborBytes(\n        cbor_dist.Cbor.encode(this.protectedMap).toBuffer()\n      );\n    }\n    if (!this.payload) throw Error(\"Invalid payload\");\n    const structure = new cbor_dist.CborArray([\n      new cbor_dist.CborText(\"Signature1\"),\n      protectedSerialized,\n      new cbor_dist.CborBytes(externalAad),\n      this.payload\n    ]);\n    return buffer.Buffer.from(cbor_dist.Cbor.encode(structure).toBuffer());\n  }\n  buildMessage(signature) {\n    this.signature = new cbor_dist.CborBytes(signature);\n    let protectedSerialized = new cbor_dist.CborBytes(buffer.Buffer.alloc(0));\n    if (this.protectedMap.map.length !== 0) {\n      protectedSerialized = new cbor_dist.CborBytes(\n        cbor_dist.Cbor.encode(this.protectedMap).toBuffer()\n      );\n    }\n    if (!this.payload) throw Error(\"Invalid payload\");\n    const coseSign1 = new cbor_dist.CborArray([\n      protectedSerialized,\n      this.unProtectedMap,\n      this.payload,\n      this.signature\n    ]);\n    return buffer.Buffer.from(cbor_dist.Cbor.encode(coseSign1).toBuffer());\n  }\n  verifySignature({\n    externalAad = buffer.Buffer.alloc(0),\n    publicKeyBuffer\n  } = {}) {\n    if (!publicKeyBuffer) {\n      publicKeyBuffer = this.getPublicKey();\n    }\n    if (!publicKeyBuffer) throw Error(\"Public key not found\");\n    if (!this.signature) throw Error(\"Signature not found\");\n    const publicKey = new Ed25519PublicKey2(publicKeyBuffer);\n    return publicKey.verify(\n      new Ed25519Signature2(this.signature.bytes),\n      dist_HexBlob(\n        buffer.Buffer.from(this.createSigStructure(externalAad)).toString(\"hex\")\n      )\n    );\n  }\n  hashPayload() {\n    if (!this.unProtectedMap) throw Error(\"Invalid unprotected map\");\n    if (!this.payload) throw Error(\"Invalid payload\");\n    const hashedIndex = this.unProtectedMap.map.findIndex((value) => {\n      return import_json_bigint.default.stringify(value.k) === import_json_bigint.default.stringify(new cbor_dist.CborText(\"hashed\"));\n    });\n    const hashed = this.unProtectedMap.map[hashedIndex];\n    if (hashed && import_json_bigint.default.stringify(hashed.v) === import_json_bigint.default.stringify(new cbor_dist.CborSimple(true)))\n      throw Error(\"Payload already hashed\");\n    if (hashed && import_json_bigint.default.stringify(hashed.v) === import_json_bigint.default.stringify(new cbor_dist.CborSimple(true)) != false)\n      throw Error(\"Invalid unprotected map\");\n    this.unProtectedMap.map.splice(hashedIndex, 1);\n    const hash2 = (0,blakejs.blake2b)(this.payload.bytes, void 0, 24);\n    this.payload = new cbor_dist.CborBytes(hash2);\n  }\n  getAddress() {\n    const address = this.protectedMap.map.find((value) => {\n      return import_json_bigint.default.stringify(value.k) === import_json_bigint.default.stringify(new cbor_dist.CborText(\"address\"));\n    });\n    if (!address) throw Error(\"Address not found\");\n    return buffer.Buffer.from(address.v.bytes);\n  }\n  getPublicKey() {\n    const publicKey = this.protectedMap.map.find((value) => {\n      return import_json_bigint.default.stringify(value.k) === import_json_bigint.default.stringify(new cbor_dist.CborUInt(4));\n    });\n    if (!publicKey) throw Error(\"Public key not found\");\n    return buffer.Buffer.from(publicKey.v.bytes);\n  }\n  getSignature() {\n    return this.signature ? buffer.Buffer.from(this.signature.bytes) : this.signature;\n  }\n  getPayload() {\n    return this.payload ? buffer.Buffer.from(this.payload.bytes) : this.payload;\n  }\n};\nvar getPublicKeyFromCoseKey = (cbor) => {\n  const decodedCoseKey = cbor_dist.Cbor.parse(cbor);\n  const publicKeyEntry = decodedCoseKey.map.find((value) => {\n    return import_json_bigint.default.stringify(value.k) === import_json_bigint.default.stringify(new cbor_dist.CborNegInt(BigInt(-2)));\n  });\n  if (publicKeyEntry) {\n    return buffer.Buffer.from(publicKeyEntry.v.bytes);\n  }\n  throw Error(\"Public key not found\");\n};\nvar getCoseKeyFromPublicKey = (cbor) => {\n  const coseKeyMap = [];\n  coseKeyMap.push({ k: new cbor_dist.CborUInt(1), v: new cbor_dist.CborUInt(1) });\n  coseKeyMap.push({ k: new cbor_dist.CborUInt(3), v: new cbor_dist.CborNegInt(-8) });\n  coseKeyMap.push({ k: new cbor_dist.CborUInt(6), v: new cbor_dist.CborNegInt(-2) });\n  coseKeyMap.push({\n    k: new cbor_dist.CborNegInt(-2),\n    v: new cbor_dist.CborBytes(buffer.Buffer.from(cbor, \"hex\"))\n  });\n  return buffer.Buffer.from(cbor_dist.Cbor.encode(new cbor_dist.CborMap(coseKeyMap)).toBuffer());\n};\n\n// src/message-signing/check-signature.ts\nvar checkSignature = async (data, { key, signature }, address) => {\n  await ready();\n  const builder = CoseSign1.fromCbor(signature);\n  const publicKeyBuffer = getPublicKeyFromCoseKey(key);\n  if (address) {\n    let network = dist_NetworkId.Mainnet;\n    const paymentAddress = dist_BaseAddress.fromAddress(dist_Address.fromBech32(address));\n    const coseSign1PublicKey = Ed25519PublicKey2.fromBytes(publicKeyBuffer);\n    const credential = {\n      hash: Hash28ByteBase162.fromEd25519KeyHashHex(\n        coseSign1PublicKey.hash().hex()\n      ),\n      type: 0\n    };\n    if (address.startsWith(\"addr\")) {\n      if (address.startsWith(\"addr_test1\")) {\n        network = dist_NetworkId.Testnet;\n      }\n      const stakeCredential = paymentAddress?.getStakeCredential();\n      if (stakeCredential) {\n        const paymentAddressBech32 = dist_BaseAddress.fromCredentials(\n          network,\n          credential,\n          stakeCredential\n        ).toAddress().toBech32();\n        if (address !== paymentAddressBech32) {\n          const extractedRewardAddress = dist_RewardAddress.fromCredentials(\n            network,\n            stakeCredential\n          ).toAddress().toBech32();\n          const rewardAddress = dist_RewardAddress.fromCredentials(\n            network,\n            credential\n          ).toAddress().toBech32();\n          if (rewardAddress !== extractedRewardAddress) {\n            return false;\n          }\n        }\n      } else {\n        const enterpriseAddress = dist_EnterpriseAddress.fromCredentials(\n          network,\n          credential\n        ).toAddress().toBech32();\n        if (enterpriseAddress !== address) {\n          return false;\n        }\n      }\n    } else if (address.startsWith(\"stake\")) {\n      if (address.startsWith(\"stake_test1\")) {\n        network = dist_NetworkId.Testnet;\n      }\n      const rewardAddress = dist_RewardAddress.fromCredentials(network, credential).toAddress().toBech32();\n      if (rewardAddress !== address) {\n        return false;\n      }\n    } else {\n      return false;\n    }\n  }\n  if (builder.getPayload() === null) {\n    return false;\n  }\n  if (core_cst_dist_Buffer.from(data, \"hex\").compare(builder.getPayload()) !== 0) {\n    return false;\n  }\n  return builder.verifySignature({\n    publicKeyBuffer\n  });\n};\n\n// ../../node_modules/nanoid/index.js\n\nvar POOL_SIZE_MULTIPLIER = 128;\nvar pool;\nvar poolOffset;\nvar fillPool = (bytes) => {\n  if (!pool || pool.length < bytes) {\n    pool = core_cst_dist_Buffer.allocUnsafe(bytes * POOL_SIZE_MULTIPLIER);\n    crypto_browserify.randomFillSync(pool);\n    poolOffset = 0;\n  } else if (poolOffset + bytes > pool.length) {\n    crypto_browserify.randomFillSync(pool);\n    poolOffset = 0;\n  }\n  poolOffset += bytes;\n};\nvar random = (bytes) => {\n  fillPool(bytes |= 0);\n  return pool.subarray(poolOffset - bytes, poolOffset);\n};\nvar customRandom = (alphabet, defaultSize, getRandom) => {\n  let mask = (2 << 31 - Math.clz32(alphabet.length - 1 | 1)) - 1;\n  let step = Math.ceil(1.6 * mask * defaultSize / alphabet.length);\n  return (size = defaultSize) => {\n    let id = \"\";\n    while (true) {\n      let bytes = getRandom(step);\n      let i = step;\n      while (i--) {\n        id += alphabet[bytes[i] & mask] || \"\";\n        if (id.length === size) return id;\n      }\n    }\n  };\n};\nvar customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size, random);\n\n// src/message-signing/generate-nonce.ts\n\nvar generateNonce = (label = \"\", length = 32) => {\n  if (length <= 0 || length > 2048) {\n    throw new Error(\"Length must be bewteen 1 and 2048\");\n  }\n  const randomString = customAlphabet(\n    \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\"\n  );\n  const payload = randomString(length);\n  return stringToHex(`${label}${payload}`);\n};\n\n// src/message-signing/sign-data.ts\n\nvar signData = (data, signer) => {\n  const payload = core_cst_dist_Buffer.from(data, \"hex\");\n  const publicKey = core_cst_dist_Buffer.from(signer.key.toPublic().bytes());\n  const protectedMap = [];\n  protectedMap.push({ k: new cbor_dist.CborUInt(1), v: new cbor_dist.CborNegInt(-8) });\n  protectedMap.push({ k: new cbor_dist.CborUInt(4), v: new cbor_dist.CborBytes(publicKey) });\n  protectedMap.push({\n    k: new cbor_dist.CborText(\"address\"),\n    v: new cbor_dist.CborBytes(core_cst_dist_Buffer.from(signer.address.toBytes(), \"hex\"))\n  });\n  const coseSign1Builder = new CoseSign1({\n    protectedMap: new cbor_dist.CborMap(protectedMap),\n    unProtectedMap: new cbor_dist.CborMap([]),\n    payload: new cbor_dist.CborBytes(payload)\n  });\n  const signature = signer.key.sign(\n    dist_HexBlob(core_cst_dist_Buffer.from(coseSign1Builder.createSigStructure()).toString(\"hex\"))\n  );\n  const coseSignature = coseSign1Builder.buildMessage(core_cst_dist_Buffer.from(signature.bytes())).toString(\"hex\");\n  return {\n    key: getCoseKeyFromPublicKey(publicKey.toString(\"hex\")).toString(\"hex\"),\n    signature: coseSignature\n  };\n};\n\n// src/resolvers/index.ts\n\n\n\n\n\n\n\n// src/utils/builder.ts\nvar import_hash = __toESM(require_hash(), 1);\n\n\n\n\nvar buildBaseAddress = (networkId, paymentKeyHash, stakeKeyHash) => {\n  return dist_BaseAddress.fromCredentials(\n    networkId,\n    {\n      hash: paymentKeyHash,\n      type: dist_CredentialType.KeyHash\n    },\n    {\n      hash: stakeKeyHash,\n      type: dist_CredentialType.KeyHash\n    }\n  );\n};\nvar buildEnterpriseAddress = (networkId, paymentKeyHash) => {\n  return dist_EnterpriseAddress.fromCredentials(networkId, {\n    hash: paymentKeyHash,\n    type: dist_CredentialType.KeyHash\n  });\n};\nvar dist_clampScalar = (scalar) => {\n  if (scalar[0] !== void 0) {\n    scalar[0] &= 248;\n  }\n  if (scalar[31] !== void 0) {\n    scalar[31] &= 31;\n    scalar[31] |= 64;\n  }\n  return scalar;\n};\nvar buildBip32PrivateKey = (entropy, password = \"\") => {\n  const PBKDF2_ITERATIONS = 4096;\n  const PBKDF2_KEY_SIZE = 96;\n  const PBKDF2_DIGEST_ALGORITHM = \"sha512\";\n  const _entropy = core_cst_dist_Buffer.from(entropy, \"hex\");\n  const xprv = (0,crypto_browserify.pbkdf2Sync)(\n    password,\n    _entropy,\n    PBKDF2_ITERATIONS,\n    PBKDF2_KEY_SIZE,\n    PBKDF2_DIGEST_ALGORITHM\n  );\n  return Bip32PrivateKey2.fromBytes(dist_clampScalar(xprv));\n};\nvar buildRewardAddress = (networkId, stakeKeyHash) => {\n  const cred = {\n    type: dist_CredentialType.KeyHash,\n    hash: stakeKeyHash\n  };\n  return dist_RewardAddress.fromCredentials(networkId, cred);\n};\nvar buildKeys = (privateKeyHex, accountIndex, keyIndex = 0) => {\n  if (typeof privateKeyHex === \"string\") {\n    const privateKey = Bip32PrivateKey2.fromHex(\n      Bip32PrivateKeyHex2(privateKeyHex)\n    );\n    const accountKey = privateKey.derive([\n      HARDENED_KEY_START + 1852,\n      // purpose\n      HARDENED_KEY_START + 1815,\n      // coin type\n      HARDENED_KEY_START + accountIndex\n      // account index\n    ]);\n    const paymentKey = accountKey.derive([0, keyIndex]).toRawKey();\n    const stakeKey = accountKey.derive([2, 0]).toRawKey();\n    const dRepKey = accountKey.derive([3, keyIndex]).toRawKey();\n    return { paymentKey, stakeKey, dRepKey };\n  } else {\n    const paymentKey = Ed25519PrivateKey2.fromNormalHex(\n      dist_Ed25519PrivateNormalKeyHex(privateKeyHex[0])\n    );\n    const stakeKey = Ed25519PrivateKey2.fromNormalHex(\n      dist_Ed25519PrivateNormalKeyHex(privateKeyHex[1])\n    );\n    return { paymentKey, stakeKey };\n  }\n};\nvar buildEd25519PrivateKeyFromSecretKey = (secretKeyHex) => {\n  return Ed25519PrivateKey2.fromExtendedBytes(\n    new Uint8Array(\n      dist_clampScalar(\n        core_cst_dist_Buffer.from(\n          import_hash.default.sha512().update(core_cst_dist_Buffer.from(secretKeyHex, \"hex\")).digest()\n        )\n      )\n    )\n  );\n};\nvar buildScriptPubkey = (keyHash) => {\n  const scriptPubkey = new dist_ScriptPubkey(Ed25519KeyHashHex2(keyHash.hex()));\n  return dist_NativeScript.newScriptPubkey(scriptPubkey);\n};\nvar buildDRepID = (dRepKey, networkId = dist_NetworkId.Testnet, addressType = dist_AddressType.EnterpriseKey) => {\n  const dRepKeyBytes = core_cst_dist_Buffer.from(dRepKey, \"hex\");\n  const dRepIdHex = blake2b(28).update(dRepKeyBytes).digest(\"hex\");\n  const paymentAddress = dist_EnterpriseAddress.packParts({\n    networkId,\n    paymentPart: {\n      hash: Hash28ByteBase162(dRepIdHex),\n      type: dist_CredentialType.KeyHash\n    },\n    type: addressType\n  });\n  return esm_primitives_HexBlob.toTypedBech32(\n    \"drep\",\n    esm_primitives_HexBlob.fromBytes(paymentAddress)\n  );\n};\n\n// src/utils/converter.ts\n\n\n\n\n\n\n\n// src/utils/data.ts\n\n\nvar toPlutusData = (data) => {\n  const toPlutusList = (data2) => {\n    const plutusList = new dist_PlutusList();\n    data2.forEach((element) => {\n      plutusList.add(toPlutusData(element));\n    });\n    return plutusList;\n  };\n  switch (typeof data) {\n    case \"string\":\n      return dist_PlutusData.newBytes(toBytes(data));\n    case \"number\":\n      return dist_PlutusData.newInteger(BigInt(data));\n    case \"bigint\":\n      return dist_PlutusData.newInteger(BigInt(data));\n    case \"object\":\n      if (data instanceof Array) {\n        const plutusList = toPlutusList(data);\n        return dist_PlutusData.newList(plutusList);\n      } else if (data instanceof Map) {\n        const plutusMap = new dist_PlutusMap();\n        data.forEach((value, key) => {\n          plutusMap.insert(toPlutusData(key), toPlutusData(value));\n        });\n        return dist_PlutusData.newMap(plutusMap);\n      } else {\n        return dist_PlutusData.newConstrPlutusData(\n          new dist_ConstrPlutusData(\n            BigInt(data.alternative),\n            toPlutusList(data.fields)\n          )\n        );\n      }\n  }\n};\nvar isConstrPlutusDataJson = (data) => {\n  return typeof data === \"object\" && \"constructor\" in data && (typeof data.constructor === \"number\" || typeof data.constructor === \"bigint\" || typeof data.constructor === \"string\") && \"fields\" in data && Array.isArray(data.fields);\n};\nfunction isMapPlutusDataJson(data) {\n  return typeof data === \"object\" && Array.isArray(data);\n}\nfunction isKeyValuePlutusDataJson(data) {\n  return typeof data === \"object\" && \"k\" in data && typeof data.k === \"object\" && \"v\" in data && typeof data.v === \"object\";\n}\nvar fromJsonToPlutusData = (data) => {\n  if (isConstrPlutusDataJson(data)) {\n    const plutusList = new dist_PlutusList();\n    data.fields.map((val) => {\n      plutusList.add(fromJsonToPlutusData(val));\n    });\n    const plutusConstrData = new dist_ConstrPlutusData(\n      BigInt(data.constructor),\n      plutusList\n    );\n    return dist_PlutusData.newConstrPlutusData(plutusConstrData);\n  } else if (\"int\" in data && Object.keys(data).length === 1) {\n    if (typeof data.int === \"bigint\" || typeof data.int === \"number\" || typeof data.int === \"string\") {\n      return dist_PlutusData.newInteger(BigInt(data.int));\n    } else {\n      throw new Error(\n        \"Malformed int field in Plutus data, expected one of bigint, number or string\"\n      );\n    }\n  } else if (\"bytes\" in data && Object.keys(data).length === 1) {\n    if (typeof data.bytes === \"string\") {\n      return dist_PlutusData.newBytes(core_cst_dist_Buffer.from(data.bytes, \"hex\"));\n    } else {\n      throw new Error(\"Malformed bytes field in Plutus data, expected string\");\n    }\n  } else if (\"list\" in data && Object.keys(data).length === 1) {\n    if (Array.isArray(data.list)) {\n      const plutusList = new dist_PlutusList();\n      data.list.map((val) => {\n        plutusList.add(fromJsonToPlutusData(val));\n      });\n      return dist_PlutusData.newList(plutusList);\n    } else {\n      throw new Error(\"Malformed list field in Plutus data, expected list\");\n    }\n  } else if (\"map\" in data && Object.keys(data).length === 1) {\n    if (isMapPlutusDataJson(data.map)) {\n      const plutusMap = new dist_PlutusMap();\n      data.map.forEach((val) => {\n        if (isKeyValuePlutusDataJson(val)) {\n          plutusMap.insert(\n            fromJsonToPlutusData(val.k),\n            fromJsonToPlutusData(val.v)\n          );\n        } else {\n          throw new Error(\"Malformed key value pair in Plutus data map\");\n        }\n      });\n      return dist_PlutusData.newMap(plutusMap);\n    } else {\n      console.log(data);\n      throw new Error(\"Malformed map field in Plutus data\");\n    }\n  } else {\n    throw new Error(\"Malformed Plutus data json\");\n  }\n};\nvar fromBuilderToPlutusData = (data) => {\n  if (data.type === \"Mesh\") {\n    return toPlutusData(data.content);\n  } else if (data.type === \"CBOR\") {\n    return dist_PlutusData.fromCbor(esm_primitives_HexBlob(data.content));\n  } else if (data.type === \"JSON\") {\n    let content;\n    if (typeof data.content === \"string\") {\n      content = JSON.parse(data.content);\n    } else {\n      content = data.content;\n    }\n    return fromJsonToPlutusData(content);\n  } else {\n    throw new Error(\n      \"Malformed builder data, expected types of, Mesh, CBOR or JSON\"\n    );\n  }\n};\nvar fromPlutusDataToJson = (data) => {\n  if (data.getKind() === dist_PlutusDataKind.ConstrPlutusData) {\n    const plutusData = data.asConstrPlutusData();\n    if (plutusData !== void 0) {\n      const fields = plutusData.getData();\n      const list = [];\n      for (let i = 0; i < fields.getLength(); i++) {\n        const element = fields.get(i);\n        list.push(fromPlutusDataToJson(element));\n      }\n      return {\n        constructor: plutusData.getAlternative(),\n        fields: list\n      };\n    } else {\n      throw new Error(\"Invalid constructor data found\");\n    }\n  } else if (data.getKind() === dist_PlutusDataKind.Map) {\n    const plutusMap = data.asMap();\n    const mapList = [];\n    if (plutusMap !== void 0) {\n      const keys = plutusMap.getKeys();\n      for (let i = 0; i < keys.getLength(); i++) {\n        const key = keys.get(i);\n        const value = plutusMap.get(key);\n        if (value) {\n          mapList.push({\n            k: fromPlutusDataToJson(key),\n            v: fromPlutusDataToJson(value)\n          });\n        }\n      }\n      return {\n        map: mapList\n      };\n    } else {\n      throw new Error(\"Invalid map data found\");\n    }\n  } else if (data.getKind() === dist_PlutusDataKind.List) {\n    const plutusList = data.asList();\n    if (plutusList !== void 0) {\n      const list = [];\n      for (let i = 0; i < plutusList.getLength(); i++) {\n        const element = plutusList.get(i);\n        list.push(fromPlutusDataToJson(element));\n      }\n      return { list };\n    } else {\n      throw new Error(\"Invalid list data found\");\n    }\n  } else if (data.getKind() === dist_PlutusDataKind.Integer) {\n    const plutusInt = data.asInteger();\n    if (plutusInt !== void 0) {\n      return {\n        int: plutusInt\n      };\n    } else {\n      throw new Error(\"Invalid integer data found\");\n    }\n  } else if (data.getKind() === dist_PlutusDataKind.Bytes) {\n    const plutusBytes = data.asBoundedBytes();\n    if (plutusBytes !== void 0) {\n      return {\n        bytes: core_cst_dist_Buffer.from(plutusBytes).toString(\"hex\")\n      };\n    } else {\n      throw new Error(\"Invalid bytes data found\");\n    }\n  } else {\n    throw new Error(\"Invalid Plutus data found\");\n  }\n};\nvar datumCborToJson = (datumCbor) => {\n  const parsedDatum = dist_PlutusData.fromCbor(esm_primitives_HexBlob(datumCbor));\n  return fromPlutusDataToJson(parsedDatum);\n};\nvar parseDatumCbor = (datumCbor) => {\n  return datumCborToJson(datumCbor);\n};\nvar parseInlineDatum = (utxo) => {\n  const datumCbor = utxo.inline_datum || \"\";\n  return datumCborToJson(datumCbor);\n};\nvar deserializeDataHash = (dataHash) => DatumHash(dataHash);\nvar deserializePlutusData = (plutusData) => dist_PlutusData.fromCbor(esm_primitives_HexBlob(plutusData));\n\n// src/utils/deserializer.ts\n\n\n\n\nvar deserializeEd25519KeyHash = (ed25519KeyHash) => Ed25519KeyHash2.fromBytes(toBytes(ed25519KeyHash));\nvar deserializePlutusScript = (plutusScript, version) => {\n  switch (version) {\n    case \"V1\":\n      return dist_PlutusV1Script.fromCbor(esm_primitives_HexBlob(plutusScript));\n    case \"V2\":\n      return dist_PlutusV2Script.fromCbor(esm_primitives_HexBlob(plutusScript));\n    case \"V3\":\n      return dist_PlutusV3Script.fromCbor(esm_primitives_HexBlob(plutusScript));\n    default:\n      throw new Error(\"Invalid Plutus script version\");\n  }\n};\nvar deserializeNativeScript = (nativeScript) => dist_NativeScript.fromCbor(esm_primitives_HexBlob(nativeScript));\nvar deserializeScriptHash = (scriptHash) => ScriptHash.fromEd25519KeyHashHex(Ed25519KeyHashHex(scriptHash));\nvar deserializeScriptRef = (scriptRef) => dist_Script.fromCbor(esm_primitives_HexBlob(scriptRef));\nvar deserializeTxUnspentOutput = (txUnspentOutput) => dist_TransactionUnspentOutput.fromCbor(esm_primitives_HexBlob(txUnspentOutput));\nvar deserializeValue = (value) => dist_Value.fromCbor(esm_primitives_HexBlob(value));\nvar dist_deserializeTx = (tx) => dist_Transaction.fromCbor(TxCBOR(tx));\nvar deserializeTxHash = (txHash) => dist_TransactionId(txHash);\n\n// src/utils/converter.ts\nvar toAddress = (bech325) => dist_Address.fromBech32(bech325);\nvar toCardanoAddress = (address) => {\n  try {\n    return dist_Address.fromBech32(address);\n  } catch {\n    try {\n      return dist_Address.fromBase58(address);\n    } catch {\n      throw new Error(`Invalid address format, ${address}`);\n    }\n  }\n};\nvar toBaseAddress = (bech325) => {\n  return dist_BaseAddress.fromAddress(toAddress(bech325));\n};\nvar toEnterpriseAddress = (bech325) => {\n  return dist_EnterpriseAddress.fromAddress(toAddress(bech325));\n};\nvar toRewardAddress = (bech325) => dist_RewardAddress.fromAddress(toAddress(bech325));\nvar fromTxUnspentOutput = (txUnspentOutput) => {\n  const dataHash = txUnspentOutput.output().datum() ? txUnspentOutput.output().datum()?.toCbor().toString() : void 0;\n  const scriptRef = txUnspentOutput.output().scriptRef() ? txUnspentOutput.output().scriptRef()?.toCbor().toString() : void 0;\n  const plutusData = txUnspentOutput.output().datum()?.asInlineData() ? txUnspentOutput.output().datum()?.asInlineData()?.toCbor().toString() : void 0;\n  return {\n    input: {\n      outputIndex: Number(txUnspentOutput.input().index()),\n      txHash: txUnspentOutput.input().transactionId()\n    },\n    output: {\n      address: txUnspentOutput.output().address().toBech32(),\n      amount: fromValue(txUnspentOutput.output().amount()),\n      dataHash,\n      // todo not sure if correct\n      plutusData,\n      // todo not sure if correct\n      scriptRef\n      // todo not sure if correct\n    }\n  };\n};\nvar toTxUnspentOutput = (utxo) => {\n  const txInput = new dist_TransactionInput(\n    deserializeTxHash(utxo.input.txHash),\n    BigInt(utxo.input.outputIndex)\n  );\n  const txOutput = new dist_TransactionOutput(\n    toAddress(utxo.output.address),\n    toValue(utxo.output.amount)\n  );\n  if (utxo.output.dataHash !== void 0) {\n    txOutput.setDatum(\n      dist_Datum.fromCore(deserializeDataHash(utxo.output.dataHash))\n    );\n  }\n  if (utxo.output.plutusData !== void 0) {\n    const plutusData = deserializePlutusData(utxo.output.plutusData);\n    const datum = new Datum(void 0, plutusData);\n    txOutput.setDatum(datum);\n  }\n  if (utxo.output.scriptRef !== void 0) {\n    txOutput.setScriptRef(deserializeScriptRef(utxo.output.scriptRef));\n  }\n  return new dist_TransactionUnspentOutput(txInput, txOutput);\n};\nvar addressToBech32 = (address) => {\n  return address.toBech32();\n};\nvar fromValue = (value) => {\n  const assets = [\n    { unit: \"lovelace\", quantity: value.coin().toString() }\n  ];\n  const multiAsset = value.multiasset();\n  if (multiAsset !== void 0) {\n    const _assets = Array.from(multiAsset.keys());\n    for (let i = 0; i < _assets.length; i += 1) {\n      const assetId = _assets[i];\n      if (assetId !== void 0) {\n        const assetQuantity = multiAsset.get(assetId);\n        if (assetQuantity !== void 0) {\n          assets.push({\n            unit: assetId,\n            quantity: assetQuantity.toString()\n          });\n        }\n      }\n    }\n  }\n  return assets;\n};\nvar toScriptRef = (script) => {\n  if (\"code\" in script) {\n    const plutusScript = deserializePlutusScript(script.code, script.version);\n    if (plutusScript instanceof dist_PlutusV1Script)\n      return dist_Script.newPlutusV1Script(plutusScript);\n    if (plutusScript instanceof dist_PlutusV2Script)\n      return dist_Script.newPlutusV2Script(plutusScript);\n    if (plutusScript instanceof dist_PlutusV3Script)\n      return dist_Script.newPlutusV3Script(plutusScript);\n  }\n  return dist_Script.newNativeScript(toNativeScript(script));\n};\nvar fromScriptRef = (scriptRef) => {\n  const script = dist_Script.fromCbor(esm_primitives_HexBlob(scriptRef));\n  const plutusScriptCodeV3 = script.asPlutusV3()?.toCbor().toString();\n  if (plutusScriptCodeV3) {\n    return {\n      code: plutusScriptCodeV3,\n      version: \"V3\"\n    };\n  }\n  const plutusScriptCodeV2 = script.asPlutusV2()?.toCbor().toString();\n  if (plutusScriptCodeV2) {\n    return {\n      code: plutusScriptCodeV2,\n      version: \"V2\"\n    };\n  }\n  const plutusScriptCodeV1 = script.asPlutusV1()?.toCbor().toString();\n  if (plutusScriptCodeV1) {\n    return {\n      code: plutusScriptCodeV1,\n      version: \"V1\"\n    };\n  }\n  const nativeScript = script.asNative();\n  if (!nativeScript) {\n    throw new Error(\"Invalid script\");\n  }\n  return fromNativeScript(nativeScript);\n};\nvar fromNativeScript = (script) => {\n  const fromNativeScripts = (scripts) => {\n    const nativeScripts = new Array();\n    for (let index = 0; index < scripts.length; index += 1) {\n      const script2 = scripts[index];\n      if (script2) {\n        nativeScripts.push(fromNativeScript(script2));\n      }\n    }\n    return nativeScripts;\n  };\n  switch (script.kind()) {\n    case RequireAllOf: {\n      const scriptAll = script.asScriptAll();\n      return {\n        type: \"all\",\n        scripts: fromNativeScripts(scriptAll.nativeScripts())\n      };\n    }\n    case RequireAnyOf: {\n      const scriptAny = script.asScriptAny();\n      return {\n        type: \"any\",\n        scripts: fromNativeScripts(scriptAny.nativeScripts())\n      };\n    }\n    case RequireNOf: {\n      const scriptNOfK = script.asScriptNOfK();\n      return {\n        type: \"atLeast\",\n        required: scriptNOfK.required(),\n        scripts: fromNativeScripts(scriptNOfK.nativeScripts())\n      };\n    }\n    case RequireTimeAfter: {\n      const timelockStart = script.asTimelockStart();\n      return {\n        type: \"after\",\n        slot: timelockStart.slot().toString()\n      };\n    }\n    case RequireTimeBefore: {\n      const timelockExpiry = script.asTimelockExpiry();\n      return {\n        type: \"before\",\n        slot: timelockExpiry.slot().toString()\n      };\n    }\n    case RequireSignature: {\n      const scriptPubkey = script.asScriptPubkey();\n      return {\n        type: \"sig\",\n        keyHash: scriptPubkey.keyHash().toString()\n      };\n    }\n    default:\n      throw new Error(`Script Kind: ${script.kind()}, is not supported`);\n  }\n};\nvar toNativeScript = (script) => {\n  const toNativeScripts = (scripts) => {\n    const nativeScripts = [];\n    scripts.forEach((script2) => {\n      nativeScripts.push(toNativeScript(script2));\n    });\n    return nativeScripts;\n  };\n  switch (script.type) {\n    case \"all\":\n      return dist_NativeScript.newScriptAll(\n        new ScriptAll(toNativeScripts(script.scripts))\n      );\n    case \"any\":\n      return dist_NativeScript.newScriptAny(\n        new ScriptAny(toNativeScripts(script.scripts))\n      );\n    case \"atLeast\":\n      return dist_NativeScript.newScriptNOfK(\n        new ScriptNOfK(\n          toNativeScripts(script.scripts),\n          script.required\n        )\n      );\n    case \"after\":\n      return dist_NativeScript.newTimelockStart(\n        new TimelockStart(dist_Slot(parseInt(script.slot)))\n      );\n    case \"before\":\n      return dist_NativeScript.newTimelockExpiry(\n        new TimelockExpiry(dist_Slot(parseInt(script.slot)))\n      );\n    case \"sig\":\n      return dist_NativeScript.newScriptPubkey(\n        new ScriptPubkey(\n          Ed25519KeyHash.fromBytes(toBytes(script.keyHash)).hex()\n        )\n      );\n  }\n};\nvar toValue = (assets) => {\n  const multiAsset = /* @__PURE__ */ new Map();\n  assets.filter((asset) => asset.unit !== \"lovelace\" && asset.unit !== \"\").forEach((asset) => {\n    multiAsset.set(dist_AssetId(asset.unit), BigInt(asset.quantity));\n  });\n  const lovelace = assets.find((asset) => asset.unit === \"lovelace\" || asset.unit === \"\");\n  const value = new dist_Value(BigInt(lovelace ? lovelace.quantity : 0));\n  if (assets.length > 1 || !lovelace) {\n    value.setMultiasset(multiAsset);\n  }\n  return value;\n};\nvar toDRep = (dRepId) => {\n  if (dRepId.length === 58) {\n    const { prefix, words } = dist.bech32.decode(dRepId);\n    if (prefix !== \"drep\") {\n      throw new Error(\"Invalid DRepId prefix\");\n    }\n    const bytes = base32_encoding.decode(new Uint8Array(words));\n    if (bytes[0] === 34) {\n      return DRep.newKeyHash(\n        Ed25519KeyHashHex2(bytes.subarray(1).toString(\"hex\"))\n      );\n    } else if (bytes[0] === 35) {\n      return DRep.newScriptHash(\n        Hash28ByteBase162(bytes.subarray(1).toString(\"hex\"))\n      );\n    } else {\n      throw new Error(\"Malformed CIP129 DRepId\");\n    }\n  } else {\n    const { prefix, words } = dist.bech32.decode(dRepId);\n    switch (prefix) {\n      case \"drep\": {\n        return DRep.newKeyHash(\n          Ed25519KeyHashHex2(\n            base32_encoding.decode(new Uint8Array(words)).toString(\"hex\")\n          )\n        );\n      }\n      case \"drep_script\": {\n        return DRep.newScriptHash(\n          Hash28ByteBase162(\n            base32_encoding.decode(new Uint8Array(words)).toString(\"hex\")\n          )\n        );\n      }\n      default: {\n        throw new Error(\"Malformed DRepId prefix\");\n      }\n    }\n  }\n};\nvar getDRepIds = (dRepId) => {\n  let result = {\n    cip105: \"\",\n    cip129: \"\"\n  };\n  if (dRepId.length === 58) {\n    result.cip129 = dRepId;\n    const { prefix, words } = dist.bech32.decode(dRepId);\n    if (prefix !== \"drep\") {\n      throw new Error(\"Malformed CIP129 DRepId\");\n    }\n    const bytes = base32_encoding.decode(new Uint8Array(words));\n    if (bytes[0] === 34) {\n      result.cip105 = dist.bech32.encode(\"drep\", base32_encoding.encode(bytes.subarray(1)));\n    } else if (bytes[0] === 35) {\n      result.cip105 = dist.bech32.encode(\n        \"drep_script\",\n        base32_encoding.encode(bytes.subarray(1))\n      );\n    } else {\n      throw new Error(\"Malformed CIP129 DRepId\");\n    }\n  } else {\n    result.cip105 = dRepId;\n    try {\n      const { prefix, words } = dist.bech32.decode(dRepId);\n      let rawBytes = base32_encoding.decode(new Uint8Array(words));\n      if (prefix === \"drep\") {\n        if (!rawBytes) {\n          throw new Error(\"Malformed key hash in DRepId\");\n        }\n        let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);\n        rawBytesWithPrefix.set([34]);\n        rawBytesWithPrefix.set(rawBytes, 1);\n        let base32RawBytes = base32_encoding.encode(rawBytesWithPrefix);\n        result.cip129 = dist.bech32.encode(\"drep\", base32RawBytes);\n      } else if (prefix === \"drep_script\") {\n        if (!rawBytes) {\n          throw new Error(\"Malformed script hash in DRepId\");\n        }\n        let rawBytesWithPrefix = new Uint8Array(rawBytes.length + 1);\n        rawBytesWithPrefix.set([35]);\n        rawBytesWithPrefix.set(rawBytes, 1);\n        let base32RawBytes = base32_encoding.encode(rawBytesWithPrefix);\n        result.cip129 = dist.bech32.encode(\"drep\", base32RawBytes);\n      } else {\n        throw new Error(\"Can only calculate DRepIds for script/key DReps\");\n      }\n    } catch (e) {\n      console.error(e);\n      throw new Error(\"Malformed DRepId\");\n    }\n  }\n  return result;\n};\n\n// src/utils/value.ts\nfunction mergeValue(a, b) {\n  const ma = a.multiasset() ?? /* @__PURE__ */ new Map();\n  b.multiasset()?.forEach((v, k) => {\n    const newVal = (ma.get(k) ?? 0n) + v;\n    if (newVal == 0n) {\n      ma.delete(k);\n    } else {\n      ma.set(k, newVal);\n    }\n  });\n  return new dist_Value(\n    BigInt(a.coin()) + BigInt(b.coin()),\n    ma.size > 0 ? ma : void 0\n  );\n}\nfunction negateValue(v) {\n  const entries = v.multiasset()?.entries();\n  const tokenMap = /* @__PURE__ */ new Map();\n  if (entries) {\n    for (const entry of entries) {\n      tokenMap.set(entry[0], -entry[1]);\n    }\n  }\n  return new dist_Value(-v.coin(), tokenMap);\n}\nfunction subValue(a, b) {\n  return mergeValue(a, negateValue(b));\n}\nfunction negatives(v) {\n  const entries = v.multiasset()?.entries();\n  const coin = v.coin() < 0n ? v.coin() : 0n;\n  const tokenMap = /* @__PURE__ */ new Map();\n  if (entries) {\n    for (const entry of entries) {\n      if (entry[1] < 0n) {\n        tokenMap.set(entry[0], entry[1]);\n      }\n    }\n  }\n  return new dist_Value(coin, tokenMap);\n}\nfunction assetTypes(v) {\n  let count = v.coin() == 0n ? 0 : 1;\n  const entries = v.multiasset();\n  if (entries) {\n    entries.forEach(() => {\n      count += 1;\n    });\n  }\n  return count;\n}\nfunction dist_empty(v) {\n  return assetTypes(v) == 0;\n}\n\n// src/utils/address.ts\n\n\nvar serialzeAddress = (deserializedAddress, networkId = 0) => {\n  const {\n    pubKeyHash,\n    scriptHash,\n    stakeCredentialHash,\n    stakeScriptCredentialHash\n  } = deserializedAddress;\n  const isPaymentScript = !pubKeyHash;\n  const isStakeScript = !stakeCredentialHash;\n  const paymentHash = isPaymentScript ? scriptHash : pubKeyHash;\n  const stakeHash = isStakeScript ? stakeScriptCredentialHash : stakeCredentialHash;\n  if (!paymentHash)\n    throw new Error(\n      \"Error: serializeAddress: Address must contain a payment part\"\n    );\n  const addressObj = isPaymentScript ? scriptAddress(paymentHash, stakeHash, isStakeScript) : pubKeyAddress(paymentHash, stakeHash, isStakeScript);\n  return serializeAddressObj(addressObj, networkId);\n};\nvar addrBech32ToPlutusData = (bech325) => {\n  const cardanoAddress = dist_Address.fromBech32(bech325);\n  const cardanoAddressProps = cardanoAddress.getProps();\n  const paymentPartList = new dist_PlutusList();\n  if (!cardanoAddressProps.paymentPart) {\n    throw new Error(\n      \"Error: addrBech32ToPlutusDataHex: Address must contain a payment part\"\n    );\n  }\n  paymentPartList.add(\n    dist_PlutusData.newBytes(\n      core_cst_dist_Buffer.from(cardanoAddressProps.paymentPart.hash, \"hex\")\n    )\n  );\n  const paymentPart = dist_PlutusData.newConstrPlutusData(\n    new dist_ConstrPlutusData(\n      BigInt(cardanoAddressProps.paymentPart.type),\n      paymentPartList\n    )\n  );\n  const delegationPartList = new dist_PlutusList();\n  let delegationPart;\n  if (cardanoAddressProps.delegationPart) {\n    delegationPartList.add(\n      dist_PlutusData.newBytes(\n        core_cst_dist_Buffer.from(cardanoAddressProps.delegationPart.hash, \"hex\")\n      )\n    );\n    const inlineDelegationPart = dist_PlutusData.newConstrPlutusData(\n      new dist_ConstrPlutusData(BigInt(0), delegationPartList)\n    );\n    const someList = new dist_PlutusList();\n    someList.add(inlineDelegationPart);\n    delegationPart = dist_PlutusData.newConstrPlutusData(\n      new dist_ConstrPlutusData(BigInt(0), someList)\n    );\n  } else if (cardanoAddressProps.pointer) {\n    const pointerList = new dist_PlutusList();\n    pointerList.add(\n      dist_PlutusData.newInteger(BigInt(cardanoAddressProps.pointer.slot))\n    );\n    pointerList.add(\n      dist_PlutusData.newInteger(BigInt(cardanoAddressProps.pointer.txIndex))\n    );\n    pointerList.add(\n      dist_PlutusData.newInteger(BigInt(cardanoAddressProps.pointer.certIndex))\n    );\n    const pointer = dist_PlutusData.newConstrPlutusData(\n      new dist_ConstrPlutusData(BigInt(1), pointerList)\n    );\n    const someList = new dist_PlutusList();\n    someList.add(pointer);\n    delegationPart = dist_PlutusData.newConstrPlutusData(\n      new dist_ConstrPlutusData(BigInt(0), someList)\n    );\n  } else {\n    delegationPart = dist_PlutusData.newConstrPlutusData(\n      new dist_ConstrPlutusData(BigInt(1), new dist_PlutusList())\n    );\n  }\n  const addressList = new dist_PlutusList();\n  addressList.add(paymentPart);\n  addressList.add(delegationPart);\n  return dist_PlutusData.newConstrPlutusData(\n    new dist_ConstrPlutusData(BigInt(0), addressList)\n  );\n};\nvar addrBech32ToPlutusDataHex = (bech325) => {\n  return addrBech32ToPlutusData(bech325).toCbor();\n};\nvar addrBech32ToPlutusDataObj = (bech325) => {\n  return fromPlutusDataToJson(addrBech32ToPlutusData(bech325));\n};\nvar plutusDataToAddrBech32 = (plutusData, networkId = 0) => {\n  const constrPlutusData = plutusData.asConstrPlutusData();\n  if (!constrPlutusData || constrPlutusData.getAlternative() !== BigInt(0)) {\n    throw new Error(\n      \"Error: serializeAddressObj: Address must contain a constructor 0\"\n    );\n  }\n  const plutusDataList = constrPlutusData.getData();\n  if (plutusDataList.getLength() !== 2) {\n    throw new Error(\"Error: serializeAddressObj: Address must contain 2 parts\");\n  }\n  const paymentData = plutusDataList.get(0);\n  const paymentConstrData = paymentData.asConstrPlutusData();\n  if (!paymentConstrData) {\n    throw new Error(\n      \"Error: serializeAddressObj: Payment part must be a constructor\"\n    );\n  }\n  const paymentConstrDataList = paymentConstrData.getData();\n  if (paymentConstrDataList.getLength() !== 1) {\n    throw new Error(\n      \"Error: serializeAddressObj: Payment part must contain 1 element\"\n    );\n  }\n  const paymentBytes = paymentConstrDataList.get(0).asBoundedBytes();\n  if (!paymentBytes) {\n    throw new Error(\n      \"Error: serializeAddressObj: Payment inner part must be bytes\"\n    );\n  }\n  if (paymentConstrData.getAlternative() !== BigInt(0) && paymentConstrData.getAlternative() !== BigInt(1)) {\n    throw new Error(\n      \"Error: serializeAddressObj: Payment part must be alternative 0 or 1\"\n    );\n  }\n  const cardanoPaymentCredential = {\n    hash: Hash28ByteBase162(core_cst_dist_Buffer.from(paymentBytes).toString(\"hex\")),\n    type: Number(paymentConstrData.getAlternative())\n  };\n  const delegationData = plutusDataList.get(1);\n  const delegationConstrData = delegationData.asConstrPlutusData();\n  if (!delegationConstrData) {\n    throw new Error(\n      \"Error: serializeAddressObj: Delegation part must be a constructor\"\n    );\n  }\n  if (delegationConstrData.getAlternative() === BigInt(1)) {\n    return dist_EnterpriseAddress.fromCredentials(\n      networkId,\n      cardanoPaymentCredential\n    ).toAddress().toBech32().toString();\n  } else if (delegationConstrData.getAlternative() === BigInt(0)) {\n    const delegationDataList = delegationConstrData.getData();\n    if (delegationDataList.getLength() !== 1) {\n      throw new Error(\n        \"Error: serializeAddressObj: Delegation part must contain 1 element\"\n      );\n    }\n    const delegationDataInner = delegationDataList.get(0);\n    const delegationDataInnerConstrData = delegationDataInner.asConstrPlutusData();\n    if (!delegationDataInnerConstrData) {\n      throw new Error(\n        \"Error: serializeAddressObj: Delegation inner part must be a constructor\"\n      );\n    }\n    if (delegationDataInnerConstrData.getAlternative() === BigInt(0)) {\n      const delegationDataInnerList = delegationDataInnerConstrData.getData();\n      if (delegationDataInnerList.getLength() !== 1) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part must contain 1 element\"\n        );\n      }\n      const delegationCredential = delegationDataInnerList.get(0).asConstrPlutusData();\n      if (!delegationCredential) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part must be a constructor\"\n        );\n      }\n      const delegationBytesList = delegationCredential.getData();\n      if (delegationBytesList.getLength() !== 1) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation bytes part must contain 1 element\"\n        );\n      }\n      const delegationBytes = delegationBytesList.get(0).asBoundedBytes();\n      if (!delegationBytes) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation bytes part must be of type bytes\"\n        );\n      }\n      const cardanoStakeCredential = {\n        hash: Hash28ByteBase162(core_cst_dist_Buffer.from(delegationBytes).toString(\"hex\")),\n        type: Number(delegationCredential.getAlternative())\n      };\n      return dist_BaseAddress.fromCredentials(\n        networkId,\n        cardanoPaymentCredential,\n        cardanoStakeCredential\n      ).toAddress().toBech32().toString();\n    } else if (delegationDataInnerConstrData.getAlternative() === BigInt(1)) {\n      const delegationDataInnerList = delegationDataInnerConstrData.getData();\n      if (delegationDataInnerList.getLength() !== 3) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part must contain 3 elements\"\n        );\n      }\n      const slot = delegationDataInnerList.get(0).asInteger();\n      if (!slot) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part slot must be integer\"\n        );\n      }\n      const txIndex = delegationDataInnerList.get(1).asInteger();\n      if (!txIndex) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part txIndex must be integer\"\n        );\n      }\n      const certIndex = delegationDataInnerList.get(2).asInteger();\n      if (!certIndex) {\n        throw new Error(\n          \"Error: serializeAddressObj: Delegation inner part certIndex must be integer\"\n        );\n      }\n      const cardanoPointer = {\n        slot,\n        txIndex: dist_TxIndex(Number(txIndex)),\n        certIndex: dist_CertIndex(Number(certIndex))\n      };\n      return dist_PointerAddress.fromCredentials(\n        networkId,\n        cardanoPaymentCredential,\n        cardanoPointer\n      ).toAddress().toBech32().toString();\n    } else {\n      throw new Error(\n        \"Error: serializeAddressObj: Delegation inner part must be alternative 0 or 1\"\n      );\n    }\n  } else {\n    throw new Error(\n      \"Error: serializeAddressObj: Delegation part must be alternative 0 or 1\"\n    );\n  }\n};\nvar serializeAddressObj = (plutusDataAddressObject, networkId = 0) => {\n  const cardanoPlutusData = fromJsonToPlutusData(plutusDataAddressObject);\n  return plutusDataToAddrBech32(cardanoPlutusData, networkId);\n};\nvar serializePlutusAddressToBech32 = (plutusHex, networkId = 0) => {\n  const cardanoPlutusData = dist_PlutusData.fromCbor(esm_primitives_HexBlob(plutusHex));\n  return plutusDataToAddrBech32(cardanoPlutusData, networkId).toString();\n};\nvar deserializeBech32Address = (bech32Addr) => {\n  const deserializedAddress = dist_Address.fromBech32(bech32Addr).getProps();\n  return {\n    pubKeyHash: deserializedAddress.paymentPart?.type === dist_CredentialType.KeyHash ? deserializedAddress.paymentPart?.hash : \"\",\n    scriptHash: deserializedAddress.paymentPart?.type === dist_CredentialType.ScriptHash ? deserializedAddress.paymentPart?.hash : \"\",\n    stakeCredentialHash: deserializedAddress.delegationPart?.type === dist_CredentialType.KeyHash ? deserializedAddress.delegationPart?.hash : \"\",\n    stakeScriptCredentialHash: deserializedAddress.delegationPart?.type === dist_CredentialType.ScriptHash ? deserializedAddress.delegationPart?.hash : \"\"\n  };\n};\nvar deserializeAddress = (address) => {\n  const _address = dist_Address.fromString(address);\n  if (_address === null) throw new Error(\"Invalid address\");\n  return _address;\n};\nvar scriptHashToBech32 = (scriptHash, stakeCredentialHash, networkId = 0, isScriptStakeCredentialHash = false) => {\n  if (stakeCredentialHash) {\n    return dist_BaseAddress.fromCredentials(\n      networkId,\n      { hash: Hash28ByteBase162(scriptHash), type: dist_CredentialType.ScriptHash },\n      {\n        hash: Hash28ByteBase162(stakeCredentialHash),\n        type: isScriptStakeCredentialHash ? dist_CredentialType.ScriptHash : dist_CredentialType.KeyHash\n      }\n    ).toAddress().toBech32().toString();\n  } else {\n    return dist_EnterpriseAddress.fromCredentials(networkId, {\n      hash: Hash28ByteBase162(scriptHash),\n      type: dist_CredentialType.ScriptHash\n    }).toAddress().toBech32().toString();\n  }\n};\nvar v2ScriptToBech32 = (scriptCbor, stakeCredential, networkId = 0, isScriptStakeCredential = false) => scriptHashToBech32(\n  dist_Script.fromCbor(esm_primitives_HexBlob(scriptCbor)).hash().toString(),\n  stakeCredential,\n  networkId,\n  isScriptStakeCredential\n);\nvar scriptHashToRewardAddress = (hash2, networkId = 0) => {\n  return dist_RewardAddress.fromCredentials(networkId, {\n    hash: Hash28ByteBase162(hash2),\n    type: dist_CredentialType.ScriptHash\n  }).toAddress().toBech32().toString();\n};\nvar keyHashToRewardAddress = (hash2, networkId = 0) => {\n  return dist_RewardAddress.fromCredentials(networkId, {\n    hash: Hash28ByteBase162(hash2),\n    type: dist_CredentialType.KeyHash\n  }).toAddress().toBech32().toString();\n};\n\n// src/utils/encoding.ts\n\n\nvar core_cst_dist_bytesToHex = (bytes) => core_cst_dist_Buffer.from(bytes).toString(\"hex\");\nvar core_cst_dist_hexToBytes = (hex) => core_cst_dist_Buffer.from(hex, \"hex\");\nvar dist_utf8ToBytes = (str) => core_cst_dist_Buffer.from(str, \"utf8\");\nvar dist_utf8ToHex = (str) => core_cst_dist_Buffer.from(str, \"utf8\").toString(\"hex\");\nvar hexToBech32 = (prefix, hex) => {\n  const buf = core_cst_dist_Buffer.from(hex, \"hex\");\n  const base32RawBytes = base32_encoding.encode(buf);\n  return dist.bech32.encode(prefix, base32RawBytes);\n};\n\n// src/utils/witness-set.ts\nvar addVKeyWitnessSetToTransaction = (txHex, vkeyWitnessSet) => {\n  const tx = dist_Transaction.fromCbor(dist_TxCBOR(txHex));\n  const currentWitnessSet = tx.witnessSet();\n  const newVkeyWitnessSet = dist_TransactionWitnessSet.fromCbor(\n    dist_HexBlob(vkeyWitnessSet)\n  );\n  const currentVkeyWitnesses = currentWitnessSet.vkeys();\n  const newVkeyWitnesses = newVkeyWitnessSet.vkeys();\n  const allVkeyWitnesses = [\n    ...currentVkeyWitnesses?.values() ?? [],\n    ...newVkeyWitnesses?.values() ?? []\n  ];\n  currentWitnessSet.setVkeys(\n    dist_CborSet.fromCore(\n      allVkeyWitnesses.map((vkw) => vkw.toCore()),\n      dist_VkeyWitness.fromCore\n    )\n  );\n  tx.setWitnessSet(currentWitnessSet);\n  return tx.toCbor();\n};\n\n// src/utils/fee.ts\nvar calculateFees = (minFeeA, minFeeB, minFeeRefScriptCostPerByte, priceMem, priceStep, tx, refScriptSize) => {\n  let fee = minFeeB + tx.toCbor().length / 2 * minFeeA;\n  fee += calculateRefScriptFees(refScriptSize, minFeeRefScriptCostPerByte);\n  let scriptFee = BigInt(0);\n  let priceMemNumerator = priceMem;\n  let priceMemDenominator = 1;\n  while (priceMemNumerator % 1) {\n    priceMemNumerator *= 10;\n    priceMemDenominator *= 10;\n  }\n  let priceStepNumerator = priceStep;\n  let priceStepDenominator = 1;\n  while (priceStepNumerator % 1) {\n    priceStepNumerator *= 10;\n    priceStepDenominator *= 10;\n  }\n  if (tx.witnessSet().redeemers()) {\n    for (const redeemer of tx.witnessSet().redeemers().values()) {\n      scriptFee += redeemer.exUnits().mem() * BigInt(priceMemNumerator.toString()) / BigInt(priceMemDenominator.toString());\n      scriptFee += redeemer.exUnits().steps() * BigInt(priceStepNumerator.toString()) / BigInt(priceStepDenominator.toString());\n      if (priceMemNumerator % priceMemDenominator !== 0) {\n        scriptFee += BigInt(1);\n      }\n      if (priceStepNumerator % priceStepDenominator !== 0) {\n        scriptFee += BigInt(1);\n      }\n    }\n  }\n  return BigInt(fee) + scriptFee;\n};\nvar calculateRefScriptFees = (refScriptSize, minFeeRefScriptCostPerByte, tierMultiplier = 1.2) => {\n  let fee = 0;\n  const tierSize = 25600;\n  let currentRefScriptSize = refScriptSize;\n  let multiplier = 1;\n  while (currentRefScriptSize >= tierSize) {\n    fee += tierSize * multiplier * minFeeRefScriptCostPerByte;\n    currentRefScriptSize -= tierSize;\n    multiplier *= tierMultiplier;\n  }\n  if (currentRefScriptSize > 0) {\n    fee += currentRefScriptSize * multiplier * minFeeRefScriptCostPerByte;\n  }\n  fee = Math.ceil(fee);\n  return fee;\n};\n\n// src/resolvers/index.ts\nvar resolveDataHash = (rawData, type = \"Mesh\") => {\n  const plutusData = fromBuilderToPlutusData({\n    content: rawData,\n    type\n  });\n  return plutusData.hash().toString();\n};\nvar resolveNativeScriptAddress = (script, networkId = 0) => {\n  const nativeScript = toNativeScript(script);\n  const enterpriseAddress = dist_EnterpriseAddress.fromCredentials(networkId, {\n    hash: nativeScript.hash(),\n    type: CredentialType.ScriptHash\n  });\n  return enterpriseAddress.toAddress().toBech32().toString();\n};\nvar resolveNativeScriptHash = (script) => {\n  return toNativeScript(script).hash().toString();\n};\nvar resolvePaymentKeyHash = (bech325) => {\n  try {\n    const paymentKeyHash = [\n      toBaseAddress(bech325)?.getPaymentCredential().hash,\n      toEnterpriseAddress(bech325)?.getPaymentCredential().hash\n    ].find((kh) => kh !== void 0);\n    if (paymentKeyHash !== void 0) return paymentKeyHash.toString();\n    throw new Error(\n      `Couldn't resolve payment key hash from address: ${bech325}`\n    );\n  } catch (error) {\n    throw new Error(\n      `An error occurred during resolvePaymentKeyHash: ${error}.`\n    );\n  }\n};\nvar resolvePlutusScriptAddress = (script, networkId = 0) => {\n  const plutusScript = deserializePlutusScript(script.code, script.version);\n  const enterpriseAddress = dist_EnterpriseAddress.fromCredentials(networkId, {\n    hash: plutusScript.hash(),\n    type: CredentialType.ScriptHash\n  });\n  return enterpriseAddress.toAddress().toBech32().toString();\n};\nvar resolvePlutusScriptHash = (bech325) => {\n  try {\n    const enterpriseAddress = toEnterpriseAddress(bech325);\n    const scriptHash = enterpriseAddress?.getPaymentCredential().hash;\n    if (scriptHash !== void 0) return scriptHash.toString();\n    throw new Error(`Couldn't resolve script hash from address: ${bech325}`);\n  } catch (error) {\n    throw new Error(`An error occurred during resolveScriptHash: ${error}.`);\n  }\n};\nvar resolvePoolId = (hash2) => {\n  return dist_PoolId.fromKeyHash(Ed25519KeyHashHex2(hash2)).toString();\n};\nvar resolvePrivateKey = (words) => {\n  const buildBip32PrivateKey2 = (entropy2, password = \"\") => {\n    return Bip32PrivateKey2.fromBip39Entropy(\n      core_cst_dist_Buffer.from(toBytes(entropy2)),\n      fromUTF8(password)\n    );\n  };\n  const entropy = (0,src.mnemonicToEntropy)(words.join(\" \"));\n  const bip32PrivateKey = buildBip32PrivateKey2(entropy);\n  const bytes = base32_encoding.encode(bip32PrivateKey.bytes());\n  const bech32PrivateKey = dist.bech32.encode(\"xprv\", bytes, 1023);\n  return bech32PrivateKey;\n};\nvar resolveScriptRef = (script) => {\n  return toScriptRef(script).toCbor().toString();\n};\nvar resolveRewardAddress = (bech325) => {\n  try {\n    const address = toAddress(bech325);\n    const baseAddress = toBaseAddress(bech325);\n    const stakeKeyHash = baseAddress?.getStakeCredential().hash;\n    if (stakeKeyHash !== void 0)\n      return buildRewardAddress(address.getNetworkId(), stakeKeyHash).toAddress().toBech32().toString();\n    throw new Error(`Couldn't resolve reward address from address: ${bech325}`);\n  } catch (error) {\n    throw new Error(`An error occurred during resolveRewardAddress: ${error}.`);\n  }\n};\nvar resolveStakeKeyHash = (bech325) => {\n  try {\n    const stakeKeyHash = [\n      toBaseAddress(bech325)?.getStakeCredential().hash,\n      toRewardAddress(bech325)?.getPaymentCredential().hash\n    ].find((kh) => kh !== void 0);\n    if (stakeKeyHash !== void 0) return stakeKeyHash.toString();\n    throw new Error(`Couldn't resolve stake key hash from address: ${bech325}`);\n  } catch (error) {\n    throw new Error(`An error occurred during resolveStakeKeyHash: ${error}.`);\n  }\n};\nvar resolveTxHash = (txHex) => {\n  const txBody = dist_deserializeTx(txHex).body();\n  const hash2 = blake2b(blake2b.BYTES).update(core_cst_dist_hexToBytes(txBody.toCbor())).digest();\n  return TransactionId.fromHexBlob(esm_primitives_HexBlob.fromBytes(hash2)).toString();\n};\nvar resolveScriptHashDRepId = (scriptHash) => {\n  return dist_DRepID.cip129FromCredential({\n    type: CredentialType.ScriptHash,\n    hash: Hash28ByteBase162(scriptHash)\n  }).toString();\n};\nvar resolveEd25519KeyHash = (bech325) => {\n  try {\n    const keyHash = [\n      toBaseAddress(bech325)?.getPaymentCredential().hash,\n      toEnterpriseAddress(bech325)?.getPaymentCredential().hash\n    ].find((kh) => kh !== void 0);\n    if (keyHash !== void 0) return keyHash.toString();\n    throw new Error(`Couldn't resolve key hash from address: ${bech325}`);\n  } catch (error) {\n    throw new Error(\n      `An error occurred during resolveEd25519KeyHash: ${error}.`\n    );\n  }\n};\n\n// src/serializer/index.ts\n\n\n\n\n\n\n\n\n// src/utils/certificate.ts\n\nvar toCardanoCert = (cert) => {\n  switch (cert.type) {\n    case \"RegisterPool\": {\n      let relays = [];\n      for (const relay of cert.poolParams.relays) {\n        switch (relay.type) {\n          case \"SingleHostAddr\": {\n            relays.push(\n              Relay.newSingleHostAddr(\n                new SingleHostAddr(\n                  relay.port,\n                  relay.IPV4,\n                  relay.IPV6\n                )\n              )\n            );\n            break;\n          }\n          case \"SingleHostName\": {\n            relays.push(\n              Relay.newSingleHostName(\n                new SingleHostName(relay.domainName, relay.port)\n              )\n            );\n            break;\n          }\n          case \"MultiHostName\": {\n            relays.push(\n              Relay.newMultiHostName(\n                new MultiHostName(relay.domainName)\n              )\n            );\n            break;\n          }\n        }\n      }\n      let poolOwners = CborSet.fromCore([], Hash.fromCore);\n      let poolOwnersValues = [...poolOwners.values()];\n      for (const poolOwner of cert.poolParams.owners) {\n        poolOwnersValues.push(\n          Hash.fromCore(Ed25519KeyHashHex2(poolOwner))\n        );\n      }\n      poolOwners.setValues(poolOwnersValues);\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.poolParams.rewardAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      const metadata = cert.poolParams.metadata ? new PoolMetadata(\n        cert.poolParams.metadata.URL,\n        Hash32ByteBase16(cert.poolParams.metadata.hash)\n      ) : void 0;\n      return dist_Certificate.newPoolRegistration(\n        new PoolRegistration(\n          new PoolParams(\n            Ed25519KeyHashHex2(cert.poolParams.operator),\n            VrfVkHex(cert.poolParams.vrfKeyHash),\n            BigInt(cert.poolParams.pledge),\n            BigInt(cert.poolParams.cost),\n            new UnitInterval(\n              BigInt(cert.poolParams.margin[0]),\n              BigInt(cert.poolParams.margin[1])\n            ),\n            rewardAddress,\n            poolOwners,\n            relays,\n            metadata\n          )\n        )\n      );\n    }\n    case \"RegisterStake\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      return dist_Certificate.newStakeRegistration(\n        new StakeRegistration(\n          rewardAddress.getPaymentCredential()\n        )\n      );\n    }\n    case \"DelegateStake\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      return dist_Certificate.newStakeDelegation(\n        new StakeDelegation(\n          rewardAddress.getPaymentCredential(),\n          cert.poolId.startsWith(\"pool1\") ? PoolId.toKeyHash(PoolId(cert.poolId)) : Ed25519KeyHashHex2(cert.poolId)\n        )\n      );\n    }\n    case \"DeregisterStake\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      return dist_Certificate.newStakeDeregistration(\n        new StakeDeregistration(\n          rewardAddress.getPaymentCredential()\n        )\n      );\n    }\n    case \"RetirePool\": {\n      return dist_Certificate.newPoolRetirement(\n        new PoolRetirement(\n          cert.poolId.startsWith(\"pool1\") ? PoolId.toKeyHash(PoolId(cert.poolId)) : Ed25519KeyHashHex2(cert.poolId),\n          EpochNo(cert.epoch)\n        )\n      );\n    }\n    case \"VoteDelegation\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      if (cert.drep.dRepId !== void 0) {\n        return dist_Certificate.newVoteDelegationCert(\n          new VoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            toDRep(cert.drep.dRepId)\n          )\n        );\n      } else if (cert.drep.alwaysAbstain !== void 0) {\n        return dist_Certificate.newVoteDelegationCert(\n          new VoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysAbstain()\n          )\n        );\n      } else if (cert.drep.alwaysNoConfidence !== void 0) {\n        return dist_Certificate.newVoteDelegationCert(\n          new VoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysNoConfidence()\n          )\n        );\n      } else {\n        throw new Error(\"Malformed DRep type\");\n      }\n    }\n    case \"StakeAndVoteDelegation\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      if (cert.drep.dRepId !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            toDRep(cert.drep.dRepId),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else if (cert.drep.alwaysAbstain !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysAbstain(),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else if (cert.drep.alwaysNoConfidence !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysNoConfidence(),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else {\n        throw new Error(\"Malformed DRep type\");\n      }\n    }\n    case \"StakeRegistrationAndDelegation\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      return dist_Certificate.newStakeRegistrationDelegationCert(\n        new StakeRegistrationDelegation(\n          rewardAddress.getPaymentCredential(),\n          BigInt(cert.coin),\n          Ed25519KeyHashHex2(cert.poolKeyHash)\n        )\n      );\n    }\n    case \"VoteRegistrationAndDelegation\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      if (cert.drep.dRepId !== void 0) {\n        return dist_Certificate.newVoteRegistrationDelegationCert(\n          new VoteRegistrationDelegation(\n            rewardAddress.getPaymentCredential(),\n            BigInt(cert.coin),\n            toDRep(cert.drep.dRepId)\n          )\n        );\n      } else if (cert.drep.alwaysAbstain !== void 0) {\n        return dist_Certificate.newVoteRegistrationDelegationCert(\n          new VoteRegistrationDelegation(\n            rewardAddress.getPaymentCredential(),\n            BigInt(cert.coin),\n            DRep.newAlwaysAbstain()\n          )\n        );\n      } else if (cert.drep.alwaysNoConfidence !== void 0) {\n        return dist_Certificate.newVoteRegistrationDelegationCert(\n          new VoteRegistrationDelegation(\n            rewardAddress.getPaymentCredential(),\n            BigInt(cert.coin),\n            DRep.newAlwaysNoConfidence()\n          )\n        );\n      } else {\n        throw new Error(\"Malformed DRep type\");\n      }\n    }\n    case \"StakeVoteRegistrationAndDelegation\": {\n      const rewardAddress = RewardAddress.fromAddress(\n        Address.fromBech32(cert.stakeKeyAddress)\n      );\n      if (rewardAddress === void 0) {\n        throw new Error(\n          \"Error parsing reward address, it is expected to be in bech32 format\"\n        );\n      }\n      if (cert.drep.dRepId !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            toDRep(cert.drep.dRepId),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else if (cert.drep.alwaysAbstain !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysAbstain(),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else if (cert.drep.alwaysNoConfidence !== void 0) {\n        return dist_Certificate.newStakeVoteDelegationCert(\n          new StakeVoteDelegation(\n            rewardAddress.getPaymentCredential(),\n            DRep.newAlwaysNoConfidence(),\n            Ed25519KeyHashHex2(cert.poolKeyHash)\n          )\n        );\n      } else {\n        throw new Error(\"Malformed DRep type\");\n      }\n    }\n    case \"CommitteeHotAuth\": {\n      const hotCred = Address.fromBech32(\n        cert.committeeHotKeyAddress\n      ).getProps().paymentPart;\n      const coldCred = Address.fromBech32(\n        cert.committeeColdKeyAddress\n      ).getProps().paymentPart;\n      if (!hotCred || !coldCred) {\n        throw new Error(\"Malformed hot/cold credential\");\n      }\n      return dist_Certificate.newAuthCommitteeHotCert(\n        new AuthCommitteeHot(coldCred, hotCred)\n      );\n    }\n    case \"CommitteeColdResign\": {\n      const coldCred = Address.fromBech32(\n        cert.committeeColdKeyAddress\n      ).getProps().paymentPart;\n      if (!coldCred) {\n        throw new Error(\"Malformed hot/cold credential\");\n      }\n      let anchor = void 0;\n      if (cert.anchor) {\n        anchor = new Anchor(\n          cert.anchor.anchorUrl,\n          Hash32ByteBase162(cert.anchor.anchorDataHash)\n        );\n      }\n      return dist_Certificate.newResignCommitteeColdCert(\n        new ResignCommitteeCold(coldCred, anchor)\n      );\n    }\n    case \"DRepRegistration\": {\n      let anchor = void 0;\n      if (cert.anchor) {\n        anchor = new Anchor(\n          cert.anchor.anchorUrl,\n          Hash32ByteBase162(cert.anchor.anchorDataHash)\n        );\n      }\n      const coreDRep = toDRep(cert.drepId).toCore();\n      if (isDRepCredential(coreDRep)) {\n        return dist_Certificate.newRegisterDelegateRepresentativeCert(\n          new RegisterDelegateRepresentative(\n            coreDRep,\n            BigInt(cert.coin),\n            anchor\n          )\n        );\n      } else {\n        throw new Error(\"DRepId must be a Credential\");\n      }\n    }\n    case \"DRepDeregistration\": {\n      const coreDRep = toDRep(cert.drepId).toCore();\n      if (isDRepCredential(coreDRep)) {\n        return dist_Certificate.newUnregisterDelegateRepresentativeCert(\n          new UnregisterDelegateRepresentative(\n            coreDRep,\n            BigInt(cert.coin)\n          )\n        );\n      } else {\n        throw new Error(\"DRepId must be a Credential\");\n      }\n    }\n    case \"DRepUpdate\": {\n      let anchor = void 0;\n      if (cert.anchor) {\n        anchor = new Anchor(\n          cert.anchor.anchorUrl,\n          Hash32ByteBase162(cert.anchor.anchorDataHash)\n        );\n      }\n      const coreDRep = toDRep(cert.drepId).toCore();\n      if (isDRepCredential(coreDRep)) {\n        return dist_Certificate.newUpdateDelegateRepresentativeCert(\n          new UpdateDelegateRepresentative(coreDRep, anchor)\n        );\n      } else {\n        throw new Error(\"DRepId must be a Credential\");\n      }\n    }\n  }\n};\n\n// src/utils/metadata.ts\nvar toCardanoMetadataMap = (metadata) => {\n  let cardanoMetadataMap = /* @__PURE__ */ new Map();\n  metadata.forEach((val, key) => {\n    cardanoMetadataMap.set(key, toCardanoMetadatum(val));\n  });\n  return cardanoMetadataMap;\n};\nvar toCardanoMetadatum = (metadatum) => {\n  if (typeof metadatum === \"number\") {\n    return dist_TransactionMetadatum.newInteger(BigInt(metadatum));\n  } else if (typeof metadatum === \"string\") {\n    return dist_TransactionMetadatum.newText(metadatum);\n  } else if (typeof metadatum === \"bigint\") {\n    return dist_TransactionMetadatum.newInteger(metadatum);\n  } else if (metadatum instanceof Uint8Array) {\n    return dist_TransactionMetadatum.newBytes(metadatum);\n  } else if (metadatum instanceof Map) {\n    const result = new dist_MetadatumMap();\n    metadatum.forEach((value, key) => {\n      result.insert(toCardanoMetadatum(key), toCardanoMetadatum(value));\n    });\n    return dist_TransactionMetadatum.newMap(result);\n  } else if (Array.isArray(metadatum)) {\n    const result = new dist_MetadatumList();\n    metadatum.forEach((val) => {\n      result.add(toCardanoMetadatum(val));\n    });\n    return dist_TransactionMetadatum.newList(result);\n  } else {\n    throw new Error(\"metadatumToObj: Unsupported Metadatum type\");\n  }\n};\n\n// src/utils/script-data-hash.ts\n\n\n\n\nvar CBOR_EMPTY_MAP = new Uint8Array([160]);\nvar hashScriptData = (costModels, redemeers, datums) => {\n  const writer = new CborWriter();\n  if (datums && datums.size() > 0 && (!redemeers || redemeers.size() === 0)) {\n    writer.writeEncodedValue(CBOR_EMPTY_MAP);\n    writer.writeEncodedValue(core_cst_dist_Buffer.from(datums.toCbor(), \"hex\"));\n    writer.writeEncodedValue(CBOR_EMPTY_MAP);\n  } else {\n    if (!redemeers || redemeers.size() === 0) return void 0;\n    writer.writeEncodedValue(core_cst_dist_Buffer.from(redemeers.toCbor(), \"hex\"));\n    if (datums && datums.size() > 0) {\n      writer.writeEncodedValue(core_cst_dist_Buffer.from(datums.toCbor(), \"hex\"));\n    }\n    writer.writeEncodedValue(\n      core_cst_dist_Buffer.from(costModels.languageViewsEncoding(), \"hex\")\n    );\n  }\n  return Hash32ByteBase16.fromHexBlob(\n    esm_primitives_HexBlob.fromBytes(\n      blake2b(blake2b.BYTES).update(writer.encode()).digest()\n    )\n  );\n};\n\n// src/utils/vote.ts\n\nvar toCardanoVoter = (voter) => {\n  switch (voter.type) {\n    case \"ConstitutionalCommittee\": {\n      switch (voter.hotCred.type) {\n        case \"KeyHash\": {\n          return Voter.newConstitutionalCommitteeHotKey({\n            type: 0,\n            hash: Hash28ByteBase162(voter.hotCred.keyHash)\n          });\n        }\n        case \"ScriptHash\": {\n          return Voter.newConstitutionalCommitteeHotKey({\n            type: 1,\n            hash: Hash28ByteBase162(voter.hotCred.scriptHash)\n          });\n        }\n      }\n    }\n    case \"DRep\": {\n      const cardanoDrep = toDRep(voter.drepId);\n      if (cardanoDrep.toKeyHash() !== void 0) {\n        return Voter.newDrep({\n          type: 0,\n          hash: Hash28ByteBase162(cardanoDrep.toKeyHash())\n        });\n      } else if (cardanoDrep.toScriptHash() !== void 0) {\n        return Voter.newDrep({\n          type: 1,\n          hash: Hash28ByteBase162(cardanoDrep.toScriptHash())\n        });\n      } else {\n        throw new Error(\"Invalid DRep provided\");\n      }\n    }\n    case \"StakingPool\": {\n      return Voter.newStakingPool(\n        Ed25519KeyHashHex2(voter.keyHash)\n      );\n    }\n  }\n};\nvar toCardanoVotingProcedure = (votingProcedure) => {\n  return new VotingProcedure(\n    toCardanoVoteKind(votingProcedure.voteKind),\n    votingProcedure.anchor ? toCardanoAnchor(votingProcedure.anchor) : void 0\n  );\n};\nvar toCardanoAnchor = (anchor) => {\n  return new Anchor(\n    anchor.anchorUrl,\n    Hash32ByteBase162(anchor.anchorDataHash)\n  );\n};\nvar toCardanoVoteKind = (voteType) => {\n  switch (voteType) {\n    case \"Yes\": {\n      return 1;\n    }\n    case \"No\": {\n      return 0;\n    }\n    case \"Abstain\": {\n      return 2;\n    }\n  }\n};\nvar toCardanoGovernanceActionId = (govActionId) => {\n  return new GovernanceActionId(\n    TransactionId(govActionId.txHash),\n    BigInt(govActionId.txIndex)\n  );\n};\n\n// src/serializer/index.ts\nvar VKEY_PUBKEY_SIZE_BYTES = 32;\nvar VKEY_SIGNATURE_SIZE_BYTES = 64;\nvar CHAIN_CODE_SIZE_BYTES = 32;\nvar CardanoSDKSerializer = class {\n  protocolParams;\n  constructor(protocolParams) {\n    setInConwayEra(true);\n    this.protocolParams = protocolParams || DEFAULT_PROTOCOL_PARAMETERS;\n  }\n  serializeRewardAddress(stakeKeyHash, isScriptHash, network_id) {\n    return dist_RewardAddress.fromCredentials(network_id ?? 0, {\n      type: isScriptHash ? dist_CredentialType.ScriptHash : dist_CredentialType.KeyHash,\n      hash: Hash28ByteBase162(stakeKeyHash)\n    }).toAddress().toBech32();\n  }\n  serializePoolId(hash2) {\n    return dist_PoolId.fromKeyHash(Ed25519KeyHashHex2(hash2)).toString();\n  }\n  serializeAddress(address, networkId) {\n    let paymentCred = void 0;\n    let stakeCred;\n    if (address.pubKeyHash && address.pubKeyHash !== \"\") {\n      paymentCred = {\n        type: dist_CredentialType.KeyHash,\n        hash: Hash28ByteBase162(address.pubKeyHash)\n      };\n    } else if (address.scriptHash && address.scriptHash !== \"\") {\n      paymentCred = {\n        type: dist_CredentialType.ScriptHash,\n        hash: Hash28ByteBase162(address.scriptHash)\n      };\n    }\n    if (address.stakeCredentialHash && address.stakeCredentialHash !== \"\") {\n      stakeCred = {\n        type: dist_CredentialType.KeyHash,\n        hash: Hash28ByteBase162(address.stakeCredentialHash)\n      };\n    } else if (address.stakeScriptCredentialHash) {\n      stakeCred = {\n        type: dist_CredentialType.ScriptHash,\n        hash: Hash28ByteBase162(address.stakeScriptCredentialHash)\n      };\n    }\n    let type = dist_AddressType.BasePaymentKeyStakeKey;\n    if (paymentCred && stakeCred) {\n      if (paymentCred.type === dist_CredentialType.KeyHash && stakeCred.type === dist_CredentialType.KeyHash) {\n        type = dist_AddressType.BasePaymentKeyStakeKey;\n      } else if (paymentCred.type === dist_CredentialType.KeyHash && stakeCred.type === dist_CredentialType.ScriptHash) {\n        type = dist_AddressType.BasePaymentKeyStakeScript;\n      } else if (paymentCred.type === dist_CredentialType.ScriptHash && stakeCred.type === dist_CredentialType.KeyHash) {\n        type = dist_AddressType.BasePaymentScriptStakeKey;\n      } else if (paymentCred.type === dist_CredentialType.ScriptHash && stakeCred.type === dist_CredentialType.ScriptHash) {\n        type = dist_AddressType.BasePaymentScriptStakeScript;\n      }\n    } else if (paymentCred) {\n      if (paymentCred.type === dist_CredentialType.KeyHash) {\n        type = dist_AddressType.EnterpriseKey;\n      } else if (paymentCred.type === dist_CredentialType.ScriptHash) {\n        type = dist_AddressType.EnterpriseScript;\n      }\n    } else if (stakeCred) {\n      if (stakeCred.type === dist_CredentialType.KeyHash) {\n        type = dist_AddressType.RewardKey;\n      } else if (stakeCred.type === dist_CredentialType.ScriptHash) {\n        type = dist_AddressType.RewardScript;\n      }\n    }\n    return new dist_Address({\n      type,\n      networkId: networkId ?? 0,\n      paymentPart: paymentCred,\n      delegationPart: stakeCred\n    }).toBech32();\n  }\n  serializeData(data) {\n    const plutusData = fromBuilderToPlutusData(data);\n    return plutusData.toCbor().toString();\n  }\n  deserializer = {\n    key: {\n      deserializeAddress: function(bech325) {\n        const address = dist_Address.fromBech32(bech325);\n        const addressProps = address.getProps();\n        return {\n          pubKeyHash: addressProps.paymentPart?.type === dist_CredentialType.KeyHash ? addressProps.paymentPart?.hash ?? \"\" : \"\",\n          scriptHash: addressProps.paymentPart?.type === dist_CredentialType.ScriptHash ? addressProps.paymentPart?.hash ?? \"\" : \"\",\n          stakeCredentialHash: addressProps.delegationPart?.type === dist_CredentialType.KeyHash ? addressProps.paymentPart?.hash ?? \"\" : \"\",\n          stakeScriptCredentialHash: addressProps.delegationPart?.type === dist_CredentialType.ScriptHash ? addressProps.paymentPart?.hash ?? \"\" : \"\"\n        };\n      }\n    },\n    script: {\n      deserializeNativeScript: function(script) {\n        const cardanoNativeScript = toNativeScript(script);\n        return {\n          scriptHash: cardanoNativeScript.hash().toString(),\n          scriptCbor: cardanoNativeScript.toCbor().toString()\n        };\n      },\n      deserializePlutusScript: function(script) {\n        let cardanoPlutusScript;\n        switch (script.version) {\n          case \"V1\": {\n            cardanoPlutusScript = new dist_PlutusV1Script(esm_primitives_HexBlob(script.code));\n            break;\n          }\n          case \"V2\": {\n            cardanoPlutusScript = new dist_PlutusV2Script(esm_primitives_HexBlob(script.code));\n            break;\n          }\n          case \"V3\": {\n            cardanoPlutusScript = new dist_PlutusV3Script(esm_primitives_HexBlob(script.code));\n            break;\n          }\n        }\n        return {\n          scriptHash: cardanoPlutusScript.hash().toString(),\n          scriptCbor: cardanoPlutusScript.toCbor().toString()\n        };\n      }\n    },\n    cert: {\n      deserializePoolId: function(poolId) {\n        const cardanoPoolId = dist_PoolId(poolId);\n        return dist_PoolId.toKeyHash(cardanoPoolId).toString();\n      }\n    }\n  };\n  resolver = {\n    keys: {\n      resolveStakeKeyHash: function(bech325) {\n        const cardanoAddress = toAddress(bech325);\n        return cardanoAddress.asReward()?.getPaymentCredential().type === dist_CredentialType.KeyHash ? cardanoAddress.asReward().getPaymentCredential().hash : \"\";\n      },\n      resolvePrivateKey: function(words) {\n        const buildBip32PrivateKey2 = (entropy2, password = \"\") => {\n          return Bip32PrivateKey2.fromBip39Entropy(\n            buffer.Buffer.from(toBytes(entropy2)),\n            fromUTF8(password)\n          );\n        };\n        const entropy = (0,src.mnemonicToEntropy)(words.join(\" \"));\n        const bip32PrivateKey = buildBip32PrivateKey2(entropy);\n        const bytes = base32_encoding.encode(bip32PrivateKey.bytes());\n        const bech32PrivateKey = dist.bech32.encode(\"xprv\", bytes, 1023);\n        return bech32PrivateKey;\n      },\n      resolveRewardAddress: function(bech325) {\n        const cardanoAddress = toAddress(bech325);\n        const addressProps = cardanoAddress.getProps();\n        if (!addressProps.delegationPart) {\n          return \"\";\n        }\n        return dist_RewardAddress.fromCredentials(\n          cardanoAddress.getNetworkId(),\n          addressProps.delegationPart\n        ).toAddress().toBech32() ?? \"\";\n      },\n      resolveEd25519KeyHash: function(bech325) {\n        const cardanoAddress = toAddress(bech325);\n        const addressProps = cardanoAddress.getProps();\n        if (!addressProps.paymentPart) {\n          return \"\";\n        }\n        return addressProps.paymentPart.hash.toString();\n      }\n    },\n    tx: {\n      resolveTxHash: function(txHex) {\n        return dist_Transaction.fromCbor(TxCBOR(txHex)).getId();\n      }\n    },\n    data: {\n      resolveDataHash: function(rawData, type = \"Mesh\") {\n        return resolveDataHash(rawData, type);\n      }\n    },\n    script: {\n      resolveScriptRef: function(script) {\n        if (\"code\" in script) {\n          let versionByte;\n          switch (script.version) {\n            case \"V1\": {\n              versionByte = 1;\n              break;\n            }\n            case \"V2\": {\n              versionByte = 2;\n              break;\n            }\n            case \"V3\": {\n              versionByte = 3;\n              break;\n            }\n          }\n          let taggedScript = new cbor_dist.CborTag(\n            24,\n            cbor_dist.Cbor.parse(\n              cbor_dist.CborString.fromCborObj(\n                new cbor_dist.CborBytes(\n                  cbor_dist.Cbor.encode(\n                    new cbor_dist.CborArray([\n                      new cbor_dist.CborUInt(versionByte),\n                      new cbor_dist.CborString(script.code).toCborObj()\n                    ])\n                  ).toBuffer()\n                )\n              )\n            )\n          );\n          return cbor_dist.Cbor.encode(taggedScript).toString();\n        } else {\n          const nativeScript = toNativeScript(script);\n          let taggedScript = new cbor_dist.CborTag(\n            24,\n            cbor_dist.Cbor.parse(\n              cbor_dist.CborString.fromCborObj(\n                new cbor_dist.CborBytes(\n                  cbor_dist.Cbor.encode(\n                    new cbor_dist.CborArray([\n                      new cbor_dist.CborUInt(0),\n                      new cbor_dist.CborString(nativeScript.toCbor()).toCborObj()\n                    ])\n                  ).toBuffer()\n                )\n              )\n            )\n          );\n          return cbor_dist.Cbor.encode(taggedScript).toString();\n        }\n      }\n    }\n  };\n  serializeTxBody = (txBuilderBody, protocolParams) => {\n    const serializerCore = new CardanoSDKSerializerCore(\n      protocolParams ?? this.protocolParams\n    );\n    return serializerCore.coreSerializeTx(txBuilderBody);\n  };\n  serializeTxBodyWithMockSignatures(txBuilderBody, protocolParams) {\n    const serializerCore = new CardanoSDKSerializerCore(protocolParams);\n    return serializerCore.coreSerializeTxWithMockSignatures(txBuilderBody);\n  }\n  addSigningKeys = (txHex, signingKeys) => {\n    let cardanoTx = dist_Transaction.fromCbor(TxCBOR(txHex));\n    let currentWitnessSet = cardanoTx.witnessSet();\n    let currentWitnessSetVkeys = currentWitnessSet.vkeys();\n    let currentWitnessSetVkeysValues = currentWitnessSetVkeys ? [...currentWitnessSetVkeys.values()] : [];\n    for (let i = 0; i < signingKeys.length; i++) {\n      let keyHex = signingKeys[i];\n      if (keyHex) {\n        if (keyHex.length === 68 && keyHex.substring(0, 4) === \"5820\") {\n          keyHex = keyHex.substring(4);\n        }\n        const cardanoSigner = buildEd25519PrivateKeyFromSecretKey(keyHex);\n        const signature = cardanoSigner.sign(esm_primitives_HexBlob(cardanoTx.getId()));\n        currentWitnessSetVkeysValues.push(\n          new dist_VkeyWitness(\n            Ed25519PublicKeyHex2(cardanoSigner.toPublic().hex()),\n            Ed25519SignatureHex2(signature.hex())\n          )\n        );\n      }\n    }\n    currentWitnessSet.setVkeys(\n      CborSet.fromCore(\n        currentWitnessSetVkeysValues.map((vkw) => vkw.toCore()),\n        dist_VkeyWitness.fromCore\n      )\n    );\n    cardanoTx.setWitnessSet(currentWitnessSet);\n    return cardanoTx.toCbor();\n  };\n  serializeValue(value) {\n    return toValue(value).toCbor();\n  }\n  serializeOutput(output) {\n    let cardanoOutput = new dist_TransactionOutput(\n      toCardanoAddress(output.address),\n      toValue(output.amount)\n    );\n    if (output.datum?.type === \"Hash\") {\n      cardanoOutput.setDatum(\n        dist_Datum.newDataHash(fromBuilderToPlutusData(output.datum.data).hash())\n      );\n    } else if (output.datum?.type === \"Inline\") {\n      cardanoOutput.setDatum(\n        dist_Datum.newInlineData(fromBuilderToPlutusData(output.datum.data))\n      );\n    } else if (output.datum?.type === \"Embedded\") {\n      throw new Error(\"Embedded datum not supported\");\n    }\n    if (output.referenceScript) {\n      switch (output.referenceScript.version) {\n        case \"V1\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV1Script(\n              dist_PlutusV1Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n        case \"V2\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV2Script(\n              dist_PlutusV2Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n        case \"V3\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV3Script(\n              dist_PlutusV3Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n        default: {\n          cardanoOutput.setScriptRef(\n            dist_Script.newNativeScript(\n              dist_NativeScript.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n      }\n    }\n    return cardanoOutput.toCbor();\n  }\n};\nvar CardanoSDKSerializerCore = class {\n  txBody;\n  txWitnessSet;\n  txAuxilliaryData;\n  utxoContext = /* @__PURE__ */ new Map();\n  mintRedeemers = /* @__PURE__ */ new Map();\n  scriptsProvided = /* @__PURE__ */ new Set();\n  datumsProvided = /* @__PURE__ */ new Set();\n  usedLanguages = {\n    [0]: false,\n    [1]: false,\n    [2]: false\n  };\n  protocolParams;\n  refScriptSize;\n  constructor(protocolParams) {\n    this.protocolParams = protocolParams || DEFAULT_PROTOCOL_PARAMETERS;\n    this.txBody = new dist_TransactionBody(\n      CborSet.fromCore([], dist_TransactionInput.fromCore),\n      [],\n      BigInt(0),\n      void 0\n    );\n    this.refScriptSize = 0;\n    this.txWitnessSet = new dist_TransactionWitnessSet();\n    this.txAuxilliaryData = new AuxilliaryData();\n  }\n  coreSerializeTxBody = (txBuilderBody) => {\n    const {\n      inputs,\n      outputs,\n      collaterals,\n      requiredSignatures,\n      referenceInputs,\n      mints,\n      metadata,\n      validityRange,\n      certificates,\n      withdrawals,\n      votes\n    } = txBuilderBody;\n    const uniqueRefInputs = this.removeBodyInputRefInputOverlap(\n      inputs,\n      referenceInputs\n    );\n    this.addAllInputs(inputs);\n    this.setFee(txBuilderBody.fee ?? \"0\");\n    this.sanitizeOutputs(outputs);\n    this.addAllOutputs(outputs);\n    this.addAllMints(mints);\n    this.addAllCerts(certificates);\n    this.addAllWithdrawals(withdrawals);\n    this.addAllVotes(votes);\n    this.addAllCollateralInputs(collaterals);\n    this.addAllReferenceInputs(uniqueRefInputs);\n    this.removeInputRefInputOverlap();\n    this.setValidityInterval(validityRange);\n    this.addAllRequiredSignatures(requiredSignatures);\n    if (metadata.size > 0) {\n      this.addMetadata(metadata);\n    }\n    return this.txBody;\n  };\n  coreSerializeTx(txBuilderBody) {\n    const bodyCore = this.coreSerializeTxBody(txBuilderBody);\n    if (txBuilderBody.fee !== void 0) {\n      this.txBody.setFee(BigInt(txBuilderBody.fee));\n    }\n    this.buildWitnessSet();\n    return new dist_Transaction(\n      bodyCore,\n      this.txWitnessSet,\n      this.txAuxilliaryData\n    ).toCbor();\n  }\n  coreSerializeTxWithMockSignatures(txBuilderBody) {\n    const bodyCore = this.coreSerializeTxBody(txBuilderBody);\n    const mockWitSet = this.createMockedWitnessSet(\n      txBuilderBody.expectedNumberKeyWitnesses,\n      txBuilderBody.expectedByronAddressWitnesses\n    );\n    return new dist_Transaction(\n      bodyCore,\n      mockWitSet,\n      this.txAuxilliaryData\n    ).toCbor();\n  }\n  sanitizeOutputs = (outputs) => {\n    for (let i = 0; i < outputs.length; i++) {\n      let currentOutput = outputs[i];\n      let lovelaceFound = false;\n      for (let j = 0; j < currentOutput.amount.length; j++) {\n        let outputAmount = currentOutput.amount[j];\n        if (outputAmount?.unit == \"\" || outputAmount?.unit == \"lovelace\") {\n          lovelaceFound = true;\n          if (outputAmount?.quantity == \"0\" || outputAmount?.quantity == \"\") {\n            outputAmount.unit = \"lovelace\";\n            outputAmount.quantity = \"10000000\";\n            let dummyCardanoOutput = this.toCardanoOutput(\n              currentOutput\n            );\n            let minUtxoValue = (160 + dummyCardanoOutput.toCbor().length / 2 + 1) * this.protocolParams.coinsPerUtxoSize;\n            outputAmount.quantity = minUtxoValue.toString();\n          }\n        }\n      }\n      if (!lovelaceFound) {\n        let currentAmount = {\n          unit: \"lovelace\",\n          quantity: \"10000000\"\n        };\n        currentOutput.amount.push(currentAmount);\n        let dummyCardanoOutput = this.toCardanoOutput(\n          currentOutput\n        );\n        let minUtxoValue = (160 + dummyCardanoOutput.toCbor().length / 2 + 1) * this.protocolParams.coinsPerUtxoSize;\n        currentAmount.quantity = minUtxoValue.toString();\n        if (!lovelaceFound) {\n          let currentAmount2 = {\n            unit: \"lovelace\",\n            quantity: \"10000000\"\n          };\n          currentOutput.amount.push(currentAmount2);\n          let dummyCardanoOutput2 = this.toCardanoOutput(\n            currentOutput\n          );\n          let minUtxoValue2 = (160 + dummyCardanoOutput2.toCbor().length / 2 + 1) * this.protocolParams.coinsPerUtxoSize;\n          currentAmount2.quantity = minUtxoValue2.toString();\n        }\n      }\n    }\n  };\n  addAllInputs = (inputs) => {\n    for (let i = 0; i < inputs.length; i += 1) {\n      const currentTxIn = inputs[i];\n      if (!currentTxIn) continue;\n      switch (currentTxIn.type) {\n        case \"PubKey\":\n          this.addTxIn(currentTxIn);\n          break;\n        case \"Script\":\n          this.addScriptTxIn(\n            currentTxIn,\n            i\n          );\n          break;\n        case \"SimpleScript\":\n          this.addSimpleScriptTxIn(\n            currentTxIn\n          );\n      }\n    }\n  };\n  addTxIn = (currentTxIn) => {\n    let cardanoTxIn = new dist_TransactionInput(\n      dist_TransactionId(currentTxIn.txIn.txHash),\n      BigInt(currentTxIn.txIn.txIndex)\n    );\n    const inputs = this.txBody.inputs();\n    const txInputsList = [...inputs.values()];\n    if (txInputsList.find((input) => {\n      input.index() == cardanoTxIn.index() && input.transactionId == cardanoTxIn.transactionId;\n    })) {\n      throw new Error(\"Duplicate input added to tx body\");\n    }\n    txInputsList.push(cardanoTxIn);\n    inputs.setValues(txInputsList);\n    const cardanoTxOut = new dist_TransactionOutput(\n      toCardanoAddress(currentTxIn.txIn.address),\n      toValue(currentTxIn.txIn.amount)\n    );\n    this.utxoContext.set(cardanoTxIn, cardanoTxOut);\n    this.txBody.setInputs(inputs);\n    if (currentTxIn.txIn.scriptSize) {\n      this.refScriptSize += currentTxIn.txIn.scriptSize;\n    }\n  };\n  addScriptTxIn = (currentTxIn, index) => {\n    this.addTxIn({\n      type: \"PubKey\",\n      txIn: currentTxIn.txIn\n    });\n    if (!currentTxIn.scriptTxIn.scriptSource) {\n      throw new Error(\"A script input had no script source\");\n    }\n    if (!currentTxIn.scriptTxIn.datumSource) {\n      throw new Error(\"A script input had no datum source\");\n    }\n    if (!currentTxIn.scriptTxIn.redeemer) {\n      throw new Error(\"A script input had no redeemer\");\n    }\n    if (currentTxIn.scriptTxIn.scriptSource.type === \"Provided\") {\n      this.addProvidedPlutusScript(currentTxIn.scriptTxIn.scriptSource.script);\n    } else if (currentTxIn.scriptTxIn.scriptSource.type === \"Inline\") {\n      this.addScriptRef(currentTxIn.scriptTxIn.scriptSource);\n    }\n    if (currentTxIn.scriptTxIn.datumSource.type === \"Provided\") {\n      this.datumsProvided.add(\n        fromBuilderToPlutusData(currentTxIn.scriptTxIn.datumSource.data)\n      );\n    } else if (currentTxIn.scriptTxIn.datumSource.type === \"Inline\") {\n      this.addReferenceInput({\n        txHash: currentTxIn.txIn.txHash,\n        txIndex: currentTxIn.txIn.txIndex\n      });\n    }\n    let exUnits = currentTxIn.scriptTxIn.redeemer.exUnits;\n    let redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n    let redeemersList = [...redeemers.values()];\n    redeemersList.push(\n      new dist_Redeemer(\n        dist_RedeemerTag.Spend,\n        BigInt(index),\n        fromBuilderToPlutusData(currentTxIn.scriptTxIn.redeemer.data),\n        new dist_ExUnits(BigInt(exUnits.mem), BigInt(exUnits.steps))\n      )\n    );\n    redeemers.setValues(redeemersList);\n    this.txWitnessSet.setRedeemers(redeemers);\n  };\n  addSimpleScriptTxIn = (currentTxIn) => {\n    this.addTxIn({\n      type: \"PubKey\",\n      txIn: currentTxIn.txIn\n    });\n    if (!currentTxIn.simpleScriptTxIn.scriptSource) {\n      throw new Error(\"A native script input had no script source\");\n    }\n    if (currentTxIn.simpleScriptTxIn.scriptSource.type === \"Provided\") {\n      this.scriptsProvided.add(\n        dist_Script.newNativeScript(\n          dist_NativeScript.fromCbor(\n            esm_primitives_HexBlob(currentTxIn.simpleScriptTxIn.scriptSource.scriptCode)\n          )\n        ).toCbor()\n      );\n    } else if (currentTxIn.simpleScriptTxIn.scriptSource.type === \"Inline\") {\n      this.addSimpleScriptRef(currentTxIn.simpleScriptTxIn.scriptSource);\n    }\n  };\n  addAllOutputs = (outputs) => {\n    for (let i = 0; i < outputs.length; i++) {\n      this.addOutput(outputs[i]);\n    }\n  };\n  addOutput = (output) => {\n    const currentOutputs = this.txBody.outputs();\n    currentOutputs.push(this.toCardanoOutput(output));\n    this.txBody.setOutputs(currentOutputs);\n  };\n  toCardanoOutput = (output) => {\n    let cardanoOutput = new dist_TransactionOutput(\n      toCardanoAddress(output.address),\n      toValue(output.amount)\n    );\n    if (output.datum?.type === \"Hash\") {\n      cardanoOutput.setDatum(\n        dist_Datum.newDataHash(\n          DatumHash(fromBuilderToPlutusData(output.datum.data).hash())\n        )\n      );\n    } else if (output.datum?.type === \"Inline\") {\n      cardanoOutput.setDatum(\n        dist_Datum.newInlineData(fromBuilderToPlutusData(output.datum.data))\n      );\n    } else if (output.datum?.type === \"Embedded\") {\n      const currentWitnessDatum = this.txWitnessSet.plutusData() ?? CborSet.fromCore([], PlutusData.fromCore);\n      const currentWitnessDatumValues = [...currentWitnessDatum.values()];\n      currentWitnessDatumValues.push(\n        fromBuilderToPlutusData(output.datum.data)\n      );\n      currentWitnessDatum.setValues(currentWitnessDatumValues);\n      this.txWitnessSet.setPlutusData(currentWitnessDatum);\n    }\n    if (output.referenceScript) {\n      switch (output.referenceScript.version) {\n        case \"V1\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV1Script(\n              dist_PlutusV1Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n        case \"V2\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV2Script(\n              dist_PlutusV2Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n        case \"V3\": {\n          cardanoOutput.setScriptRef(\n            dist_Script.newPlutusV3Script(\n              dist_PlutusV3Script.fromCbor(esm_primitives_HexBlob(output.referenceScript.code))\n            )\n          );\n          break;\n        }\n      }\n    }\n    return cardanoOutput;\n  };\n  addAllReferenceInputs = (refInputs) => {\n    for (let i = 0; i < refInputs.length; i++) {\n      this.addReferenceInput(refInputs[i]);\n    }\n  };\n  addReferenceInput = (refInput) => {\n    let referenceInputs = this.txBody.referenceInputs() ?? CborSet.fromCore([], dist_TransactionInput.fromCore);\n    let referenceInputsList = [...referenceInputs.values()];\n    if (referenceInputsList.some(\n      (input) => input.transactionId().toString() === refInput.txHash && input.index().toString() === refInput.txIndex.toString()\n    ))\n      return;\n    referenceInputsList.push(\n      new dist_TransactionInput(\n        dist_TransactionId(refInput.txHash),\n        BigInt(refInput.txIndex)\n      )\n    );\n    referenceInputs.setValues(referenceInputsList);\n    if (refInput.scriptSize) {\n      this.refScriptSize += refInput.scriptSize;\n    }\n    this.txBody.setReferenceInputs(referenceInputs);\n  };\n  addAllMints = (mints) => {\n    for (let i2 = 0; i2 < mints.length; i2++) {\n      this.addMint(mints[i2]);\n    }\n    let redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n    let redeemersList = [...redeemers.values()];\n    let i = 0;\n    this.mintRedeemers.forEach((redeemer) => {\n      const newRedeemer = new dist_Redeemer(\n        redeemer.tag(),\n        BigInt(i),\n        redeemer.data(),\n        redeemer.exUnits()\n      );\n      redeemersList.push(newRedeemer);\n      redeemers.setValues(redeemersList);\n      i++;\n    });\n    this.txWitnessSet.setRedeemers(redeemers);\n  };\n  addMint = (mint) => {\n    const currentMint = this.txBody.mint() ?? /* @__PURE__ */ new Map();\n    for (const assetValue of mint.mintValue) {\n      const mintAssetId = `${mint.policyId}${assetValue.assetName}`;\n      for (const asset of currentMint.keys()) {\n        if (asset.toString() == mintAssetId) {\n          throw new Error(\"The same asset is already in the mint field\");\n        }\n      }\n      currentMint.set(\n        dist_AssetId.fromParts(\n          dist_PolicyId(mint.policyId),\n          dist_AssetName(assetValue.assetName)\n        ),\n        BigInt(assetValue.amount)\n      );\n    }\n    this.txBody.setMint(currentMint);\n    if (mint.type === \"Native\") {\n      if (!mint.scriptSource)\n        throw new Error(\"Script source not provided for native script mint\");\n      const nativeScriptSource = mint.scriptSource;\n      if (!nativeScriptSource)\n        throw new Error(\n          \"A script source for a native script was not a native script somehow\"\n        );\n      if (nativeScriptSource.type === \"Provided\") {\n        this.scriptsProvided.add(\n          dist_Script.newNativeScript(\n            dist_NativeScript.fromCbor(esm_primitives_HexBlob(nativeScriptSource.scriptCode))\n          ).toCbor()\n        );\n      } else if (nativeScriptSource.type === \"Inline\") {\n        this.addSimpleScriptRef(nativeScriptSource);\n      }\n    } else if (mint.type === \"Plutus\") {\n      if (!mint.scriptSource)\n        throw new Error(\"Script source not provided for plutus script mint\");\n      const plutusScriptSource = mint.scriptSource;\n      if (!plutusScriptSource) {\n        throw new Error(\n          \"A script source for a plutus mint was not plutus script somehow\"\n        );\n      }\n      if (!mint.redeemer) {\n        throw new Error(\"A redeemer was not provided for a plutus mint\");\n      }\n      const currentRedeemer = new dist_Redeemer(\n        dist_RedeemerTag.Mint,\n        BigInt(0),\n        fromBuilderToPlutusData(mint.redeemer.data),\n        new dist_ExUnits(\n          BigInt(mint.redeemer.exUnits.mem),\n          BigInt(mint.redeemer.exUnits.steps)\n        )\n      );\n      if (this.mintRedeemers.has(mint.policyId)) {\n        if (this.mintRedeemers.get(mint.policyId)?.toCbor() !== currentRedeemer.toCbor()) {\n          throw new Error(\n            \"The same minting policy must have the same redeemer\"\n          );\n        }\n      } else {\n        this.mintRedeemers.set(mint.policyId, currentRedeemer);\n      }\n      if (plutusScriptSource.type === \"Provided\") {\n        this.addProvidedPlutusScript(plutusScriptSource.script);\n      } else if (plutusScriptSource.type === \"Inline\") {\n        this.addScriptRef(plutusScriptSource);\n      }\n    }\n  };\n  addAllCerts = (certs) => {\n    for (let i = 0; i < certs.length; i++) {\n      this.addCert(certs[i], i);\n    }\n  };\n  addCert = (cert, index) => {\n    const currentCerts = this.txBody.certs() ?? CborSet.fromCore([], Certificate.fromCore);\n    let currentCertsValues = [...currentCerts.values()];\n    currentCertsValues.push(toCardanoCert(cert.certType));\n    currentCerts.setValues(currentCertsValues);\n    this.txBody.setCerts(currentCerts);\n    if (cert.type === \"SimpleScriptCertificate\") {\n      if (!cert.simpleScriptSource)\n        throw new Error(\"Script source not provided for native script cert\");\n      const nativeScriptSource = cert.simpleScriptSource;\n      if (!nativeScriptSource)\n        throw new Error(\n          \"A script source for a native script was not a native script somehow\"\n        );\n      if (nativeScriptSource.type === \"Provided\") {\n        this.scriptsProvided.add(\n          dist_Script.newNativeScript(\n            dist_NativeScript.fromCbor(esm_primitives_HexBlob(nativeScriptSource.scriptCode))\n          ).toCbor()\n        );\n      } else if (nativeScriptSource.type === \"Inline\") {\n        this.addSimpleScriptRef(nativeScriptSource);\n      }\n    } else if (cert.type === \"ScriptCertificate\") {\n      if (!cert.scriptSource)\n        throw new Error(\n          \"Script source not provided for plutus script certificate\"\n        );\n      const plutusScriptSource = cert.scriptSource;\n      if (!plutusScriptSource) {\n        throw new Error(\n          \"A script source for a plutus certificate was not plutus script somehow\"\n        );\n      }\n      if (!cert.redeemer) {\n        throw new Error(\"A redeemer was not provided for a plutus certificate\");\n      }\n      let redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n      let redeemersList = [...redeemers.values()];\n      redeemersList.push(\n        new dist_Redeemer(\n          dist_RedeemerTag.Cert,\n          BigInt(index),\n          fromBuilderToPlutusData(cert.redeemer.data),\n          new dist_ExUnits(\n            BigInt(cert.redeemer.exUnits.mem),\n            BigInt(cert.redeemer.exUnits.steps)\n          )\n        )\n      );\n      redeemers.setValues(redeemersList);\n      this.txWitnessSet.setRedeemers(redeemers);\n      if (plutusScriptSource.type === \"Provided\") {\n        this.addProvidedPlutusScript(plutusScriptSource.script);\n      } else if (plutusScriptSource.type === \"Inline\") {\n        this.addScriptRef(plutusScriptSource);\n      }\n    }\n  };\n  addAllWithdrawals = (withdrawals) => {\n    for (let i = 0; i < withdrawals.length; i++) {\n      this.addWithdrawal(withdrawals[i], i);\n    }\n  };\n  addWithdrawal = (withdrawal, index) => {\n    const currentWithdrawals = this.txBody.withdrawals() ?? /* @__PURE__ */ new Map();\n    const address = toCardanoAddress(withdrawal.address);\n    const rewardAddress = address.asReward();\n    if (!rewardAddress) {\n      throw new Error(\"Failed to parse reward address for withdrawal\");\n    }\n    currentWithdrawals.set(\n      dist_RewardAccount.fromCredential(\n        rewardAddress.getPaymentCredential(),\n        address.getNetworkId()\n      ),\n      BigInt(withdrawal.coin)\n    );\n    this.txBody.setWithdrawals(currentWithdrawals);\n    if (withdrawal.type === \"SimpleScriptWithdrawal\") {\n      if (!withdrawal.scriptSource)\n        throw new Error(\"Script source not provided for native script cert\");\n      const nativeScriptSource = withdrawal.scriptSource;\n      if (!nativeScriptSource)\n        throw new Error(\n          \"A script source for a native script was not a native script somehow\"\n        );\n      if (nativeScriptSource.type === \"Provided\") {\n        this.scriptsProvided.add(\n          dist_Script.newNativeScript(\n            dist_NativeScript.fromCbor(esm_primitives_HexBlob(nativeScriptSource.scriptCode))\n          ).toCbor()\n        );\n      } else if (nativeScriptSource.type === \"Inline\") {\n        this.addSimpleScriptRef(nativeScriptSource);\n      }\n    } else if (withdrawal.type === \"ScriptWithdrawal\") {\n      if (!withdrawal.scriptSource)\n        throw new Error(\n          \"Script source not provided for plutus script certificate\"\n        );\n      const plutusScriptSource = withdrawal.scriptSource;\n      if (!plutusScriptSource) {\n        throw new Error(\n          \"A script source for a plutus certificate was not plutus script somehow\"\n        );\n      }\n      if (!withdrawal.redeemer) {\n        throw new Error(\"A redeemer was not provided for a plutus certificate\");\n      }\n      let redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n      let redeemersList = [...redeemers.values()];\n      redeemersList.push(\n        new dist_Redeemer(\n          dist_RedeemerTag.Reward,\n          BigInt(index),\n          fromBuilderToPlutusData(withdrawal.redeemer.data),\n          new dist_ExUnits(\n            BigInt(withdrawal.redeemer.exUnits.mem),\n            BigInt(withdrawal.redeemer.exUnits.steps)\n          )\n        )\n      );\n      redeemers.setValues(redeemersList);\n      this.txWitnessSet.setRedeemers(redeemers);\n      if (plutusScriptSource.type === \"Provided\") {\n        this.addProvidedPlutusScript(plutusScriptSource.script);\n      } else if (plutusScriptSource.type === \"Inline\") {\n        this.addScriptRef(plutusScriptSource);\n      }\n    }\n  };\n  addAllCollateralInputs = (collaterals) => {\n    for (let i = 0; i < collaterals.length; i++) {\n      this.addCollateralInput(\n        collaterals[i]\n      );\n    }\n  };\n  addCollateralInput = (collateral) => {\n    let cardanoTxIn = new dist_TransactionInput(\n      dist_TransactionId(collateral.txIn.txHash),\n      BigInt(collateral.txIn.txIndex)\n    );\n    const collateralInputs = this.txBody.collateral() ?? CborSet.fromCore([], dist_TransactionInput.fromCore);\n    const collateralInputsList = [\n      ...collateralInputs.values()\n    ];\n    if (collateralInputsList.find((input) => {\n      input.index() == cardanoTxIn.index() && input.transactionId == cardanoTxIn.transactionId;\n    })) {\n      throw new Error(\"Duplicate input added to tx body\");\n    }\n    collateralInputsList.push(cardanoTxIn);\n    collateralInputs.setValues(collateralInputsList);\n    const cardanoTxOut = new dist_TransactionOutput(\n      toCardanoAddress(collateral.txIn.address),\n      toValue(collateral.txIn.amount)\n    );\n    this.utxoContext.set(cardanoTxIn, cardanoTxOut);\n    this.txBody.setCollateral(collateralInputs);\n  };\n  setValidityInterval = (validity) => {\n    if (validity.invalidBefore) {\n      this.txBody.setValidityStartInterval(dist_Slot(validity.invalidBefore));\n    }\n    if (validity.invalidHereafter) {\n      this.txBody.setTtl(dist_Slot(validity.invalidHereafter));\n    }\n  };\n  setFee = (fee) => {\n    this.txBody.setFee(BigInt(fee));\n  };\n  addAllRequiredSignatures = (requiredSignatures) => {\n    const requiredSigners = this.txBody.requiredSigners() ?? CborSet.fromCore([], Hash.fromCore);\n    let requiredSignerValues = [...requiredSigners.values()];\n    for (const requiredSigner of requiredSignatures) {\n      requiredSignerValues.push(\n        Hash.fromCore(Ed25519KeyHashHex2(requiredSigner))\n      );\n    }\n    requiredSigners.setValues(requiredSignerValues);\n    this.txBody.setRequiredSigners(requiredSigners);\n  };\n  addMetadata = (metadata) => {\n    this.txAuxilliaryData.setMetadata(\n      new GeneralTransactionMetadata(\n        toCardanoMetadataMap(metadata)\n      )\n    );\n  };\n  createMockedWitnessSet = (requiredSignaturesCount, requiredByronSignatures) => {\n    this.buildWitnessSet();\n    const clonedWitnessSet = dist_TransactionWitnessSet.fromCbor(\n      this.txWitnessSet.toCbor()\n    );\n    const bootstrapWitnesses = this.mockBootstrapWitnesses(\n      requiredByronSignatures\n    );\n    const vkeyWitnesses = this.mockVkeyWitnesses(requiredSignaturesCount);\n    const bootstrapsSet = dist_CborSet.fromCore([], dist_BootstrapWitness.fromCore);\n    bootstrapsSet.setValues(bootstrapWitnesses);\n    clonedWitnessSet.setBootstraps(bootstrapsSet);\n    const vkeysSet = dist_CborSet.fromCore([], dist_VkeyWitness.fromCore);\n    vkeysSet.setValues(vkeyWitnesses);\n    clonedWitnessSet.setVkeys(vkeysSet);\n    return clonedWitnessSet;\n  };\n  buildWitnessSet = () => {\n    let nativeScripts = this.txWitnessSet.nativeScripts() ?? CborSet.fromCore([], dist_NativeScript.fromCore);\n    let v1Scripts = this.txWitnessSet.plutusV1Scripts() ?? CborSet.fromCore([], dist_PlutusV1Script.fromCore);\n    let v2Scripts = this.txWitnessSet.plutusV2Scripts() ?? CborSet.fromCore([], dist_PlutusV2Script.fromCore);\n    let v3Scripts = this.txWitnessSet.plutusV3Scripts() ?? CborSet.fromCore([], dist_PlutusV3Script.fromCore);\n    this.scriptsProvided.forEach((scriptHex) => {\n      const script = dist_Script.fromCbor(esm_primitives_HexBlob(scriptHex));\n      if (script.asNative() !== void 0) {\n        let nativeScriptsList = [...nativeScripts.values()];\n        nativeScriptsList.push(script.asNative());\n        nativeScripts.setValues(nativeScriptsList);\n      } else if (script.asPlutusV1() !== void 0) {\n        let v1ScriptsList = [...v1Scripts.values()];\n        v1ScriptsList.push(script.asPlutusV1());\n        v1Scripts.setValues(v1ScriptsList);\n      } else if (script.asPlutusV2() !== void 0) {\n        let v2ScriptsList = [...v2Scripts.values()];\n        v2ScriptsList.push(script.asPlutusV2());\n        v2Scripts.setValues(v2ScriptsList);\n      } else if (script.asPlutusV3() !== void 0) {\n        let v3ScriptsList = [...v3Scripts.values()];\n        v3ScriptsList.push(script.asPlutusV3());\n        v3Scripts.setValues(v3ScriptsList);\n      }\n      this.txWitnessSet.setNativeScripts(nativeScripts);\n      this.txWitnessSet.setPlutusV1Scripts(v1Scripts);\n      this.txWitnessSet.setPlutusV2Scripts(v2Scripts);\n      this.txWitnessSet.setPlutusV3Scripts(v3Scripts);\n    });\n    let datums = this.txWitnessSet.plutusData() ?? CborSet.fromCore([], dist_PlutusData.fromCore);\n    let datumsList = [...datums.values()];\n    this.datumsProvided.forEach((datum) => {\n      datumsList.push(datum);\n    });\n    datums.setValues(datumsList);\n    this.txWitnessSet.setPlutusData(datums);\n    let costModelV1 = CostModel.newPlutusV1(\n      DEFAULT_V1_COST_MODEL_LIST\n    );\n    let costModelV2 = CostModel.newPlutusV2(\n      DEFAULT_V2_COST_MODEL_LIST\n    );\n    let costModelV3 = CostModel.newPlutusV3(\n      DEFAULT_V3_COST_MODEL_LIST\n    );\n    let costModels = new Costmdls();\n    if (this.usedLanguages[dist_PlutusLanguageVersion.V1]) {\n      costModels.insert(costModelV1);\n    }\n    if (this.usedLanguages[dist_PlutusLanguageVersion.V2]) {\n      costModels.insert(costModelV2);\n    }\n    if (this.usedLanguages[dist_PlutusLanguageVersion.V3]) {\n      costModels.insert(costModelV3);\n    }\n    const redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n    let scriptDataHash = hashScriptData(\n      costModels,\n      redeemers,\n      datums.size() > 0 ? datums : void 0\n    );\n    if (scriptDataHash) {\n      this.txBody.setScriptDataHash(scriptDataHash);\n    }\n    let auxiliaryDataHash = dist_computeAuxiliaryDataHash(\n      this.txAuxilliaryData.toCore()\n    );\n    if (auxiliaryDataHash) {\n      this.txBody.setAuxiliaryDataHash(auxiliaryDataHash);\n    }\n  };\n  removeInputRefInputOverlap = () => {\n    let refInputsValues = [];\n    const inputs = this.txBody.inputs()?.values();\n    if (this.txBody.referenceInputs()) {\n      const currentRefInputValues = this.txBody.referenceInputs().values();\n      currentRefInputValues.forEach((refInput) => {\n        let found = false;\n        for (let i = 0; i < inputs.length; i++) {\n          if (refInput.toCbor() === inputs[i].toCbor()) {\n            found = true;\n          }\n        }\n        if (!found) {\n          refInputsValues.push(refInput);\n        }\n      });\n      this.txBody.setReferenceInputs(\n        CborSet.fromCore(\n          refInputsValues.map((input) => input.toCore()),\n          dist_TransactionInput.fromCore\n        )\n      );\n    }\n  };\n  removeBodyInputRefInputOverlap = (inputs, refInputs) => {\n    let finalRefInputs = [];\n    for (let i = 0; i < refInputs.length; i++) {\n      let refInput = refInputs[i];\n      if (!inputs.some(\n        (input) => input.txIn.txHash === refInput.txHash && input.txIn.txIndex === refInput.txIndex\n      )) {\n        finalRefInputs.push(refInput);\n      }\n    }\n    return finalRefInputs;\n  };\n  addScriptRef = (scriptSource) => {\n    if (scriptSource.type !== \"Inline\") {\n      return;\n    }\n    if (!scriptSource.scriptSize) {\n      throw new Error(\n        \"A reference script was used without providing its size, this must be provided as fee calculations are based on it\"\n      );\n    }\n    this.addReferenceInput({\n      txHash: scriptSource.txHash,\n      txIndex: scriptSource.txIndex,\n      scriptSize: Number(scriptSource.scriptSize)\n    });\n    switch (scriptSource.version) {\n      case \"V1\": {\n        this.usedLanguages[dist_PlutusLanguageVersion.V1] = true;\n        break;\n      }\n      case \"V2\": {\n        this.usedLanguages[dist_PlutusLanguageVersion.V2] = true;\n        break;\n      }\n      case \"V3\": {\n        this.usedLanguages[dist_PlutusLanguageVersion.V3] = true;\n        break;\n      }\n    }\n  };\n  addSimpleScriptRef = (simpleScriptSource) => {\n    if (simpleScriptSource.type !== \"Inline\") {\n      return;\n    }\n    if (!simpleScriptSource.scriptSize) {\n      throw new Error(\n        \"A reference script was used without providing its size, this must be provided as fee calculations are based on it\"\n      );\n    }\n    this.addReferenceInput({\n      txHash: simpleScriptSource.txHash,\n      txIndex: simpleScriptSource.txIndex,\n      scriptSize: Number(simpleScriptSource.scriptSize)\n    });\n  };\n  addProvidedPlutusScript = (script) => {\n    switch (script.version) {\n      case \"V1\": {\n        this.scriptsProvided.add(\n          dist_Script.newPlutusV1Script(\n            dist_PlutusV1Script.fromCbor(esm_primitives_HexBlob(script.code))\n          ).toCbor()\n        );\n        this.usedLanguages[dist_PlutusLanguageVersion.V1] = true;\n        break;\n      }\n      case \"V2\": {\n        this.scriptsProvided.add(\n          dist_Script.newPlutusV2Script(\n            dist_PlutusV2Script.fromCbor(esm_primitives_HexBlob(script.code))\n          ).toCbor()\n        );\n        this.usedLanguages[dist_PlutusLanguageVersion.V2] = true;\n        break;\n      }\n      case \"V3\": {\n        this.scriptsProvided.add(\n          dist_Script.newPlutusV3Script(\n            dist_PlutusV3Script.fromCbor(esm_primitives_HexBlob(script.code))\n          ).toCbor()\n        );\n        this.usedLanguages[dist_PlutusLanguageVersion.V3] = true;\n        break;\n      }\n    }\n  };\n  addAllVotes = (votes) => {\n    for (let i = 0; i < votes.length; i++) {\n      const vote = votes[i];\n      switch (vote.type) {\n        case \"BasicVote\": {\n          this.addBasicVote(vote);\n          break;\n        }\n        case \"ScriptVote\": {\n          this.addScriptVote(vote, i);\n          break;\n        }\n        case \"SimpleScriptVote\": {\n          this.addSimpleScriptVote(vote);\n          break;\n        }\n      }\n    }\n  };\n  addBasicVote = (basicVote) => {\n    const votes = this.txBody.votingProcedures() ?? VotingProcedures.fromCore([]);\n    votes.insert(\n      toCardanoVoter(basicVote.vote.voter),\n      toCardanoGovernanceActionId(basicVote.vote.govActionId),\n      toCardanoVotingProcedure(basicVote.vote.votingProcedure)\n    );\n    this.txBody.setVotingProcedures(votes);\n  };\n  addScriptVote = (vote, index) => {\n    if (!vote.scriptSource)\n      throw new Error(\"Script source not provided for plutus script vote\");\n    const plutusScriptSource = vote.scriptSource;\n    if (!plutusScriptSource) {\n      throw new Error(\n        \"A script source for a plutus certificate was not plutus script somehow\"\n      );\n    }\n    if (!vote.redeemer) {\n      throw new Error(\"A redeemer was not provided for a plutus vote\");\n    }\n    let redeemers = this.txWitnessSet.redeemers() ?? dist_Redeemers.fromCore([]);\n    let redeemersList = [...redeemers.values()];\n    redeemersList.push(\n      new dist_Redeemer(\n        dist_RedeemerTag.Voting,\n        BigInt(index),\n        fromBuilderToPlutusData(vote.redeemer.data),\n        new dist_ExUnits(\n          BigInt(vote.redeemer.exUnits.mem),\n          BigInt(vote.redeemer.exUnits.steps)\n        )\n      )\n    );\n    redeemers.setValues(redeemersList);\n    this.txWitnessSet.setRedeemers(redeemers);\n    if (plutusScriptSource.type === \"Provided\") {\n      this.addProvidedPlutusScript(plutusScriptSource.script);\n    } else if (plutusScriptSource.type === \"Inline\") {\n      this.addScriptRef(plutusScriptSource);\n    }\n    this.addBasicVote({ type: \"BasicVote\", vote: vote.vote });\n  };\n  addSimpleScriptVote = (vote) => {\n    if (!vote.simpleScriptSource)\n      throw new Error(\"Script source not provided for native script vote\");\n    const nativeScriptSource = vote.simpleScriptSource;\n    if (!nativeScriptSource)\n      throw new Error(\n        \"A script source for a native script was not a native script somehow\"\n      );\n    if (nativeScriptSource.type === \"Provided\") {\n      this.scriptsProvided.add(\n        dist_Script.newNativeScript(\n          dist_NativeScript.fromCbor(esm_primitives_HexBlob(nativeScriptSource.scriptCode))\n        ).toCbor()\n      );\n    } else if (nativeScriptSource.type === \"Inline\") {\n      this.addSimpleScriptRef(nativeScriptSource);\n    }\n    this.addBasicVote({ type: \"BasicVote\", vote: vote.vote });\n  };\n  mockVkeyWitnesses = (numberOfRequiredWitnesses) => {\n    let vkeyWitnesses = [];\n    for (let i = 0; i < numberOfRequiredWitnesses; i++) {\n      const numberInHex = this.numberToIntegerHex(i);\n      const pubKeyHex = this.mockPubkey(numberInHex);\n      const signature = this.mockSignature(numberInHex);\n      vkeyWitnesses.push(\n        new dist_VkeyWitness(\n          Ed25519PublicKeyHex2(pubKeyHex),\n          Ed25519SignatureHex2(signature)\n        )\n      );\n    }\n    return vkeyWitnesses;\n  };\n  mockPubkey(numberInHex) {\n    return \"0\".repeat(VKEY_PUBKEY_SIZE_BYTES * 2 - numberInHex.length).concat(numberInHex);\n  }\n  mockSignature(numberInHex) {\n    return \"0\".repeat(VKEY_SIGNATURE_SIZE_BYTES * 2 - numberInHex.length).concat(numberInHex);\n  }\n  mockChainCode = (numberInHex) => {\n    return \"0\".repeat(CHAIN_CODE_SIZE_BYTES * 2 - numberInHex.length).concat(numberInHex);\n  };\n  numberToIntegerHex = (number) => {\n    return BigInt(number).toString(16);\n  };\n  mockBootstrapWitnesses = (byronAddresses) => {\n    let bootstrapWitnesses = [];\n    for (let i = 0; i < byronAddresses.length; i++) {\n      const address = dist_Address.fromBytes(byronAddresses[i]).asByron();\n      if (!address) {\n        throw new Error(`Failed to parse byron address: ${byronAddresses[i]}`);\n      }\n      const numberInHex = this.numberToIntegerHex(i);\n      const pubKeyHex = this.mockPubkey(numberInHex);\n      const signature = this.mockSignature(numberInHex);\n      const chainCode = this.mockChainCode(numberInHex);\n      const attributes = address.getAttributes();\n      bootstrapWitnesses.push(\n        new dist_BootstrapWitness(\n          Ed25519PublicKeyHex2(pubKeyHex),\n          Ed25519SignatureHex2(signature),\n          esm_primitives_HexBlob(chainCode),\n          this.serializeByronAttributes(attributes)\n        )\n      );\n    }\n    return bootstrapWitnesses;\n  };\n  serializeByronAttributes = (attributes) => {\n    const writer = new dist_CborWriter();\n    let mapSize = 0;\n    if (attributes.magic) {\n      mapSize++;\n    }\n    if (attributes.derivationPath) {\n      mapSize++;\n    }\n    writer.writeStartMap(mapSize);\n    if (attributes.derivationPath) {\n      writer.writeInt(1);\n      const encodedPathCbor = new dist_CborWriter().writeByteString(buffer.Buffer.from(attributes.derivationPath, \"hex\")).encode();\n      writer.writeByteString(encodedPathCbor);\n    }\n    if (attributes.magic) {\n      writer.writeInt(2);\n      const encodedMagicCbor = new dist_CborWriter().writeInt(attributes.magic).encode();\n      writer.writeByteString(encodedMagicCbor);\n    }\n    return writer.encodeAsHex();\n  };\n};\n\n// src/plutus-tools/index.ts\n\n\n\nvar supportedPlutusCoreVersions = [\n  {\n    version: [1, 0, 0],\n    language: \"Plutus V1\"\n  },\n  {\n    version: [1, 1, 0],\n    language: \"Plutus V3\"\n  }\n];\nvar applyArgsToPlutusScript = (args, program, outputEncoding) => {\n  const purePlutusBytes = getPurePlutusBytes(program);\n  const parsedProgram = (0,uplc_dist.parseUPLC)(purePlutusBytes, \"flat\");\n  const decodedArgs = args.map((arg) => (0,plutus_data_dist.dataFromCbor)(arg));\n  let body = parsedProgram.body;\n  for (const plutusData of decodedArgs) {\n    const argTerm = uplc_dist.UPLCConst.data(plutusData);\n    body = new uplc_dist.Application(body, argTerm);\n  }\n  const encodedProgram = new uplc_dist.UPLCProgram(parsedProgram.version, body);\n  const newPlutusScriptBytes = (0,uplc_dist.encodeUPLC)(encodedProgram).toBuffer().buffer;\n  return applyEncoding(newPlutusScriptBytes, outputEncoding);\n};\nvar normalizePlutusScript = (plutusScript, encoding) => {\n  const bytes = core_cst_dist_Buffer.from(plutusScript, \"hex\");\n  const purePlutusBytes = getPurePlutusBytes(bytes);\n  const normalizedBytes = applyEncoding(purePlutusBytes, encoding);\n  return core_cst_dist_Buffer.from(normalizedBytes).toString(\"hex\");\n};\nvar hasSupportedPlutusVersion = (plutusScript) => {\n  if (plutusScript.length < 3) {\n    return false;\n  }\n  const version = [plutusScript[0], plutusScript[1], plutusScript[2]];\n  return supportedPlutusCoreVersions.some((supportedVersion) => {\n    return supportedVersion.version[0] === version[0] && supportedVersion.version[1] === version[1] && supportedVersion.version[2] === version[2];\n  });\n};\nvar getPurePlutusBytes = (plutusScript) => {\n  let unwrappedScript = plutusScript;\n  let length = 0;\n  try {\n    while (unwrappedScript.length >= 3 && length != unwrappedScript.length) {\n      length = unwrappedScript.length;\n      if (hasSupportedPlutusVersion(unwrappedScript)) {\n        return unwrappedScript;\n      }\n      const cbor = cbor_dist.Cbor.parse(unwrappedScript);\n      if (cbor instanceof cbor_dist.CborBytes) {\n        unwrappedScript = cbor.bytes;\n      } else {\n        break;\n      }\n    }\n  } catch (error) {\n    console.error(\"Error parsing Plutus script:\", error);\n  }\n  if (hasSupportedPlutusVersion(unwrappedScript)) {\n    return unwrappedScript;\n  }\n  throw new Error(\"Unsupported Plutus version or invalid Plutus script bytes\");\n};\nvar applyCborEncoding = (plutusScript) => {\n  return cbor_dist.Cbor.encode(new cbor_dist.CborBytes(plutusScript)).toBuffer();\n};\nvar applyEncoding = (plutusScript, outputEncoding) => {\n  switch (outputEncoding) {\n    case \"SingleCBOR\":\n      return applyCborEncoding(plutusScript);\n    case \"DoubleCBOR\":\n      return applyCborEncoding(applyCborEncoding(plutusScript));\n    case \"PurePlutusScriptBytes\":\n      return plutusScript;\n    default:\n      return applyCborEncoding(plutusScript);\n  }\n};\nvar applyParamsToScript = (rawScript, params, type = \"Mesh\") => {\n  let plutusParams = [];\n  switch (type) {\n    case \"JSON\":\n      params.forEach((param) => {\n        plutusParams.push(\n          fromBuilderToPlutusData({\n            type: \"JSON\",\n            content: param\n          })\n        );\n      });\n      break;\n    case \"CBOR\":\n      params.forEach((param) => {\n        plutusParams.push(\n          fromBuilderToPlutusData({\n            type: \"CBOR\",\n            content: param\n          })\n        );\n      });\n      break;\n    case \"Mesh\":\n      params.forEach((param) => {\n        plutusParams.push(\n          fromBuilderToPlutusData({\n            type: \"Mesh\",\n            content: param\n          })\n        );\n      });\n      break;\n  }\n  const byteParams = plutusParams.map((param) => {\n    return core_cst_dist_Buffer.from(param.toCbor(), \"hex\");\n  });\n  const scriptHex = core_cst_dist_Buffer.from(\n    applyArgsToPlutusScript(\n      byteParams,\n      core_cst_dist_Buffer.from(rawScript, \"hex\"),\n      \"DoubleCBOR\"\n    )\n  ).toString(\"hex\");\n  return scriptHex;\n};\n\n// src/index.ts\n\n\n\n\n\n// EXTERNAL MODULE: ./node_modules/axios/lib/axios.js + 48 modules\nvar axios = __webpack_require__(\"./node_modules/axios/lib/axios.js\");\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/assert.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Assert that condition is truthy or throw error (with message)\n */\nfunction assert(condition, msg) {\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions -- we want the implicit conversion to boolean\n    if (!condition) {\n        throw new Error(msg);\n    }\n}\nconst FLOAT32_MAX = 3.4028234663852886e38, FLOAT32_MIN = -3.4028234663852886e38, UINT32_MAX = 0xffffffff, INT32_MAX = 0x7fffffff, INT32_MIN = -0x80000000;\n/**\n * Assert a valid signed protobuf 32-bit integer.\n */\nfunction assertInt32(arg) {\n    if (typeof arg !== \"number\")\n        throw new Error(\"invalid int 32: \" + typeof arg);\n    if (!Number.isInteger(arg) || arg > INT32_MAX || arg < INT32_MIN)\n        throw new Error(\"invalid int 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid unsigned protobuf 32-bit integer.\n */\nfunction assertUInt32(arg) {\n    if (typeof arg !== \"number\")\n        throw new Error(\"invalid uint 32: \" + typeof arg);\n    if (!Number.isInteger(arg) || arg > UINT32_MAX || arg < 0)\n        throw new Error(\"invalid uint 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n/**\n * Assert a valid protobuf float value.\n */\nfunction assertFloat32(arg) {\n    if (typeof arg !== \"number\")\n        throw new Error(\"invalid float 32: \" + typeof arg);\n    if (!Number.isFinite(arg))\n        return;\n    if (arg > FLOAT32_MAX || arg < FLOAT32_MIN)\n        throw new Error(\"invalid float 32: \" + arg); // eslint-disable-line @typescript-eslint/restrict-plus-operands -- we want the implicit conversion to string\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/enum.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\nconst enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\n/**\n * Get reflection information from a generated enum.\n * If this function is called on something other than a generated\n * enum, it raises an error.\n */\nfunction getEnumType(enumObject) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-explicit-any\n    const t = enumObject[enumTypeSymbol];\n    assert(t, \"missing enum type on enum object\");\n    return t; // eslint-disable-line @typescript-eslint/no-unsafe-return\n}\n/**\n * Sets reflection information on a generated enum.\n */\nfunction setEnumType(enumObject, typeName, values, opt) {\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n    enumObject[enumTypeSymbol] = makeEnumType(typeName, values.map((v) => ({\n        no: v.no,\n        name: v.name,\n        localName: enumObject[v.no],\n    })), opt);\n}\n/**\n * Create a new EnumType with the given values.\n */\nfunction makeEnumType(typeName, values, \n// eslint-disable-next-line @typescript-eslint/no-unused-vars\n_opt) {\n    const names = Object.create(null);\n    const numbers = Object.create(null);\n    const normalValues = [];\n    for (const value of values) {\n        // We do not surface options at this time\n        // const value: EnumValueInfo = {...v, options: v.options ?? emptyReadonlyObject};\n        const n = normalizeEnumValue(value);\n        normalValues.push(n);\n        names[value.name] = n;\n        numbers[value.no] = n;\n    }\n    return {\n        typeName,\n        values: normalValues,\n        // We do not surface options at this time\n        // options: opt?.options ?? Object.create(null),\n        findName(name) {\n            return names[name];\n        },\n        findNumber(no) {\n            return numbers[no];\n        },\n    };\n}\n/**\n * Create a new enum object with the given values.\n * Sets reflection information.\n */\nfunction makeEnum(typeName, values, opt) {\n    const enumObject = {};\n    for (const value of values) {\n        const n = normalizeEnumValue(value);\n        enumObject[n.localName] = n.no;\n        enumObject[n.no] = n.localName;\n    }\n    setEnumType(enumObject, typeName, values, opt);\n    return enumObject;\n}\nfunction normalizeEnumValue(value) {\n    if (\"localName\" in value) {\n        return value;\n    }\n    return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/message.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Message is the base class of every message, generated, or created at\n * runtime.\n *\n * It is _not_ safe to extend this class. If you want to create a message at\n * run time, use proto3.makeMessageType().\n */\nclass Message {\n    /**\n     * Compare with a message of the same type.\n     * Note that this function disregards extensions and unknown fields.\n     */\n    equals(other) {\n        return this.getType().runtime.util.equals(this.getType(), this, other);\n    }\n    /**\n     * Create a deep copy.\n     */\n    clone() {\n        return this.getType().runtime.util.clone(this);\n    }\n    /**\n     * Parse from binary data, merging fields.\n     *\n     * Repeated fields are appended. Map entries are added, overwriting\n     * existing keys.\n     *\n     * If a message field is already present, it will be merged with the\n     * new data.\n     */\n    fromBinary(bytes, options) {\n        const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n        format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n        return this;\n    }\n    /**\n     * Parse a message from a JSON value.\n     */\n    fromJson(jsonValue, options) {\n        const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n        format.readMessage(type, jsonValue, opt, this);\n        return this;\n    }\n    /**\n     * Parse a message from a JSON string.\n     */\n    fromJsonString(jsonString, options) {\n        let json;\n        try {\n            json = JSON.parse(jsonString);\n        }\n        catch (e) {\n            throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n        }\n        return this.fromJson(json, options);\n    }\n    /**\n     * Serialize the message to binary data.\n     */\n    toBinary(options) {\n        const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n        bin.writeMessage(this, writer, opt);\n        return writer.finish();\n    }\n    /**\n     * Serialize the message to a JSON value, a JavaScript value that can be\n     * passed to JSON.stringify().\n     */\n    toJson(options) {\n        const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n        return json.writeMessage(this, opt);\n    }\n    /**\n     * Serialize the message to a JSON string.\n     */\n    toJsonString(options) {\n        var _a;\n        const value = this.toJson(options);\n        return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n    }\n    /**\n     * Override for serialization behavior. This will be invoked when calling\n     * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n     *\n     * Note that this will not serialize google.protobuf.Any with a packed\n     * message because the protobuf JSON format specifies that it needs to be\n     * unpacked, and this is only possible with a type registry to look up the\n     * message type.  As a result, attempting to serialize a message with this\n     * type will throw an Error.\n     *\n     * This method is protected because you should not need to invoke it\n     * directly -- instead use JSON.stringify or toJsonString for\n     * stringified JSON.  Alternatively, if actual JSON is desired, you should\n     * use toJson.\n     */\n    toJSON() {\n        return this.toJson({\n            emitDefaultValues: true,\n        });\n    }\n    /**\n     * Retrieve the MessageType of this message - a singleton that represents\n     * the protobuf message declaration and provides metadata for reflection-\n     * based operations.\n     */\n    getType() {\n        // Any class that extends Message _must_ provide a complete static\n        // implementation of MessageType.\n        // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return\n        return Object.getPrototypeOf(this).constructor;\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * Create a new message type using the given runtime.\n */\nfunction makeMessageType(runtime, typeName, fields, opt) {\n    var _a;\n    const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n    const type = {\n        [localName]: function (data) {\n            runtime.util.initFields(this);\n            runtime.util.initPartial(data, this);\n        },\n    }[localName];\n    Object.setPrototypeOf(type.prototype, new Message());\n    Object.assign(type, {\n        runtime,\n        typeName,\n        fields: runtime.util.newFieldList(fields),\n        fromBinary(bytes, options) {\n            return new type().fromBinary(bytes, options);\n        },\n        fromJson(jsonValue, options) {\n            return new type().fromJson(jsonValue, options);\n        },\n        fromJsonString(jsonString, options) {\n            return new type().fromJsonString(jsonString, options);\n        },\n        equals(a, b) {\n            return runtime.util.equals(type, a, b);\n        },\n    });\n    return type;\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/google/varint.js\n// Copyright 2008 Google Inc.  All rights reserved.\n//\n// Redistribution and use in source and binary forms, with or without\n// modification, are permitted provided that the following conditions are\n// met:\n//\n// * Redistributions of source code must retain the above copyright\n// notice, this list of conditions and the following disclaimer.\n// * Redistributions in binary form must reproduce the above\n// copyright notice, this list of conditions and the following disclaimer\n// in the documentation and/or other materials provided with the\n// distribution.\n// * Neither the name of Google Inc. nor the names of its\n// contributors may be used to endorse or promote products derived from\n// this software without specific prior written permission.\n//\n// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n//\n// Code generated by the Protocol Buffer compiler is owned by the owner\n// of the input file used when generating it.  This code is not\n// standalone and requires a support library to be linked with it.  This\n// support library is itself covered by the above license.\n/* eslint-disable prefer-const,@typescript-eslint/restrict-plus-operands */\n/**\n * Read a 64 bit varint as two JS numbers.\n *\n * Returns tuple:\n * [0]: low bits\n * [1]: high bits\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L175\n */\nfunction varint64read() {\n    let lowBits = 0;\n    let highBits = 0;\n    for (let shift = 0; shift < 28; shift += 7) {\n        let b = this.buf[this.pos++];\n        lowBits |= (b & 0x7f) << shift;\n        if ((b & 0x80) == 0) {\n            this.assertBounds();\n            return [lowBits, highBits];\n        }\n    }\n    let middleByte = this.buf[this.pos++];\n    // last four bits of the first 32 bit number\n    lowBits |= (middleByte & 0x0f) << 28;\n    // 3 upper bits are part of the next 32 bit number\n    highBits = (middleByte & 0x70) >> 4;\n    if ((middleByte & 0x80) == 0) {\n        this.assertBounds();\n        return [lowBits, highBits];\n    }\n    for (let shift = 3; shift <= 31; shift += 7) {\n        let b = this.buf[this.pos++];\n        highBits |= (b & 0x7f) << shift;\n        if ((b & 0x80) == 0) {\n            this.assertBounds();\n            return [lowBits, highBits];\n        }\n    }\n    throw new Error(\"invalid varint\");\n}\n/**\n * Write a 64 bit varint, given as two JS numbers, to the given bytes array.\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/writer.js#L344\n */\nfunction varint64write(lo, hi, bytes) {\n    for (let i = 0; i < 28; i = i + 7) {\n        const shift = lo >>> i;\n        const hasNext = !(shift >>> 7 == 0 && hi == 0);\n        const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n        bytes.push(byte);\n        if (!hasNext) {\n            return;\n        }\n    }\n    const splitBits = ((lo >>> 28) & 0x0f) | ((hi & 0x07) << 4);\n    const hasMoreBits = !(hi >> 3 == 0);\n    bytes.push((hasMoreBits ? splitBits | 0x80 : splitBits) & 0xff);\n    if (!hasMoreBits) {\n        return;\n    }\n    for (let i = 3; i < 31; i = i + 7) {\n        const shift = hi >>> i;\n        const hasNext = !(shift >>> 7 == 0);\n        const byte = (hasNext ? shift | 0x80 : shift) & 0xff;\n        bytes.push(byte);\n        if (!hasNext) {\n            return;\n        }\n    }\n    bytes.push((hi >>> 31) & 0x01);\n}\n// constants for binary math\nconst TWO_PWR_32_DBL = 0x100000000;\n/**\n * Parse decimal string of 64 bit integer value as two JS numbers.\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64FromString(dec) {\n    // Check for minus sign.\n    const minus = dec[0] === \"-\";\n    if (minus) {\n        dec = dec.slice(1);\n    }\n    // Work 6 decimal digits at a time, acting like we're converting base 1e6\n    // digits to binary. This is safe to do with floating point math because\n    // Number.isSafeInteger(ALL_32_BITS * 1e6) == true.\n    const base = 1e6;\n    let lowBits = 0;\n    let highBits = 0;\n    function add1e6digit(begin, end) {\n        // Note: Number('') is 0.\n        const digit1e6 = Number(dec.slice(begin, end));\n        highBits *= base;\n        lowBits = lowBits * base + digit1e6;\n        // Carry bits from lowBits to\n        if (lowBits >= TWO_PWR_32_DBL) {\n            highBits = highBits + ((lowBits / TWO_PWR_32_DBL) | 0);\n            lowBits = lowBits % TWO_PWR_32_DBL;\n        }\n    }\n    add1e6digit(-24, -18);\n    add1e6digit(-18, -12);\n    add1e6digit(-12, -6);\n    add1e6digit(-6);\n    return minus ? negate(lowBits, highBits) : newBits(lowBits, highBits);\n}\n/**\n * Losslessly converts a 64-bit signed integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction int64ToString(lo, hi) {\n    let bits = newBits(lo, hi);\n    // If we're treating the input as a signed value and the high bit is set, do\n    // a manual two's complement conversion before the decimal conversion.\n    const negative = (bits.hi & 0x80000000);\n    if (negative) {\n        bits = negate(bits.lo, bits.hi);\n    }\n    const result = uInt64ToString(bits.lo, bits.hi);\n    return negative ? \"-\" + result : result;\n}\n/**\n * Losslessly converts a 64-bit unsigned integer in 32:32 split representation\n * into a decimal string.\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf-javascript/blob/a428c58273abad07c66071d9753bc4d1289de426/experimental/runtime/int64.js#L10\n */\nfunction uInt64ToString(lo, hi) {\n    ({ lo, hi } = toUnsigned(lo, hi));\n    // Skip the expensive conversion if the number is small enough to use the\n    // built-in conversions.\n    // Number.MAX_SAFE_INTEGER = 0x001FFFFF FFFFFFFF, thus any number with\n    // highBits <= 0x1FFFFF can be safely expressed with a double and retain\n    // integer precision.\n    // Proven by: Number.isSafeInteger(0x1FFFFF * 2**32 + 0xFFFFFFFF) == true.\n    if (hi <= 0x1FFFFF) {\n        return String(TWO_PWR_32_DBL * hi + lo);\n    }\n    // What this code is doing is essentially converting the input number from\n    // base-2 to base-1e7, which allows us to represent the 64-bit range with\n    // only 3 (very large) digits. Those digits are then trivial to convert to\n    // a base-10 string.\n    // The magic numbers used here are -\n    // 2^24 = 16777216 = (1,6777216) in base-1e7.\n    // 2^48 = 281474976710656 = (2,8147497,6710656) in base-1e7.\n    // Split 32:32 representation into 16:24:24 representation so our\n    // intermediate digits don't overflow.\n    const low = lo & 0xFFFFFF;\n    const mid = ((lo >>> 24) | (hi << 8)) & 0xFFFFFF;\n    const high = (hi >> 16) & 0xFFFF;\n    // Assemble our three base-1e7 digits, ignoring carries. The maximum\n    // value in a digit at this step is representable as a 48-bit integer, which\n    // can be stored in a 64-bit floating point number.\n    let digitA = low + (mid * 6777216) + (high * 6710656);\n    let digitB = mid + (high * 8147497);\n    let digitC = (high * 2);\n    // Apply carries from A to B and from B to C.\n    const base = 10000000;\n    if (digitA >= base) {\n        digitB += Math.floor(digitA / base);\n        digitA %= base;\n    }\n    if (digitB >= base) {\n        digitC += Math.floor(digitB / base);\n        digitB %= base;\n    }\n    // If digitC is 0, then we should have returned in the trivial code path\n    // at the top for non-safe integers. Given this, we can assume both digitB\n    // and digitA need leading zeros.\n    return digitC.toString() + decimalFrom1e7WithLeadingZeros(digitB) +\n        decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction toUnsigned(lo, hi) {\n    return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction newBits(lo, hi) {\n    return { lo: lo | 0, hi: hi | 0 };\n}\n/**\n * Returns two's compliment negation of input.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#Signed_32-bit_integers\n */\nfunction negate(lowBits, highBits) {\n    highBits = ~highBits;\n    if (lowBits) {\n        lowBits = ~lowBits + 1;\n    }\n    else {\n        // If lowBits is 0, then bitwise-not is 0xFFFFFFFF,\n        // adding 1 to that, results in 0x100000000, which leaves\n        // the low bits 0x0 and simply adds one to the high bits.\n        highBits += 1;\n    }\n    return newBits(lowBits, highBits);\n}\n/**\n * Returns decimal representation of digit1e7 with leading zeros.\n */\nconst decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n    const partial = String(digit1e7);\n    return \"0000000\".slice(partial.length) + partial;\n};\n/**\n * Write a 32 bit varint, signed or unsigned. Same as `varint64write(0, value, bytes)`\n *\n * Copyright 2008 Google Inc.  All rights reserved.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/1b18833f4f2a2f681f4e4a25cdf3b0a43115ec26/js/binary/encoder.js#L144\n */\nfunction varint32write(value, bytes) {\n    if (value >= 0) {\n        // write value as varint 32\n        while (value > 0x7f) {\n            bytes.push((value & 0x7f) | 0x80);\n            value = value >>> 7;\n        }\n        bytes.push(value);\n    }\n    else {\n        for (let i = 0; i < 9; i++) {\n            bytes.push((value & 127) | 128);\n            value = value >> 7;\n        }\n        bytes.push(1);\n    }\n}\n/**\n * Read an unsigned 32 bit varint.\n *\n * See https://github.com/protocolbuffers/protobuf/blob/8a71927d74a4ce34efe2d8769fda198f52d20d12/js/experimental/runtime/kernel/buffer_decoder.js#L220\n */\nfunction varint32read() {\n    let b = this.buf[this.pos++];\n    let result = b & 0x7f;\n    if ((b & 0x80) == 0) {\n        this.assertBounds();\n        return result;\n    }\n    b = this.buf[this.pos++];\n    result |= (b & 0x7f) << 7;\n    if ((b & 0x80) == 0) {\n        this.assertBounds();\n        return result;\n    }\n    b = this.buf[this.pos++];\n    result |= (b & 0x7f) << 14;\n    if ((b & 0x80) == 0) {\n        this.assertBounds();\n        return result;\n    }\n    b = this.buf[this.pos++];\n    result |= (b & 0x7f) << 21;\n    if ((b & 0x80) == 0) {\n        this.assertBounds();\n        return result;\n    }\n    // Extract only last 4 bits\n    b = this.buf[this.pos++];\n    result |= (b & 0x0f) << 28;\n    for (let readBytes = 5; (b & 0x80) !== 0 && readBytes < 10; readBytes++)\n        b = this.buf[this.pos++];\n    if ((b & 0x80) != 0)\n        throw new Error(\"invalid varint\");\n    this.assertBounds();\n    // Result can have 32 bits, convert it to unsigned\n    return result >>> 0;\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nfunction makeInt64Support() {\n    const dv = new DataView(new ArrayBuffer(8));\n    // note that Safari 14 implements BigInt, but not the DataView methods\n    const ok = typeof BigInt === \"function\" &&\n        typeof dv.getBigInt64 === \"function\" &&\n        typeof dv.getBigUint64 === \"function\" &&\n        typeof dv.setBigInt64 === \"function\" &&\n        typeof dv.setBigUint64 === \"function\" &&\n        (typeof process != \"object\" ||\n            typeof process.env != \"object\" ||\n            process.env.BUF_BIGINT_DISABLE !== \"1\");\n    if (ok) {\n        const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n        return {\n            zero: BigInt(0),\n            supported: true,\n            parse(value) {\n                const bi = typeof value == \"bigint\" ? value : BigInt(value);\n                if (bi > MAX || bi < MIN) {\n                    throw new Error(`int64 invalid: ${value}`);\n                }\n                return bi;\n            },\n            uParse(value) {\n                const bi = typeof value == \"bigint\" ? value : BigInt(value);\n                if (bi > UMAX || bi < UMIN) {\n                    throw new Error(`uint64 invalid: ${value}`);\n                }\n                return bi;\n            },\n            enc(value) {\n                dv.setBigInt64(0, this.parse(value), true);\n                return {\n                    lo: dv.getInt32(0, true),\n                    hi: dv.getInt32(4, true),\n                };\n            },\n            uEnc(value) {\n                dv.setBigInt64(0, this.uParse(value), true);\n                return {\n                    lo: dv.getInt32(0, true),\n                    hi: dv.getInt32(4, true),\n                };\n            },\n            dec(lo, hi) {\n                dv.setInt32(0, lo, true);\n                dv.setInt32(4, hi, true);\n                return dv.getBigInt64(0, true);\n            },\n            uDec(lo, hi) {\n                dv.setInt32(0, lo, true);\n                dv.setInt32(4, hi, true);\n                return dv.getBigUint64(0, true);\n            },\n        };\n    }\n    const assertInt64String = (value) => assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n    const assertUInt64String = (value) => assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n    return {\n        zero: \"0\",\n        supported: false,\n        parse(value) {\n            if (typeof value != \"string\") {\n                value = value.toString();\n            }\n            assertInt64String(value);\n            return value;\n        },\n        uParse(value) {\n            if (typeof value != \"string\") {\n                value = value.toString();\n            }\n            assertUInt64String(value);\n            return value;\n        },\n        enc(value) {\n            if (typeof value != \"string\") {\n                value = value.toString();\n            }\n            assertInt64String(value);\n            return int64FromString(value);\n        },\n        uEnc(value) {\n            if (typeof value != \"string\") {\n                value = value.toString();\n            }\n            assertUInt64String(value);\n            return int64FromString(value);\n        },\n        dec(lo, hi) {\n            return int64ToString(lo, hi);\n        },\n        uDec(lo, hi) {\n            return uInt64ToString(lo, hi);\n        },\n    };\n}\nconst protoInt64 = makeInt64Support();\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/scalar.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Scalar value types. This is a subset of field types declared by protobuf\n * enum google.protobuf.FieldDescriptorProto.Type The types GROUP and MESSAGE\n * are omitted, but the numerical values are identical.\n */\nvar ScalarType;\n(function (ScalarType) {\n    // 0 is reserved for errors.\n    // Order is weird for historical reasons.\n    ScalarType[ScalarType[\"DOUBLE\"] = 1] = \"DOUBLE\";\n    ScalarType[ScalarType[\"FLOAT\"] = 2] = \"FLOAT\";\n    // Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if\n    // negative values are likely.\n    ScalarType[ScalarType[\"INT64\"] = 3] = \"INT64\";\n    ScalarType[ScalarType[\"UINT64\"] = 4] = \"UINT64\";\n    // Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if\n    // negative values are likely.\n    ScalarType[ScalarType[\"INT32\"] = 5] = \"INT32\";\n    ScalarType[ScalarType[\"FIXED64\"] = 6] = \"FIXED64\";\n    ScalarType[ScalarType[\"FIXED32\"] = 7] = \"FIXED32\";\n    ScalarType[ScalarType[\"BOOL\"] = 8] = \"BOOL\";\n    ScalarType[ScalarType[\"STRING\"] = 9] = \"STRING\";\n    // Tag-delimited aggregate.\n    // Group type is deprecated and not supported in proto3. However, Proto3\n    // implementations should still be able to parse the group wire format and\n    // treat group fields as unknown fields.\n    // TYPE_GROUP = 10,\n    // TYPE_MESSAGE = 11,  // Length-delimited aggregate.\n    // New in version 2.\n    ScalarType[ScalarType[\"BYTES\"] = 12] = \"BYTES\";\n    ScalarType[ScalarType[\"UINT32\"] = 13] = \"UINT32\";\n    // TYPE_ENUM = 14,\n    ScalarType[ScalarType[\"SFIXED32\"] = 15] = \"SFIXED32\";\n    ScalarType[ScalarType[\"SFIXED64\"] = 16] = \"SFIXED64\";\n    ScalarType[ScalarType[\"SINT32\"] = 17] = \"SINT32\";\n    ScalarType[ScalarType[\"SINT64\"] = 18] = \"SINT64\";\n})(ScalarType || (ScalarType = {}));\n/**\n * JavaScript representation of fields with 64 bit integral types (int64, uint64,\n * sint64, fixed64, sfixed64).\n *\n * This is a subset of google.protobuf.FieldOptions.JSType, which defines JS_NORMAL,\n * JS_STRING, and JS_NUMBER. Protobuf-ES uses BigInt by default, but will use\n * String if `[jstype = JS_STRING]` is specified.\n *\n * ```protobuf\n * uint64 field_a = 1; // BigInt\n * uint64 field_b = 2 [jstype = JS_NORMAL]; // BigInt\n * uint64 field_b = 2 [jstype = JS_NUMBER]; // BigInt\n * uint64 field_b = 2 [jstype = JS_STRING]; // String\n * ```\n */\nvar LongType;\n(function (LongType) {\n    /**\n     * Use JavaScript BigInt.\n     */\n    LongType[LongType[\"BIGINT\"] = 0] = \"BIGINT\";\n    /**\n     * Use JavaScript String.\n     *\n     * Field option `[jstype = JS_STRING]`.\n     */\n    LongType[LongType[\"STRING\"] = 1] = \"STRING\";\n})(LongType || (LongType = {}));\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n/**\n * Returns true if both scalar values are equal.\n */\nfunction scalarEquals(type, a, b) {\n    if (a === b) {\n        // This correctly matches equal values except BYTES and (possibly) 64-bit integers.\n        return true;\n    }\n    // Special case BYTES - we need to compare each byte individually\n    if (type == ScalarType.BYTES) {\n        if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n            return false;\n        }\n        if (a.length !== b.length) {\n            return false;\n        }\n        for (let i = 0; i < a.length; i++) {\n            if (a[i] !== b[i]) {\n                return false;\n            }\n        }\n        return true;\n    }\n    // Special case 64-bit integers - we support number, string and bigint representation.\n    // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n    switch (type) {\n        case ScalarType.UINT64:\n        case ScalarType.FIXED64:\n        case ScalarType.INT64:\n        case ScalarType.SFIXED64:\n        case ScalarType.SINT64:\n            // Loose comparison will match between 0n, 0 and \"0\".\n            return a == b;\n    }\n    // Anything that hasn't been caught by strict comparison or special cased\n    // BYTES and 64-bit integers is not equal.\n    return false;\n}\n/**\n * Returns the zero value for the given scalar type.\n */\nfunction scalarZeroValue(type, longType) {\n    switch (type) {\n        case ScalarType.BOOL:\n            return false;\n        case ScalarType.UINT64:\n        case ScalarType.FIXED64:\n        case ScalarType.INT64:\n        case ScalarType.SFIXED64:\n        case ScalarType.SINT64:\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n            return (longType == 0 ? protoInt64.zero : \"0\");\n        case ScalarType.DOUBLE:\n        case ScalarType.FLOAT:\n            return 0.0;\n        case ScalarType.BYTES:\n            return new Uint8Array(0);\n        case ScalarType.STRING:\n            return \"\";\n        default:\n            // Handles INT32, UINT32, SINT32, FIXED32, SFIXED32.\n            // We do not use individual cases to save a few bytes code size.\n            return 0;\n    }\n}\n/**\n * Returns true for a zero-value. For example, an integer has the zero-value `0`,\n * a boolean is `false`, a string is `\"\"`, and bytes is an empty Uint8Array.\n *\n * In proto3, zero-values are not written to the wire, unless the field is\n * optional or repeated.\n */\nfunction isScalarZeroValue(type, value) {\n    switch (type) {\n        case ScalarType.BOOL:\n            return value === false;\n        case ScalarType.STRING:\n            return value === \"\";\n        case ScalarType.BYTES:\n            return value instanceof Uint8Array && !value.byteLength;\n        default:\n            return value == 0; // Loose comparison matches 0n, 0 and \"0\"\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n/**\n * Create a new extension using the given runtime.\n */\nfunction makeExtension(runtime, typeName, extendee, field) {\n    let fi;\n    return {\n        typeName,\n        extendee,\n        get field() {\n            if (!fi) {\n                const i = (typeof field == \"function\" ? field() : field);\n                i.name = typeName.split(\".\").pop();\n                i.jsonName = `[${typeName}]`;\n                fi = runtime.util.newFieldList([i]).list()[0];\n            }\n            return fi;\n        },\n        runtime,\n    };\n}\n/**\n * Create a container that allows us to read extension fields into it with the\n * same logic as regular fields.\n */\nfunction createExtensionContainer(extension) {\n    const localName = extension.field.localName;\n    const container = Object.create(null);\n    container[localName] = initExtensionField(extension);\n    return [container, () => container[localName]];\n}\nfunction initExtensionField(ext) {\n    const field = ext.field;\n    if (field.repeated) {\n        return [];\n    }\n    if (field.default !== undefined) {\n        return field.default;\n    }\n    switch (field.kind) {\n        case \"enum\":\n            return field.T.values[0].no;\n        case \"scalar\":\n            return scalarZeroValue(field.T, field.L);\n        case \"message\":\n            // eslint-disable-next-line no-case-declarations\n            const T = field.T, value = new T();\n            return T.fieldWrapper ? T.fieldWrapper.unwrapField(value) : value;\n        case \"map\":\n            throw \"map fields are not allowed to be extensions\";\n    }\n}\n/**\n * Helper to filter unknown fields, optimized based on field type.\n */\nfunction filterUnknownFields(unknownFields, field) {\n    if (!field.repeated && (field.kind == \"enum\" || field.kind == \"scalar\")) {\n        // singular scalar fields do not merge, we pick the last\n        for (let i = unknownFields.length - 1; i >= 0; --i) {\n            if (unknownFields[i].no == field.no) {\n                return [unknownFields[i]];\n            }\n        }\n        return [];\n    }\n    return unknownFields.filter((uf) => uf.no === field.no);\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/* eslint-disable @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unnecessary-condition, prefer-const */\n// lookup table from base64 character to byte\nlet encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\n// lookup table from base64 character *code* to byte because lookup by number is fast\nlet decTable = [];\nfor (let i = 0; i < encTable.length; i++)\n    decTable[encTable[i].charCodeAt(0)] = i;\n// support base64url variants\ndecTable[\"-\".charCodeAt(0)] = encTable.indexOf(\"+\");\ndecTable[\"_\".charCodeAt(0)] = encTable.indexOf(\"/\");\nconst protoBase64 = {\n    /**\n     * Decodes a base64 string to a byte array.\n     *\n     * - ignores white-space, including line breaks and tabs\n     * - allows inner padding (can decode concatenated base64 strings)\n     * - does not require padding\n     * - understands base64url encoding:\n     *   \"-\" instead of \"+\",\n     *   \"_\" instead of \"/\",\n     *   no padding\n     */\n    dec(base64Str) {\n        // estimate byte size, not accounting for inner padding and whitespace\n        let es = (base64Str.length * 3) / 4;\n        if (base64Str[base64Str.length - 2] == \"=\")\n            es -= 2;\n        else if (base64Str[base64Str.length - 1] == \"=\")\n            es -= 1;\n        let bytes = new Uint8Array(es), bytePos = 0, // position in byte array\n        groupPos = 0, // position in base64 group\n        b, // current byte\n        p = 0; // previous byte\n        for (let i = 0; i < base64Str.length; i++) {\n            b = decTable[base64Str.charCodeAt(i)];\n            if (b === undefined) {\n                switch (base64Str[i]) {\n                    // @ts-ignore TS7029: Fallthrough case in switch\n                    case \"=\":\n                        groupPos = 0; // reset state when padding found\n                    // @ts-ignore TS7029: Fallthrough case in switch\n                    case \"\\n\":\n                    case \"\\r\":\n                    case \"\\t\":\n                    case \" \":\n                        continue; // skip white-space, and padding\n                    default:\n                        throw Error(\"invalid base64 string.\");\n                }\n            }\n            switch (groupPos) {\n                case 0:\n                    p = b;\n                    groupPos = 1;\n                    break;\n                case 1:\n                    bytes[bytePos++] = (p << 2) | ((b & 48) >> 4);\n                    p = b;\n                    groupPos = 2;\n                    break;\n                case 2:\n                    bytes[bytePos++] = ((p & 15) << 4) | ((b & 60) >> 2);\n                    p = b;\n                    groupPos = 3;\n                    break;\n                case 3:\n                    bytes[bytePos++] = ((p & 3) << 6) | b;\n                    groupPos = 0;\n                    break;\n            }\n        }\n        if (groupPos == 1)\n            throw Error(\"invalid base64 string.\");\n        return bytes.subarray(0, bytePos);\n    },\n    /**\n     * Encode a byte array to a base64 string.\n     */\n    enc(bytes) {\n        let base64 = \"\", groupPos = 0, // position in base64 group\n        b, // current byte\n        p = 0; // carry over from previous byte\n        for (let i = 0; i < bytes.length; i++) {\n            b = bytes[i];\n            switch (groupPos) {\n                case 0:\n                    base64 += encTable[b >> 2];\n                    p = (b & 3) << 4;\n                    groupPos = 1;\n                    break;\n                case 1:\n                    base64 += encTable[p | (b >> 4)];\n                    p = (b & 15) << 2;\n                    groupPos = 2;\n                    break;\n                case 2:\n                    base64 += encTable[p | (b >> 6)];\n                    base64 += encTable[b & 63];\n                    groupPos = 0;\n                    break;\n            }\n        }\n        // add output padding\n        if (groupPos) {\n            base64 += encTable[p];\n            base64 += \"=\";\n            if (groupPos == 1)\n                base64 += \"=\";\n        }\n        return base64;\n    },\n};\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n/**\n * Retrieve an extension value from a message.\n *\n * The function never returns undefined. Use hasExtension() to check whether an\n * extension is set. If the extension is not set, this function returns the\n * default value (if one was specified in the protobuf source), or the zero value\n * (for example `0` for numeric types, `[]` for repeated extension fields, and\n * an empty message instance for message fields).\n *\n * Extensions are stored as unknown fields on a message. To mutate an extension\n * value, make sure to store the new value with setExtension() after mutating.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nfunction getExtension(message, extension, options) {\n    assertExtendee(extension, message);\n    const opt = extension.runtime.bin.makeReadOptions(options);\n    const ufs = filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message), extension.field);\n    const [container, get] = createExtensionContainer(extension);\n    for (const uf of ufs) {\n        extension.runtime.bin.readField(container, opt.readerFactory(uf.data), extension.field, uf.wireType, opt);\n    }\n    return get();\n}\n/**\n * Set an extension value on a message. If the message already has a value for\n * this extension, the value is replaced.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nfunction setExtension(message, extension, value, options) {\n    assertExtendee(extension, message);\n    const readOpt = extension.runtime.bin.makeReadOptions(options);\n    const writeOpt = extension.runtime.bin.makeWriteOptions(options);\n    if (hasExtension(message, extension)) {\n        const ufs = message\n            .getType()\n            .runtime.bin.listUnknownFields(message)\n            .filter((uf) => uf.no != extension.field.no);\n        message.getType().runtime.bin.discardUnknownFields(message);\n        for (const uf of ufs) {\n            message\n                .getType()\n                .runtime.bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n        }\n    }\n    const writer = writeOpt.writerFactory();\n    let f = extension.field;\n    // Implicit presence does not apply to extensions, see https://github.com/protocolbuffers/protobuf/issues/8234\n    // We patch the field info to use explicit presence:\n    if (!f.opt && !f.repeated && (f.kind == \"enum\" || f.kind == \"scalar\")) {\n        f = Object.assign(Object.assign({}, extension.field), { opt: true });\n    }\n    extension.runtime.bin.writeField(f, value, writer, writeOpt);\n    const reader = readOpt.readerFactory(writer.finish());\n    while (reader.pos < reader.len) {\n        const [no, wireType] = reader.tag();\n        const data = reader.skip(wireType, no);\n        message.getType().runtime.bin.onUnknownField(message, no, wireType, data);\n    }\n}\n/**\n * Remove an extension value from a message.\n *\n * If the extension does not extend the given message, an error is raised.\n */\nfunction clearExtension(message, extension) {\n    assertExtendee(extension, message);\n    if (hasExtension(message, extension)) {\n        const bin = message.getType().runtime.bin;\n        const ufs = bin\n            .listUnknownFields(message)\n            .filter((uf) => uf.no != extension.field.no);\n        bin.discardUnknownFields(message);\n        for (const uf of ufs) {\n            bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n        }\n    }\n}\n/**\n * Check whether an extension is set on a message.\n */\nfunction hasExtension(message, extension) {\n    const messageType = message.getType();\n    return (extension.extendee.typeName === messageType.typeName &&\n        !!messageType.runtime.bin\n            .listUnknownFields(message)\n            .find((uf) => uf.no == extension.field.no));\n}\nfunction assertExtendee(extension, message) {\n    assert(extension.extendee.typeName == message.getType().typeName, `extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/reflect.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * Returns true if the field is set.\n */\nfunction isFieldSet(field, target) {\n    const localName = field.localName;\n    if (field.repeated) {\n        return target[localName].length > 0;\n    }\n    if (field.oneof) {\n        return target[field.oneof.localName].case === localName; // eslint-disable-line @typescript-eslint/no-unsafe-member-access\n    }\n    switch (field.kind) {\n        case \"enum\":\n        case \"scalar\":\n            if (field.opt || field.req) {\n                // explicit presence\n                return target[localName] !== undefined;\n            }\n            // implicit presence\n            if (field.kind == \"enum\") {\n                return target[localName] !== field.T.values[0].no;\n            }\n            return !isScalarZeroValue(field.T, target[localName]);\n        case \"message\":\n            return target[localName] !== undefined;\n        case \"map\":\n            return Object.keys(target[localName]).length > 0; // eslint-disable-line @typescript-eslint/no-unsafe-argument\n    }\n}\n/**\n * Resets the field, so that isFieldSet() will return false.\n */\nfunction clearField(field, target) {\n    const localName = field.localName;\n    const implicitPresence = !field.opt && !field.req;\n    if (field.repeated) {\n        target[localName] = [];\n    }\n    else if (field.oneof) {\n        target[field.oneof.localName] = { case: undefined };\n    }\n    else {\n        switch (field.kind) {\n            case \"map\":\n                target[localName] = {};\n                break;\n            case \"enum\":\n                target[localName] = implicitPresence ? field.T.values[0].no : undefined;\n                break;\n            case \"scalar\":\n                target[localName] = implicitPresence\n                    ? scalarZeroValue(field.T, field.L)\n                    : undefined;\n                break;\n            case \"message\":\n                target[localName] = undefined;\n                break;\n        }\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/is-message.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n/**\n * Check whether the given object is any subtype of Message or is a specific\n * Message by passing the type.\n *\n * Just like `instanceof`, `isMessage` narrows the type. The advantage of\n * `isMessage` is that it compares identity by the message type name, not by\n * class identity. This makes it robust against the dual package hazard and\n * similar situations, where the same message is duplicated.\n *\n * This function is _mostly_ equivalent to the `instanceof` operator. For\n * example, `isMessage(foo, MyMessage)` is the same as `foo instanceof MyMessage`,\n * and `isMessage(foo)` is the same as `foo instanceof Message`. In most cases,\n * `isMessage` should be preferred over `instanceof`.\n *\n * However, due to the fact that `isMessage` does not use class identity, there\n * are subtle differences between this function and `instanceof`. Notably,\n * calling `isMessage` on an explicit type of Message will return false.\n */\nfunction isMessage(arg, type) {\n    if (arg === null || typeof arg != \"object\") {\n        return false;\n    }\n    if (!Object.getOwnPropertyNames(Message.prototype).every((m) => m in arg && typeof arg[m] == \"function\")) {\n        return false;\n    }\n    const actualType = arg.getType();\n    if (actualType === null ||\n        typeof actualType != \"function\" ||\n        !(\"typeName\" in actualType) ||\n        typeof actualType.typeName != \"string\") {\n        return false;\n    }\n    return type === undefined ? true : actualType.typeName == type.typeName;\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n/**\n * Wrap a primitive message field value in its corresponding wrapper\n * message. This function is idempotent.\n */\nfunction wrapField(type, value) {\n    if (isMessage(value) || !type.fieldWrapper) {\n        return value;\n    }\n    return type.fieldWrapper.wrapField(value);\n}\n/**\n * If the given field uses one of the well-known wrapper types, return\n * the primitive type it wraps.\n */\nfunction getUnwrappedFieldType(field) {\n    if (field.fieldKind !== \"message\") {\n        return undefined;\n    }\n    if (field.repeated) {\n        return undefined;\n    }\n    if (field.oneof != undefined) {\n        return undefined;\n    }\n    return wktWrapperToScalarType[field.message.typeName];\n}\nconst wktWrapperToScalarType = {\n    \"google.protobuf.DoubleValue\": ScalarType.DOUBLE,\n    \"google.protobuf.FloatValue\": ScalarType.FLOAT,\n    \"google.protobuf.Int64Value\": ScalarType.INT64,\n    \"google.protobuf.UInt64Value\": ScalarType.UINT64,\n    \"google.protobuf.Int32Value\": ScalarType.INT32,\n    \"google.protobuf.UInt32Value\": ScalarType.UINT32,\n    \"google.protobuf.BoolValue\": ScalarType.BOOL,\n    \"google.protobuf.StringValue\": ScalarType.STRING,\n    \"google.protobuf.BytesValue\": ScalarType.BYTES,\n};\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n\n\n\n\n\n\n\n\n\n/* eslint-disable no-case-declarations,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call */\n// Default options for parsing JSON.\nconst jsonReadDefaults = {\n    ignoreUnknownFields: false,\n};\n// Default options for serializing to JSON.\nconst jsonWriteDefaults = {\n    emitDefaultValues: false,\n    enumAsInteger: false,\n    useProtoFieldName: false,\n    prettySpaces: 0,\n};\nfunction makeReadOptions(options) {\n    return options ? Object.assign(Object.assign({}, jsonReadDefaults), options) : jsonReadDefaults;\n}\nfunction makeWriteOptions(options) {\n    return options ? Object.assign(Object.assign({}, jsonWriteDefaults), options) : jsonWriteDefaults;\n}\nconst tokenNull = Symbol();\nconst tokenIgnoredUnknownEnum = Symbol();\nfunction makeJsonFormat() {\n    return {\n        makeReadOptions,\n        makeWriteOptions,\n        readMessage(type, json, options, message) {\n            if (json == null || Array.isArray(json) || typeof json != \"object\") {\n                throw new Error(`cannot decode message ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n            }\n            message = message !== null && message !== void 0 ? message : new type();\n            const oneofSeen = new Map();\n            const registry = options.typeRegistry;\n            for (const [jsonKey, jsonValue] of Object.entries(json)) {\n                const field = type.fields.findJsonName(jsonKey);\n                if (field) {\n                    if (field.oneof) {\n                        if (jsonValue === null && field.kind == \"scalar\") {\n                            // see conformance test Required.Proto3.JsonInput.OneofFieldNull{First,Second}\n                            continue;\n                        }\n                        const seen = oneofSeen.get(field.oneof);\n                        if (seen !== undefined) {\n                            throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n                        }\n                        oneofSeen.set(field.oneof, jsonKey);\n                    }\n                    readField(message, jsonValue, field, options, type);\n                }\n                else {\n                    let found = false;\n                    if ((registry === null || registry === void 0 ? void 0 : registry.findExtension) &&\n                        jsonKey.startsWith(\"[\") &&\n                        jsonKey.endsWith(\"]\")) {\n                        const ext = registry.findExtension(jsonKey.substring(1, jsonKey.length - 1));\n                        if (ext && ext.extendee.typeName == type.typeName) {\n                            found = true;\n                            const [container, get] = createExtensionContainer(ext);\n                            readField(container, jsonValue, ext.field, options, ext);\n                            // We pass on the options as BinaryReadOptions/BinaryWriteOptions,\n                            // so that users can bring their own binary reader and writer factories\n                            // if necessary.\n                            setExtension(message, ext, get(), options);\n                        }\n                    }\n                    if (!found && !options.ignoreUnknownFields) {\n                        throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n                    }\n                }\n            }\n            return message;\n        },\n        writeMessage(message, options) {\n            const type = message.getType();\n            const json = {};\n            let field;\n            try {\n                for (field of type.fields.byNumber()) {\n                    if (!isFieldSet(field, message)) {\n                        // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n                        if (field.req) {\n                            throw `required field not set`;\n                        }\n                        if (!options.emitDefaultValues) {\n                            continue;\n                        }\n                        if (!canEmitFieldDefaultValue(field)) {\n                            continue;\n                        }\n                    }\n                    const value = field.oneof\n                        ? message[field.oneof.localName].value\n                        : message[field.localName];\n                    const jsonValue = writeField(field, value, options);\n                    if (jsonValue !== undefined) {\n                        json[options.useProtoFieldName ? field.name : field.jsonName] =\n                            jsonValue;\n                    }\n                }\n                const registry = options.typeRegistry;\n                if (registry === null || registry === void 0 ? void 0 : registry.findExtensionFor) {\n                    for (const uf of type.runtime.bin.listUnknownFields(message)) {\n                        const ext = registry.findExtensionFor(type.typeName, uf.no);\n                        if (ext && hasExtension(message, ext)) {\n                            // We pass on the options as BinaryReadOptions, so that users can bring their own\n                            // binary reader factory if necessary.\n                            const value = getExtension(message, ext, options);\n                            const jsonValue = writeField(ext.field, value, options);\n                            if (jsonValue !== undefined) {\n                                json[ext.field.jsonName] = jsonValue;\n                            }\n                        }\n                    }\n                }\n            }\n            catch (e) {\n                const m = field\n                    ? `cannot encode field ${type.typeName}.${field.name} to JSON`\n                    : `cannot encode message ${type.typeName} to JSON`;\n                const r = e instanceof Error ? e.message : String(e);\n                throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n            }\n            return json;\n        },\n        readScalar(type, json, longType) {\n            // The signature of our internal function has changed. For backwards-\n            // compatibility, we support the old form that is part of the public API\n            // through the interface JsonFormat.\n            return readScalar(type, json, longType !== null && longType !== void 0 ? longType : LongType.BIGINT, true);\n        },\n        writeScalar(type, value, emitDefaultValues) {\n            // The signature of our internal function has changed. For backwards-\n            // compatibility, we support the old form that is part of the public API\n            // through the interface JsonFormat.\n            if (value === undefined) {\n                return undefined;\n            }\n            if (emitDefaultValues || isScalarZeroValue(type, value)) {\n                return writeScalar(type, value);\n            }\n            return undefined;\n        },\n        debug: debugJsonValue,\n    };\n}\nfunction debugJsonValue(json) {\n    if (json === null) {\n        return \"null\";\n    }\n    switch (typeof json) {\n        case \"object\":\n            return Array.isArray(json) ? \"array\" : \"object\";\n        case \"string\":\n            return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n        default:\n            return String(json);\n    }\n}\n// Read a JSON value for a field.\n// The \"parentType\" argument is only used to provide context in errors.\nfunction readField(target, jsonValue, field, options, parentType) {\n    let localName = field.localName;\n    if (field.repeated) {\n        assert(field.kind != \"map\");\n        if (jsonValue === null) {\n            return;\n        }\n        if (!Array.isArray(jsonValue)) {\n            throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);\n        }\n        const targetArray = target[localName];\n        for (const jsonItem of jsonValue) {\n            if (jsonItem === null) {\n                throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`);\n            }\n            switch (field.kind) {\n                case \"message\":\n                    targetArray.push(field.T.fromJson(jsonItem, options));\n                    break;\n                case \"enum\":\n                    const enumValue = readEnum(field.T, jsonItem, options.ignoreUnknownFields, true);\n                    if (enumValue !== tokenIgnoredUnknownEnum) {\n                        targetArray.push(enumValue);\n                    }\n                    break;\n                case \"scalar\":\n                    try {\n                        targetArray.push(readScalar(field.T, jsonItem, field.L, true));\n                    }\n                    catch (e) {\n                        let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonItem)}`;\n                        if (e instanceof Error && e.message.length > 0) {\n                            m += `: ${e.message}`;\n                        }\n                        throw new Error(m);\n                    }\n                    break;\n            }\n        }\n    }\n    else if (field.kind == \"map\") {\n        if (jsonValue === null) {\n            return;\n        }\n        if (typeof jsonValue != \"object\" || Array.isArray(jsonValue)) {\n            throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`);\n        }\n        const targetMap = target[localName];\n        for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n            if (jsonMapValue === null) {\n                throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: map value null`);\n            }\n            let key;\n            try {\n                key = readMapKey(field.K, jsonMapKey);\n            }\n            catch (e) {\n                let m = `cannot decode map key for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n                if (e instanceof Error && e.message.length > 0) {\n                    m += `: ${e.message}`;\n                }\n                throw new Error(m);\n            }\n            switch (field.V.kind) {\n                case \"message\":\n                    targetMap[key] = field.V.T.fromJson(jsonMapValue, options);\n                    break;\n                case \"enum\":\n                    const enumValue = readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields, true);\n                    if (enumValue !== tokenIgnoredUnknownEnum) {\n                        targetMap[key] = enumValue;\n                    }\n                    break;\n                case \"scalar\":\n                    try {\n                        targetMap[key] = readScalar(field.V.T, jsonMapValue, LongType.BIGINT, true);\n                    }\n                    catch (e) {\n                        let m = `cannot decode map value for field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n                        if (e instanceof Error && e.message.length > 0) {\n                            m += `: ${e.message}`;\n                        }\n                        throw new Error(m);\n                    }\n                    break;\n            }\n        }\n    }\n    else {\n        if (field.oneof) {\n            target = target[field.oneof.localName] = { case: localName };\n            localName = \"value\";\n        }\n        switch (field.kind) {\n            case \"message\":\n                const messageType = field.T;\n                if (jsonValue === null &&\n                    messageType.typeName != \"google.protobuf.Value\") {\n                    return;\n                }\n                let currentValue = target[localName];\n                if (isMessage(currentValue)) {\n                    currentValue.fromJson(jsonValue, options);\n                }\n                else {\n                    target[localName] = currentValue = messageType.fromJson(jsonValue, options);\n                    if (messageType.fieldWrapper && !field.oneof) {\n                        target[localName] =\n                            messageType.fieldWrapper.unwrapField(currentValue);\n                    }\n                }\n                break;\n            case \"enum\":\n                const enumValue = readEnum(field.T, jsonValue, options.ignoreUnknownFields, false);\n                switch (enumValue) {\n                    case tokenNull:\n                        clearField(field, target);\n                        break;\n                    case tokenIgnoredUnknownEnum:\n                        break;\n                    default:\n                        target[localName] = enumValue;\n                        break;\n                }\n                break;\n            case \"scalar\":\n                try {\n                    const scalarValue = readScalar(field.T, jsonValue, field.L, false);\n                    switch (scalarValue) {\n                        case tokenNull:\n                            clearField(field, target);\n                            break;\n                        default:\n                            target[localName] = scalarValue;\n                            break;\n                    }\n                }\n                catch (e) {\n                    let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${debugJsonValue(jsonValue)}`;\n                    if (e instanceof Error && e.message.length > 0) {\n                        m += `: ${e.message}`;\n                    }\n                    throw new Error(m);\n                }\n                break;\n        }\n    }\n}\nfunction readMapKey(type, json) {\n    if (type === ScalarType.BOOL) {\n        // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n        switch (json) {\n            case \"true\":\n                json = true;\n                break;\n            case \"false\":\n                json = false;\n                break;\n        }\n    }\n    return readScalar(type, json, LongType.BIGINT, true).toString();\n}\nfunction readScalar(type, json, longType, nullAsZeroValue) {\n    if (json === null) {\n        if (nullAsZeroValue) {\n            return scalarZeroValue(type, longType);\n        }\n        return tokenNull;\n    }\n    // every valid case in the switch below returns, and every fall\n    // through is regarded as a failure.\n    switch (type) {\n        // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n        // Either numbers or strings are accepted. Exponent notation is also accepted.\n        case ScalarType.DOUBLE:\n        case ScalarType.FLOAT:\n            if (json === \"NaN\")\n                return Number.NaN;\n            if (json === \"Infinity\")\n                return Number.POSITIVE_INFINITY;\n            if (json === \"-Infinity\")\n                return Number.NEGATIVE_INFINITY;\n            if (json === \"\") {\n                // empty string is not a number\n                break;\n            }\n            if (typeof json == \"string\" && json.trim().length !== json.length) {\n                // extra whitespace\n                break;\n            }\n            if (typeof json != \"string\" && typeof json != \"number\") {\n                break;\n            }\n            const float = Number(json);\n            if (Number.isNaN(float)) {\n                // not a number\n                break;\n            }\n            if (!Number.isFinite(float)) {\n                // infinity and -infinity are handled by string representation above, so this is an error\n                break;\n            }\n            if (type == ScalarType.FLOAT)\n                assertFloat32(float);\n            return float;\n        // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n        case ScalarType.INT32:\n        case ScalarType.FIXED32:\n        case ScalarType.SFIXED32:\n        case ScalarType.SINT32:\n        case ScalarType.UINT32:\n            let int32;\n            if (typeof json == \"number\")\n                int32 = json;\n            else if (typeof json == \"string\" && json.length > 0) {\n                if (json.trim().length === json.length)\n                    int32 = Number(json);\n            }\n            if (int32 === undefined)\n                break;\n            if (type == ScalarType.UINT32 || type == ScalarType.FIXED32)\n                assertUInt32(int32);\n            else\n                assertInt32(int32);\n            return int32;\n        // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n        case ScalarType.INT64:\n        case ScalarType.SFIXED64:\n        case ScalarType.SINT64:\n            if (typeof json != \"number\" && typeof json != \"string\")\n                break;\n            const long = protoInt64.parse(json);\n            // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            return longType ? long.toString() : long;\n        case ScalarType.FIXED64:\n        case ScalarType.UINT64:\n            if (typeof json != \"number\" && typeof json != \"string\")\n                break;\n            const uLong = protoInt64.uParse(json);\n            // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            return longType ? uLong.toString() : uLong;\n        // bool:\n        case ScalarType.BOOL:\n            if (typeof json !== \"boolean\")\n                break;\n            return json;\n        // string:\n        case ScalarType.STRING:\n            if (typeof json !== \"string\") {\n                break;\n            }\n            // A string must always contain UTF-8 encoded or 7-bit ASCII.\n            // We validate with encodeURIComponent, which appears to be the fastest widely available option.\n            try {\n                encodeURIComponent(json);\n            }\n            catch (e) {\n                throw new Error(\"invalid UTF8\");\n            }\n            return json;\n        // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n        // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n        case ScalarType.BYTES:\n            if (json === \"\")\n                return new Uint8Array(0);\n            if (typeof json !== \"string\")\n                break;\n            return protoBase64.dec(json);\n    }\n    throw new Error();\n}\nfunction readEnum(type, json, ignoreUnknownFields, nullAsZeroValue) {\n    if (json === null) {\n        if (type.typeName == \"google.protobuf.NullValue\") {\n            return 0; // google.protobuf.NullValue.NULL_VALUE = 0\n        }\n        return nullAsZeroValue ? type.values[0].no : tokenNull;\n    }\n    // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check\n    switch (typeof json) {\n        case \"number\":\n            if (Number.isInteger(json)) {\n                return json;\n            }\n            break;\n        case \"string\":\n            const value = type.findName(json);\n            if (value !== undefined) {\n                return value.no;\n            }\n            if (ignoreUnknownFields) {\n                return tokenIgnoredUnknownEnum;\n            }\n            break;\n    }\n    throw new Error(`cannot decode enum ${type.typeName} from JSON: ${debugJsonValue(json)}`);\n}\n// Decide whether an unset field should be emitted with JSON write option `emitDefaultValues`\nfunction canEmitFieldDefaultValue(field) {\n    if (field.repeated || field.kind == \"map\") {\n        // maps are {}, repeated fields are []\n        return true;\n    }\n    if (field.oneof) {\n        // oneof fields are never emitted\n        return false;\n    }\n    if (field.kind == \"message\") {\n        // singular message field are allowed to emit JSON null, but we do not\n        return false;\n    }\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (field.opt || field.req) {\n        // the field uses explicit presence, so we cannot emit a zero value\n        return false;\n    }\n    return true;\n}\nfunction writeField(field, value, options) {\n    if (field.kind == \"map\") {\n        assert(typeof value == \"object\" && value != null);\n        const jsonObj = {};\n        const entries = Object.entries(value);\n        switch (field.V.kind) {\n            case \"scalar\":\n                for (const [entryKey, entryValue] of entries) {\n                    jsonObj[entryKey.toString()] = writeScalar(field.V.T, entryValue); // JSON standard allows only (double quoted) string as property key\n                }\n                break;\n            case \"message\":\n                for (const [entryKey, entryValue] of entries) {\n                    // JSON standard allows only (double quoted) string as property key\n                    jsonObj[entryKey.toString()] = entryValue.toJson(options);\n                }\n                break;\n            case \"enum\":\n                const enumType = field.V.T;\n                for (const [entryKey, entryValue] of entries) {\n                    // JSON standard allows only (double quoted) string as property key\n                    jsonObj[entryKey.toString()] = writeEnum(enumType, entryValue, options.enumAsInteger);\n                }\n                break;\n        }\n        return options.emitDefaultValues || entries.length > 0\n            ? jsonObj\n            : undefined;\n    }\n    if (field.repeated) {\n        assert(Array.isArray(value));\n        const jsonArr = [];\n        switch (field.kind) {\n            case \"scalar\":\n                for (let i = 0; i < value.length; i++) {\n                    jsonArr.push(writeScalar(field.T, value[i]));\n                }\n                break;\n            case \"enum\":\n                for (let i = 0; i < value.length; i++) {\n                    jsonArr.push(writeEnum(field.T, value[i], options.enumAsInteger));\n                }\n                break;\n            case \"message\":\n                for (let i = 0; i < value.length; i++) {\n                    jsonArr.push(value[i].toJson(options));\n                }\n                break;\n        }\n        return options.emitDefaultValues || jsonArr.length > 0\n            ? jsonArr\n            : undefined;\n    }\n    switch (field.kind) {\n        case \"scalar\":\n            return writeScalar(field.T, value);\n        case \"enum\":\n            return writeEnum(field.T, value, options.enumAsInteger);\n        case \"message\":\n            return wrapField(field.T, value).toJson(options);\n    }\n}\nfunction writeEnum(type, value, enumAsInteger) {\n    var _a;\n    assert(typeof value == \"number\");\n    if (type.typeName == \"google.protobuf.NullValue\") {\n        return null;\n    }\n    if (enumAsInteger) {\n        return value;\n    }\n    const val = type.findNumber(value);\n    return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value; // if we don't know the enum value, just return the number\n}\nfunction writeScalar(type, value) {\n    switch (type) {\n        // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n        case ScalarType.INT32:\n        case ScalarType.SFIXED32:\n        case ScalarType.SINT32:\n        case ScalarType.FIXED32:\n        case ScalarType.UINT32:\n            assert(typeof value == \"number\");\n            return value;\n        // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n        // Either numbers or strings are accepted. Exponent notation is also accepted.\n        case ScalarType.FLOAT:\n        // assertFloat32(value);\n        case ScalarType.DOUBLE: // eslint-disable-line no-fallthrough\n            assert(typeof value == \"number\");\n            if (Number.isNaN(value))\n                return \"NaN\";\n            if (value === Number.POSITIVE_INFINITY)\n                return \"Infinity\";\n            if (value === Number.NEGATIVE_INFINITY)\n                return \"-Infinity\";\n            return value;\n        // string:\n        case ScalarType.STRING:\n            assert(typeof value == \"string\");\n            return value;\n        // bool:\n        case ScalarType.BOOL:\n            assert(typeof value == \"boolean\");\n            return value;\n        // JSON value will be a decimal string. Either numbers or strings are accepted.\n        case ScalarType.UINT64:\n        case ScalarType.FIXED64:\n        case ScalarType.INT64:\n        case ScalarType.SFIXED64:\n        case ScalarType.SINT64:\n            assert(typeof value == \"bigint\" ||\n                typeof value == \"string\" ||\n                typeof value == \"number\");\n            return value.toString();\n        // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n        // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n        case ScalarType.BYTES:\n            assert(value instanceof Uint8Array);\n            return protoBase64.enc(value);\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/restrict-plus-operands */\n/**\n * Protobuf binary format wire types.\n *\n * A wire type provides just enough information to find the length of the\n * following value.\n *\n * See https://developers.google.com/protocol-buffers/docs/encoding#structure\n */\nvar WireType;\n(function (WireType) {\n    /**\n     * Used for int32, int64, uint32, uint64, sint32, sint64, bool, enum\n     */\n    WireType[WireType[\"Varint\"] = 0] = \"Varint\";\n    /**\n     * Used for fixed64, sfixed64, double.\n     * Always 8 bytes with little-endian byte order.\n     */\n    WireType[WireType[\"Bit64\"] = 1] = \"Bit64\";\n    /**\n     * Used for string, bytes, embedded messages, packed repeated fields\n     *\n     * Only repeated numeric types (types which use the varint, 32-bit,\n     * or 64-bit wire types) can be packed. In proto3, such fields are\n     * packed by default.\n     */\n    WireType[WireType[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n    /**\n     * Start of a tag-delimited aggregate, such as a proto2 group, or a message\n     * in editions with message_encoding = DELIMITED.\n     */\n    WireType[WireType[\"StartGroup\"] = 3] = \"StartGroup\";\n    /**\n     * End of a tag-delimited aggregate.\n     */\n    WireType[WireType[\"EndGroup\"] = 4] = \"EndGroup\";\n    /**\n     * Used for fixed32, sfixed32, float.\n     * Always 4 bytes with little-endian byte order.\n     */\n    WireType[WireType[\"Bit32\"] = 5] = \"Bit32\";\n})(WireType || (WireType = {}));\nclass BinaryWriter {\n    constructor(textEncoder) {\n        /**\n         * Previous fork states.\n         */\n        this.stack = [];\n        this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n        this.chunks = [];\n        this.buf = [];\n    }\n    /**\n     * Return all bytes written and reset this writer.\n     */\n    finish() {\n        this.chunks.push(new Uint8Array(this.buf)); // flush the buffer\n        let len = 0;\n        for (let i = 0; i < this.chunks.length; i++)\n            len += this.chunks[i].length;\n        let bytes = new Uint8Array(len);\n        let offset = 0;\n        for (let i = 0; i < this.chunks.length; i++) {\n            bytes.set(this.chunks[i], offset);\n            offset += this.chunks[i].length;\n        }\n        this.chunks = [];\n        return bytes;\n    }\n    /**\n     * Start a new fork for length-delimited data like a message\n     * or a packed repeated field.\n     *\n     * Must be joined later with `join()`.\n     */\n    fork() {\n        this.stack.push({ chunks: this.chunks, buf: this.buf });\n        this.chunks = [];\n        this.buf = [];\n        return this;\n    }\n    /**\n     * Join the last fork. Write its length and bytes, then\n     * return to the previous state.\n     */\n    join() {\n        // get chunk of fork\n        let chunk = this.finish();\n        // restore previous state\n        let prev = this.stack.pop();\n        if (!prev)\n            throw new Error(\"invalid state, fork stack empty\");\n        this.chunks = prev.chunks;\n        this.buf = prev.buf;\n        // write length of chunk as varint\n        this.uint32(chunk.byteLength);\n        return this.raw(chunk);\n    }\n    /**\n     * Writes a tag (field number and wire type).\n     *\n     * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n     *\n     * Generated code should compute the tag ahead of time and call `uint32()`.\n     */\n    tag(fieldNo, type) {\n        return this.uint32(((fieldNo << 3) | type) >>> 0);\n    }\n    /**\n     * Write a chunk of raw bytes.\n     */\n    raw(chunk) {\n        if (this.buf.length) {\n            this.chunks.push(new Uint8Array(this.buf));\n            this.buf = [];\n        }\n        this.chunks.push(chunk);\n        return this;\n    }\n    /**\n     * Write a `uint32` value, an unsigned 32 bit varint.\n     */\n    uint32(value) {\n        assertUInt32(value);\n        // write value as varint 32, inlined for speed\n        while (value > 0x7f) {\n            this.buf.push((value & 0x7f) | 0x80);\n            value = value >>> 7;\n        }\n        this.buf.push(value);\n        return this;\n    }\n    /**\n     * Write a `int32` value, a signed 32 bit varint.\n     */\n    int32(value) {\n        assertInt32(value);\n        varint32write(value, this.buf);\n        return this;\n    }\n    /**\n     * Write a `bool` value, a variant.\n     */\n    bool(value) {\n        this.buf.push(value ? 1 : 0);\n        return this;\n    }\n    /**\n     * Write a `bytes` value, length-delimited arbitrary data.\n     */\n    bytes(value) {\n        this.uint32(value.byteLength); // write length of chunk as varint\n        return this.raw(value);\n    }\n    /**\n     * Write a `string` value, length-delimited data converted to UTF-8 text.\n     */\n    string(value) {\n        let chunk = this.textEncoder.encode(value);\n        this.uint32(chunk.byteLength); // write length of chunk as varint\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `float` value, 32-bit floating point number.\n     */\n    float(value) {\n        assertFloat32(value);\n        let chunk = new Uint8Array(4);\n        new DataView(chunk.buffer).setFloat32(0, value, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `double` value, a 64-bit floating point number.\n     */\n    double(value) {\n        let chunk = new Uint8Array(8);\n        new DataView(chunk.buffer).setFloat64(0, value, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n     */\n    fixed32(value) {\n        assertUInt32(value);\n        let chunk = new Uint8Array(4);\n        new DataView(chunk.buffer).setUint32(0, value, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n     */\n    sfixed32(value) {\n        assertInt32(value);\n        let chunk = new Uint8Array(4);\n        new DataView(chunk.buffer).setInt32(0, value, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n     */\n    sint32(value) {\n        assertInt32(value);\n        // zigzag encode\n        value = ((value << 1) ^ (value >> 31)) >>> 0;\n        varint32write(value, this.buf);\n        return this;\n    }\n    /**\n     * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n     */\n    sfixed64(value) {\n        let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.enc(value);\n        view.setInt32(0, tc.lo, true);\n        view.setInt32(4, tc.hi, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n     */\n    fixed64(value) {\n        let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = protoInt64.uEnc(value);\n        view.setInt32(0, tc.lo, true);\n        view.setInt32(4, tc.hi, true);\n        return this.raw(chunk);\n    }\n    /**\n     * Write a `int64` value, a signed 64-bit varint.\n     */\n    int64(value) {\n        let tc = protoInt64.enc(value);\n        varint64write(tc.lo, tc.hi, this.buf);\n        return this;\n    }\n    /**\n     * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n     */\n    sint64(value) {\n        let tc = protoInt64.enc(value), \n        // zigzag encode\n        sign = tc.hi >> 31, lo = (tc.lo << 1) ^ sign, hi = ((tc.hi << 1) | (tc.lo >>> 31)) ^ sign;\n        varint64write(lo, hi, this.buf);\n        return this;\n    }\n    /**\n     * Write a `uint64` value, an unsigned 64-bit varint.\n     */\n    uint64(value) {\n        let tc = protoInt64.uEnc(value);\n        varint64write(tc.lo, tc.hi, this.buf);\n        return this;\n    }\n}\nclass BinaryReader {\n    constructor(buf, textDecoder) {\n        this.varint64 = varint64read; // dirty cast for `this`\n        /**\n         * Read a `uint32` field, an unsigned 32 bit varint.\n         */\n        this.uint32 = varint32read; // dirty cast for `this` and access to protected `buf`\n        this.buf = buf;\n        this.len = buf.length;\n        this.pos = 0;\n        this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n        this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n    }\n    /**\n     * Reads a tag - field number and wire type.\n     */\n    tag() {\n        let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n        if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n            throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n        return [fieldNo, wireType];\n    }\n    /**\n     * Skip one element and return the skipped data.\n     *\n     * When skipping StartGroup, provide the tags field number to check for\n     * matching field number in the EndGroup tag.\n     */\n    skip(wireType, fieldNo) {\n        let start = this.pos;\n        switch (wireType) {\n            case WireType.Varint:\n                while (this.buf[this.pos++] & 0x80) {\n                    // ignore\n                }\n                break;\n            // eslint-disable-next-line\n            // @ts-ignore TS7029: Fallthrough case in switch\n            case WireType.Bit64:\n                this.pos += 4;\n            // eslint-disable-next-line\n            // @ts-ignore TS7029: Fallthrough case in switch\n            case WireType.Bit32:\n                this.pos += 4;\n                break;\n            case WireType.LengthDelimited:\n                let len = this.uint32();\n                this.pos += len;\n                break;\n            case WireType.StartGroup:\n                for (;;) {\n                    const [fn, wt] = this.tag();\n                    if (wt === WireType.EndGroup) {\n                        if (fieldNo !== undefined && fn !== fieldNo) {\n                            throw new Error(\"invalid end group tag\");\n                        }\n                        break;\n                    }\n                    this.skip(wt, fn);\n                }\n                break;\n            default:\n                throw new Error(\"cant skip wire type \" + wireType);\n        }\n        this.assertBounds();\n        return this.buf.subarray(start, this.pos);\n    }\n    /**\n     * Throws error if position in byte array is out of range.\n     */\n    assertBounds() {\n        if (this.pos > this.len)\n            throw new RangeError(\"premature EOF\");\n    }\n    /**\n     * Read a `int32` field, a signed 32 bit varint.\n     */\n    int32() {\n        return this.uint32() | 0;\n    }\n    /**\n     * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n     */\n    sint32() {\n        let zze = this.uint32();\n        // decode zigzag\n        return (zze >>> 1) ^ -(zze & 1);\n    }\n    /**\n     * Read a `int64` field, a signed 64-bit varint.\n     */\n    int64() {\n        return protoInt64.dec(...this.varint64());\n    }\n    /**\n     * Read a `uint64` field, an unsigned 64-bit varint.\n     */\n    uint64() {\n        return protoInt64.uDec(...this.varint64());\n    }\n    /**\n     * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n     */\n    sint64() {\n        let [lo, hi] = this.varint64();\n        // decode zig zag\n        let s = -(lo & 1);\n        lo = ((lo >>> 1) | ((hi & 1) << 31)) ^ s;\n        hi = (hi >>> 1) ^ s;\n        return protoInt64.dec(lo, hi);\n    }\n    /**\n     * Read a `bool` field, a variant.\n     */\n    bool() {\n        let [lo, hi] = this.varint64();\n        return lo !== 0 || hi !== 0;\n    }\n    /**\n     * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n     */\n    fixed32() {\n        return this.view.getUint32((this.pos += 4) - 4, true);\n    }\n    /**\n     * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n     */\n    sfixed32() {\n        return this.view.getInt32((this.pos += 4) - 4, true);\n    }\n    /**\n     * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n     */\n    fixed64() {\n        return protoInt64.uDec(this.sfixed32(), this.sfixed32());\n    }\n    /**\n     * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n     */\n    sfixed64() {\n        return protoInt64.dec(this.sfixed32(), this.sfixed32());\n    }\n    /**\n     * Read a `float` field, 32-bit floating point number.\n     */\n    float() {\n        return this.view.getFloat32((this.pos += 4) - 4, true);\n    }\n    /**\n     * Read a `double` field, a 64-bit floating point number.\n     */\n    double() {\n        return this.view.getFloat64((this.pos += 8) - 8, true);\n    }\n    /**\n     * Read a `bytes` field, length-delimited arbitrary data.\n     */\n    bytes() {\n        let len = this.uint32(), start = this.pos;\n        this.pos += len;\n        this.assertBounds();\n        return this.buf.subarray(start, start + len);\n    }\n    /**\n     * Read a `string` field, length-delimited data converted to UTF-8 text.\n     */\n    string() {\n        return this.textDecoder.decode(this.bytes());\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n\n\n\n\n\n/* eslint-disable prefer-const,no-case-declarations,@typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-argument,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-return */\nconst unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\n// Default options for parsing binary data.\nconst readDefaults = {\n    readUnknownFields: true,\n    readerFactory: (bytes) => new BinaryReader(bytes),\n};\n// Default options for serializing binary data.\nconst writeDefaults = {\n    writeUnknownFields: true,\n    writerFactory: () => new BinaryWriter(),\n};\nfunction binary_format_makeReadOptions(options) {\n    return options ? Object.assign(Object.assign({}, readDefaults), options) : readDefaults;\n}\nfunction binary_format_makeWriteOptions(options) {\n    return options ? Object.assign(Object.assign({}, writeDefaults), options) : writeDefaults;\n}\nfunction makeBinaryFormat() {\n    return {\n        makeReadOptions: binary_format_makeReadOptions,\n        makeWriteOptions: binary_format_makeWriteOptions,\n        listUnknownFields(message) {\n            var _a;\n            return (_a = message[unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n        },\n        discardUnknownFields(message) {\n            delete message[unknownFieldsSymbol];\n        },\n        writeUnknownFields(message, writer) {\n            const m = message;\n            const c = m[unknownFieldsSymbol];\n            if (c) {\n                for (const f of c) {\n                    writer.tag(f.no, f.wireType).raw(f.data);\n                }\n            }\n        },\n        onUnknownField(message, no, wireType, data) {\n            const m = message;\n            if (!Array.isArray(m[unknownFieldsSymbol])) {\n                m[unknownFieldsSymbol] = [];\n            }\n            m[unknownFieldsSymbol].push({ no, wireType, data });\n        },\n        readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n            const type = message.getType();\n            // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            const end = delimitedMessageEncoding\n                ? reader.len\n                : reader.pos + lengthOrEndTagFieldNo;\n            let fieldNo, wireType;\n            while (reader.pos < end) {\n                [fieldNo, wireType] = reader.tag();\n                if (delimitedMessageEncoding === true &&\n                    wireType == WireType.EndGroup) {\n                    break;\n                }\n                const field = type.fields.find(fieldNo);\n                if (!field) {\n                    const data = reader.skip(wireType, fieldNo);\n                    if (options.readUnknownFields) {\n                        this.onUnknownField(message, fieldNo, wireType, data);\n                    }\n                    continue;\n                }\n                binary_format_readField(message, reader, field, wireType, options);\n            }\n            if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n                (wireType != WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n                throw new Error(`invalid end group tag`);\n            }\n        },\n        readField: binary_format_readField,\n        writeMessage(message, writer, options) {\n            const type = message.getType();\n            for (const field of type.fields.byNumber()) {\n                if (!isFieldSet(field, message)) {\n                    if (field.req) {\n                        throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n                    }\n                    continue;\n                }\n                const value = field.oneof\n                    ? message[field.oneof.localName].value\n                    : message[field.localName];\n                binary_format_writeField(field, value, writer, options);\n            }\n            if (options.writeUnknownFields) {\n                this.writeUnknownFields(message, writer);\n            }\n            return writer;\n        },\n        writeField(field, value, writer, options) {\n            // The behavior of our internal function has changed, it does no longer\n            // accept `undefined` values for singular scalar and map.\n            // For backwards-compatibility, we support the old form that is part of\n            // the public API through the interface BinaryFormat.\n            if (value === undefined) {\n                return undefined;\n            }\n            binary_format_writeField(field, value, writer, options);\n        },\n    };\n}\nfunction binary_format_readField(target, // eslint-disable-line @typescript-eslint/no-explicit-any -- `any` is the best choice for dynamic access\nreader, field, wireType, options) {\n    let { repeated, localName } = field;\n    if (field.oneof) {\n        target = target[field.oneof.localName];\n        if (target.case != localName) {\n            delete target.value;\n        }\n        target.case = localName;\n        localName = \"value\";\n    }\n    switch (field.kind) {\n        case \"scalar\":\n        case \"enum\":\n            const scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n            let read = binary_format_readScalar;\n            // eslint-disable-next-line @typescript-eslint/no-unsafe-enum-comparison -- acceptable since it's covered by tests\n            if (field.kind == \"scalar\" && field.L > 0) {\n                read = readScalarLTString;\n            }\n            if (repeated) {\n                let arr = target[localName]; // safe to assume presence of array, oneof cannot contain repeated values\n                const isPacked = wireType == WireType.LengthDelimited &&\n                    scalarType != ScalarType.STRING &&\n                    scalarType != ScalarType.BYTES;\n                if (isPacked) {\n                    let e = reader.uint32() + reader.pos;\n                    while (reader.pos < e) {\n                        arr.push(read(reader, scalarType));\n                    }\n                }\n                else {\n                    arr.push(read(reader, scalarType));\n                }\n            }\n            else {\n                target[localName] = read(reader, scalarType);\n            }\n            break;\n        case \"message\":\n            const messageType = field.T;\n            if (repeated) {\n                // safe to assume presence of array, oneof cannot contain repeated values\n                target[localName].push(readMessageField(reader, new messageType(), options, field));\n            }\n            else {\n                if (isMessage(target[localName])) {\n                    readMessageField(reader, target[localName], options, field);\n                }\n                else {\n                    target[localName] = readMessageField(reader, new messageType(), options, field);\n                    if (messageType.fieldWrapper && !field.oneof && !field.repeated) {\n                        target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n                    }\n                }\n            }\n            break;\n        case \"map\":\n            let [mapKey, mapVal] = readMapEntry(field, reader, options);\n            // safe to assume presence of map object, oneof cannot contain repeated values\n            target[localName][mapKey] = mapVal;\n            break;\n    }\n}\n// Read a message, avoiding MessageType.fromBinary() to re-use the\n// BinaryReadOptions and the IBinaryReader.\nfunction readMessageField(reader, message, options, field) {\n    const format = message.getType().runtime.bin;\n    const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n    format.readMessage(message, reader, delimited ? field.no : reader.uint32(), // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n    options, delimited);\n    return message;\n}\n// Read a map field, expecting key field = 1, value field = 2\nfunction readMapEntry(field, reader, options) {\n    const length = reader.uint32(), end = reader.pos + length;\n    let key, val;\n    while (reader.pos < end) {\n        const [fieldNo] = reader.tag();\n        switch (fieldNo) {\n            case 1:\n                key = binary_format_readScalar(reader, field.K);\n                break;\n            case 2:\n                switch (field.V.kind) {\n                    case \"scalar\":\n                        val = binary_format_readScalar(reader, field.V.T);\n                        break;\n                    case \"enum\":\n                        val = reader.int32();\n                        break;\n                    case \"message\":\n                        val = readMessageField(reader, new field.V.T(), options, undefined);\n                        break;\n                }\n                break;\n        }\n    }\n    if (key === undefined) {\n        key = scalarZeroValue(field.K, LongType.BIGINT);\n    }\n    if (typeof key != \"string\" && typeof key != \"number\") {\n        key = key.toString();\n    }\n    if (val === undefined) {\n        switch (field.V.kind) {\n            case \"scalar\":\n                val = scalarZeroValue(field.V.T, LongType.BIGINT);\n                break;\n            case \"enum\":\n                val = field.V.T.values[0].no;\n                break;\n            case \"message\":\n                val = new field.V.T();\n                break;\n        }\n    }\n    return [key, val];\n}\n// Read a scalar value, but return 64 bit integral types (int64, uint64,\n// sint64, fixed64, sfixed64) as string instead of bigint.\nfunction readScalarLTString(reader, type) {\n    const v = binary_format_readScalar(reader, type);\n    return typeof v == \"bigint\" ? v.toString() : v;\n}\n// Does not use scalarTypeInfo() for better performance.\nfunction binary_format_readScalar(reader, type) {\n    switch (type) {\n        case ScalarType.STRING:\n            return reader.string();\n        case ScalarType.BOOL:\n            return reader.bool();\n        case ScalarType.DOUBLE:\n            return reader.double();\n        case ScalarType.FLOAT:\n            return reader.float();\n        case ScalarType.INT32:\n            return reader.int32();\n        case ScalarType.INT64:\n            return reader.int64();\n        case ScalarType.UINT64:\n            return reader.uint64();\n        case ScalarType.FIXED64:\n            return reader.fixed64();\n        case ScalarType.BYTES:\n            return reader.bytes();\n        case ScalarType.FIXED32:\n            return reader.fixed32();\n        case ScalarType.SFIXED32:\n            return reader.sfixed32();\n        case ScalarType.SFIXED64:\n            return reader.sfixed64();\n        case ScalarType.SINT64:\n            return reader.sint64();\n        case ScalarType.UINT32:\n            return reader.uint32();\n        case ScalarType.SINT32:\n            return reader.sint32();\n    }\n}\nfunction binary_format_writeField(field, value, writer, options) {\n    assert(value !== undefined);\n    const repeated = field.repeated;\n    switch (field.kind) {\n        case \"scalar\":\n        case \"enum\":\n            let scalarType = field.kind == \"enum\" ? ScalarType.INT32 : field.T;\n            if (repeated) {\n                assert(Array.isArray(value));\n                if (field.packed) {\n                    writePacked(writer, scalarType, field.no, value);\n                }\n                else {\n                    for (const item of value) {\n                        binary_format_writeScalar(writer, scalarType, field.no, item);\n                    }\n                }\n            }\n            else {\n                binary_format_writeScalar(writer, scalarType, field.no, value);\n            }\n            break;\n        case \"message\":\n            if (repeated) {\n                assert(Array.isArray(value));\n                for (const item of value) {\n                    writeMessageField(writer, options, field, item);\n                }\n            }\n            else {\n                writeMessageField(writer, options, field, value);\n            }\n            break;\n        case \"map\":\n            assert(typeof value == \"object\" && value != null);\n            for (const [key, val] of Object.entries(value)) {\n                writeMapEntry(writer, options, field, key, val);\n            }\n            break;\n    }\n}\nfunction writeMapEntry(writer, options, field, key, value) {\n    writer.tag(field.no, WireType.LengthDelimited);\n    writer.fork();\n    // javascript only allows number or string for object properties\n    // we convert from our representation to the protobuf type\n    let keyValue = key;\n    // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- we deliberately handle just the special cases for map keys\n    switch (field.K) {\n        case ScalarType.INT32:\n        case ScalarType.FIXED32:\n        case ScalarType.UINT32:\n        case ScalarType.SFIXED32:\n        case ScalarType.SINT32:\n            keyValue = Number.parseInt(key);\n            break;\n        case ScalarType.BOOL:\n            assert(key == \"true\" || key == \"false\");\n            keyValue = key == \"true\";\n            break;\n    }\n    // write key, expecting key field number = 1\n    binary_format_writeScalar(writer, field.K, 1, keyValue);\n    // write value, expecting value field number = 2\n    switch (field.V.kind) {\n        case \"scalar\":\n            binary_format_writeScalar(writer, field.V.T, 2, value);\n            break;\n        case \"enum\":\n            binary_format_writeScalar(writer, ScalarType.INT32, 2, value);\n            break;\n        case \"message\":\n            assert(value !== undefined);\n            writer.tag(2, WireType.LengthDelimited).bytes(value.toBinary(options));\n            break;\n    }\n    writer.join();\n}\n// Value must not be undefined\nfunction writeMessageField(writer, options, field, value) {\n    const message = wrapField(field.T, value);\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (field.delimited)\n        writer\n            .tag(field.no, WireType.StartGroup)\n            .raw(message.toBinary(options))\n            .tag(field.no, WireType.EndGroup);\n    else\n        writer\n            .tag(field.no, WireType.LengthDelimited)\n            .bytes(message.toBinary(options));\n}\nfunction binary_format_writeScalar(writer, type, fieldNo, value) {\n    assert(value !== undefined);\n    let [wireType, method] = scalarTypeInfo(type);\n    writer.tag(fieldNo, wireType)[method](value);\n}\nfunction writePacked(writer, type, fieldNo, value) {\n    if (!value.length) {\n        return;\n    }\n    writer.tag(fieldNo, WireType.LengthDelimited).fork();\n    let [, method] = scalarTypeInfo(type);\n    for (let i = 0; i < value.length; i++) {\n        writer[method](value[i]);\n    }\n    writer.join();\n}\n/**\n * Get information for writing a scalar value.\n *\n * Returns tuple:\n * [0]: appropriate WireType\n * [1]: name of the appropriate method of IBinaryWriter\n * [2]: whether the given value is a default value for proto3 semantics\n *\n * If argument `value` is omitted, [2] is always false.\n */\n// TODO replace call-sites writeScalar() and writePacked(), then remove\nfunction scalarTypeInfo(type) {\n    let wireType = WireType.Varint;\n    // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- INT32, UINT32, SINT32 are covered by the defaults\n    switch (type) {\n        case ScalarType.BYTES:\n        case ScalarType.STRING:\n            wireType = WireType.LengthDelimited;\n            break;\n        case ScalarType.DOUBLE:\n        case ScalarType.FIXED64:\n        case ScalarType.SFIXED64:\n            wireType = WireType.Bit64;\n            break;\n        case ScalarType.FIXED32:\n        case ScalarType.SFIXED32:\n        case ScalarType.FLOAT:\n            wireType = WireType.Bit32;\n            break;\n    }\n    const method = ScalarType[type].toLowerCase();\n    return [wireType, method];\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n\n\n/* eslint-disable @typescript-eslint/no-explicit-any,@typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-argument,no-case-declarations */\nfunction makeUtilCommon() {\n    return {\n        setEnumType: setEnumType,\n        initPartial(source, target) {\n            if (source === undefined) {\n                return;\n            }\n            const type = target.getType();\n            for (const member of type.fields.byMember()) {\n                const localName = member.localName, t = target, s = source;\n                if (s[localName] == null) {\n                    // TODO if source is a Message instance, we should use isFieldSet() here to support future field presence\n                    continue;\n                }\n                switch (member.kind) {\n                    case \"oneof\":\n                        const sk = s[localName].case;\n                        if (sk === undefined) {\n                            continue;\n                        }\n                        const sourceField = member.findField(sk);\n                        let val = s[localName].value;\n                        if (sourceField &&\n                            sourceField.kind == \"message\" &&\n                            !isMessage(val, sourceField.T)) {\n                            val = new sourceField.T(val);\n                        }\n                        else if (sourceField &&\n                            sourceField.kind === \"scalar\" &&\n                            sourceField.T === ScalarType.BYTES) {\n                            val = toU8Arr(val);\n                        }\n                        t[localName] = { case: sk, value: val };\n                        break;\n                    case \"scalar\":\n                    case \"enum\":\n                        let copy = s[localName];\n                        if (member.T === ScalarType.BYTES) {\n                            copy = member.repeated\n                                ? copy.map(toU8Arr)\n                                : toU8Arr(copy);\n                        }\n                        t[localName] = copy;\n                        break;\n                    case \"map\":\n                        switch (member.V.kind) {\n                            case \"scalar\":\n                            case \"enum\":\n                                if (member.V.T === ScalarType.BYTES) {\n                                    for (const [k, v] of Object.entries(s[localName])) {\n                                        t[localName][k] = toU8Arr(v);\n                                    }\n                                }\n                                else {\n                                    Object.assign(t[localName], s[localName]);\n                                }\n                                break;\n                            case \"message\":\n                                const messageType = member.V.T;\n                                for (const k of Object.keys(s[localName])) {\n                                    let val = s[localName][k];\n                                    if (!messageType.fieldWrapper) {\n                                        // We only take partial input for messages that are not a wrapper type.\n                                        // For those messages, we recursively normalize the partial input.\n                                        val = new messageType(val);\n                                    }\n                                    t[localName][k] = val;\n                                }\n                                break;\n                        }\n                        break;\n                    case \"message\":\n                        const mt = member.T;\n                        if (member.repeated) {\n                            t[localName] = s[localName].map((val) => isMessage(val, mt) ? val : new mt(val));\n                        }\n                        else {\n                            const val = s[localName];\n                            if (mt.fieldWrapper) {\n                                if (\n                                // We can't use BytesValue.typeName as that will create a circular import\n                                mt.typeName === \"google.protobuf.BytesValue\") {\n                                    t[localName] = toU8Arr(val);\n                                }\n                                else {\n                                    t[localName] = val;\n                                }\n                            }\n                            else {\n                                t[localName] = isMessage(val, mt) ? val : new mt(val);\n                            }\n                        }\n                        break;\n                }\n            }\n        },\n        // TODO use isFieldSet() here to support future field presence\n        equals(type, a, b) {\n            if (a === b) {\n                return true;\n            }\n            if (!a || !b) {\n                return false;\n            }\n            return type.fields.byMember().every((m) => {\n                const va = a[m.localName];\n                const vb = b[m.localName];\n                if (m.repeated) {\n                    if (va.length !== vb.length) {\n                        return false;\n                    }\n                    // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- repeated fields are never \"map\"\n                    switch (m.kind) {\n                        case \"message\":\n                            return va.every((a, i) => m.T.equals(a, vb[i]));\n                        case \"scalar\":\n                            return va.every((a, i) => scalarEquals(m.T, a, vb[i]));\n                        case \"enum\":\n                            return va.every((a, i) => scalarEquals(ScalarType.INT32, a, vb[i]));\n                    }\n                    throw new Error(`repeated cannot contain ${m.kind}`);\n                }\n                switch (m.kind) {\n                    case \"message\":\n                        let a = va;\n                        let b = vb;\n                        if (m.T.fieldWrapper) {\n                            if (a !== undefined && !isMessage(a)) {\n                                a = m.T.fieldWrapper.wrapField(a);\n                            }\n                            if (b !== undefined && !isMessage(b)) {\n                                b = m.T.fieldWrapper.wrapField(b);\n                            }\n                        }\n                        return m.T.equals(a, b);\n                    case \"enum\":\n                        return scalarEquals(ScalarType.INT32, va, vb);\n                    case \"scalar\":\n                        return scalarEquals(m.T, va, vb);\n                    case \"oneof\":\n                        if (va.case !== vb.case) {\n                            return false;\n                        }\n                        const s = m.findField(va.case);\n                        if (s === undefined) {\n                            return true;\n                        }\n                        // eslint-disable-next-line @typescript-eslint/switch-exhaustiveness-check -- oneof fields are never \"map\"\n                        switch (s.kind) {\n                            case \"message\":\n                                return s.T.equals(va.value, vb.value);\n                            case \"enum\":\n                                return scalarEquals(ScalarType.INT32, va.value, vb.value);\n                            case \"scalar\":\n                                return scalarEquals(s.T, va.value, vb.value);\n                        }\n                        throw new Error(`oneof cannot contain ${s.kind}`);\n                    case \"map\":\n                        const keys = Object.keys(va).concat(Object.keys(vb));\n                        switch (m.V.kind) {\n                            case \"message\":\n                                const messageType = m.V.T;\n                                return keys.every((k) => messageType.equals(va[k], vb[k]));\n                            case \"enum\":\n                                return keys.every((k) => scalarEquals(ScalarType.INT32, va[k], vb[k]));\n                            case \"scalar\":\n                                const scalarType = m.V.T;\n                                return keys.every((k) => scalarEquals(scalarType, va[k], vb[k]));\n                        }\n                        break;\n                }\n            });\n        },\n        // TODO use isFieldSet() here to support future field presence\n        clone(message) {\n            const type = message.getType(), target = new type(), any = target;\n            for (const member of type.fields.byMember()) {\n                const source = message[member.localName];\n                let copy;\n                if (member.repeated) {\n                    copy = source.map(cloneSingularField);\n                }\n                else if (member.kind == \"map\") {\n                    copy = any[member.localName];\n                    for (const [key, v] of Object.entries(source)) {\n                        copy[key] = cloneSingularField(v);\n                    }\n                }\n                else if (member.kind == \"oneof\") {\n                    const f = member.findField(source.case);\n                    copy = f\n                        ? { case: source.case, value: cloneSingularField(source.value) }\n                        : { case: undefined };\n                }\n                else {\n                    copy = cloneSingularField(source);\n                }\n                any[member.localName] = copy;\n            }\n            for (const uf of type.runtime.bin.listUnknownFields(message)) {\n                type.runtime.bin.onUnknownField(any, uf.no, uf.wireType, uf.data);\n            }\n            return target;\n        },\n    };\n}\n// clone a single field value - i.e. the element type of repeated fields, the value type of maps\nfunction cloneSingularField(value) {\n    if (value === undefined) {\n        return value;\n    }\n    if (isMessage(value)) {\n        return value.clone();\n    }\n    if (value instanceof Uint8Array) {\n        const c = new Uint8Array(value.byteLength);\n        c.set(value);\n        return c;\n    }\n    return value;\n}\n// converts any ArrayLike<number> to Uint8Array if necessary.\nfunction toU8Arr(input) {\n    return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n\n\n\nfunction makeProtoRuntime(syntax, newFieldList, initFields) {\n    return {\n        syntax,\n        json: makeJsonFormat(),\n        bin: makeBinaryFormat(),\n        util: Object.assign(Object.assign({}, makeUtilCommon()), { newFieldList,\n            initFields }),\n        makeMessageType(typeName, fields, opt) {\n            return makeMessageType(this, typeName, fields, opt);\n        },\n        makeEnum: makeEnum,\n        makeEnumType: makeEnumType,\n        getEnumType: getEnumType,\n        makeExtension(typeName, extendee, field) {\n            return makeExtension(this, typeName, extendee, field);\n        },\n    };\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\nclass InternalFieldList {\n    constructor(fields, normalizer) {\n        this._fields = fields;\n        this._normalizer = normalizer;\n    }\n    findJsonName(jsonName) {\n        if (!this.jsonNames) {\n            const t = {};\n            for (const f of this.list()) {\n                t[f.jsonName] = t[f.name] = f;\n            }\n            this.jsonNames = t;\n        }\n        return this.jsonNames[jsonName];\n    }\n    find(fieldNo) {\n        if (!this.numbers) {\n            const t = {};\n            for (const f of this.list()) {\n                t[f.no] = f;\n            }\n            this.numbers = t;\n        }\n        return this.numbers[fieldNo];\n    }\n    list() {\n        if (!this.all) {\n            this.all = this._normalizer(this._fields);\n        }\n        return this.all;\n    }\n    byNumber() {\n        if (!this.numbersAsc) {\n            this.numbersAsc = this.list()\n                .concat()\n                .sort((a, b) => a.no - b.no);\n        }\n        return this.numbersAsc;\n    }\n    byMember() {\n        if (!this.members) {\n            this.members = [];\n            const a = this.members;\n            let o;\n            for (const f of this.list()) {\n                if (f.oneof) {\n                    if (f.oneof !== o) {\n                        o = f.oneof;\n                        a.push(o);\n                    }\n                }\n                else {\n                    a.push(f);\n                }\n            }\n        }\n        return this.members;\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/names.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * Returns the name of a protobuf element in generated code.\n *\n * Field names - including oneofs - are converted to lowerCamelCase. For\n * messages, enumerations and services, the package name is stripped from\n * the type name. For nested messages and enumerations, the names are joined\n * with an underscore. For methods, the first character is made lowercase.\n */\nfunction localName(desc) {\n    switch (desc.kind) {\n        case \"field\":\n            return localFieldName(desc.name, desc.oneof !== undefined);\n        case \"oneof\":\n            return localOneofName(desc.name);\n        case \"enum\":\n        case \"message\":\n        case \"service\":\n        case \"extension\": {\n            const pkg = desc.file.proto.package;\n            const offset = pkg === undefined ? 0 : pkg.length + 1;\n            const name = desc.typeName.substring(offset).replace(/\\./g, \"_\");\n            // For services, we only care about safe identifiers, not safe object properties,\n            // but we have shipped v1 with a bug that respected object properties, and we\n            // do not want to introduce a breaking change, so we continue to escape for\n            // safe object properties.\n            // See https://github.com/bufbuild/protobuf-es/pull/391\n            return safeObjectProperty(safeIdentifier(name));\n        }\n        case \"enum_value\": {\n            let name = desc.name;\n            const sharedPrefix = desc.parent.sharedPrefix;\n            if (sharedPrefix !== undefined) {\n                name = name.substring(sharedPrefix.length);\n            }\n            return safeObjectProperty(name);\n        }\n        case \"rpc\": {\n            let name = desc.name;\n            if (name.length == 0) {\n                return name;\n            }\n            name = name[0].toLowerCase() + name.substring(1);\n            return safeObjectProperty(name);\n        }\n    }\n}\n/**\n * Returns the name of a field in generated code.\n */\nfunction localFieldName(protoName, inOneof) {\n    const name = protoCamelCase(protoName);\n    if (inOneof) {\n        // oneof member names are not properties, but values of the `case` property.\n        return name;\n    }\n    return safeObjectProperty(safeMessageProperty(name));\n}\n/**\n * Returns the name of a oneof group in generated code.\n */\nfunction localOneofName(protoName) {\n    return localFieldName(protoName, false);\n}\n/**\n * Returns the JSON name for a protobuf field, exactly like protoc does.\n */\nconst fieldJsonName = protoCamelCase;\n/**\n * Finds a prefix shared by enum values, for example `MY_ENUM_` for\n * `enum MyEnum {MY_ENUM_A=0; MY_ENUM_B=1;}`.\n */\nfunction findEnumSharedPrefix(enumName, valueNames) {\n    const prefix = camelToSnakeCase(enumName) + \"_\";\n    for (const name of valueNames) {\n        if (!name.toLowerCase().startsWith(prefix)) {\n            return undefined;\n        }\n        const shortName = name.substring(prefix.length);\n        if (shortName.length == 0) {\n            return undefined;\n        }\n        if (/^\\d/.test(shortName)) {\n            // identifiers must not start with numbers\n            return undefined;\n        }\n    }\n    return prefix;\n}\n/**\n * Converts lowerCamelCase or UpperCamelCase into lower_snake_case.\n * This is used to find shared prefixes in an enum.\n */\nfunction camelToSnakeCase(camel) {\n    return (camel.substring(0, 1) + camel.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c)).toLowerCase();\n}\n/**\n * Converts snake_case to protoCamelCase according to the convention\n * used by protoc to convert a field name to a JSON name.\n */\nfunction protoCamelCase(snakeCase) {\n    let capNext = false;\n    const b = [];\n    for (let i = 0; i < snakeCase.length; i++) {\n        let c = snakeCase.charAt(i);\n        switch (c) {\n            case \"_\":\n                capNext = true;\n                break;\n            case \"0\":\n            case \"1\":\n            case \"2\":\n            case \"3\":\n            case \"4\":\n            case \"5\":\n            case \"6\":\n            case \"7\":\n            case \"8\":\n            case \"9\":\n                b.push(c);\n                capNext = false;\n                break;\n            default:\n                if (capNext) {\n                    capNext = false;\n                    c = c.toUpperCase();\n                }\n                b.push(c);\n                break;\n        }\n    }\n    return b.join(\"\");\n}\n/**\n * Names that cannot be used for identifiers, such as class names,\n * but _can_ be used for object properties.\n */\nconst reservedIdentifiers = new Set([\n    // ECMAScript 2015 keywords\n    \"break\",\n    \"case\",\n    \"catch\",\n    \"class\",\n    \"const\",\n    \"continue\",\n    \"debugger\",\n    \"default\",\n    \"delete\",\n    \"do\",\n    \"else\",\n    \"export\",\n    \"extends\",\n    \"false\",\n    \"finally\",\n    \"for\",\n    \"function\",\n    \"if\",\n    \"import\",\n    \"in\",\n    \"instanceof\",\n    \"new\",\n    \"null\",\n    \"return\",\n    \"super\",\n    \"switch\",\n    \"this\",\n    \"throw\",\n    \"true\",\n    \"try\",\n    \"typeof\",\n    \"var\",\n    \"void\",\n    \"while\",\n    \"with\",\n    \"yield\",\n    // ECMAScript 2015 future reserved keywords\n    \"enum\",\n    \"implements\",\n    \"interface\",\n    \"let\",\n    \"package\",\n    \"private\",\n    \"protected\",\n    \"public\",\n    \"static\",\n    // Class name cannot be 'Object' when targeting ES5 with module CommonJS\n    \"Object\",\n    // TypeScript keywords that cannot be used for types (as opposed to variables)\n    \"bigint\",\n    \"number\",\n    \"boolean\",\n    \"string\",\n    \"object\",\n    // Identifiers reserved for the runtime, so we can generate legible code\n    \"globalThis\",\n    \"Uint8Array\",\n    \"Partial\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst reservedObjectProperties = new Set([\n    // names reserved by JavaScript\n    \"constructor\",\n    \"toString\",\n    \"toJSON\",\n    \"valueOf\",\n]);\n/**\n * Names that cannot be used for object properties because they are reserved\n * by the runtime.\n */\nconst reservedMessageProperties = new Set([\n    // names reserved by the runtime\n    \"getType\",\n    \"clone\",\n    \"equals\",\n    \"fromBinary\",\n    \"fromJson\",\n    \"fromJsonString\",\n    \"toBinary\",\n    \"toJson\",\n    \"toJsonString\",\n    // names reserved by the runtime for the future\n    \"toObject\",\n]);\nconst fallback = (name) => `${name}$`;\n/**\n * Will wrap names that are Object prototype properties or names reserved\n * for `Message`s.\n */\nconst safeMessageProperty = (name) => {\n    if (reservedMessageProperties.has(name)) {\n        return fallback(name);\n    }\n    return name;\n};\n/**\n * Names that cannot be used for object properties because they are reserved\n * by built-in JavaScript properties.\n */\nconst safeObjectProperty = (name) => {\n    if (reservedObjectProperties.has(name)) {\n        return fallback(name);\n    }\n    return name;\n};\n/**\n * Names that can be used for identifiers or class properties\n */\nconst safeIdentifier = (name) => {\n    if (reservedIdentifiers.has(name)) {\n        return fallback(name);\n    }\n    return name;\n};\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/field.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\nclass InternalOneofInfo {\n    constructor(name) {\n        this.kind = \"oneof\";\n        this.repeated = false;\n        this.packed = false;\n        this.opt = false;\n        this.req = false;\n        this.default = undefined;\n        this.fields = [];\n        this.name = name;\n        this.localName = localOneofName(name);\n    }\n    addField(field) {\n        assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n        this.fields.push(field);\n    }\n    findField(localName) {\n        if (!this._lookup) {\n            this._lookup = Object.create(null);\n            for (let i = 0; i < this.fields.length; i++) {\n                this._lookup[this.fields[i].localName] = this.fields[i];\n            }\n        }\n        return this._lookup[localName];\n    }\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n/**\n * Convert a collection of field info to an array of normalized FieldInfo.\n *\n * The argument `packedByDefault` specifies whether fields that do not specify\n * `packed` should be packed (proto3) or unpacked (proto2).\n */\nfunction normalizeFieldInfos(fieldInfos, packedByDefault) {\n    var _a, _b, _c, _d, _e, _f;\n    const r = [];\n    let o;\n    for (const field of typeof fieldInfos == \"function\"\n        ? fieldInfos()\n        : fieldInfos) {\n        const f = field;\n        f.localName = localFieldName(field.name, field.oneof !== undefined);\n        f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : fieldJsonName(field.name);\n        f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n        if (field.kind == \"scalar\") {\n            f.L = (_c = field.L) !== null && _c !== void 0 ? _c : LongType.BIGINT;\n        }\n        f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n        f.req = (_e = field.req) !== null && _e !== void 0 ? _e : false;\n        f.opt = (_f = field.opt) !== null && _f !== void 0 ? _f : false;\n        if (field.packed === undefined) {\n            if (packedByDefault) {\n                f.packed =\n                    field.kind == \"enum\" ||\n                        (field.kind == \"scalar\" &&\n                            field.T != ScalarType.BYTES &&\n                            field.T != ScalarType.STRING);\n            }\n            else {\n                f.packed = false;\n            }\n        }\n        // We do not surface options at this time\n        // f.options = field.options ?? emptyReadonlyObject;\n        if (field.oneof !== undefined) {\n            const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n            if (!o || o.name != ooname) {\n                o = new InternalOneofInfo(ooname);\n            }\n            f.oneof = o;\n            o.addField(f);\n        }\n        r.push(f);\n    }\n    return r;\n}\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/proto3.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n\n\n/**\n * Provides functionality for messages defined with the proto3 syntax.\n */\nconst proto3 = makeProtoRuntime(\"proto3\", (fields) => {\n    return new InternalFieldList(fields, (source) => normalizeFieldInfos(source, true));\n}, \n// TODO merge with proto2 and initExtensionField, also see initPartial, equals, clone\n(target) => {\n    for (const member of target.getType().fields.byMember()) {\n        if (member.opt) {\n            continue;\n        }\n        const name = member.localName, t = target;\n        if (member.repeated) {\n            t[name] = [];\n            continue;\n        }\n        switch (member.kind) {\n            case \"oneof\":\n                t[name] = { case: undefined };\n                break;\n            case \"enum\":\n                t[name] = 0;\n                break;\n            case \"map\":\n                t[name] = {};\n                break;\n            case \"scalar\":\n                t[name] = scalarZeroValue(member.T, member.L);\n                break;\n            case \"message\":\n                // message fields are always optional in proto3\n                break;\n        }\n    }\n});\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/field_mask_pb.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\n\n/**\n * `FieldMask` represents a set of symbolic field paths, for example:\n *\n *     paths: \"f.a\"\n *     paths: \"f.b.d\"\n *\n * Here `f` represents a field in some root message, `a` and `b`\n * fields in the message found in `f`, and `d` a field found in the\n * message in `f.b`.\n *\n * Field masks are used to specify a subset of fields that should be\n * returned by a get operation or modified by an update operation.\n * Field masks also have a custom JSON encoding (see below).\n *\n * # Field Masks in Projections\n *\n * When used in the context of a projection, a response message or\n * sub-message is filtered by the API to only contain those fields as\n * specified in the mask. For example, if the mask in the previous\n * example is applied to a response message as follows:\n *\n *     f {\n *       a : 22\n *       b {\n *         d : 1\n *         x : 2\n *       }\n *       y : 13\n *     }\n *     z: 8\n *\n * The result will not contain specific values for fields x,y and z\n * (their value will be set to the default, and omitted in proto text\n * output):\n *\n *\n *     f {\n *       a : 22\n *       b {\n *         d : 1\n *       }\n *     }\n *\n * A repeated field is not allowed except at the last position of a\n * paths string.\n *\n * If a FieldMask object is not present in a get operation, the\n * operation applies to all fields (as if a FieldMask of all fields\n * had been specified).\n *\n * Note that a field mask does not necessarily apply to the\n * top-level response message. In case of a REST get operation, the\n * field mask applies directly to the response, but in case of a REST\n * list operation, the mask instead applies to each individual message\n * in the returned resource list. In case of a REST custom method,\n * other definitions may be used. Where the mask applies will be\n * clearly documented together with its declaration in the API.  In\n * any case, the effect on the returned resource/resources is required\n * behavior for APIs.\n *\n * # Field Masks in Update Operations\n *\n * A field mask in update operations specifies which fields of the\n * targeted resource are going to be updated. The API is required\n * to only change the values of the fields as specified in the mask\n * and leave the others untouched. If a resource is passed in to\n * describe the updated values, the API ignores the values of all\n * fields not covered by the mask.\n *\n * If a repeated field is specified for an update operation, new values will\n * be appended to the existing repeated field in the target resource. Note that\n * a repeated field is only allowed in the last position of a `paths` string.\n *\n * If a sub-message is specified in the last position of the field mask for an\n * update operation, then new value will be merged into the existing sub-message\n * in the target resource.\n *\n * For example, given the target message:\n *\n *     f {\n *       b {\n *         d: 1\n *         x: 2\n *       }\n *       c: [1]\n *     }\n *\n * And an update message:\n *\n *     f {\n *       b {\n *         d: 10\n *       }\n *       c: [2]\n *     }\n *\n * then if the field mask is:\n *\n *  paths: [\"f.b\", \"f.c\"]\n *\n * then the result will be:\n *\n *     f {\n *       b {\n *         d: 10\n *         x: 2\n *       }\n *       c: [1, 2]\n *     }\n *\n * An implementation may provide options to override this default behavior for\n * repeated and message fields.\n *\n * In order to reset a field's value to the default, the field must\n * be in the mask and set to the default value in the provided resource.\n * Hence, in order to reset all fields of a resource, provide a default\n * instance of the resource and set all fields in the mask, or do\n * not provide a mask as described below.\n *\n * If a field mask is not present on update, the operation applies to\n * all fields (as if a field mask of all fields has been specified).\n * Note that in the presence of schema evolution, this may mean that\n * fields the client does not know and has therefore not filled into\n * the request will be reset to their default. If this is unwanted\n * behavior, a specific service may require a client to always specify\n * a field mask, producing an error if not.\n *\n * As with get operations, the location of the resource which\n * describes the updated values in the request message depends on the\n * operation kind. In any case, the effect of the field mask is\n * required to be honored by the API.\n *\n * ## Considerations for HTTP REST\n *\n * The HTTP kind of an update operation which uses a field mask must\n * be set to PATCH instead of PUT in order to satisfy HTTP semantics\n * (PUT must only be used for full updates).\n *\n * # JSON Encoding of Field Masks\n *\n * In JSON, a field mask is encoded as a single string where paths are\n * separated by a comma. Fields name in each path are converted\n * to/from lower-camel naming conventions.\n *\n * As an example, consider the following message declarations:\n *\n *     message Profile {\n *       User user = 1;\n *       Photo photo = 2;\n *     }\n *     message User {\n *       string display_name = 1;\n *       string address = 2;\n *     }\n *\n * In proto a field mask for `Profile` may look as such:\n *\n *     mask {\n *       paths: \"user.display_name\"\n *       paths: \"photo\"\n *     }\n *\n * In JSON, the same mask is represented as below:\n *\n *     {\n *       mask: \"user.displayName,photo\"\n *     }\n *\n * # Field Masks and Oneof Fields\n *\n * Field masks treat fields in oneofs just as regular fields. Consider the\n * following message:\n *\n *     message SampleMessage {\n *       oneof test_oneof {\n *         string name = 4;\n *         SubMessage sub_message = 9;\n *       }\n *     }\n *\n * The field mask can be:\n *\n *     mask {\n *       paths: \"name\"\n *     }\n *\n * Or:\n *\n *     mask {\n *       paths: \"sub_message\"\n *     }\n *\n * Note that oneof type names (\"test_oneof\" in this case) cannot be used in\n * paths.\n *\n * ## Field Mask Verification\n *\n * The implementation of any API method which has a FieldMask type field in the\n * request should verify the included field paths, and return an\n * `INVALID_ARGUMENT` error if any path is unmappable.\n *\n * @generated from message google.protobuf.FieldMask\n */\nclass FieldMask extends Message {\n    constructor(data) {\n        super();\n        /**\n         * The set of field mask paths.\n         *\n         * @generated from field: repeated string paths = 1;\n         */\n        this.paths = [];\n        proto3.util.initPartial(data, this);\n    }\n    toJson(options) {\n        // Converts snake_case to protoCamelCase according to the convention\n        // used by protoc to convert a field name to a JSON name.\n        function protoCamelCase(snakeCase) {\n            let capNext = false;\n            const b = [];\n            for (let i = 0; i < snakeCase.length; i++) {\n                let c = snakeCase.charAt(i);\n                switch (c) {\n                    case '_':\n                        capNext = true;\n                        break;\n                    case '0':\n                    case '1':\n                    case '2':\n                    case '3':\n                    case '4':\n                    case '5':\n                    case '6':\n                    case '7':\n                    case '8':\n                    case '9':\n                        b.push(c);\n                        capNext = false;\n                        break;\n                    default:\n                        if (capNext) {\n                            capNext = false;\n                            c = c.toUpperCase();\n                        }\n                        b.push(c);\n                        break;\n                }\n            }\n            return b.join('');\n        }\n        return this.paths.map(p => {\n            if (p.match(/_[0-9]?_/g) || p.match(/[A-Z]/g)) {\n                throw new Error(\"cannot encode google.protobuf.FieldMask to JSON: lowerCamelCase of path name \\\"\" + p + \"\\\" is irreversible\");\n            }\n            return protoCamelCase(p);\n        }).join(\",\");\n    }\n    fromJson(json, options) {\n        if (typeof json !== \"string\") {\n            throw new Error(\"cannot decode google.protobuf.FieldMask from JSON: \" + proto3.json.debug(json));\n        }\n        if (json === \"\") {\n            return this;\n        }\n        function camelToSnake(str) {\n            if (str.includes(\"_\")) {\n                throw new Error(\"cannot decode google.protobuf.FieldMask from JSON: path names must be lowerCamelCase\");\n            }\n            const sc = str.replace(/[A-Z]/g, letter => \"_\" + letter.toLowerCase());\n            return (sc[0] === \"_\") ? sc.substring(1) : sc;\n        }\n        this.paths = json.split(\",\").map(camelToSnake);\n        return this;\n    }\n    static fromBinary(bytes, options) {\n        return new FieldMask().fromBinary(bytes, options);\n    }\n    static fromJson(jsonValue, options) {\n        return new FieldMask().fromJson(jsonValue, options);\n    }\n    static fromJsonString(jsonString, options) {\n        return new FieldMask().fromJsonString(jsonString, options);\n    }\n    static equals(a, b) {\n        return proto3.util.equals(FieldMask, a, b);\n    }\n}\nFieldMask.runtime = proto3;\nFieldMask.typeName = \"google.protobuf.FieldMask\";\nFieldMask.fields = proto3.util.newFieldList(() => [\n    { no: 1, name: \"paths\", kind: \"scalar\", T: 9 /* ScalarType.STRING */, repeated: true },\n]);\n\n;// ./node_modules/@bufbuild/protobuf/dist/esm/service-type.js\n// Copyright 2021-2024 Buf Technologies, Inc.\n//\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n//\n//      http://www.apache.org/licenses/LICENSE-2.0\n//\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n/**\n * MethodKind represents the four method types that can be declared in\n * protobuf with the `stream` keyword:\n *\n * 1. Unary:           rpc (Input) returns (Output)\n * 2. ServerStreaming: rpc (Input) returns (stream Output)\n * 3. ClientStreaming: rpc (stream Input) returns (Output)\n * 4. BiDiStreaming:   rpc (stream Input) returns (stream Output)\n */\nvar MethodKind;\n(function (MethodKind) {\n    MethodKind[MethodKind[\"Unary\"] = 0] = \"Unary\";\n    MethodKind[MethodKind[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n    MethodKind[MethodKind[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n    MethodKind[MethodKind[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(MethodKind || (MethodKind = {}));\n/**\n * Is this method side-effect-free (or safe in HTTP parlance), or just\n * idempotent, or neither? HTTP based RPC implementation may choose GET verb\n * for safe methods, and PUT verb for idempotent methods instead of the\n * default POST.\n *\n * This enum matches the protobuf enum google.protobuf.MethodOptions.IdempotencyLevel,\n * defined in the well-known type google/protobuf/descriptor.proto, but\n * drops UNKNOWN.\n */\nvar MethodIdempotency;\n(function (MethodIdempotency) {\n    /**\n     * Idempotent, no side effects.\n     */\n    MethodIdempotency[MethodIdempotency[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n    /**\n     * Idempotent, but may have side effects.\n     */\n    MethodIdempotency[MethodIdempotency[\"Idempotent\"] = 2] = \"Idempotent\";\n})(MethodIdempotency || (MethodIdempotency = {}));\n\n;// ./node_modules/@utxorpc/spec/lib/index.mjs\nvar lib_defProp = Object.defineProperty;\nvar __export = (target, all) => {\n  for (var name in all)\n    lib_defProp(target, name, { get: all[name], enumerable: true });\n};\n\n// src/utxorpc/v1alpha/cardano/cardano_pb.ts\nvar cardano_pb_exports = {};\n__export(cardano_pb_exports, {\n  AddressPattern: () => AddressPattern,\n  Anchor: () => lib_Anchor,\n  Asset: () => Asset,\n  AssetPattern: () => AssetPattern,\n  AuthCommitteeHotCert: () => AuthCommitteeHotCert,\n  AuxData: () => AuxData,\n  BigInt: () => lib_BigInt,\n  Block: () => Block,\n  BlockBody: () => BlockBody,\n  BlockHeader: () => BlockHeader,\n  Certificate: () => lib_Certificate,\n  Collateral: () => Collateral,\n  Constr: () => Constr,\n  CostModel: () => lib_CostModel,\n  CostModels: () => CostModels,\n  DRep: () => lib_DRep,\n  Datum: () => lib_Datum,\n  EvalError: () => EvalError,\n  EvalTrace: () => EvalTrace,\n  ExPrices: () => ExPrices,\n  ExUnits: () => lib_ExUnits,\n  GenesisKeyDelegationCert: () => GenesisKeyDelegationCert,\n  Metadata: () => Metadata,\n  Metadatum: () => Metadatum,\n  MetadatumArray: () => MetadatumArray,\n  MetadatumMap: () => lib_MetadatumMap,\n  MetadatumPair: () => MetadatumPair,\n  MirCert: () => MirCert,\n  MirSource: () => MirSource,\n  MirTarget: () => MirTarget,\n  Multiasset: () => Multiasset,\n  NativeScript: () => lib_NativeScript,\n  NativeScriptList: () => NativeScriptList,\n  PParams: () => PParams,\n  PlutusData: () => lib_PlutusData,\n  PlutusDataArray: () => PlutusDataArray,\n  PlutusDataMap: () => PlutusDataMap,\n  PlutusDataPair: () => PlutusDataPair,\n  PoolMetadata: () => lib_PoolMetadata,\n  PoolRegistrationCert: () => PoolRegistrationCert,\n  PoolRetirementCert: () => PoolRetirementCert,\n  ProtocolVersion: () => lib_ProtocolVersion,\n  RationalNumber: () => RationalNumber,\n  Redeemer: () => lib_Redeemer,\n  RedeemerPurpose: () => lib_RedeemerPurpose,\n  RegCert: () => RegCert,\n  RegDRepCert: () => RegDRepCert,\n  Relay: () => lib_Relay,\n  ResignCommitteeColdCert: () => ResignCommitteeColdCert,\n  Script: () => lib_Script,\n  ScriptNOfK: () => lib_ScriptNOfK,\n  StakeCredential: () => StakeCredential,\n  StakeDelegationCert: () => StakeDelegationCert,\n  StakeRegDelegCert: () => StakeRegDelegCert,\n  StakeVoteDelegCert: () => StakeVoteDelegCert,\n  StakeVoteRegDelegCert: () => StakeVoteRegDelegCert,\n  Tx: () => Tx,\n  TxEval: () => TxEval,\n  TxInput: () => TxInput,\n  TxOutput: () => TxOutput,\n  TxOutputPattern: () => TxOutputPattern,\n  TxPattern: () => TxPattern,\n  TxValidity: () => TxValidity,\n  UnRegCert: () => UnRegCert,\n  UnRegDRepCert: () => UnRegDRepCert,\n  UpdateDRepCert: () => UpdateDRepCert,\n  VKeyWitness: () => VKeyWitness,\n  VoteDelegCert: () => VoteDelegCert,\n  VoteRegDelegCert: () => VoteRegDelegCert,\n  Withdrawal: () => Withdrawal,\n  WitnessSet: () => WitnessSet\n});\n\nvar lib_RedeemerPurpose = /* @__PURE__ */ ((RedeemerPurpose2) => {\n  RedeemerPurpose2[RedeemerPurpose2[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n  RedeemerPurpose2[RedeemerPurpose2[\"SPEND\"] = 1] = \"SPEND\";\n  RedeemerPurpose2[RedeemerPurpose2[\"MINT\"] = 2] = \"MINT\";\n  RedeemerPurpose2[RedeemerPurpose2[\"CERT\"] = 3] = \"CERT\";\n  RedeemerPurpose2[RedeemerPurpose2[\"REWARD\"] = 4] = \"REWARD\";\n  RedeemerPurpose2[RedeemerPurpose2[\"VOTE\"] = 5] = \"VOTE\";\n  RedeemerPurpose2[RedeemerPurpose2[\"PROPOSE\"] = 6] = \"PROPOSE\";\n  return RedeemerPurpose2;\n})(lib_RedeemerPurpose || {});\nproto3.util.setEnumType(lib_RedeemerPurpose, \"utxorpc.v1alpha.cardano.RedeemerPurpose\", [\n  { no: 0, name: \"REDEEMER_PURPOSE_UNSPECIFIED\" },\n  { no: 1, name: \"REDEEMER_PURPOSE_SPEND\" },\n  { no: 2, name: \"REDEEMER_PURPOSE_MINT\" },\n  { no: 3, name: \"REDEEMER_PURPOSE_CERT\" },\n  { no: 4, name: \"REDEEMER_PURPOSE_REWARD\" },\n  { no: 5, name: \"REDEEMER_PURPOSE_VOTE\" },\n  { no: 6, name: \"REDEEMER_PURPOSE_PROPOSE\" }\n]);\nvar MirSource = /* @__PURE__ */ ((MirSource2) => {\n  MirSource2[MirSource2[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n  MirSource2[MirSource2[\"RESERVES\"] = 1] = \"RESERVES\";\n  MirSource2[MirSource2[\"TREASURY\"] = 2] = \"TREASURY\";\n  return MirSource2;\n})(MirSource || {});\nproto3.util.setEnumType(MirSource, \"utxorpc.v1alpha.cardano.MirSource\", [\n  { no: 0, name: \"MIR_SOURCE_UNSPECIFIED\" },\n  { no: 1, name: \"MIR_SOURCE_RESERVES\" },\n  { no: 2, name: \"MIR_SOURCE_TREASURY\" }\n]);\nvar _Redeemer = class _Redeemer extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Purpose of the redeemer.\n     *\n     * @generated from field: utxorpc.v1alpha.cardano.RedeemerPurpose purpose = 1;\n     */\n    this.purpose = 0 /* UNSPECIFIED */;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Redeemer().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Redeemer().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Redeemer().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Redeemer, a, b);\n  }\n};\n_Redeemer.runtime = proto3;\n_Redeemer.typeName = \"utxorpc.v1alpha.cardano.Redeemer\";\n_Redeemer.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"purpose\", kind: \"enum\", T: proto3.getEnumType(lib_RedeemerPurpose) },\n  { no: 2, name: \"payload\", kind: \"message\", T: lib_PlutusData }\n]);\nvar lib_Redeemer = _Redeemer;\nvar _TxInput = class _TxInput extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Hash of the previous transaction.\n     *\n     * @generated from field: bytes tx_hash = 1;\n     */\n    this.txHash = new Uint8Array(0);\n    /**\n     * Index of the output in the previous transaction.\n     *\n     * @generated from field: uint32 output_index = 2;\n     */\n    this.outputIndex = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxInput().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxInput().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxInput().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxInput, a, b);\n  }\n};\n_TxInput.runtime = proto3;\n_TxInput.typeName = \"utxorpc.v1alpha.cardano.TxInput\";\n_TxInput.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"tx_hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"output_index\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  },\n  { no: 3, name: \"as_output\", kind: \"message\", T: TxOutput },\n  { no: 4, name: \"redeemer\", kind: \"message\", T: lib_Redeemer }\n]);\nvar TxInput = _TxInput;\nvar _TxOutput = class _TxOutput extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Address receiving the output.\n     *\n     * @generated from field: bytes address = 1;\n     */\n    this.address = new Uint8Array(0);\n    /**\n     * Amount of ADA in the output.\n     *\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    /**\n     * Additional native (non-ADA) assets in the output.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Multiasset assets = 3;\n     */\n    this.assets = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxOutput().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxOutput().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxOutput().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxOutput, a, b);\n  }\n};\n_TxOutput.runtime = proto3;\n_TxOutput.typeName = \"utxorpc.v1alpha.cardano.TxOutput\";\n_TxOutput.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"address\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 3, name: \"assets\", kind: \"message\", T: Multiasset, repeated: true },\n  { no: 4, name: \"datum\", kind: \"message\", T: lib_Datum },\n  { no: 5, name: \"script\", kind: \"message\", T: lib_Script }\n]);\nvar TxOutput = _TxOutput;\nvar _Datum = class _Datum extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Hash of this datum as seen on-chain\n     *\n     * @generated from field: bytes hash = 1;\n     */\n    this.hash = new Uint8Array(0);\n    /**\n     * Original cbor-encoded data as seen on-chain\n     *\n     * @generated from field: bytes original_cbor = 3;\n     */\n    this.originalCbor = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Datum().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Datum().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Datum().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Datum, a, b);\n  }\n};\n_Datum.runtime = proto3;\n_Datum.typeName = \"utxorpc.v1alpha.cardano.Datum\";\n_Datum.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 2, name: \"payload\", kind: \"message\", T: lib_PlutusData },\n  {\n    no: 3,\n    name: \"original_cbor\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar lib_Datum = _Datum;\nvar _Asset = class _Asset extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Name of the custom asset.\n     *\n     * @generated from field: bytes name = 1;\n     */\n    this.name = new Uint8Array(0);\n    /**\n     * Quantity of the custom asset in case of an output.\n     *\n     * @generated from field: uint64 output_coin = 2;\n     */\n    this.outputCoin = protoInt64.zero;\n    /**\n     * Quantity of the custom asset in case of a mint.\n     *\n     * @generated from field: int64 mint_coin = 3;\n     */\n    this.mintCoin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Asset().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Asset().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Asset().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Asset, a, b);\n  }\n};\n_Asset.runtime = proto3;\n_Asset.typeName = \"utxorpc.v1alpha.cardano.Asset\";\n_Asset.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"name\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"output_coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 3,\n    name: \"mint_coin\",\n    kind: \"scalar\",\n    T: 3\n    /* ScalarType.INT64 */\n  }\n]);\nvar Asset = _Asset;\nvar _Multiasset = class _Multiasset extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Policy ID governing the custom assets.\n     *\n     * @generated from field: bytes policy_id = 1;\n     */\n    this.policyId = new Uint8Array(0);\n    /**\n     * List of custom assets.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Asset assets = 2;\n     */\n    this.assets = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Multiasset().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Multiasset().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Multiasset().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Multiasset, a, b);\n  }\n};\n_Multiasset.runtime = proto3;\n_Multiasset.typeName = \"utxorpc.v1alpha.cardano.Multiasset\";\n_Multiasset.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"policy_id\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 2, name: \"assets\", kind: \"message\", T: Asset, repeated: true },\n  { no: 3, name: \"redeemer\", kind: \"message\", T: lib_Redeemer }\n]);\nvar Multiasset = _Multiasset;\nvar _TxValidity = class _TxValidity extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Start of the validity interval.\n     *\n     * @generated from field: uint64 start = 1;\n     */\n    this.start = protoInt64.zero;\n    /**\n     * End of the validity interval (TTL: Time to Live).\n     *\n     * @generated from field: uint64 ttl = 2;\n     */\n    this.ttl = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxValidity().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxValidity().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxValidity().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxValidity, a, b);\n  }\n};\n_TxValidity.runtime = proto3;\n_TxValidity.typeName = \"utxorpc.v1alpha.cardano.TxValidity\";\n_TxValidity.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"start\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"ttl\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar TxValidity = _TxValidity;\nvar _Collateral = class _Collateral extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Collateral inputs for the transaction.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.TxInput collateral = 1;\n     */\n    this.collateral = [];\n    /**\n     * Total amount of collateral.\n     *\n     * @generated from field: uint64 total_collateral = 3;\n     */\n    this.totalCollateral = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Collateral().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Collateral().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Collateral().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Collateral, a, b);\n  }\n};\n_Collateral.runtime = proto3;\n_Collateral.typeName = \"utxorpc.v1alpha.cardano.Collateral\";\n_Collateral.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"collateral\", kind: \"message\", T: TxInput, repeated: true },\n  { no: 2, name: \"collateral_return\", kind: \"message\", T: TxOutput },\n  {\n    no: 3,\n    name: \"total_collateral\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar Collateral = _Collateral;\nvar _Withdrawal = class _Withdrawal extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Address of the reward account.\n     *\n     * @generated from field: bytes reward_account = 1;\n     */\n    this.rewardAccount = new Uint8Array(0);\n    /**\n     * Amount of ADA withdrawn.\n     *\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Withdrawal().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Withdrawal().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Withdrawal().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Withdrawal, a, b);\n  }\n};\n_Withdrawal.runtime = proto3;\n_Withdrawal.typeName = \"utxorpc.v1alpha.cardano.Withdrawal\";\n_Withdrawal.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"reward_account\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 3, name: \"redeemer\", kind: \"message\", T: lib_Redeemer }\n]);\nvar Withdrawal = _Withdrawal;\nvar _WitnessSet = class _WitnessSet extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of VKey witnesses.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.VKeyWitness vkeywitness = 1;\n     */\n    this.vkeywitness = [];\n    /**\n     * List of scripts.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Script script = 2;\n     */\n    this.script = [];\n    /**\n     * List of Plutus data elements associated with the transaction.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.PlutusData plutus_datums = 3;\n     */\n    this.plutusDatums = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WitnessSet().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WitnessSet().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WitnessSet().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WitnessSet, a, b);\n  }\n};\n_WitnessSet.runtime = proto3;\n_WitnessSet.typeName = \"utxorpc.v1alpha.cardano.WitnessSet\";\n_WitnessSet.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"vkeywitness\", kind: \"message\", T: VKeyWitness, repeated: true },\n  { no: 2, name: \"script\", kind: \"message\", T: lib_Script, repeated: true },\n  { no: 3, name: \"plutus_datums\", kind: \"message\", T: lib_PlutusData, repeated: true }\n]);\nvar WitnessSet = _WitnessSet;\nvar _AuxData = class _AuxData extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of auxiliary metadata elements.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Metadata metadata = 1;\n     */\n    this.metadata = [];\n    /**\n     * List of auxiliary scripts.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Script scripts = 2;\n     */\n    this.scripts = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AuxData().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AuxData().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AuxData().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AuxData, a, b);\n  }\n};\n_AuxData.runtime = proto3;\n_AuxData.typeName = \"utxorpc.v1alpha.cardano.AuxData\";\n_AuxData.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"metadata\", kind: \"message\", T: Metadata, repeated: true },\n  { no: 2, name: \"scripts\", kind: \"message\", T: lib_Script, repeated: true }\n]);\nvar AuxData = _AuxData;\nvar _Tx = class _Tx extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transaction inputs\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.TxInput inputs = 1;\n     */\n    this.inputs = [];\n    /**\n     * List of transaction outputs\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.TxOutput outputs = 2;\n     */\n    this.outputs = [];\n    /**\n     * List of certificates\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Certificate certificates = 3;\n     */\n    this.certificates = [];\n    /**\n     * List of withdrawals\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Withdrawal withdrawals = 4;\n     */\n    this.withdrawals = [];\n    /**\n     * List of minted custom assets\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Multiasset mint = 5;\n     */\n    this.mint = [];\n    /**\n     * List of reference inputs\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.TxInput reference_inputs = 6;\n     */\n    this.referenceInputs = [];\n    /**\n     * Transaction fee in ADA\n     *\n     * @generated from field: uint64 fee = 9;\n     */\n    this.fee = protoInt64.zero;\n    /**\n     * Flag indicating whether the transaction was successful\n     *\n     * @generated from field: bool successful = 11;\n     */\n    this.successful = false;\n    /**\n     * Hash of the transaction that serves as main identifier\n     *\n     * @generated from field: bytes hash = 13;\n     */\n    this.hash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Tx().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Tx().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Tx().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Tx, a, b);\n  }\n};\n_Tx.runtime = proto3;\n_Tx.typeName = \"utxorpc.v1alpha.cardano.Tx\";\n_Tx.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"inputs\", kind: \"message\", T: TxInput, repeated: true },\n  { no: 2, name: \"outputs\", kind: \"message\", T: TxOutput, repeated: true },\n  { no: 3, name: \"certificates\", kind: \"message\", T: lib_Certificate, repeated: true },\n  { no: 4, name: \"withdrawals\", kind: \"message\", T: Withdrawal, repeated: true },\n  { no: 5, name: \"mint\", kind: \"message\", T: Multiasset, repeated: true },\n  { no: 6, name: \"reference_inputs\", kind: \"message\", T: TxInput, repeated: true },\n  { no: 7, name: \"witnesses\", kind: \"message\", T: WitnessSet },\n  { no: 8, name: \"collateral\", kind: \"message\", T: Collateral },\n  {\n    no: 9,\n    name: \"fee\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 10, name: \"validity\", kind: \"message\", T: TxValidity },\n  {\n    no: 11,\n    name: \"successful\",\n    kind: \"scalar\",\n    T: 8\n    /* ScalarType.BOOL */\n  },\n  { no: 12, name: \"auxiliary\", kind: \"message\", T: AuxData },\n  {\n    no: 13,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar Tx = _Tx;\nvar _BlockHeader = class _BlockHeader extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Slot number.\n     *\n     * @generated from field: uint64 slot = 1;\n     */\n    this.slot = protoInt64.zero;\n    /**\n     * Block hash.\n     *\n     * @generated from field: bytes hash = 2;\n     */\n    this.hash = new Uint8Array(0);\n    /**\n     * Block height.\n     *\n     * @generated from field: uint64 height = 3;\n     */\n    this.height = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _BlockHeader().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _BlockHeader().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _BlockHeader().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_BlockHeader, a, b);\n  }\n};\n_BlockHeader.runtime = proto3;\n_BlockHeader.typeName = \"utxorpc.v1alpha.cardano.BlockHeader\";\n_BlockHeader.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"slot\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"height\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar BlockHeader = _BlockHeader;\nvar _BlockBody = class _BlockBody extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transactions.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Tx tx = 1;\n     */\n    this.tx = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _BlockBody().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _BlockBody().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _BlockBody().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_BlockBody, a, b);\n  }\n};\n_BlockBody.runtime = proto3;\n_BlockBody.typeName = \"utxorpc.v1alpha.cardano.BlockBody\";\n_BlockBody.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"tx\", kind: \"message\", T: Tx, repeated: true }\n]);\nvar BlockBody = _BlockBody;\nvar _Block = class _Block extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Block().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Block().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Block().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Block, a, b);\n  }\n};\n_Block.runtime = proto3;\n_Block.typeName = \"utxorpc.v1alpha.cardano.Block\";\n_Block.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"header\", kind: \"message\", T: BlockHeader },\n  { no: 2, name: \"body\", kind: \"message\", T: BlockBody }\n]);\nvar Block = _Block;\nvar _VKeyWitness = class _VKeyWitness extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Verification key.\n     *\n     * @generated from field: bytes vkey = 1;\n     */\n    this.vkey = new Uint8Array(0);\n    /**\n     * Signature generated using the associated private key.\n     *\n     * @generated from field: bytes signature = 2;\n     */\n    this.signature = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _VKeyWitness().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _VKeyWitness().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _VKeyWitness().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_VKeyWitness, a, b);\n  }\n};\n_VKeyWitness.runtime = proto3;\n_VKeyWitness.typeName = \"utxorpc.v1alpha.cardano.VKeyWitness\";\n_VKeyWitness.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"vkey\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"signature\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar VKeyWitness = _VKeyWitness;\nvar _NativeScript = class _NativeScript extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.NativeScript.native_script\n     */\n    this.nativeScript = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _NativeScript().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _NativeScript().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _NativeScript().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_NativeScript, a, b);\n  }\n};\n_NativeScript.runtime = proto3;\n_NativeScript.typeName = \"utxorpc.v1alpha.cardano.NativeScript\";\n_NativeScript.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"script_pubkey\", kind: \"scalar\", T: 12, oneof: \"native_script\" },\n  { no: 2, name: \"script_all\", kind: \"message\", T: NativeScriptList, oneof: \"native_script\" },\n  { no: 3, name: \"script_any\", kind: \"message\", T: NativeScriptList, oneof: \"native_script\" },\n  { no: 4, name: \"script_n_of_k\", kind: \"message\", T: lib_ScriptNOfK, oneof: \"native_script\" },\n  { no: 5, name: \"invalid_before\", kind: \"scalar\", T: 4, oneof: \"native_script\" },\n  { no: 6, name: \"invalid_hereafter\", kind: \"scalar\", T: 4, oneof: \"native_script\" }\n]);\nvar lib_NativeScript = _NativeScript;\nvar _NativeScriptList = class _NativeScriptList extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of native scripts.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.NativeScript items = 1;\n     */\n    this.items = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _NativeScriptList().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _NativeScriptList().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _NativeScriptList().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_NativeScriptList, a, b);\n  }\n};\n_NativeScriptList.runtime = proto3;\n_NativeScriptList.typeName = \"utxorpc.v1alpha.cardano.NativeScriptList\";\n_NativeScriptList.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: lib_NativeScript, repeated: true }\n]);\nvar NativeScriptList = _NativeScriptList;\nvar _ScriptNOfK = class _ScriptNOfK extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The number of required satisfied scripts.\n     *\n     * @generated from field: uint32 k = 1;\n     */\n    this.k = 0;\n    /**\n     * List of native scripts.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.NativeScript scripts = 2;\n     */\n    this.scripts = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ScriptNOfK().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ScriptNOfK().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ScriptNOfK().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ScriptNOfK, a, b);\n  }\n};\n_ScriptNOfK.runtime = proto3;\n_ScriptNOfK.typeName = \"utxorpc.v1alpha.cardano.ScriptNOfK\";\n_ScriptNOfK.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"k\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  },\n  { no: 2, name: \"scripts\", kind: \"message\", T: lib_NativeScript, repeated: true }\n]);\nvar lib_ScriptNOfK = _ScriptNOfK;\nvar _Constr = class _Constr extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint32 tag = 1;\n     */\n    this.tag = 0;\n    /**\n     * @generated from field: uint64 any_constructor = 2;\n     */\n    this.anyConstructor = protoInt64.zero;\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.PlutusData fields = 3;\n     */\n    this.fields = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Constr().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Constr().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Constr().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Constr, a, b);\n  }\n};\n_Constr.runtime = proto3;\n_Constr.typeName = \"utxorpc.v1alpha.cardano.Constr\";\n_Constr.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"tag\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  },\n  {\n    no: 2,\n    name: \"any_constructor\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 3, name: \"fields\", kind: \"message\", T: lib_PlutusData, repeated: true }\n]);\nvar Constr = _Constr;\nvar _BigInt = class _BigInt extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.BigInt.big_int\n     */\n    this.bigInt = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _BigInt().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _BigInt().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _BigInt().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_BigInt, a, b);\n  }\n};\n_BigInt.runtime = proto3;\n_BigInt.typeName = \"utxorpc.v1alpha.cardano.BigInt\";\n_BigInt.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"int\", kind: \"scalar\", T: 3, oneof: \"big_int\" },\n  { no: 2, name: \"big_u_int\", kind: \"scalar\", T: 12, oneof: \"big_int\" },\n  { no: 3, name: \"big_n_int\", kind: \"scalar\", T: 12, oneof: \"big_int\" }\n]);\nvar lib_BigInt = _BigInt;\nvar _PlutusDataPair = class _PlutusDataPair extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PlutusDataPair().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PlutusDataPair().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PlutusDataPair().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PlutusDataPair, a, b);\n  }\n};\n_PlutusDataPair.runtime = proto3;\n_PlutusDataPair.typeName = \"utxorpc.v1alpha.cardano.PlutusDataPair\";\n_PlutusDataPair.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"key\", kind: \"message\", T: lib_PlutusData },\n  { no: 2, name: \"value\", kind: \"message\", T: lib_PlutusData }\n]);\nvar PlutusDataPair = _PlutusDataPair;\nvar _PlutusData = class _PlutusData extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.PlutusData.plutus_data\n     */\n    this.plutusData = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PlutusData().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PlutusData().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PlutusData().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PlutusData, a, b);\n  }\n};\n_PlutusData.runtime = proto3;\n_PlutusData.typeName = \"utxorpc.v1alpha.cardano.PlutusData\";\n_PlutusData.fields = proto3.util.newFieldList(() => [\n  { no: 2, name: \"constr\", kind: \"message\", T: Constr, oneof: \"plutus_data\" },\n  { no: 3, name: \"map\", kind: \"message\", T: PlutusDataMap, oneof: \"plutus_data\" },\n  { no: 4, name: \"big_int\", kind: \"message\", T: lib_BigInt, oneof: \"plutus_data\" },\n  { no: 5, name: \"bounded_bytes\", kind: \"scalar\", T: 12, oneof: \"plutus_data\" },\n  { no: 6, name: \"array\", kind: \"message\", T: PlutusDataArray, oneof: \"plutus_data\" }\n]);\nvar lib_PlutusData = _PlutusData;\nvar _PlutusDataMap = class _PlutusDataMap extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of key-value pairs.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.PlutusDataPair pairs = 1;\n     */\n    this.pairs = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PlutusDataMap().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PlutusDataMap().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PlutusDataMap().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PlutusDataMap, a, b);\n  }\n};\n_PlutusDataMap.runtime = proto3;\n_PlutusDataMap.typeName = \"utxorpc.v1alpha.cardano.PlutusDataMap\";\n_PlutusDataMap.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"pairs\", kind: \"message\", T: PlutusDataPair, repeated: true }\n]);\nvar PlutusDataMap = _PlutusDataMap;\nvar _PlutusDataArray = class _PlutusDataArray extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of Plutus data items.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.PlutusData items = 1;\n     */\n    this.items = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PlutusDataArray().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PlutusDataArray().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PlutusDataArray().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PlutusDataArray, a, b);\n  }\n};\n_PlutusDataArray.runtime = proto3;\n_PlutusDataArray.typeName = \"utxorpc.v1alpha.cardano.PlutusDataArray\";\n_PlutusDataArray.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: lib_PlutusData, repeated: true }\n]);\nvar PlutusDataArray = _PlutusDataArray;\nvar _Script = class _Script extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.Script.script\n     */\n    this.script = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Script().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Script().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Script().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Script, a, b);\n  }\n};\n_Script.runtime = proto3;\n_Script.typeName = \"utxorpc.v1alpha.cardano.Script\";\n_Script.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"native\", kind: \"message\", T: lib_NativeScript, oneof: \"script\" },\n  { no: 2, name: \"plutus_v1\", kind: \"scalar\", T: 12, oneof: \"script\" },\n  { no: 3, name: \"plutus_v2\", kind: \"scalar\", T: 12, oneof: \"script\" },\n  { no: 4, name: \"plutus_v3\", kind: \"scalar\", T: 12, oneof: \"script\" }\n]);\nvar lib_Script = _Script;\nvar _Metadatum = class _Metadatum extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.Metadatum.metadatum\n     */\n    this.metadatum = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Metadatum().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Metadatum().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Metadatum().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Metadatum, a, b);\n  }\n};\n_Metadatum.runtime = proto3;\n_Metadatum.typeName = \"utxorpc.v1alpha.cardano.Metadatum\";\n_Metadatum.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"int\", kind: \"scalar\", T: 3, oneof: \"metadatum\" },\n  { no: 2, name: \"bytes\", kind: \"scalar\", T: 12, oneof: \"metadatum\" },\n  { no: 3, name: \"text\", kind: \"scalar\", T: 9, oneof: \"metadatum\" },\n  { no: 4, name: \"array\", kind: \"message\", T: MetadatumArray, oneof: \"metadatum\" },\n  { no: 5, name: \"map\", kind: \"message\", T: lib_MetadatumMap, oneof: \"metadatum\" }\n]);\nvar Metadatum = _Metadatum;\nvar _MetadatumArray = class _MetadatumArray extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Metadatum items = 1;\n     */\n    this.items = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _MetadatumArray().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _MetadatumArray().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _MetadatumArray().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_MetadatumArray, a, b);\n  }\n};\n_MetadatumArray.runtime = proto3;\n_MetadatumArray.typeName = \"utxorpc.v1alpha.cardano.MetadatumArray\";\n_MetadatumArray.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: Metadatum, repeated: true }\n]);\nvar MetadatumArray = _MetadatumArray;\nvar _MetadatumMap = class _MetadatumMap extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.MetadatumPair pairs = 1;\n     */\n    this.pairs = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _MetadatumMap().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _MetadatumMap().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _MetadatumMap().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_MetadatumMap, a, b);\n  }\n};\n_MetadatumMap.runtime = proto3;\n_MetadatumMap.typeName = \"utxorpc.v1alpha.cardano.MetadatumMap\";\n_MetadatumMap.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"pairs\", kind: \"message\", T: MetadatumPair, repeated: true }\n]);\nvar lib_MetadatumMap = _MetadatumMap;\nvar _MetadatumPair = class _MetadatumPair extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _MetadatumPair().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _MetadatumPair().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _MetadatumPair().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_MetadatumPair, a, b);\n  }\n};\n_MetadatumPair.runtime = proto3;\n_MetadatumPair.typeName = \"utxorpc.v1alpha.cardano.MetadatumPair\";\n_MetadatumPair.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"key\", kind: \"message\", T: Metadatum },\n  { no: 2, name: \"value\", kind: \"message\", T: Metadatum }\n]);\nvar MetadatumPair = _MetadatumPair;\nvar _Metadata = class _Metadata extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 label = 1;\n     */\n    this.label = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Metadata().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Metadata().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Metadata().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Metadata, a, b);\n  }\n};\n_Metadata.runtime = proto3;\n_Metadata.typeName = \"utxorpc.v1alpha.cardano.Metadata\";\n_Metadata.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"label\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 2, name: \"value\", kind: \"message\", T: Metadatum }\n]);\nvar Metadata = _Metadata;\nvar _StakeCredential = class _StakeCredential extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.StakeCredential.stake_credential\n     */\n    this.stakeCredential = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _StakeCredential().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _StakeCredential().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _StakeCredential().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_StakeCredential, a, b);\n  }\n};\n_StakeCredential.runtime = proto3;\n_StakeCredential.typeName = \"utxorpc.v1alpha.cardano.StakeCredential\";\n_StakeCredential.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"addr_key_hash\", kind: \"scalar\", T: 12, oneof: \"stake_credential\" },\n  { no: 2, name: \"script_hash\", kind: \"scalar\", T: 12, oneof: \"stake_credential\" }\n]);\nvar StakeCredential = _StakeCredential;\nvar _RationalNumber = class _RationalNumber extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: int32 numerator = 1;\n     */\n    this.numerator = 0;\n    /**\n     * @generated from field: uint32 denominator = 2;\n     */\n    this.denominator = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _RationalNumber().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _RationalNumber().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _RationalNumber().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_RationalNumber, a, b);\n  }\n};\n_RationalNumber.runtime = proto3;\n_RationalNumber.typeName = \"utxorpc.v1alpha.cardano.RationalNumber\";\n_RationalNumber.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"numerator\",\n    kind: \"scalar\",\n    T: 5\n    /* ScalarType.INT32 */\n  },\n  {\n    no: 2,\n    name: \"denominator\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  }\n]);\nvar RationalNumber = _RationalNumber;\nvar _Relay = class _Relay extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: bytes ip_v4 = 1;\n     */\n    this.ipV4 = new Uint8Array(0);\n    /**\n     * @generated from field: bytes ip_v6 = 2;\n     */\n    this.ipV6 = new Uint8Array(0);\n    /**\n     * @generated from field: string dns_name = 3;\n     */\n    this.dnsName = \"\";\n    /**\n     * @generated from field: uint32 port = 4;\n     */\n    this.port = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Relay().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Relay().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Relay().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Relay, a, b);\n  }\n};\n_Relay.runtime = proto3;\n_Relay.typeName = \"utxorpc.v1alpha.cardano.Relay\";\n_Relay.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"ip_v4\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"ip_v6\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"dns_name\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  },\n  {\n    no: 4,\n    name: \"port\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  }\n]);\nvar lib_Relay = _Relay;\nvar _PoolMetadata = class _PoolMetadata extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: string url = 1;\n     */\n    this.url = \"\";\n    /**\n     * @generated from field: bytes hash = 2;\n     */\n    this.hash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PoolMetadata().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PoolMetadata().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PoolMetadata().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PoolMetadata, a, b);\n  }\n};\n_PoolMetadata.runtime = proto3;\n_PoolMetadata.typeName = \"utxorpc.v1alpha.cardano.PoolMetadata\";\n_PoolMetadata.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"url\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  },\n  {\n    no: 2,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar lib_PoolMetadata = _PoolMetadata;\nvar _Certificate = class _Certificate extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.Certificate.certificate\n     */\n    this.certificate = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Certificate().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Certificate().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Certificate().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Certificate, a, b);\n  }\n};\n_Certificate.runtime = proto3;\n_Certificate.typeName = \"utxorpc.v1alpha.cardano.Certificate\";\n_Certificate.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_registration\", kind: \"message\", T: StakeCredential, oneof: \"certificate\" },\n  { no: 2, name: \"stake_deregistration\", kind: \"message\", T: StakeCredential, oneof: \"certificate\" },\n  { no: 3, name: \"stake_delegation\", kind: \"message\", T: StakeDelegationCert, oneof: \"certificate\" },\n  { no: 4, name: \"pool_registration\", kind: \"message\", T: PoolRegistrationCert, oneof: \"certificate\" },\n  { no: 5, name: \"pool_retirement\", kind: \"message\", T: PoolRetirementCert, oneof: \"certificate\" },\n  { no: 6, name: \"genesis_key_delegation\", kind: \"message\", T: GenesisKeyDelegationCert, oneof: \"certificate\" },\n  { no: 7, name: \"mir_cert\", kind: \"message\", T: MirCert, oneof: \"certificate\" },\n  { no: 8, name: \"reg_cert\", kind: \"message\", T: RegCert, oneof: \"certificate\" },\n  { no: 9, name: \"unreg_cert\", kind: \"message\", T: UnRegCert, oneof: \"certificate\" },\n  { no: 10, name: \"vote_deleg_cert\", kind: \"message\", T: VoteDelegCert, oneof: \"certificate\" },\n  { no: 11, name: \"stake_vote_deleg_cert\", kind: \"message\", T: StakeVoteDelegCert, oneof: \"certificate\" },\n  { no: 12, name: \"stake_reg_deleg_cert\", kind: \"message\", T: StakeRegDelegCert, oneof: \"certificate\" },\n  { no: 13, name: \"vote_reg_deleg_cert\", kind: \"message\", T: VoteRegDelegCert, oneof: \"certificate\" },\n  { no: 14, name: \"stake_vote_reg_deleg_cert\", kind: \"message\", T: StakeVoteRegDelegCert, oneof: \"certificate\" },\n  { no: 15, name: \"auth_committee_hot_cert\", kind: \"message\", T: AuthCommitteeHotCert, oneof: \"certificate\" },\n  { no: 16, name: \"resign_committee_cold_cert\", kind: \"message\", T: ResignCommitteeColdCert, oneof: \"certificate\" },\n  { no: 17, name: \"reg_drep_cert\", kind: \"message\", T: RegDRepCert, oneof: \"certificate\" },\n  { no: 18, name: \"unreg_drep_cert\", kind: \"message\", T: UnRegDRepCert, oneof: \"certificate\" },\n  { no: 19, name: \"update_drep_cert\", kind: \"message\", T: UpdateDRepCert, oneof: \"certificate\" },\n  { no: 100, name: \"redeemer\", kind: \"message\", T: lib_Redeemer }\n]);\nvar lib_Certificate = _Certificate;\nvar _StakeDelegationCert = class _StakeDelegationCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Pool key hash.\n     *\n     * @generated from field: bytes pool_keyhash = 2;\n     */\n    this.poolKeyhash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _StakeDelegationCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _StakeDelegationCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _StakeDelegationCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_StakeDelegationCert, a, b);\n  }\n};\n_StakeDelegationCert.runtime = proto3;\n_StakeDelegationCert.typeName = \"utxorpc.v1alpha.cardano.StakeDelegationCert\";\n_StakeDelegationCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"pool_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar StakeDelegationCert = _StakeDelegationCert;\nvar _PoolRegistrationCert = class _PoolRegistrationCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Operator key hash.\n     *\n     * @generated from field: bytes operator = 1;\n     */\n    this.operator = new Uint8Array(0);\n    /**\n     * VRF key hash.\n     *\n     * @generated from field: bytes vrf_keyhash = 2;\n     */\n    this.vrfKeyhash = new Uint8Array(0);\n    /**\n     * Pledge amount.\n     *\n     * @generated from field: uint64 pledge = 3;\n     */\n    this.pledge = protoInt64.zero;\n    /**\n     * Pool cost.\n     *\n     * @generated from field: uint64 cost = 4;\n     */\n    this.cost = protoInt64.zero;\n    /**\n     * Reward account.\n     *\n     * @generated from field: bytes reward_account = 6;\n     */\n    this.rewardAccount = new Uint8Array(0);\n    /**\n     * List of pool owner key hashes.\n     *\n     * @generated from field: repeated bytes pool_owners = 7;\n     */\n    this.poolOwners = [];\n    /**\n     * List of relays.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.cardano.Relay relays = 8;\n     */\n    this.relays = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PoolRegistrationCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PoolRegistrationCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PoolRegistrationCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PoolRegistrationCert, a, b);\n  }\n};\n_PoolRegistrationCert.runtime = proto3;\n_PoolRegistrationCert.typeName = \"utxorpc.v1alpha.cardano.PoolRegistrationCert\";\n_PoolRegistrationCert.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"operator\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"vrf_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"pledge\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 4,\n    name: \"cost\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 5, name: \"margin\", kind: \"message\", T: RationalNumber },\n  {\n    no: 6,\n    name: \"reward_account\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 7, name: \"pool_owners\", kind: \"scalar\", T: 12, repeated: true },\n  { no: 8, name: \"relays\", kind: \"message\", T: lib_Relay, repeated: true },\n  { no: 9, name: \"pool_metadata\", kind: \"message\", T: lib_PoolMetadata }\n]);\nvar PoolRegistrationCert = _PoolRegistrationCert;\nvar _PoolRetirementCert = class _PoolRetirementCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Pool key hash.\n     *\n     * @generated from field: bytes pool_keyhash = 1;\n     */\n    this.poolKeyhash = new Uint8Array(0);\n    /**\n     * Retirement epoch.\n     *\n     * @generated from field: uint64 epoch = 2;\n     */\n    this.epoch = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PoolRetirementCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PoolRetirementCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PoolRetirementCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PoolRetirementCert, a, b);\n  }\n};\n_PoolRetirementCert.runtime = proto3;\n_PoolRetirementCert.typeName = \"utxorpc.v1alpha.cardano.PoolRetirementCert\";\n_PoolRetirementCert.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"pool_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"epoch\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar PoolRetirementCert = _PoolRetirementCert;\nvar _GenesisKeyDelegationCert = class _GenesisKeyDelegationCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Genesis hash.\n     *\n     * @generated from field: bytes genesis_hash = 1;\n     */\n    this.genesisHash = new Uint8Array(0);\n    /**\n     * Genesis delegate hash.\n     *\n     * @generated from field: bytes genesis_delegate_hash = 2;\n     */\n    this.genesisDelegateHash = new Uint8Array(0);\n    /**\n     * VRF key hash.\n     *\n     * @generated from field: bytes vrf_keyhash = 3;\n     */\n    this.vrfKeyhash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _GenesisKeyDelegationCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _GenesisKeyDelegationCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _GenesisKeyDelegationCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_GenesisKeyDelegationCert, a, b);\n  }\n};\n_GenesisKeyDelegationCert.runtime = proto3;\n_GenesisKeyDelegationCert.typeName = \"utxorpc.v1alpha.cardano.GenesisKeyDelegationCert\";\n_GenesisKeyDelegationCert.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"genesis_hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"genesis_delegate_hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"vrf_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar GenesisKeyDelegationCert = _GenesisKeyDelegationCert;\nvar _MirTarget = class _MirTarget extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: int64 delta_coin = 2;\n     */\n    this.deltaCoin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _MirTarget().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _MirTarget().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _MirTarget().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_MirTarget, a, b);\n  }\n};\n_MirTarget.runtime = proto3;\n_MirTarget.typeName = \"utxorpc.v1alpha.cardano.MirTarget\";\n_MirTarget.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"delta_coin\",\n    kind: \"scalar\",\n    T: 3\n    /* ScalarType.INT64 */\n  }\n]);\nvar MirTarget = _MirTarget;\nvar _MirCert = class _MirCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: utxorpc.v1alpha.cardano.MirSource from = 1;\n     */\n    this.from = 0 /* UNSPECIFIED */;\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.MirTarget to = 2;\n     */\n    this.to = [];\n    /**\n     * @generated from field: uint64 other_pot = 3;\n     */\n    this.otherPot = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _MirCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _MirCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _MirCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_MirCert, a, b);\n  }\n};\n_MirCert.runtime = proto3;\n_MirCert.typeName = \"utxorpc.v1alpha.cardano.MirCert\";\n_MirCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"from\", kind: \"enum\", T: proto3.getEnumType(MirSource) },\n  { no: 2, name: \"to\", kind: \"message\", T: MirTarget, repeated: true },\n  {\n    no: 3,\n    name: \"other_pot\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar MirCert = _MirCert;\nvar _RegCert = class _RegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _RegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _RegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _RegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_RegCert, a, b);\n  }\n};\n_RegCert.runtime = proto3;\n_RegCert.typeName = \"utxorpc.v1alpha.cardano.RegCert\";\n_RegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar RegCert = _RegCert;\nvar _UnRegCert = class _UnRegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _UnRegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _UnRegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _UnRegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_UnRegCert, a, b);\n  }\n};\n_UnRegCert.runtime = proto3;\n_UnRegCert.typeName = \"utxorpc.v1alpha.cardano.UnRegCert\";\n_UnRegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar UnRegCert = _UnRegCert;\nvar _DRep = class _DRep extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.cardano.DRep.drep\n     */\n    this.drep = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _DRep().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _DRep().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _DRep().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_DRep, a, b);\n  }\n};\n_DRep.runtime = proto3;\n_DRep.typeName = \"utxorpc.v1alpha.cardano.DRep\";\n_DRep.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"addr_key_hash\", kind: \"scalar\", T: 12, oneof: \"drep\" },\n  { no: 2, name: \"script_hash\", kind: \"scalar\", T: 12, oneof: \"drep\" },\n  { no: 3, name: \"abstain\", kind: \"scalar\", T: 8, oneof: \"drep\" },\n  { no: 4, name: \"no_confidence\", kind: \"scalar\", T: 8, oneof: \"drep\" }\n]);\nvar lib_DRep = _DRep;\nvar _VoteDelegCert = class _VoteDelegCert extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _VoteDelegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _VoteDelegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _VoteDelegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_VoteDelegCert, a, b);\n  }\n};\n_VoteDelegCert.runtime = proto3;\n_VoteDelegCert.typeName = \"utxorpc.v1alpha.cardano.VoteDelegCert\";\n_VoteDelegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  { no: 2, name: \"drep\", kind: \"message\", T: lib_DRep }\n]);\nvar VoteDelegCert = _VoteDelegCert;\nvar _StakeVoteDelegCert = class _StakeVoteDelegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: bytes pool_keyhash = 2;\n     */\n    this.poolKeyhash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _StakeVoteDelegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _StakeVoteDelegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _StakeVoteDelegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_StakeVoteDelegCert, a, b);\n  }\n};\n_StakeVoteDelegCert.runtime = proto3;\n_StakeVoteDelegCert.typeName = \"utxorpc.v1alpha.cardano.StakeVoteDelegCert\";\n_StakeVoteDelegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"pool_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 3, name: \"drep\", kind: \"message\", T: lib_DRep }\n]);\nvar StakeVoteDelegCert = _StakeVoteDelegCert;\nvar _StakeRegDelegCert = class _StakeRegDelegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: bytes pool_keyhash = 2;\n     */\n    this.poolKeyhash = new Uint8Array(0);\n    /**\n     * @generated from field: uint64 coin = 3;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _StakeRegDelegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _StakeRegDelegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _StakeRegDelegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_StakeRegDelegCert, a, b);\n  }\n};\n_StakeRegDelegCert.runtime = proto3;\n_StakeRegDelegCert.typeName = \"utxorpc.v1alpha.cardano.StakeRegDelegCert\";\n_StakeRegDelegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"pool_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar StakeRegDelegCert = _StakeRegDelegCert;\nvar _VoteRegDelegCert = class _VoteRegDelegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 coin = 3;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _VoteRegDelegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _VoteRegDelegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _VoteRegDelegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_VoteRegDelegCert, a, b);\n  }\n};\n_VoteRegDelegCert.runtime = proto3;\n_VoteRegDelegCert.typeName = \"utxorpc.v1alpha.cardano.VoteRegDelegCert\";\n_VoteRegDelegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  { no: 2, name: \"drep\", kind: \"message\", T: lib_DRep },\n  {\n    no: 3,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar VoteRegDelegCert = _VoteRegDelegCert;\nvar _StakeVoteRegDelegCert = class _StakeVoteRegDelegCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: bytes pool_keyhash = 2;\n     */\n    this.poolKeyhash = new Uint8Array(0);\n    /**\n     * @generated from field: uint64 coin = 4;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _StakeVoteRegDelegCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _StakeVoteRegDelegCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _StakeVoteRegDelegCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_StakeVoteRegDelegCert, a, b);\n  }\n};\n_StakeVoteRegDelegCert.runtime = proto3;\n_StakeVoteRegDelegCert.typeName = \"utxorpc.v1alpha.cardano.StakeVoteRegDelegCert\";\n_StakeVoteRegDelegCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"stake_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"pool_keyhash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 3, name: \"drep\", kind: \"message\", T: lib_DRep },\n  {\n    no: 4,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar StakeVoteRegDelegCert = _StakeVoteRegDelegCert;\nvar _AuthCommitteeHotCert = class _AuthCommitteeHotCert extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AuthCommitteeHotCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AuthCommitteeHotCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AuthCommitteeHotCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AuthCommitteeHotCert, a, b);\n  }\n};\n_AuthCommitteeHotCert.runtime = proto3;\n_AuthCommitteeHotCert.typeName = \"utxorpc.v1alpha.cardano.AuthCommitteeHotCert\";\n_AuthCommitteeHotCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"committee_cold_credential\", kind: \"message\", T: StakeCredential },\n  { no: 2, name: \"committee_hot_credential\", kind: \"message\", T: StakeCredential }\n]);\nvar AuthCommitteeHotCert = _AuthCommitteeHotCert;\nvar _Anchor = class _Anchor extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: string url = 1;\n     */\n    this.url = \"\";\n    /**\n     * @generated from field: bytes content_hash = 2;\n     */\n    this.contentHash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Anchor().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Anchor().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Anchor().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_Anchor, a, b);\n  }\n};\n_Anchor.runtime = proto3;\n_Anchor.typeName = \"utxorpc.v1alpha.cardano.Anchor\";\n_Anchor.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"url\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  },\n  {\n    no: 2,\n    name: \"content_hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar lib_Anchor = _Anchor;\nvar _ResignCommitteeColdCert = class _ResignCommitteeColdCert extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ResignCommitteeColdCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ResignCommitteeColdCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ResignCommitteeColdCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ResignCommitteeColdCert, a, b);\n  }\n};\n_ResignCommitteeColdCert.runtime = proto3;\n_ResignCommitteeColdCert.typeName = \"utxorpc.v1alpha.cardano.ResignCommitteeColdCert\";\n_ResignCommitteeColdCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"committee_cold_credential\", kind: \"message\", T: StakeCredential },\n  { no: 2, name: \"anchor\", kind: \"message\", T: lib_Anchor }\n]);\nvar ResignCommitteeColdCert = _ResignCommitteeColdCert;\nvar _RegDRepCert = class _RegDRepCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _RegDRepCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _RegDRepCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _RegDRepCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_RegDRepCert, a, b);\n  }\n};\n_RegDRepCert.runtime = proto3;\n_RegDRepCert.typeName = \"utxorpc.v1alpha.cardano.RegDRepCert\";\n_RegDRepCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"drep_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 3, name: \"anchor\", kind: \"message\", T: lib_Anchor }\n]);\nvar RegDRepCert = _RegDRepCert;\nvar _UnRegDRepCert = class _UnRegDRepCert extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 coin = 2;\n     */\n    this.coin = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _UnRegDRepCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _UnRegDRepCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _UnRegDRepCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_UnRegDRepCert, a, b);\n  }\n};\n_UnRegDRepCert.runtime = proto3;\n_UnRegDRepCert.typeName = \"utxorpc.v1alpha.cardano.UnRegDRepCert\";\n_UnRegDRepCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"drep_credential\", kind: \"message\", T: StakeCredential },\n  {\n    no: 2,\n    name: \"coin\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar UnRegDRepCert = _UnRegDRepCert;\nvar _UpdateDRepCert = class _UpdateDRepCert extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _UpdateDRepCert().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _UpdateDRepCert().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _UpdateDRepCert().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_UpdateDRepCert, a, b);\n  }\n};\n_UpdateDRepCert.runtime = proto3;\n_UpdateDRepCert.typeName = \"utxorpc.v1alpha.cardano.UpdateDRepCert\";\n_UpdateDRepCert.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"drep_credential\", kind: \"message\", T: StakeCredential },\n  { no: 2, name: \"anchor\", kind: \"message\", T: lib_Anchor }\n]);\nvar UpdateDRepCert = _UpdateDRepCert;\nvar _AddressPattern = class _AddressPattern extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The address should match this exact address value.\n     *\n     * @generated from field: bytes exact_address = 1;\n     */\n    this.exactAddress = new Uint8Array(0);\n    /**\n     * The payment part of the address should match this value.\n     *\n     * @generated from field: bytes payment_part = 2;\n     */\n    this.paymentPart = new Uint8Array(0);\n    /**\n     * The delegation part of the address should match this value.\n     *\n     * @generated from field: bytes delegation_part = 3;\n     */\n    this.delegationPart = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AddressPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AddressPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AddressPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AddressPattern, a, b);\n  }\n};\n_AddressPattern.runtime = proto3;\n_AddressPattern.typeName = \"utxorpc.v1alpha.cardano.AddressPattern\";\n_AddressPattern.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"exact_address\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"payment_part\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 3,\n    name: \"delegation_part\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar AddressPattern = _AddressPattern;\nvar _AssetPattern = class _AssetPattern extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The asset should belong to this policy id\n     *\n     * @generated from field: bytes policy_id = 1;\n     */\n    this.policyId = new Uint8Array(0);\n    /**\n     * The asset should present this name\n     *\n     * @generated from field: bytes asset_name = 2;\n     */\n    this.assetName = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AssetPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AssetPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AssetPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AssetPattern, a, b);\n  }\n};\n_AssetPattern.runtime = proto3;\n_AssetPattern.typeName = \"utxorpc.v1alpha.cardano.AssetPattern\";\n_AssetPattern.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"policy_id\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"asset_name\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar AssetPattern = _AssetPattern;\nvar _TxOutputPattern = class _TxOutputPattern extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxOutputPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxOutputPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxOutputPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxOutputPattern, a, b);\n  }\n};\n_TxOutputPattern.runtime = proto3;\n_TxOutputPattern.typeName = \"utxorpc.v1alpha.cardano.TxOutputPattern\";\n_TxOutputPattern.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"address\", kind: \"message\", T: AddressPattern },\n  { no: 2, name: \"asset\", kind: \"message\", T: AssetPattern }\n]);\nvar TxOutputPattern = _TxOutputPattern;\nvar _TxPattern = class _TxPattern extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxPattern, a, b);\n  }\n};\n_TxPattern.runtime = proto3;\n_TxPattern.typeName = \"utxorpc.v1alpha.cardano.TxPattern\";\n_TxPattern.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"consumes\", kind: \"message\", T: TxOutputPattern },\n  { no: 2, name: \"produces\", kind: \"message\", T: TxOutputPattern },\n  { no: 3, name: \"has_address\", kind: \"message\", T: AddressPattern },\n  { no: 4, name: \"moves_asset\", kind: \"message\", T: AssetPattern },\n  { no: 5, name: \"mints_asset\", kind: \"message\", T: AssetPattern }\n]);\nvar TxPattern = _TxPattern;\nvar _ExUnits = class _ExUnits extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 steps = 1;\n     */\n    this.steps = protoInt64.zero;\n    /**\n     * @generated from field: uint64 memory = 2;\n     */\n    this.memory = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ExUnits().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ExUnits().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ExUnits().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ExUnits, a, b);\n  }\n};\n_ExUnits.runtime = proto3;\n_ExUnits.typeName = \"utxorpc.v1alpha.cardano.ExUnits\";\n_ExUnits.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"steps\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"memory\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  }\n]);\nvar lib_ExUnits = _ExUnits;\nvar _ExPrices = class _ExPrices extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ExPrices().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ExPrices().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ExPrices().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ExPrices, a, b);\n  }\n};\n_ExPrices.runtime = proto3;\n_ExPrices.typeName = \"utxorpc.v1alpha.cardano.ExPrices\";\n_ExPrices.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"steps\", kind: \"message\", T: RationalNumber },\n  { no: 2, name: \"memory\", kind: \"message\", T: RationalNumber }\n]);\nvar ExPrices = _ExPrices;\nvar _ProtocolVersion = class _ProtocolVersion extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint32 major = 1;\n     */\n    this.major = 0;\n    /**\n     * @generated from field: uint32 minor = 2;\n     */\n    this.minor = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ProtocolVersion().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ProtocolVersion().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ProtocolVersion().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ProtocolVersion, a, b);\n  }\n};\n_ProtocolVersion.runtime = proto3;\n_ProtocolVersion.typeName = \"utxorpc.v1alpha.cardano.ProtocolVersion\";\n_ProtocolVersion.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"major\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  },\n  {\n    no: 2,\n    name: \"minor\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  }\n]);\nvar lib_ProtocolVersion = _ProtocolVersion;\nvar _CostModel = class _CostModel extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: repeated int64 values = 1;\n     */\n    this.values = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _CostModel().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _CostModel().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _CostModel().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_CostModel, a, b);\n  }\n};\n_CostModel.runtime = proto3;\n_CostModel.typeName = \"utxorpc.v1alpha.cardano.CostModel\";\n_CostModel.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"values\", kind: \"scalar\", T: 3, repeated: true }\n]);\nvar lib_CostModel = _CostModel;\nvar _CostModels = class _CostModels extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _CostModels().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _CostModels().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _CostModels().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_CostModels, a, b);\n  }\n};\n_CostModels.runtime = proto3;\n_CostModels.typeName = \"utxorpc.v1alpha.cardano.CostModels\";\n_CostModels.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"plutus_v1\", kind: \"message\", T: lib_CostModel },\n  { no: 2, name: \"plutus_v2\", kind: \"message\", T: lib_CostModel },\n  { no: 3, name: \"plutus_v3\", kind: \"message\", T: lib_CostModel }\n]);\nvar CostModels = _CostModels;\nvar _PParams = class _PParams extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The number of coins per UTXO byte.\n     *\n     * @generated from field: uint64 coins_per_utxo_byte = 1;\n     */\n    this.coinsPerUtxoByte = protoInt64.zero;\n    /**\n     * The maximum transaction size.\n     *\n     * @generated from field: uint64 max_tx_size = 2;\n     */\n    this.maxTxSize = protoInt64.zero;\n    /**\n     * The minimum fee coefficient.\n     *\n     * @generated from field: uint64 min_fee_coefficient = 3;\n     */\n    this.minFeeCoefficient = protoInt64.zero;\n    /**\n     * The minimum fee constant.\n     *\n     * @generated from field: uint64 min_fee_constant = 4;\n     */\n    this.minFeeConstant = protoInt64.zero;\n    /**\n     * The maximum block body size.\n     *\n     * @generated from field: uint64 max_block_body_size = 5;\n     */\n    this.maxBlockBodySize = protoInt64.zero;\n    /**\n     * The maximum block header size.\n     *\n     * @generated from field: uint64 max_block_header_size = 6;\n     */\n    this.maxBlockHeaderSize = protoInt64.zero;\n    /**\n     * The stake key deposit.\n     *\n     * @generated from field: uint64 stake_key_deposit = 7;\n     */\n    this.stakeKeyDeposit = protoInt64.zero;\n    /**\n     * The pool deposit.\n     *\n     * @generated from field: uint64 pool_deposit = 8;\n     */\n    this.poolDeposit = protoInt64.zero;\n    /**\n     * The pool retirement epoch bound.\n     *\n     * @generated from field: uint64 pool_retirement_epoch_bound = 9;\n     */\n    this.poolRetirementEpochBound = protoInt64.zero;\n    /**\n     * The desired number of pools.\n     *\n     * @generated from field: uint64 desired_number_of_pools = 10;\n     */\n    this.desiredNumberOfPools = protoInt64.zero;\n    /**\n     * The minimum pool cost.\n     *\n     * @generated from field: uint64 min_pool_cost = 14;\n     */\n    this.minPoolCost = protoInt64.zero;\n    /**\n     * The maximum value size.\n     *\n     * @generated from field: uint64 max_value_size = 16;\n     */\n    this.maxValueSize = protoInt64.zero;\n    /**\n     * The collateral percentage.\n     *\n     * @generated from field: uint64 collateral_percentage = 17;\n     */\n    this.collateralPercentage = protoInt64.zero;\n    /**\n     * The maximum collateral inputs.\n     *\n     * @generated from field: uint64 max_collateral_inputs = 18;\n     */\n    this.maxCollateralInputs = protoInt64.zero;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _PParams().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _PParams().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _PParams().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_PParams, a, b);\n  }\n};\n_PParams.runtime = proto3;\n_PParams.typeName = \"utxorpc.v1alpha.cardano.PParams\";\n_PParams.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"coins_per_utxo_byte\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"max_tx_size\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 3,\n    name: \"min_fee_coefficient\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 4,\n    name: \"min_fee_constant\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 5,\n    name: \"max_block_body_size\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 6,\n    name: \"max_block_header_size\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 7,\n    name: \"stake_key_deposit\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 8,\n    name: \"pool_deposit\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 9,\n    name: \"pool_retirement_epoch_bound\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 10,\n    name: \"desired_number_of_pools\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 11, name: \"pool_influence\", kind: \"message\", T: RationalNumber },\n  { no: 12, name: \"monetary_expansion\", kind: \"message\", T: RationalNumber },\n  { no: 13, name: \"treasury_expansion\", kind: \"message\", T: RationalNumber },\n  {\n    no: 14,\n    name: \"min_pool_cost\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 15, name: \"protocol_version\", kind: \"message\", T: lib_ProtocolVersion },\n  {\n    no: 16,\n    name: \"max_value_size\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 17,\n    name: \"collateral_percentage\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 18,\n    name: \"max_collateral_inputs\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 19, name: \"cost_models\", kind: \"message\", T: CostModels },\n  { no: 20, name: \"prices\", kind: \"message\", T: ExPrices },\n  { no: 21, name: \"max_execution_units_per_transaction\", kind: \"message\", T: lib_ExUnits },\n  { no: 22, name: \"max_execution_units_per_block\", kind: \"message\", T: lib_ExUnits }\n]);\nvar PParams = _PParams;\nvar _EvalError = class _EvalError extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: string msg = 1;\n     */\n    this.msg = \"\";\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _EvalError().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _EvalError().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _EvalError().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_EvalError, a, b);\n  }\n};\n_EvalError.runtime = proto3;\n_EvalError.typeName = \"utxorpc.v1alpha.cardano.EvalError\";\n_EvalError.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"msg\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  }\n]);\nvar EvalError = _EvalError;\nvar _EvalTrace = class _EvalTrace extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: string msg = 1;\n     */\n    this.msg = \"\";\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _EvalTrace().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _EvalTrace().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _EvalTrace().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_EvalTrace, a, b);\n  }\n};\n_EvalTrace.runtime = proto3;\n_EvalTrace.typeName = \"utxorpc.v1alpha.cardano.EvalTrace\";\n_EvalTrace.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"msg\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  }\n]);\nvar EvalTrace = _EvalTrace;\nvar _TxEval = class _TxEval extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: uint64 fee = 1;\n     */\n    this.fee = protoInt64.zero;\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.EvalError errors = 3;\n     */\n    this.errors = [];\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.cardano.EvalTrace traces = 4;\n     */\n    this.traces = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxEval().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxEval().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxEval().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxEval, a, b);\n  }\n};\n_TxEval.runtime = proto3;\n_TxEval.typeName = \"utxorpc.v1alpha.cardano.TxEval\";\n_TxEval.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"fee\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  { no: 2, name: \"ex_units\", kind: \"message\", T: lib_ExUnits },\n  { no: 3, name: \"errors\", kind: \"message\", T: EvalError, repeated: true },\n  { no: 4, name: \"traces\", kind: \"message\", T: EvalTrace, repeated: true }\n]);\nvar TxEval = _TxEval;\n\n// src/utxorpc/v1alpha/query/query_pb.ts\nvar query_pb_exports = {};\n__export(query_pb_exports, {\n  AnyChainDatum: () => AnyChainDatum,\n  AnyChainParams: () => AnyChainParams,\n  AnyUtxoData: () => AnyUtxoData,\n  AnyUtxoPattern: () => AnyUtxoPattern,\n  ChainPoint: () => ChainPoint,\n  ReadDataRequest: () => ReadDataRequest,\n  ReadDataResponse: () => ReadDataResponse,\n  ReadParamsRequest: () => ReadParamsRequest,\n  ReadParamsResponse: () => ReadParamsResponse,\n  ReadUtxosRequest: () => ReadUtxosRequest,\n  ReadUtxosResponse: () => ReadUtxosResponse,\n  SearchUtxosRequest: () => SearchUtxosRequest,\n  SearchUtxosResponse: () => SearchUtxosResponse,\n  TxoRef: () => TxoRef,\n  UtxoPredicate: () => UtxoPredicate\n});\n\nvar _ChainPoint = class _ChainPoint extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Slot number.\n     *\n     * @generated from field: uint64 slot = 1;\n     */\n    this.slot = protoInt64.zero;\n    /**\n     * Block hash.\n     *\n     * @generated from field: bytes hash = 2;\n     */\n    this.hash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ChainPoint().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ChainPoint().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ChainPoint().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ChainPoint, a, b);\n  }\n};\n_ChainPoint.runtime = proto3;\n_ChainPoint.typeName = \"utxorpc.v1alpha.query.ChainPoint\";\n_ChainPoint.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"slot\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar ChainPoint = _ChainPoint;\nvar _TxoRef = class _TxoRef extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Tx hash.\n     *\n     * @generated from field: bytes hash = 1;\n     */\n    this.hash = new Uint8Array(0);\n    /**\n     * Output index.\n     *\n     * @generated from field: uint32 index = 2;\n     */\n    this.index = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxoRef().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxoRef().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxoRef().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxoRef, a, b);\n  }\n};\n_TxoRef.runtime = proto3;\n_TxoRef.typeName = \"utxorpc.v1alpha.query.TxoRef\";\n_TxoRef.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"index\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  }\n]);\nvar TxoRef = _TxoRef;\nvar _ReadParamsRequest = class _ReadParamsRequest extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadParamsRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadParamsRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadParamsRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadParamsRequest, a, b);\n  }\n};\n_ReadParamsRequest.runtime = proto3;\n_ReadParamsRequest.typeName = \"utxorpc.v1alpha.query.ReadParamsRequest\";\n_ReadParamsRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar ReadParamsRequest = _ReadParamsRequest;\nvar _AnyChainParams = class _AnyChainParams extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.query.AnyChainParams.params\n     */\n    this.params = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainParams().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainParams().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainParams().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainParams, a, b);\n  }\n};\n_AnyChainParams.runtime = proto3;\n_AnyChainParams.typeName = \"utxorpc.v1alpha.query.AnyChainParams\";\n_AnyChainParams.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: PParams, oneof: \"params\" }\n]);\nvar AnyChainParams = _AnyChainParams;\nvar _ReadParamsResponse = class _ReadParamsResponse extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadParamsResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadParamsResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadParamsResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadParamsResponse, a, b);\n  }\n};\n_ReadParamsResponse.runtime = proto3;\n_ReadParamsResponse.typeName = \"utxorpc.v1alpha.query.ReadParamsResponse\";\n_ReadParamsResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"values\", kind: \"message\", T: AnyChainParams },\n  { no: 2, name: \"ledger_tip\", kind: \"message\", T: ChainPoint }\n]);\nvar ReadParamsResponse = _ReadParamsResponse;\nvar _AnyUtxoPattern = class _AnyUtxoPattern extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.query.AnyUtxoPattern.utxo_pattern\n     */\n    this.utxoPattern = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyUtxoPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyUtxoPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyUtxoPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyUtxoPattern, a, b);\n  }\n};\n_AnyUtxoPattern.runtime = proto3;\n_AnyUtxoPattern.typeName = \"utxorpc.v1alpha.query.AnyUtxoPattern\";\n_AnyUtxoPattern.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: TxOutputPattern, oneof: \"utxo_pattern\" }\n]);\nvar AnyUtxoPattern = _AnyUtxoPattern;\nvar _UtxoPredicate = class _UtxoPredicate extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Predicate is true if tx doesn't exhibit pattern.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.UtxoPredicate not = 2;\n     */\n    this.not = [];\n    /**\n     * Predicate is true if utxo exhibits all of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.UtxoPredicate all_of = 3;\n     */\n    this.allOf = [];\n    /**\n     * Predicate is true if utxo exhibits any of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.UtxoPredicate any_of = 4;\n     */\n    this.anyOf = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _UtxoPredicate().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _UtxoPredicate().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _UtxoPredicate().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_UtxoPredicate, a, b);\n  }\n};\n_UtxoPredicate.runtime = proto3;\n_UtxoPredicate.typeName = \"utxorpc.v1alpha.query.UtxoPredicate\";\n_UtxoPredicate.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"match\", kind: \"message\", T: AnyUtxoPattern },\n  { no: 2, name: \"not\", kind: \"message\", T: _UtxoPredicate, repeated: true },\n  { no: 3, name: \"all_of\", kind: \"message\", T: _UtxoPredicate, repeated: true },\n  { no: 4, name: \"any_of\", kind: \"message\", T: _UtxoPredicate, repeated: true }\n]);\nvar UtxoPredicate = _UtxoPredicate;\nvar _AnyUtxoData = class _AnyUtxoData extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Original bytes as defined by the chain\n     *\n     * @generated from field: bytes native_bytes = 1;\n     */\n    this.nativeBytes = new Uint8Array(0);\n    /**\n     * @generated from oneof utxorpc.v1alpha.query.AnyUtxoData.parsed_state\n     */\n    this.parsedState = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyUtxoData().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyUtxoData().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyUtxoData().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyUtxoData, a, b);\n  }\n};\n_AnyUtxoData.runtime = proto3;\n_AnyUtxoData.typeName = \"utxorpc.v1alpha.query.AnyUtxoData\";\n_AnyUtxoData.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"native_bytes\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 2, name: \"txo_ref\", kind: \"message\", T: TxoRef },\n  { no: 3, name: \"cardano\", kind: \"message\", T: TxOutput, oneof: \"parsed_state\" }\n]);\nvar AnyUtxoData = _AnyUtxoData;\nvar _ReadUtxosRequest = class _ReadUtxosRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of keys UTxOs.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.TxoRef keys = 1;\n     */\n    this.keys = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadUtxosRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadUtxosRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadUtxosRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadUtxosRequest, a, b);\n  }\n};\n_ReadUtxosRequest.runtime = proto3;\n_ReadUtxosRequest.typeName = \"utxorpc.v1alpha.query.ReadUtxosRequest\";\n_ReadUtxosRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"keys\", kind: \"message\", T: TxoRef, repeated: true },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar ReadUtxosRequest = _ReadUtxosRequest;\nvar _ReadUtxosResponse = class _ReadUtxosResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of UTxOs.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.AnyUtxoData items = 1;\n     */\n    this.items = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadUtxosResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadUtxosResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadUtxosResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadUtxosResponse, a, b);\n  }\n};\n_ReadUtxosResponse.runtime = proto3;\n_ReadUtxosResponse.typeName = \"utxorpc.v1alpha.query.ReadUtxosResponse\";\n_ReadUtxosResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: AnyUtxoData, repeated: true },\n  { no: 2, name: \"ledger_tip\", kind: \"message\", T: ChainPoint }\n]);\nvar ReadUtxosResponse = _ReadUtxosResponse;\nvar _SearchUtxosRequest = class _SearchUtxosRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The maximum number of items to return.\n     *\n     * @generated from field: int32 max_items = 3;\n     */\n    this.maxItems = 0;\n    /**\n     * The next_page_token value returned from a previous request, if any.\n     *\n     * @generated from field: string start_token = 4;\n     */\n    this.startToken = \"\";\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _SearchUtxosRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _SearchUtxosRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _SearchUtxosRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_SearchUtxosRequest, a, b);\n  }\n};\n_SearchUtxosRequest.runtime = proto3;\n_SearchUtxosRequest.typeName = \"utxorpc.v1alpha.query.SearchUtxosRequest\";\n_SearchUtxosRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"predicate\", kind: \"message\", T: UtxoPredicate },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask },\n  {\n    no: 3,\n    name: \"max_items\",\n    kind: \"scalar\",\n    T: 5\n    /* ScalarType.INT32 */\n  },\n  {\n    no: 4,\n    name: \"start_token\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  }\n]);\nvar SearchUtxosRequest = _SearchUtxosRequest;\nvar _SearchUtxosResponse = class _SearchUtxosResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of UTxOs.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.AnyUtxoData items = 1;\n     */\n    this.items = [];\n    /**\n     * Token to retrieve the next page of results, or empty if there are no more results.\n     *\n     * @generated from field: string next_token = 3;\n     */\n    this.nextToken = \"\";\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _SearchUtxosResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _SearchUtxosResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _SearchUtxosResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_SearchUtxosResponse, a, b);\n  }\n};\n_SearchUtxosResponse.runtime = proto3;\n_SearchUtxosResponse.typeName = \"utxorpc.v1alpha.query.SearchUtxosResponse\";\n_SearchUtxosResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: AnyUtxoData, repeated: true },\n  { no: 2, name: \"ledger_tip\", kind: \"message\", T: ChainPoint },\n  {\n    no: 3,\n    name: \"next_token\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  }\n]);\nvar SearchUtxosResponse = _SearchUtxosResponse;\nvar _ReadDataRequest = class _ReadDataRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: repeated bytes keys = 1;\n     */\n    this.keys = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadDataRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadDataRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadDataRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadDataRequest, a, b);\n  }\n};\n_ReadDataRequest.runtime = proto3;\n_ReadDataRequest.typeName = \"utxorpc.v1alpha.query.ReadDataRequest\";\n_ReadDataRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"keys\", kind: \"scalar\", T: 12, repeated: true },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar ReadDataRequest = _ReadDataRequest;\nvar _AnyChainDatum = class _AnyChainDatum extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Original bytes as defined by the chain\n     *\n     * @generated from field: bytes native_bytes = 1;\n     */\n    this.nativeBytes = new Uint8Array(0);\n    /**\n     * @generated from field: bytes key = 2;\n     */\n    this.key = new Uint8Array(0);\n    /**\n     * @generated from oneof utxorpc.v1alpha.query.AnyChainDatum.parsed_state\n     */\n    this.parsedState = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainDatum().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainDatum().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainDatum().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainDatum, a, b);\n  }\n};\n_AnyChainDatum.runtime = proto3;\n_AnyChainDatum.typeName = \"utxorpc.v1alpha.query.AnyChainDatum\";\n_AnyChainDatum.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"native_bytes\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"key\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 3, name: \"cardano\", kind: \"message\", T: lib_PlutusData, oneof: \"parsed_state\" }\n]);\nvar AnyChainDatum = _AnyChainDatum;\nvar _ReadDataResponse = class _ReadDataResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The value of each datum.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.query.AnyChainDatum values = 1;\n     */\n    this.values = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadDataResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadDataResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadDataResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadDataResponse, a, b);\n  }\n};\n_ReadDataResponse.runtime = proto3;\n_ReadDataResponse.typeName = \"utxorpc.v1alpha.query.ReadDataResponse\";\n_ReadDataResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"values\", kind: \"message\", T: AnyChainDatum, repeated: true },\n  { no: 2, name: \"ledger_tip\", kind: \"message\", T: ChainPoint }\n]);\nvar ReadDataResponse = _ReadDataResponse;\n\n// src/utxorpc/v1alpha/query/query_connect.ts\nvar query_connect_exports = {};\n__export(query_connect_exports, {\n  QueryService: () => QueryService\n});\n\nvar QueryService = {\n  typeName: \"utxorpc.v1alpha.query.QueryService\",\n  methods: {\n    /**\n     * Get overall chain state.\n     *\n     * @generated from rpc utxorpc.v1alpha.query.QueryService.ReadParams\n     */\n    readParams: {\n      name: \"ReadParams\",\n      I: ReadParamsRequest,\n      O: ReadParamsResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Read specific UTxOs by reference.\n     *\n     * @generated from rpc utxorpc.v1alpha.query.QueryService.ReadUtxos\n     */\n    readUtxos: {\n      name: \"ReadUtxos\",\n      I: ReadUtxosRequest,\n      O: ReadUtxosResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Search for UTxO based on a pattern.\n     *\n     * @generated from rpc utxorpc.v1alpha.query.QueryService.SearchUtxos\n     */\n    searchUtxos: {\n      name: \"SearchUtxos\",\n      I: SearchUtxosRequest,\n      O: SearchUtxosResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Read specific datum by hash\n     *\n     * @generated from rpc utxorpc.v1alpha.query.QueryService.ReadData\n     */\n    readData: {\n      name: \"ReadData\",\n      I: ReadDataRequest,\n      O: ReadDataResponse,\n      kind: MethodKind.Unary\n    }\n  }\n};\n\n// src/utxorpc/v1alpha/submit/submit_pb.ts\nvar submit_pb_exports = {};\n__export(submit_pb_exports, {\n  AnyChainEval: () => AnyChainEval,\n  AnyChainTx: () => AnyChainTx,\n  AnyChainTxPattern: () => AnyChainTxPattern,\n  EvalTxRequest: () => EvalTxRequest,\n  EvalTxResponse: () => EvalTxResponse,\n  ReadMempoolRequest: () => ReadMempoolRequest,\n  ReadMempoolResponse: () => ReadMempoolResponse,\n  Stage: () => Stage,\n  SubmitTxRequest: () => SubmitTxRequest,\n  SubmitTxResponse: () => SubmitTxResponse,\n  TxInMempool: () => TxInMempool,\n  TxPredicate: () => TxPredicate,\n  WaitForTxRequest: () => WaitForTxRequest,\n  WaitForTxResponse: () => WaitForTxResponse,\n  WatchMempoolRequest: () => WatchMempoolRequest,\n  WatchMempoolResponse: () => WatchMempoolResponse\n});\n\nvar Stage = /* @__PURE__ */ ((Stage2) => {\n  Stage2[Stage2[\"UNSPECIFIED\"] = 0] = \"UNSPECIFIED\";\n  Stage2[Stage2[\"ACKNOWLEDGED\"] = 1] = \"ACKNOWLEDGED\";\n  Stage2[Stage2[\"MEMPOOL\"] = 2] = \"MEMPOOL\";\n  Stage2[Stage2[\"NETWORK\"] = 3] = \"NETWORK\";\n  Stage2[Stage2[\"CONFIRMED\"] = 4] = \"CONFIRMED\";\n  return Stage2;\n})(Stage || {});\nproto3.util.setEnumType(Stage, \"utxorpc.v1alpha.submit.Stage\", [\n  { no: 0, name: \"STAGE_UNSPECIFIED\" },\n  { no: 1, name: \"STAGE_ACKNOWLEDGED\" },\n  { no: 2, name: \"STAGE_MEMPOOL\" },\n  { no: 3, name: \"STAGE_NETWORK\" },\n  { no: 4, name: \"STAGE_CONFIRMED\" }\n]);\nvar _AnyChainTx = class _AnyChainTx extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.submit.AnyChainTx.type\n     */\n    this.type = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainTx().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainTx().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainTx().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainTx, a, b);\n  }\n};\n_AnyChainTx.runtime = proto3;\n_AnyChainTx.typeName = \"utxorpc.v1alpha.submit.AnyChainTx\";\n_AnyChainTx.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"raw\", kind: \"scalar\", T: 12, oneof: \"type\" }\n]);\nvar AnyChainTx = _AnyChainTx;\nvar _EvalTxRequest = class _EvalTxRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transactions to evaluate.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.AnyChainTx tx = 1;\n     */\n    this.tx = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _EvalTxRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _EvalTxRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _EvalTxRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_EvalTxRequest, a, b);\n  }\n};\n_EvalTxRequest.runtime = proto3;\n_EvalTxRequest.typeName = \"utxorpc.v1alpha.submit.EvalTxRequest\";\n_EvalTxRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"tx\", kind: \"message\", T: AnyChainTx, repeated: true }\n]);\nvar EvalTxRequest = _EvalTxRequest;\nvar _AnyChainEval = class _AnyChainEval extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.submit.AnyChainEval.chain\n     */\n    this.chain = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainEval().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainEval().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainEval().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainEval, a, b);\n  }\n};\n_AnyChainEval.runtime = proto3;\n_AnyChainEval.typeName = \"utxorpc.v1alpha.submit.AnyChainEval\";\n_AnyChainEval.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: TxEval, oneof: \"chain\" }\n]);\nvar AnyChainEval = _AnyChainEval;\nvar _EvalTxResponse = class _EvalTxResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from field: repeated utxorpc.v1alpha.submit.AnyChainEval report = 1;\n     */\n    this.report = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _EvalTxResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _EvalTxResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _EvalTxResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_EvalTxResponse, a, b);\n  }\n};\n_EvalTxResponse.runtime = proto3;\n_EvalTxResponse.typeName = \"utxorpc.v1alpha.submit.EvalTxResponse\";\n_EvalTxResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"report\", kind: \"message\", T: AnyChainEval, repeated: true }\n]);\nvar EvalTxResponse = _EvalTxResponse;\nvar _SubmitTxRequest = class _SubmitTxRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transactions to submit.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.AnyChainTx tx = 1;\n     */\n    this.tx = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _SubmitTxRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _SubmitTxRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _SubmitTxRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_SubmitTxRequest, a, b);\n  }\n};\n_SubmitTxRequest.runtime = proto3;\n_SubmitTxRequest.typeName = \"utxorpc.v1alpha.submit.SubmitTxRequest\";\n_SubmitTxRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"tx\", kind: \"message\", T: AnyChainTx, repeated: true }\n]);\nvar SubmitTxRequest = _SubmitTxRequest;\nvar _SubmitTxResponse = class _SubmitTxResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transaction references.\n     *\n     * @generated from field: repeated bytes ref = 1;\n     */\n    this.ref = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _SubmitTxResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _SubmitTxResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _SubmitTxResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_SubmitTxResponse, a, b);\n  }\n};\n_SubmitTxResponse.runtime = proto3;\n_SubmitTxResponse.typeName = \"utxorpc.v1alpha.submit.SubmitTxResponse\";\n_SubmitTxResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"ref\", kind: \"scalar\", T: 12, repeated: true }\n]);\nvar SubmitTxResponse = _SubmitTxResponse;\nvar _TxInMempool = class _TxInMempool extends Message {\n  constructor(data) {\n    super();\n    /**\n     * The transaction reference.\n     *\n     * @generated from field: bytes ref = 1;\n     */\n    this.ref = new Uint8Array(0);\n    /**\n     * Original bytes as defined by the chain\n     *\n     * @generated from field: bytes native_bytes = 2;\n     */\n    this.nativeBytes = new Uint8Array(0);\n    /**\n     * The current stage of the tx\n     *\n     * @generated from field: utxorpc.v1alpha.submit.Stage stage = 3;\n     */\n    this.stage = 0 /* UNSPECIFIED */;\n    /**\n     * @generated from oneof utxorpc.v1alpha.submit.TxInMempool.parsed_state\n     */\n    this.parsedState = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxInMempool().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxInMempool().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxInMempool().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxInMempool, a, b);\n  }\n};\n_TxInMempool.runtime = proto3;\n_TxInMempool.typeName = \"utxorpc.v1alpha.submit.TxInMempool\";\n_TxInMempool.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"ref\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  {\n    no: 2,\n    name: \"native_bytes\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 3, name: \"stage\", kind: \"enum\", T: proto3.getEnumType(Stage) },\n  { no: 4, name: \"cardano\", kind: \"message\", T: Tx, oneof: \"parsed_state\" }\n]);\nvar TxInMempool = _TxInMempool;\nvar _ReadMempoolRequest = class _ReadMempoolRequest extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadMempoolRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadMempoolRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadMempoolRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadMempoolRequest, a, b);\n  }\n};\n_ReadMempoolRequest.runtime = proto3;\n_ReadMempoolRequest.typeName = \"utxorpc.v1alpha.submit.ReadMempoolRequest\";\n_ReadMempoolRequest.fields = proto3.util.newFieldList(() => []);\nvar ReadMempoolRequest = _ReadMempoolRequest;\nvar _ReadMempoolResponse = class _ReadMempoolResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transaction currently on the mempool.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.TxInMempool items = 1;\n     */\n    this.items = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _ReadMempoolResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _ReadMempoolResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _ReadMempoolResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_ReadMempoolResponse, a, b);\n  }\n};\n_ReadMempoolResponse.runtime = proto3;\n_ReadMempoolResponse.typeName = \"utxorpc.v1alpha.submit.ReadMempoolResponse\";\n_ReadMempoolResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"items\", kind: \"message\", T: TxInMempool, repeated: true }\n]);\nvar ReadMempoolResponse = _ReadMempoolResponse;\nvar _WaitForTxRequest = class _WaitForTxRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of transaction references to wait for.\n     *\n     * @generated from field: repeated bytes ref = 1;\n     */\n    this.ref = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WaitForTxRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WaitForTxRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WaitForTxRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WaitForTxRequest, a, b);\n  }\n};\n_WaitForTxRequest.runtime = proto3;\n_WaitForTxRequest.typeName = \"utxorpc.v1alpha.submit.WaitForTxRequest\";\n_WaitForTxRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"ref\", kind: \"scalar\", T: 12, repeated: true }\n]);\nvar WaitForTxRequest = _WaitForTxRequest;\nvar _WaitForTxResponse = class _WaitForTxResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Transaction reference.\n     *\n     * @generated from field: bytes ref = 1;\n     */\n    this.ref = new Uint8Array(0);\n    /**\n     * Stage reached by the transaction.\n     *\n     * @generated from field: utxorpc.v1alpha.submit.Stage stage = 2;\n     */\n    this.stage = 0 /* UNSPECIFIED */;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WaitForTxResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WaitForTxResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WaitForTxResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WaitForTxResponse, a, b);\n  }\n};\n_WaitForTxResponse.runtime = proto3;\n_WaitForTxResponse.typeName = \"utxorpc.v1alpha.submit.WaitForTxResponse\";\n_WaitForTxResponse.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"ref\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 2, name: \"stage\", kind: \"enum\", T: proto3.getEnumType(Stage) }\n]);\nvar WaitForTxResponse = _WaitForTxResponse;\nvar _AnyChainTxPattern = class _AnyChainTxPattern extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.submit.AnyChainTxPattern.chain\n     */\n    this.chain = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainTxPattern().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainTxPattern().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainTxPattern().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainTxPattern, a, b);\n  }\n};\n_AnyChainTxPattern.runtime = proto3;\n_AnyChainTxPattern.typeName = \"utxorpc.v1alpha.submit.AnyChainTxPattern\";\n_AnyChainTxPattern.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: TxPattern, oneof: \"chain\" }\n]);\nvar AnyChainTxPattern = _AnyChainTxPattern;\nvar _TxPredicate = class _TxPredicate extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Predicate is true if tx doesn't exhibit pattern.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.TxPredicate not = 2;\n     */\n    this.not = [];\n    /**\n     * Predicate is true if tx exhibits all of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.TxPredicate all_of = 3;\n     */\n    this.allOf = [];\n    /**\n     * Predicate is true if tx exhibits any of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.submit.TxPredicate any_of = 4;\n     */\n    this.anyOf = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxPredicate().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxPredicate().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxPredicate().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxPredicate, a, b);\n  }\n};\n_TxPredicate.runtime = proto3;\n_TxPredicate.typeName = \"utxorpc.v1alpha.submit.TxPredicate\";\n_TxPredicate.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"match\", kind: \"message\", T: AnyChainTxPattern },\n  { no: 2, name: \"not\", kind: \"message\", T: _TxPredicate, repeated: true },\n  { no: 3, name: \"all_of\", kind: \"message\", T: _TxPredicate, repeated: true },\n  { no: 4, name: \"any_of\", kind: \"message\", T: _TxPredicate, repeated: true }\n]);\nvar TxPredicate = _TxPredicate;\nvar _WatchMempoolRequest = class _WatchMempoolRequest extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WatchMempoolRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WatchMempoolRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WatchMempoolRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WatchMempoolRequest, a, b);\n  }\n};\n_WatchMempoolRequest.runtime = proto3;\n_WatchMempoolRequest.typeName = \"utxorpc.v1alpha.submit.WatchMempoolRequest\";\n_WatchMempoolRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"predicate\", kind: \"message\", T: TxPredicate },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar WatchMempoolRequest = _WatchMempoolRequest;\nvar _WatchMempoolResponse = class _WatchMempoolResponse extends Message {\n  constructor(data) {\n    super();\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WatchMempoolResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WatchMempoolResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WatchMempoolResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WatchMempoolResponse, a, b);\n  }\n};\n_WatchMempoolResponse.runtime = proto3;\n_WatchMempoolResponse.typeName = \"utxorpc.v1alpha.submit.WatchMempoolResponse\";\n_WatchMempoolResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"tx\", kind: \"message\", T: TxInMempool }\n]);\nvar WatchMempoolResponse = _WatchMempoolResponse;\n\n// src/utxorpc/v1alpha/submit/submit_connect.ts\nvar submit_connect_exports = {};\n__export(submit_connect_exports, {\n  SubmitService: () => SubmitService\n});\n\nvar SubmitService = {\n  typeName: \"utxorpc.v1alpha.submit.SubmitService\",\n  methods: {\n    /**\n     * Evaluates a transaction without submitting it.\n     *\n     * @generated from rpc utxorpc.v1alpha.submit.SubmitService.EvalTx\n     */\n    evalTx: {\n      name: \"EvalTx\",\n      I: EvalTxRequest,\n      O: EvalTxResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Submit transactions to the blockchain.\n     *\n     * @generated from rpc utxorpc.v1alpha.submit.SubmitService.SubmitTx\n     */\n    submitTx: {\n      name: \"SubmitTx\",\n      I: SubmitTxRequest,\n      O: SubmitTxResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Wait for transactions to reach a certain stage and stream the updates.\n     *\n     * @generated from rpc utxorpc.v1alpha.submit.SubmitService.WaitForTx\n     */\n    waitForTx: {\n      name: \"WaitForTx\",\n      I: WaitForTxRequest,\n      O: WaitForTxResponse,\n      kind: MethodKind.ServerStreaming\n    },\n    /**\n     * Returns a point-in-time snapshot of the mempool.\n     *\n     * @generated from rpc utxorpc.v1alpha.submit.SubmitService.ReadMempool\n     */\n    readMempool: {\n      name: \"ReadMempool\",\n      I: ReadMempoolRequest,\n      O: ReadMempoolResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Stream transactions from the mempool matching the specified predicates.\n     *\n     * @generated from rpc utxorpc.v1alpha.submit.SubmitService.WatchMempool\n     */\n    watchMempool: {\n      name: \"WatchMempool\",\n      I: WatchMempoolRequest,\n      O: WatchMempoolResponse,\n      kind: MethodKind.ServerStreaming\n    }\n  }\n};\n\n// src/utxorpc/v1alpha/sync/sync_pb.ts\nvar sync_pb_exports = {};\n__export(sync_pb_exports, {\n  AnyChainBlock: () => AnyChainBlock,\n  BlockRef: () => BlockRef,\n  DumpHistoryRequest: () => DumpHistoryRequest,\n  DumpHistoryResponse: () => DumpHistoryResponse,\n  FetchBlockRequest: () => FetchBlockRequest,\n  FetchBlockResponse: () => FetchBlockResponse,\n  FollowTipRequest: () => FollowTipRequest,\n  FollowTipResponse: () => FollowTipResponse\n});\n\nvar _BlockRef = class _BlockRef extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Height or slot number (depending on the blockchain)\n     *\n     * @generated from field: uint64 index = 1;\n     */\n    this.index = protoInt64.zero;\n    /**\n     * Hash of the content of the block\n     *\n     * @generated from field: bytes hash = 2;\n     */\n    this.hash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _BlockRef().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _BlockRef().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _BlockRef().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_BlockRef, a, b);\n  }\n};\n_BlockRef.runtime = proto3;\n_BlockRef.typeName = \"utxorpc.v1alpha.sync.BlockRef\";\n_BlockRef.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"index\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar BlockRef = _BlockRef;\nvar _AnyChainBlock = class _AnyChainBlock extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Original bytes as defined by the chain\n     *\n     * @generated from field: bytes native_bytes = 1;\n     */\n    this.nativeBytes = new Uint8Array(0);\n    /**\n     * @generated from oneof utxorpc.v1alpha.sync.AnyChainBlock.chain\n     */\n    this.chain = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainBlock().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainBlock().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainBlock().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainBlock, a, b);\n  }\n};\n_AnyChainBlock.runtime = proto3;\n_AnyChainBlock.typeName = \"utxorpc.v1alpha.sync.AnyChainBlock\";\n_AnyChainBlock.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"native_bytes\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  },\n  { no: 2, name: \"cardano\", kind: \"message\", T: Block, oneof: \"chain\" }\n]);\nvar AnyChainBlock = _AnyChainBlock;\nvar _FetchBlockRequest = class _FetchBlockRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of block references.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.sync.BlockRef ref = 1;\n     */\n    this.ref = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _FetchBlockRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _FetchBlockRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _FetchBlockRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_FetchBlockRequest, a, b);\n  }\n};\n_FetchBlockRequest.runtime = proto3;\n_FetchBlockRequest.typeName = \"utxorpc.v1alpha.sync.FetchBlockRequest\";\n_FetchBlockRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"ref\", kind: \"message\", T: BlockRef, repeated: true },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar FetchBlockRequest = _FetchBlockRequest;\nvar _FetchBlockResponse = class _FetchBlockResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of fetched blocks.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.sync.AnyChainBlock block = 1;\n     */\n    this.block = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _FetchBlockResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _FetchBlockResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _FetchBlockResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_FetchBlockResponse, a, b);\n  }\n};\n_FetchBlockResponse.runtime = proto3;\n_FetchBlockResponse.typeName = \"utxorpc.v1alpha.sync.FetchBlockResponse\";\n_FetchBlockResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"block\", kind: \"message\", T: AnyChainBlock, repeated: true }\n]);\nvar FetchBlockResponse = _FetchBlockResponse;\nvar _DumpHistoryRequest = class _DumpHistoryRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Maximum number of items to return.\n     *\n     * @generated from field: uint32 max_items = 3;\n     */\n    this.maxItems = 0;\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _DumpHistoryRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _DumpHistoryRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _DumpHistoryRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_DumpHistoryRequest, a, b);\n  }\n};\n_DumpHistoryRequest.runtime = proto3;\n_DumpHistoryRequest.typeName = \"utxorpc.v1alpha.sync.DumpHistoryRequest\";\n_DumpHistoryRequest.fields = proto3.util.newFieldList(() => [\n  { no: 2, name: \"start_token\", kind: \"message\", T: BlockRef },\n  {\n    no: 3,\n    name: \"max_items\",\n    kind: \"scalar\",\n    T: 13\n    /* ScalarType.UINT32 */\n  },\n  { no: 4, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar DumpHistoryRequest = _DumpHistoryRequest;\nvar _DumpHistoryResponse = class _DumpHistoryResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of blocks in the history.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.sync.AnyChainBlock block = 1;\n     */\n    this.block = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _DumpHistoryResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _DumpHistoryResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _DumpHistoryResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_DumpHistoryResponse, a, b);\n  }\n};\n_DumpHistoryResponse.runtime = proto3;\n_DumpHistoryResponse.typeName = \"utxorpc.v1alpha.sync.DumpHistoryResponse\";\n_DumpHistoryResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"block\", kind: \"message\", T: AnyChainBlock, repeated: true },\n  { no: 2, name: \"next_token\", kind: \"message\", T: BlockRef }\n]);\nvar DumpHistoryResponse = _DumpHistoryResponse;\nvar _FollowTipRequest = class _FollowTipRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of block references to find the intersection.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.sync.BlockRef intersect = 1;\n     */\n    this.intersect = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _FollowTipRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _FollowTipRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _FollowTipRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_FollowTipRequest, a, b);\n  }\n};\n_FollowTipRequest.runtime = proto3;\n_FollowTipRequest.typeName = \"utxorpc.v1alpha.sync.FollowTipRequest\";\n_FollowTipRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"intersect\", kind: \"message\", T: BlockRef, repeated: true },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask }\n]);\nvar FollowTipRequest = _FollowTipRequest;\nvar _FollowTipResponse = class _FollowTipResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.sync.FollowTipResponse.action\n     */\n    this.action = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _FollowTipResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _FollowTipResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _FollowTipResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_FollowTipResponse, a, b);\n  }\n};\n_FollowTipResponse.runtime = proto3;\n_FollowTipResponse.typeName = \"utxorpc.v1alpha.sync.FollowTipResponse\";\n_FollowTipResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"apply\", kind: \"message\", T: AnyChainBlock, oneof: \"action\" },\n  { no: 2, name: \"undo\", kind: \"message\", T: AnyChainBlock, oneof: \"action\" },\n  { no: 3, name: \"reset\", kind: \"message\", T: BlockRef, oneof: \"action\" }\n]);\nvar FollowTipResponse = _FollowTipResponse;\n\n// src/utxorpc/v1alpha/sync/sync_connect.ts\nvar sync_connect_exports = {};\n__export(sync_connect_exports, {\n  SyncService: () => SyncService\n});\n\nvar SyncService = {\n  typeName: \"utxorpc.v1alpha.sync.SyncService\",\n  methods: {\n    /**\n     * Fetch a block by its reference.\n     *\n     * @generated from rpc utxorpc.v1alpha.sync.SyncService.FetchBlock\n     */\n    fetchBlock: {\n      name: \"FetchBlock\",\n      I: FetchBlockRequest,\n      O: FetchBlockResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Dump the block history.\n     *\n     * @generated from rpc utxorpc.v1alpha.sync.SyncService.DumpHistory\n     */\n    dumpHistory: {\n      name: \"DumpHistory\",\n      I: DumpHistoryRequest,\n      O: DumpHistoryResponse,\n      kind: MethodKind.Unary\n    },\n    /**\n     * Follow the tip of the blockchain.\n     *\n     * @generated from rpc utxorpc.v1alpha.sync.SyncService.FollowTip\n     */\n    followTip: {\n      name: \"FollowTip\",\n      I: FollowTipRequest,\n      O: FollowTipResponse,\n      kind: MethodKind.ServerStreaming\n    }\n  }\n};\n\n// src/utxorpc/v1alpha/watch/watch_pb.ts\nvar watch_pb_exports = {};\n__export(watch_pb_exports, {\n  AnyChainTx: () => AnyChainTx2,\n  AnyChainTxPattern: () => AnyChainTxPattern2,\n  BlockRef: () => BlockRef2,\n  TxPredicate: () => TxPredicate2,\n  WatchTxRequest: () => WatchTxRequest,\n  WatchTxResponse: () => WatchTxResponse\n});\n\nvar _BlockRef2 = class _BlockRef2 extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Height or slot number (depending on the blockchain)\n     *\n     * @generated from field: uint64 index = 1;\n     */\n    this.index = protoInt64.zero;\n    /**\n     * Hash of the content of the block\n     *\n     * @generated from field: bytes hash = 2;\n     */\n    this.hash = new Uint8Array(0);\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _BlockRef2().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _BlockRef2().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _BlockRef2().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_BlockRef2, a, b);\n  }\n};\n_BlockRef2.runtime = proto3;\n_BlockRef2.typeName = \"utxorpc.v1alpha.watch.BlockRef\";\n_BlockRef2.fields = proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"index\",\n    kind: \"scalar\",\n    T: 4\n    /* ScalarType.UINT64 */\n  },\n  {\n    no: 2,\n    name: \"hash\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\nvar BlockRef2 = _BlockRef2;\nvar _AnyChainTxPattern2 = class _AnyChainTxPattern2 extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.watch.AnyChainTxPattern.chain\n     */\n    this.chain = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainTxPattern2().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainTxPattern2().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainTxPattern2().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainTxPattern2, a, b);\n  }\n};\n_AnyChainTxPattern2.runtime = proto3;\n_AnyChainTxPattern2.typeName = \"utxorpc.v1alpha.watch.AnyChainTxPattern\";\n_AnyChainTxPattern2.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: TxPattern, oneof: \"chain\" }\n]);\nvar AnyChainTxPattern2 = _AnyChainTxPattern2;\nvar _TxPredicate2 = class _TxPredicate2 extends Message {\n  constructor(data) {\n    super();\n    /**\n     * Predicate is true if tx doesn't exhibit pattern.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.watch.TxPredicate not = 2;\n     */\n    this.not = [];\n    /**\n     * Predicate is true if tx exhibits all of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.watch.TxPredicate all_of = 3;\n     */\n    this.allOf = [];\n    /**\n     * Predicate is true if tx exhibits any of the patterns.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.watch.TxPredicate any_of = 4;\n     */\n    this.anyOf = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _TxPredicate2().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _TxPredicate2().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _TxPredicate2().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_TxPredicate2, a, b);\n  }\n};\n_TxPredicate2.runtime = proto3;\n_TxPredicate2.typeName = \"utxorpc.v1alpha.watch.TxPredicate\";\n_TxPredicate2.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"match\", kind: \"message\", T: AnyChainTxPattern2 },\n  { no: 2, name: \"not\", kind: \"message\", T: _TxPredicate2, repeated: true },\n  { no: 3, name: \"all_of\", kind: \"message\", T: _TxPredicate2, repeated: true },\n  { no: 4, name: \"any_of\", kind: \"message\", T: _TxPredicate2, repeated: true }\n]);\nvar TxPredicate2 = _TxPredicate2;\nvar _WatchTxRequest = class _WatchTxRequest extends Message {\n  constructor(data) {\n    super();\n    /**\n     * List of block references to find the intersection.\n     *\n     * @generated from field: repeated utxorpc.v1alpha.watch.BlockRef intersect = 3;\n     */\n    this.intersect = [];\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WatchTxRequest().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WatchTxRequest().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WatchTxRequest().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WatchTxRequest, a, b);\n  }\n};\n_WatchTxRequest.runtime = proto3;\n_WatchTxRequest.typeName = \"utxorpc.v1alpha.watch.WatchTxRequest\";\n_WatchTxRequest.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"predicate\", kind: \"message\", T: TxPredicate2 },\n  { no: 2, name: \"field_mask\", kind: \"message\", T: FieldMask },\n  { no: 3, name: \"intersect\", kind: \"message\", T: BlockRef2, repeated: true }\n]);\nvar WatchTxRequest = _WatchTxRequest;\nvar _AnyChainTx2 = class _AnyChainTx2 extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.watch.AnyChainTx.chain\n     */\n    this.chain = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _AnyChainTx2().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _AnyChainTx2().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _AnyChainTx2().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_AnyChainTx2, a, b);\n  }\n};\n_AnyChainTx2.runtime = proto3;\n_AnyChainTx2.typeName = \"utxorpc.v1alpha.watch.AnyChainTx\";\n_AnyChainTx2.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"cardano\", kind: \"message\", T: Tx, oneof: \"chain\" }\n]);\nvar AnyChainTx2 = _AnyChainTx2;\nvar _WatchTxResponse = class _WatchTxResponse extends Message {\n  constructor(data) {\n    super();\n    /**\n     * @generated from oneof utxorpc.v1alpha.watch.WatchTxResponse.action\n     */\n    this.action = { case: void 0 };\n    proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _WatchTxResponse().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _WatchTxResponse().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _WatchTxResponse().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return proto3.util.equals(_WatchTxResponse, a, b);\n  }\n};\n_WatchTxResponse.runtime = proto3;\n_WatchTxResponse.typeName = \"utxorpc.v1alpha.watch.WatchTxResponse\";\n_WatchTxResponse.fields = proto3.util.newFieldList(() => [\n  { no: 1, name: \"apply\", kind: \"message\", T: AnyChainTx2, oneof: \"action\" },\n  { no: 2, name: \"undo\", kind: \"message\", T: AnyChainTx2, oneof: \"action\" }\n]);\nvar WatchTxResponse = _WatchTxResponse;\n\n// src/utxorpc/v1alpha/watch/watch_connect.ts\nvar watch_connect_exports = {};\n__export(watch_connect_exports, {\n  WatchService: () => WatchService\n});\n\nvar WatchService = {\n  typeName: \"utxorpc.v1alpha.watch.WatchService\",\n  methods: {\n    /**\n     * Stream transactions from the chain matching the specified predicates.\n     *\n     * @generated from rpc utxorpc.v1alpha.watch.WatchService.WatchTx\n     */\n    watchTx: {\n      name: \"WatchTx\",\n      I: WatchTxRequest,\n      O: WatchTxResponse,\n      kind: MethodKind.ServerStreaming\n    }\n  }\n};\n\n\n;// ./node_modules/@utxorpc/sdk/lib/browser/index.mjs\n/* provided dependency */ var browser_process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\nvar browser_create = Object.create;\nvar browser_defProp = Object.defineProperty;\nvar browser_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar browser_getOwnPropNames = Object.getOwnPropertyNames;\nvar browser_getProtoOf = Object.getPrototypeOf;\nvar browser_hasOwnProp = Object.prototype.hasOwnProperty;\nvar browser_commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[browser_getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar browser_copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of browser_getOwnPropNames(from))\n      if (!browser_hasOwnProp.call(to, key) && key !== except)\n        browser_defProp(to, key, { get: () => from[key], enumerable: !(desc = browser_getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar browser_toESM = (mod, isNodeMode, target) => (target = mod != null ? browser_create(browser_getProtoOf(mod)) : {}, browser_copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? browser_defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// node_modules/base64-js/index.js\nvar require_base64_js = browser_commonJS({\n  \"node_modules/base64-js/index.js\"(exports) {\n    \"use strict\";\n    var import_buffer65 = browser_toESM(require_buffer());\n    exports.byteLength = byteLength;\n    exports.toByteArray = toByteArray;\n    exports.fromByteArray = fromByteArray;\n    var lookup = [];\n    var revLookup = [];\n    var Arr = typeof Uint8Array !== \"undefined\" ? Uint8Array : Array;\n    var code = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n    for (i = 0, len = code.length; i < len; ++i) {\n      lookup[i] = code[i];\n      revLookup[code.charCodeAt(i)] = i;\n    }\n    var i;\n    var len;\n    revLookup[\"-\".charCodeAt(0)] = 62;\n    revLookup[\"_\".charCodeAt(0)] = 63;\n    function getLens(b64) {\n      var len2 = b64.length;\n      if (len2 % 4 > 0) {\n        throw new Error(\"Invalid string. Length must be a multiple of 4\");\n      }\n      var validLen = b64.indexOf(\"=\");\n      if (validLen === -1) validLen = len2;\n      var placeHoldersLen = validLen === len2 ? 0 : 4 - validLen % 4;\n      return [validLen, placeHoldersLen];\n    }\n    function 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    function _byteLength(b64, validLen, placeHoldersLen) {\n      return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n    }\n    function toByteArray(b64) {\n      var tmp;\n      var lens = getLens(b64);\n      var validLen = lens[0];\n      var placeHoldersLen = lens[1];\n      var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n      var curByte = 0;\n      var len2 = placeHoldersLen > 0 ? validLen - 4 : validLen;\n      var i2;\n      for (i2 = 0; i2 < len2; i2 += 4) {\n        tmp = revLookup[b64.charCodeAt(i2)] << 18 | revLookup[b64.charCodeAt(i2 + 1)] << 12 | revLookup[b64.charCodeAt(i2 + 2)] << 6 | revLookup[b64.charCodeAt(i2 + 3)];\n        arr[curByte++] = tmp >> 16 & 255;\n        arr[curByte++] = tmp >> 8 & 255;\n        arr[curByte++] = tmp & 255;\n      }\n      if (placeHoldersLen === 2) {\n        tmp = revLookup[b64.charCodeAt(i2)] << 2 | revLookup[b64.charCodeAt(i2 + 1)] >> 4;\n        arr[curByte++] = tmp & 255;\n      }\n      if (placeHoldersLen === 1) {\n        tmp = revLookup[b64.charCodeAt(i2)] << 10 | revLookup[b64.charCodeAt(i2 + 1)] << 4 | revLookup[b64.charCodeAt(i2 + 2)] >> 2;\n        arr[curByte++] = tmp >> 8 & 255;\n        arr[curByte++] = tmp & 255;\n      }\n      return arr;\n    }\n    function tripletToBase64(num) {\n      return lookup[num >> 18 & 63] + lookup[num >> 12 & 63] + lookup[num >> 6 & 63] + lookup[num & 63];\n    }\n    function encodeChunk(uint8, start, end) {\n      var tmp;\n      var output = [];\n      for (var i2 = start; i2 < end; i2 += 3) {\n        tmp = (uint8[i2] << 16 & 16711680) + (uint8[i2 + 1] << 8 & 65280) + (uint8[i2 + 2] & 255);\n        output.push(tripletToBase64(tmp));\n      }\n      return output.join(\"\");\n    }\n    function fromByteArray(uint8) {\n      var tmp;\n      var len2 = uint8.length;\n      var extraBytes = len2 % 3;\n      var parts = [];\n      var maxChunkLength = 16383;\n      for (var i2 = 0, len22 = len2 - extraBytes; i2 < len22; i2 += maxChunkLength) {\n        parts.push(encodeChunk(uint8, i2, i2 + maxChunkLength > len22 ? len22 : i2 + maxChunkLength));\n      }\n      if (extraBytes === 1) {\n        tmp = uint8[len2 - 1];\n        parts.push(\n          lookup[tmp >> 2] + lookup[tmp << 4 & 63] + \"==\"\n        );\n      } else if (extraBytes === 2) {\n        tmp = (uint8[len2 - 2] << 8) + uint8[len2 - 1];\n        parts.push(\n          lookup[tmp >> 10] + lookup[tmp >> 4 & 63] + lookup[tmp << 2 & 63] + \"=\"\n        );\n      }\n      return parts.join(\"\");\n    }\n  }\n});\n\n// node_modules/ieee754/index.js\nvar require_ieee754 = browser_commonJS({\n  \"node_modules/ieee754/index.js\"(exports) {\n    \"use strict\";\n    var import_buffer65 = browser_toESM(require_buffer());\n    exports.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      i += d;\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    exports.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      value = Math.abs(value);\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        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      for (; mLen >= 8; buffer[offset + i] = m & 255, i += d, m /= 256, mLen -= 8) {\n      }\n      e = e << mLen | m;\n      eLen += mLen;\n      for (; eLen > 0; buffer[offset + i] = e & 255, i += d, e /= 256, eLen -= 8) {\n      }\n      buffer[offset + i - d] |= s * 128;\n    };\n  }\n});\n\n// node_modules/buffer/index.js\nvar require_buffer = browser_commonJS({\n  \"node_modules/buffer/index.js\"(exports) {\n    \"use strict\";\n    var base64 = require_base64_js();\n    var ieee754 = require_ieee754();\n    var customInspectSymbol = typeof Symbol === \"function\" && typeof Symbol[\"for\"] === \"function\" ? Symbol[\"for\"](\"nodejs.util.inspect.custom\") : null;\n    exports.Buffer = Buffer3;\n    exports.SlowBuffer = SlowBuffer;\n    exports.INSPECT_MAX_BYTES = 50;\n    var K_MAX_LENGTH = 2147483647;\n    exports.kMaxLength = K_MAX_LENGTH;\n    Buffer3.TYPED_ARRAY_SUPPORT = typedArraySupport();\n    if (!Buffer3.TYPED_ARRAY_SUPPORT && typeof console !== \"undefined\" && typeof console.error === \"function\") {\n      console.error(\n        \"This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.\"\n      );\n    }\n    function typedArraySupport() {\n      try {\n        const arr = new Uint8Array(1);\n        const proto = { foo: function() {\n          return 42;\n        } };\n        Object.setPrototypeOf(proto, Uint8Array.prototype);\n        Object.setPrototypeOf(arr, proto);\n        return arr.foo() === 42;\n      } catch (e) {\n        return false;\n      }\n    }\n    Object.defineProperty(Buffer3.prototype, \"parent\", {\n      enumerable: true,\n      get: function() {\n        if (!Buffer3.isBuffer(this)) return void 0;\n        return this.buffer;\n      }\n    });\n    Object.defineProperty(Buffer3.prototype, \"offset\", {\n      enumerable: true,\n      get: function() {\n        if (!Buffer3.isBuffer(this)) return void 0;\n        return this.byteOffset;\n      }\n    });\n    function createBuffer(length) {\n      if (length > K_MAX_LENGTH) {\n        throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"');\n      }\n      const buf = new Uint8Array(length);\n      Object.setPrototypeOf(buf, Buffer3.prototype);\n      return buf;\n    }\n    function Buffer3(arg, encodingOrOffset, length) {\n      if (typeof arg === \"number\") {\n        if (typeof encodingOrOffset === \"string\") {\n          throw new TypeError(\n            'The \"string\" argument must be of type string. Received type number'\n          );\n        }\n        return allocUnsafe(arg);\n      }\n      return from(arg, encodingOrOffset, length);\n    }\n    Buffer3.poolSize = 8192;\n    function from(value, encodingOrOffset, length) {\n      if (typeof value === \"string\") {\n        return fromString(value, encodingOrOffset);\n      }\n      if (ArrayBuffer.isView(value)) {\n        return fromArrayView(value);\n      }\n      if (value == null) {\n        throw new TypeError(\n          \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n        );\n      }\n      if (isInstance(value, ArrayBuffer) || value && isInstance(value.buffer, ArrayBuffer)) {\n        return fromArrayBuffer(value, encodingOrOffset, length);\n      }\n      if (typeof SharedArrayBuffer !== \"undefined\" && (isInstance(value, SharedArrayBuffer) || value && isInstance(value.buffer, SharedArrayBuffer))) {\n        return fromArrayBuffer(value, encodingOrOffset, length);\n      }\n      if (typeof value === \"number\") {\n        throw new TypeError(\n          'The \"value\" argument must not be of type number. Received type number'\n        );\n      }\n      const valueOf = value.valueOf && value.valueOf();\n      if (valueOf != null && valueOf !== value) {\n        return Buffer3.from(valueOf, encodingOrOffset, length);\n      }\n      const b = fromObject(value);\n      if (b) return b;\n      if (typeof Symbol !== \"undefined\" && Symbol.toPrimitive != null && typeof value[Symbol.toPrimitive] === \"function\") {\n        return Buffer3.from(value[Symbol.toPrimitive](\"string\"), encodingOrOffset, length);\n      }\n      throw new TypeError(\n        \"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \" + typeof value\n      );\n    }\n    Buffer3.from = function(value, encodingOrOffset, length) {\n      return from(value, encodingOrOffset, length);\n    };\n    Object.setPrototypeOf(Buffer3.prototype, Uint8Array.prototype);\n    Object.setPrototypeOf(Buffer3, Uint8Array);\n    function assertSize(size) {\n      if (typeof size !== \"number\") {\n        throw new TypeError('\"size\" argument must be of type number');\n      } else if (size < 0) {\n        throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"');\n      }\n    }\n    function alloc(size, fill, encoding) {\n      assertSize(size);\n      if (size <= 0) {\n        return createBuffer(size);\n      }\n      if (fill !== void 0) {\n        return typeof encoding === \"string\" ? createBuffer(size).fill(fill, encoding) : createBuffer(size).fill(fill);\n      }\n      return createBuffer(size);\n    }\n    Buffer3.alloc = function(size, fill, encoding) {\n      return alloc(size, fill, encoding);\n    };\n    function allocUnsafe(size) {\n      assertSize(size);\n      return createBuffer(size < 0 ? 0 : checked(size) | 0);\n    }\n    Buffer3.allocUnsafe = function(size) {\n      return allocUnsafe(size);\n    };\n    Buffer3.allocUnsafeSlow = function(size) {\n      return allocUnsafe(size);\n    };\n    function fromString(string, encoding) {\n      if (typeof encoding !== \"string\" || encoding === \"\") {\n        encoding = \"utf8\";\n      }\n      if (!Buffer3.isEncoding(encoding)) {\n        throw new TypeError(\"Unknown encoding: \" + encoding);\n      }\n      const length = byteLength(string, encoding) | 0;\n      let buf = createBuffer(length);\n      const actual = buf.write(string, encoding);\n      if (actual !== length) {\n        buf = buf.slice(0, actual);\n      }\n      return buf;\n    }\n    function fromArrayLike(array) {\n      const length = array.length < 0 ? 0 : checked(array.length) | 0;\n      const buf = createBuffer(length);\n      for (let i = 0; i < length; i += 1) {\n        buf[i] = array[i] & 255;\n      }\n      return buf;\n    }\n    function fromArrayView(arrayView) {\n      if (isInstance(arrayView, Uint8Array)) {\n        const copy = new Uint8Array(arrayView);\n        return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength);\n      }\n      return fromArrayLike(arrayView);\n    }\n    function fromArrayBuffer(array, byteOffset, length) {\n      if (byteOffset < 0 || array.byteLength < byteOffset) {\n        throw new RangeError('\"offset\" is outside of buffer bounds');\n      }\n      if (array.byteLength < byteOffset + (length || 0)) {\n        throw new RangeError('\"length\" is outside of buffer bounds');\n      }\n      let buf;\n      if (byteOffset === void 0 && length === void 0) {\n        buf = new Uint8Array(array);\n      } else if (length === void 0) {\n        buf = new Uint8Array(array, byteOffset);\n      } else {\n        buf = new Uint8Array(array, byteOffset, length);\n      }\n      Object.setPrototypeOf(buf, Buffer3.prototype);\n      return buf;\n    }\n    function fromObject(obj) {\n      if (Buffer3.isBuffer(obj)) {\n        const len = checked(obj.length) | 0;\n        const buf = createBuffer(len);\n        if (buf.length === 0) {\n          return buf;\n        }\n        obj.copy(buf, 0, 0, len);\n        return buf;\n      }\n      if (obj.length !== void 0) {\n        if (typeof obj.length !== \"number\" || numberIsNaN(obj.length)) {\n          return createBuffer(0);\n        }\n        return fromArrayLike(obj);\n      }\n      if (obj.type === \"Buffer\" && Array.isArray(obj.data)) {\n        return fromArrayLike(obj.data);\n      }\n    }\n    function checked(length) {\n      if (length >= K_MAX_LENGTH) {\n        throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\" + K_MAX_LENGTH.toString(16) + \" bytes\");\n      }\n      return length | 0;\n    }\n    function SlowBuffer(length) {\n      if (+length != length) {\n        length = 0;\n      }\n      return Buffer3.alloc(+length);\n    }\n    Buffer3.isBuffer = function isBuffer(b) {\n      return b != null && b._isBuffer === true && b !== Buffer3.prototype;\n    };\n    Buffer3.compare = function compare(a, b) {\n      if (isInstance(a, Uint8Array)) a = Buffer3.from(a, a.offset, a.byteLength);\n      if (isInstance(b, Uint8Array)) b = Buffer3.from(b, b.offset, b.byteLength);\n      if (!Buffer3.isBuffer(a) || !Buffer3.isBuffer(b)) {\n        throw new TypeError(\n          'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n        );\n      }\n      if (a === b) return 0;\n      let x = a.length;\n      let y = b.length;\n      for (let 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      if (x < y) return -1;\n      if (y < x) return 1;\n      return 0;\n    };\n    Buffer3.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    Buffer3.concat = function concat(list, length) {\n      if (!Array.isArray(list)) {\n        throw new TypeError('\"list\" argument must be an Array of Buffers');\n      }\n      if (list.length === 0) {\n        return Buffer3.alloc(0);\n      }\n      let i;\n      if (length === void 0) {\n        length = 0;\n        for (i = 0; i < list.length; ++i) {\n          length += list[i].length;\n        }\n      }\n      const buffer = Buffer3.allocUnsafe(length);\n      let pos = 0;\n      for (i = 0; i < list.length; ++i) {\n        let buf = list[i];\n        if (isInstance(buf, Uint8Array)) {\n          if (pos + buf.length > buffer.length) {\n            if (!Buffer3.isBuffer(buf)) buf = Buffer3.from(buf);\n            buf.copy(buffer, pos);\n          } else {\n            Uint8Array.prototype.set.call(\n              buffer,\n              buf,\n              pos\n            );\n          }\n        } else if (!Buffer3.isBuffer(buf)) {\n          throw new TypeError('\"list\" argument must be an Array of Buffers');\n        } else {\n          buf.copy(buffer, pos);\n        }\n        pos += buf.length;\n      }\n      return buffer;\n    };\n    function byteLength(string, encoding) {\n      if (Buffer3.isBuffer(string)) {\n        return string.length;\n      }\n      if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n        return string.byteLength;\n      }\n      if (typeof string !== \"string\") {\n        throw new TypeError(\n          'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type ' + typeof string\n        );\n      }\n      const len = string.length;\n      const mustMatch = arguments.length > 2 && arguments[2] === true;\n      if (!mustMatch && len === 0) return 0;\n      let 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            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) {\n              return mustMatch ? -1 : utf8ToBytes(string).length;\n            }\n            encoding = (\"\" + encoding).toLowerCase();\n            loweredCase = true;\n        }\n      }\n    }\n    Buffer3.byteLength = byteLength;\n    function slowToString(encoding, start, end) {\n      let loweredCase = false;\n      if (start === void 0 || start < 0) {\n        start = 0;\n      }\n      if (start > this.length) {\n        return \"\";\n      }\n      if (end === void 0 || end > this.length) {\n        end = this.length;\n      }\n      if (end <= 0) {\n        return \"\";\n      }\n      end >>>= 0;\n      start >>>= 0;\n      if (end <= start) {\n        return \"\";\n      }\n      if (!encoding) encoding = \"utf8\";\n      while (true) {\n        switch (encoding) {\n          case \"hex\":\n            return hexSlice(this, start, end);\n          case \"utf8\":\n          case \"utf-8\":\n            return utf8Slice(this, start, end);\n          case \"ascii\":\n            return asciiSlice(this, start, end);\n          case \"latin1\":\n          case \"binary\":\n            return latin1Slice(this, start, end);\n          case \"base64\":\n            return base64Slice(this, start, end);\n          case \"ucs2\":\n          case \"ucs-2\":\n          case \"utf16le\":\n          case \"utf-16le\":\n            return utf16leSlice(this, start, end);\n          default:\n            if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n            encoding = (encoding + \"\").toLowerCase();\n            loweredCase = true;\n        }\n      }\n    }\n    Buffer3.prototype._isBuffer = true;\n    function swap(b, n, m) {\n      const i = b[n];\n      b[n] = b[m];\n      b[m] = i;\n    }\n    Buffer3.prototype.swap16 = function swap16() {\n      const len = this.length;\n      if (len % 2 !== 0) {\n        throw new RangeError(\"Buffer size must be a multiple of 16-bits\");\n      }\n      for (let i = 0; i < len; i += 2) {\n        swap(this, i, i + 1);\n      }\n      return this;\n    };\n    Buffer3.prototype.swap32 = function swap32() {\n      const len = this.length;\n      if (len % 4 !== 0) {\n        throw new RangeError(\"Buffer size must be a multiple of 32-bits\");\n      }\n      for (let 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    Buffer3.prototype.swap64 = function swap64() {\n      const len = this.length;\n      if (len % 8 !== 0) {\n        throw new RangeError(\"Buffer size must be a multiple of 64-bits\");\n      }\n      for (let 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    Buffer3.prototype.toString = function toString() {\n      const length = this.length;\n      if (length === 0) return \"\";\n      if (arguments.length === 0) return utf8Slice(this, 0, length);\n      return slowToString.apply(this, arguments);\n    };\n    Buffer3.prototype.toLocaleString = Buffer3.prototype.toString;\n    Buffer3.prototype.equals = function equals(b) {\n      if (!Buffer3.isBuffer(b)) throw new TypeError(\"Argument must be a Buffer\");\n      if (this === b) return true;\n      return Buffer3.compare(this, b) === 0;\n    };\n    Buffer3.prototype.inspect = function inspect() {\n      let str = \"\";\n      const max = exports.INSPECT_MAX_BYTES;\n      str = this.toString(\"hex\", 0, max).replace(/(.{2})/g, \"$1 \").trim();\n      if (this.length > max) str += \" ... \";\n      return \"<Buffer \" + str + \">\";\n    };\n    if (customInspectSymbol) {\n      Buffer3.prototype[customInspectSymbol] = Buffer3.prototype.inspect;\n    }\n    Buffer3.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n      if (isInstance(target, Uint8Array)) {\n        target = Buffer3.from(target, target.offset, target.byteLength);\n      }\n      if (!Buffer3.isBuffer(target)) {\n        throw new TypeError(\n          'The \"target\" argument must be one of type Buffer or Uint8Array. Received type ' + typeof target\n        );\n      }\n      if (start === void 0) {\n        start = 0;\n      }\n      if (end === void 0) {\n        end = target ? target.length : 0;\n      }\n      if (thisStart === void 0) {\n        thisStart = 0;\n      }\n      if (thisEnd === void 0) {\n        thisEnd = this.length;\n      }\n      if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n        throw new RangeError(\"out of range index\");\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      start >>>= 0;\n      end >>>= 0;\n      thisStart >>>= 0;\n      thisEnd >>>= 0;\n      if (this === target) return 0;\n      let x = thisEnd - thisStart;\n      let y = end - start;\n      const len = Math.min(x, y);\n      const thisCopy = this.slice(thisStart, thisEnd);\n      const targetCopy = target.slice(start, end);\n      for (let i = 0; i < len; ++i) {\n        if (thisCopy[i] !== targetCopy[i]) {\n          x = thisCopy[i];\n          y = targetCopy[i];\n          break;\n        }\n      }\n      if (x < y) return -1;\n      if (y < x) return 1;\n      return 0;\n    };\n    function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n      if (buffer.length === 0) return -1;\n      if (typeof byteOffset === \"string\") {\n        encoding = byteOffset;\n        byteOffset = 0;\n      } else if (byteOffset > 2147483647) {\n        byteOffset = 2147483647;\n      } else if (byteOffset < -2147483648) {\n        byteOffset = -2147483648;\n      }\n      byteOffset = +byteOffset;\n      if (numberIsNaN(byteOffset)) {\n        byteOffset = dir ? 0 : buffer.length - 1;\n      }\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      if (typeof val === \"string\") {\n        val = Buffer3.from(val, encoding);\n      }\n      if (Buffer3.isBuffer(val)) {\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 & 255;\n        if (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      throw new TypeError(\"val must be string, number or Buffer\");\n    }\n    function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n      let indexSize = 1;\n      let arrLength = arr.length;\n      let valLength = val.length;\n      if (encoding !== void 0) {\n        encoding = String(encoding).toLowerCase();\n        if (encoding === \"ucs2\" || encoding === \"ucs-2\" || 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      function read(buf, i2) {\n        if (indexSize === 1) {\n          return buf[i2];\n        } else {\n          return buf.readUInt16BE(i2 * indexSize);\n        }\n      }\n      let i;\n      if (dir) {\n        let 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          let found = true;\n          for (let 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      return -1;\n    }\n    Buffer3.prototype.includes = function includes(val, byteOffset, encoding) {\n      return this.indexOf(val, byteOffset, encoding) !== -1;\n    };\n    Buffer3.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n      return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n    };\n    Buffer3.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n      return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n    };\n    function hexWrite(buf, string, offset, length) {\n      offset = Number(offset) || 0;\n      const 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      const strLen = string.length;\n      if (length > strLen / 2) {\n        length = strLen / 2;\n      }\n      let i;\n      for (i = 0; i < length; ++i) {\n        const parsed = parseInt(string.substr(i * 2, 2), 16);\n        if (numberIsNaN(parsed)) return i;\n        buf[offset + i] = parsed;\n      }\n      return i;\n    }\n    function utf8Write(buf, string, offset, length) {\n      return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n    }\n    function asciiWrite(buf, string, offset, length) {\n      return blitBuffer(asciiToBytes(string), buf, offset, length);\n    }\n    function base64Write(buf, string, offset, length) {\n      return blitBuffer(base64ToBytes(string), buf, offset, length);\n    }\n    function ucs2Write(buf, string, offset, length) {\n      return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n    }\n    Buffer3.prototype.write = function write(string, offset, length, encoding) {\n      if (offset === void 0) {\n        encoding = \"utf8\";\n        length = this.length;\n        offset = 0;\n      } else if (length === void 0 && typeof offset === \"string\") {\n        encoding = offset;\n        length = this.length;\n        offset = 0;\n      } else if (isFinite(offset)) {\n        offset = offset >>> 0;\n        if (isFinite(length)) {\n          length = length >>> 0;\n          if (encoding === void 0) encoding = \"utf8\";\n        } else {\n          encoding = length;\n          length = void 0;\n        }\n      } else {\n        throw new Error(\n          \"Buffer.write(string, encoding, offset[, length]) is no longer supported\"\n        );\n      }\n      const remaining = this.length - offset;\n      if (length === void 0 || length > remaining) length = remaining;\n      if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n        throw new RangeError(\"Attempt to write outside buffer bounds\");\n      }\n      if (!encoding) encoding = \"utf8\";\n      let loweredCase = false;\n      for (; ; ) {\n        switch (encoding) {\n          case \"hex\":\n            return hexWrite(this, string, offset, length);\n          case \"utf8\":\n          case \"utf-8\":\n            return utf8Write(this, string, offset, length);\n          case \"ascii\":\n          case \"latin1\":\n          case \"binary\":\n            return asciiWrite(this, string, offset, length);\n          case \"base64\":\n            return base64Write(this, string, offset, length);\n          case \"ucs2\":\n          case \"ucs-2\":\n          case \"utf16le\":\n          case \"utf-16le\":\n            return ucs2Write(this, string, offset, length);\n          default:\n            if (loweredCase) throw new TypeError(\"Unknown encoding: \" + encoding);\n            encoding = (\"\" + encoding).toLowerCase();\n            loweredCase = true;\n        }\n      }\n    };\n    Buffer3.prototype.toJSON = function toJSON() {\n      return {\n        type: \"Buffer\",\n        data: Array.prototype.slice.call(this._arr || this, 0)\n      };\n    };\n    function 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    function utf8Slice(buf, start, end) {\n      end = Math.min(buf.length, end);\n      const res = [];\n      let i = start;\n      while (i < end) {\n        const firstByte = buf[i];\n        let codePoint = null;\n        let bytesPerSequence = firstByte > 239 ? 4 : firstByte > 223 ? 3 : firstByte > 191 ? 2 : 1;\n        if (i + bytesPerSequence <= end) {\n          let secondByte, thirdByte, fourthByte, tempCodePoint;\n          switch (bytesPerSequence) {\n            case 1:\n              if (firstByte < 128) {\n                codePoint = firstByte;\n              }\n              break;\n            case 2:\n              secondByte = buf[i + 1];\n              if ((secondByte & 192) === 128) {\n                tempCodePoint = (firstByte & 31) << 6 | secondByte & 63;\n                if (tempCodePoint > 127) {\n                  codePoint = tempCodePoint;\n                }\n              }\n              break;\n            case 3:\n              secondByte = buf[i + 1];\n              thirdByte = buf[i + 2];\n              if ((secondByte & 192) === 128 && (thirdByte & 192) === 128) {\n                tempCodePoint = (firstByte & 15) << 12 | (secondByte & 63) << 6 | thirdByte & 63;\n                if (tempCodePoint > 2047 && (tempCodePoint < 55296 || tempCodePoint > 57343)) {\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 & 192) === 128 && (thirdByte & 192) === 128 && (fourthByte & 192) === 128) {\n                tempCodePoint = (firstByte & 15) << 18 | (secondByte & 63) << 12 | (thirdByte & 63) << 6 | fourthByte & 63;\n                if (tempCodePoint > 65535 && tempCodePoint < 1114112) {\n                  codePoint = tempCodePoint;\n                }\n              }\n          }\n        }\n        if (codePoint === null) {\n          codePoint = 65533;\n          bytesPerSequence = 1;\n        } else if (codePoint > 65535) {\n          codePoint -= 65536;\n          res.push(codePoint >>> 10 & 1023 | 55296);\n          codePoint = 56320 | codePoint & 1023;\n        }\n        res.push(codePoint);\n        i += bytesPerSequence;\n      }\n      return decodeCodePointsArray(res);\n    }\n    var MAX_ARGUMENTS_LENGTH = 4096;\n    function decodeCodePointsArray(codePoints) {\n      const len = codePoints.length;\n      if (len <= MAX_ARGUMENTS_LENGTH) {\n        return String.fromCharCode.apply(String, codePoints);\n      }\n      let res = \"\";\n      let 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    function asciiSlice(buf, start, end) {\n      let ret = \"\";\n      end = Math.min(buf.length, end);\n      for (let i = start; i < end; ++i) {\n        ret += String.fromCharCode(buf[i] & 127);\n      }\n      return ret;\n    }\n    function latin1Slice(buf, start, end) {\n      let ret = \"\";\n      end = Math.min(buf.length, end);\n      for (let i = start; i < end; ++i) {\n        ret += String.fromCharCode(buf[i]);\n      }\n      return ret;\n    }\n    function hexSlice(buf, start, end) {\n      const len = buf.length;\n      if (!start || start < 0) start = 0;\n      if (!end || end < 0 || end > len) end = len;\n      let out = \"\";\n      for (let i = start; i < end; ++i) {\n        out += hexSliceLookupTable[buf[i]];\n      }\n      return out;\n    }\n    function utf16leSlice(buf, start, end) {\n      const bytes = buf.slice(start, end);\n      let res = \"\";\n      for (let i = 0; i < bytes.length - 1; i += 2) {\n        res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n      }\n      return res;\n    }\n    Buffer3.prototype.slice = function slice(start, end) {\n      const len = this.length;\n      start = ~~start;\n      end = end === void 0 ? len : ~~end;\n      if (start < 0) {\n        start += len;\n        if (start < 0) start = 0;\n      } else if (start > len) {\n        start = len;\n      }\n      if (end < 0) {\n        end += len;\n        if (end < 0) end = 0;\n      } else if (end > len) {\n        end = len;\n      }\n      if (end < start) end = start;\n      const newBuf = this.subarray(start, end);\n      Object.setPrototypeOf(newBuf, Buffer3.prototype);\n      return newBuf;\n    };\n    function 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    Buffer3.prototype.readUintLE = Buffer3.prototype.readUIntLE = function readUIntLE(offset, byteLength2, noAssert) {\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) checkOffset(offset, byteLength2, this.length);\n      let val = this[offset];\n      let mul = 1;\n      let i = 0;\n      while (++i < byteLength2 && (mul *= 256)) {\n        val += this[offset + i] * mul;\n      }\n      return val;\n    };\n    Buffer3.prototype.readUintBE = Buffer3.prototype.readUIntBE = function readUIntBE(offset, byteLength2, noAssert) {\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) {\n        checkOffset(offset, byteLength2, this.length);\n      }\n      let val = this[offset + --byteLength2];\n      let mul = 1;\n      while (byteLength2 > 0 && (mul *= 256)) {\n        val += this[offset + --byteLength2] * mul;\n      }\n      return val;\n    };\n    Buffer3.prototype.readUint8 = Buffer3.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 1, this.length);\n      return this[offset];\n    };\n    Buffer3.prototype.readUint16LE = Buffer3.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 2, this.length);\n      return this[offset] | this[offset + 1] << 8;\n    };\n    Buffer3.prototype.readUint16BE = Buffer3.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 2, this.length);\n      return this[offset] << 8 | this[offset + 1];\n    };\n    Buffer3.prototype.readUint32LE = Buffer3.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 16777216;\n    };\n    Buffer3.prototype.readUint32BE = Buffer3.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return this[offset] * 16777216 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n    };\n    Buffer3.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE(offset) {\n      offset = offset >>> 0;\n      validateNumber(offset, \"offset\");\n      const first = this[offset];\n      const last = this[offset + 7];\n      if (first === void 0 || last === void 0) {\n        boundsError(offset, this.length - 8);\n      }\n      const lo = first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24;\n      const hi = this[++offset] + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + last * 2 ** 24;\n      return BigInt(lo) + (BigInt(hi) << BigInt(32));\n    });\n    Buffer3.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE(offset) {\n      offset = offset >>> 0;\n      validateNumber(offset, \"offset\");\n      const first = this[offset];\n      const last = this[offset + 7];\n      if (first === void 0 || last === void 0) {\n        boundsError(offset, this.length - 8);\n      }\n      const hi = first * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n      const lo = this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last;\n      return (BigInt(hi) << BigInt(32)) + BigInt(lo);\n    });\n    Buffer3.prototype.readIntLE = function readIntLE(offset, byteLength2, noAssert) {\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) checkOffset(offset, byteLength2, this.length);\n      let val = this[offset];\n      let mul = 1;\n      let i = 0;\n      while (++i < byteLength2 && (mul *= 256)) {\n        val += this[offset + i] * mul;\n      }\n      mul *= 128;\n      if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n      return val;\n    };\n    Buffer3.prototype.readIntBE = function readIntBE(offset, byteLength2, noAssert) {\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) checkOffset(offset, byteLength2, this.length);\n      let i = byteLength2;\n      let mul = 1;\n      let val = this[offset + --i];\n      while (i > 0 && (mul *= 256)) {\n        val += this[offset + --i] * mul;\n      }\n      mul *= 128;\n      if (val >= mul) val -= Math.pow(2, 8 * byteLength2);\n      return val;\n    };\n    Buffer3.prototype.readInt8 = function readInt8(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 1, this.length);\n      if (!(this[offset] & 128)) return this[offset];\n      return (255 - this[offset] + 1) * -1;\n    };\n    Buffer3.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 2, this.length);\n      const val = this[offset] | this[offset + 1] << 8;\n      return val & 32768 ? val | 4294901760 : val;\n    };\n    Buffer3.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 2, this.length);\n      const val = this[offset + 1] | this[offset] << 8;\n      return val & 32768 ? val | 4294901760 : val;\n    };\n    Buffer3.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n    };\n    Buffer3.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n    };\n    Buffer3.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE(offset) {\n      offset = offset >>> 0;\n      validateNumber(offset, \"offset\");\n      const first = this[offset];\n      const last = this[offset + 7];\n      if (first === void 0 || last === void 0) {\n        boundsError(offset, this.length - 8);\n      }\n      const val = this[offset + 4] + this[offset + 5] * 2 ** 8 + this[offset + 6] * 2 ** 16 + (last << 24);\n      return (BigInt(val) << BigInt(32)) + BigInt(first + this[++offset] * 2 ** 8 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 24);\n    });\n    Buffer3.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE(offset) {\n      offset = offset >>> 0;\n      validateNumber(offset, \"offset\");\n      const first = this[offset];\n      const last = this[offset + 7];\n      if (first === void 0 || last === void 0) {\n        boundsError(offset, this.length - 8);\n      }\n      const val = (first << 24) + // Overflow\n      this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + this[++offset];\n      return (BigInt(val) << BigInt(32)) + BigInt(this[++offset] * 2 ** 24 + this[++offset] * 2 ** 16 + this[++offset] * 2 ** 8 + last);\n    });\n    Buffer3.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return ieee754.read(this, offset, true, 23, 4);\n    };\n    Buffer3.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 4, this.length);\n      return ieee754.read(this, offset, false, 23, 4);\n    };\n    Buffer3.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 8, this.length);\n      return ieee754.read(this, offset, true, 52, 8);\n    };\n    Buffer3.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n      offset = offset >>> 0;\n      if (!noAssert) checkOffset(offset, 8, this.length);\n      return ieee754.read(this, offset, false, 52, 8);\n    };\n    function checkInt(buf, value, offset, ext, max, min) {\n      if (!Buffer3.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    Buffer3.prototype.writeUintLE = Buffer3.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength2, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) {\n        const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n        checkInt(this, value, offset, byteLength2, maxBytes, 0);\n      }\n      let mul = 1;\n      let i = 0;\n      this[offset] = value & 255;\n      while (++i < byteLength2 && (mul *= 256)) {\n        this[offset + i] = value / mul & 255;\n      }\n      return offset + byteLength2;\n    };\n    Buffer3.prototype.writeUintBE = Buffer3.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength2, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      byteLength2 = byteLength2 >>> 0;\n      if (!noAssert) {\n        const maxBytes = Math.pow(2, 8 * byteLength2) - 1;\n        checkInt(this, value, offset, byteLength2, maxBytes, 0);\n      }\n      let i = byteLength2 - 1;\n      let mul = 1;\n      this[offset + i] = value & 255;\n      while (--i >= 0 && (mul *= 256)) {\n        this[offset + i] = value / mul & 255;\n      }\n      return offset + byteLength2;\n    };\n    Buffer3.prototype.writeUint8 = Buffer3.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 1, 255, 0);\n      this[offset] = value & 255;\n      return offset + 1;\n    };\n    Buffer3.prototype.writeUint16LE = Buffer3.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n      this[offset] = value & 255;\n      this[offset + 1] = value >>> 8;\n      return offset + 2;\n    };\n    Buffer3.prototype.writeUint16BE = Buffer3.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 2, 65535, 0);\n      this[offset] = value >>> 8;\n      this[offset + 1] = value & 255;\n      return offset + 2;\n    };\n    Buffer3.prototype.writeUint32LE = Buffer3.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n      this[offset + 3] = value >>> 24;\n      this[offset + 2] = value >>> 16;\n      this[offset + 1] = value >>> 8;\n      this[offset] = value & 255;\n      return offset + 4;\n    };\n    Buffer3.prototype.writeUint32BE = Buffer3.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 4, 4294967295, 0);\n      this[offset] = value >>> 24;\n      this[offset + 1] = value >>> 16;\n      this[offset + 2] = value >>> 8;\n      this[offset + 3] = value & 255;\n      return offset + 4;\n    };\n    function wrtBigUInt64LE(buf, value, offset, min, max) {\n      checkIntBI(value, min, max, buf, offset, 7);\n      let lo = Number(value & BigInt(4294967295));\n      buf[offset++] = lo;\n      lo = lo >> 8;\n      buf[offset++] = lo;\n      lo = lo >> 8;\n      buf[offset++] = lo;\n      lo = lo >> 8;\n      buf[offset++] = lo;\n      let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n      buf[offset++] = hi;\n      hi = hi >> 8;\n      buf[offset++] = hi;\n      hi = hi >> 8;\n      buf[offset++] = hi;\n      hi = hi >> 8;\n      buf[offset++] = hi;\n      return offset;\n    }\n    function wrtBigUInt64BE(buf, value, offset, min, max) {\n      checkIntBI(value, min, max, buf, offset, 7);\n      let lo = Number(value & BigInt(4294967295));\n      buf[offset + 7] = lo;\n      lo = lo >> 8;\n      buf[offset + 6] = lo;\n      lo = lo >> 8;\n      buf[offset + 5] = lo;\n      lo = lo >> 8;\n      buf[offset + 4] = lo;\n      let hi = Number(value >> BigInt(32) & BigInt(4294967295));\n      buf[offset + 3] = hi;\n      hi = hi >> 8;\n      buf[offset + 2] = hi;\n      hi = hi >> 8;\n      buf[offset + 1] = hi;\n      hi = hi >> 8;\n      buf[offset] = hi;\n      return offset + 8;\n    }\n    Buffer3.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE(value, offset = 0) {\n      return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n    });\n    Buffer3.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE(value, offset = 0) {\n      return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt(\"0xffffffffffffffff\"));\n    });\n    Buffer3.prototype.writeIntLE = function writeIntLE(value, offset, byteLength2, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) {\n        const limit = Math.pow(2, 8 * byteLength2 - 1);\n        checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n      }\n      let i = 0;\n      let mul = 1;\n      let sub = 0;\n      this[offset] = value & 255;\n      while (++i < byteLength2 && (mul *= 256)) {\n        if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n          sub = 1;\n        }\n        this[offset + i] = (value / mul >> 0) - sub & 255;\n      }\n      return offset + byteLength2;\n    };\n    Buffer3.prototype.writeIntBE = function writeIntBE(value, offset, byteLength2, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) {\n        const limit = Math.pow(2, 8 * byteLength2 - 1);\n        checkInt(this, value, offset, byteLength2, limit - 1, -limit);\n      }\n      let i = byteLength2 - 1;\n      let mul = 1;\n      let sub = 0;\n      this[offset + i] = value & 255;\n      while (--i >= 0 && (mul *= 256)) {\n        if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n          sub = 1;\n        }\n        this[offset + i] = (value / mul >> 0) - sub & 255;\n      }\n      return offset + byteLength2;\n    };\n    Buffer3.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 1, 127, -128);\n      if (value < 0) value = 255 + value + 1;\n      this[offset] = value & 255;\n      return offset + 1;\n    };\n    Buffer3.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n      this[offset] = value & 255;\n      this[offset + 1] = value >>> 8;\n      return offset + 2;\n    };\n    Buffer3.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 2, 32767, -32768);\n      this[offset] = value >>> 8;\n      this[offset + 1] = value & 255;\n      return offset + 2;\n    };\n    Buffer3.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n      this[offset] = value & 255;\n      this[offset + 1] = value >>> 8;\n      this[offset + 2] = value >>> 16;\n      this[offset + 3] = value >>> 24;\n      return offset + 4;\n    };\n    Buffer3.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) checkInt(this, value, offset, 4, 2147483647, -2147483648);\n      if (value < 0) value = 4294967295 + value + 1;\n      this[offset] = value >>> 24;\n      this[offset + 1] = value >>> 16;\n      this[offset + 2] = value >>> 8;\n      this[offset + 3] = value & 255;\n      return offset + 4;\n    };\n    Buffer3.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE(value, offset = 0) {\n      return wrtBigUInt64LE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n    });\n    Buffer3.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE(value, offset = 0) {\n      return wrtBigUInt64BE(this, value, offset, -BigInt(\"0x8000000000000000\"), BigInt(\"0x7fffffffffffffff\"));\n    });\n    function 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    function writeFloat(buf, value, offset, littleEndian, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) {\n        checkIEEE754(buf, value, offset, 4, 34028234663852886e22, -34028234663852886e22);\n      }\n      ieee754.write(buf, value, offset, littleEndian, 23, 4);\n      return offset + 4;\n    }\n    Buffer3.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n      return writeFloat(this, value, offset, true, noAssert);\n    };\n    Buffer3.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n      return writeFloat(this, value, offset, false, noAssert);\n    };\n    function writeDouble(buf, value, offset, littleEndian, noAssert) {\n      value = +value;\n      offset = offset >>> 0;\n      if (!noAssert) {\n        checkIEEE754(buf, value, offset, 8, 17976931348623157e292, -17976931348623157e292);\n      }\n      ieee754.write(buf, value, offset, littleEndian, 52, 8);\n      return offset + 8;\n    }\n    Buffer3.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n      return writeDouble(this, value, offset, true, noAssert);\n    };\n    Buffer3.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n      return writeDouble(this, value, offset, false, noAssert);\n    };\n    Buffer3.prototype.copy = function copy(target, targetStart, start, end) {\n      if (!Buffer3.isBuffer(target)) throw new TypeError(\"argument should be a Buffer\");\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      if (end === start) return 0;\n      if (target.length === 0 || this.length === 0) return 0;\n      if (targetStart < 0) {\n        throw new RangeError(\"targetStart out of bounds\");\n      }\n      if (start < 0 || start >= this.length) throw new RangeError(\"Index out of range\");\n      if (end < 0) throw new RangeError(\"sourceEnd out of bounds\");\n      if (end > this.length) end = this.length;\n      if (target.length - targetStart < end - start) {\n        end = target.length - targetStart + start;\n      }\n      const len = end - start;\n      if (this === target && typeof Uint8Array.prototype.copyWithin === \"function\") {\n        this.copyWithin(targetStart, start, end);\n      } else {\n        Uint8Array.prototype.set.call(\n          target,\n          this.subarray(start, end),\n          targetStart\n        );\n      }\n      return len;\n    };\n    Buffer3.prototype.fill = function fill(val, start, end, encoding) {\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 (encoding !== void 0 && typeof encoding !== \"string\") {\n          throw new TypeError(\"encoding must be a string\");\n        }\n        if (typeof encoding === \"string\" && !Buffer3.isEncoding(encoding)) {\n          throw new TypeError(\"Unknown encoding: \" + encoding);\n        }\n        if (val.length === 1) {\n          const code = val.charCodeAt(0);\n          if (encoding === \"utf8\" && code < 128 || encoding === \"latin1\") {\n            val = code;\n          }\n        }\n      } else if (typeof val === \"number\") {\n        val = val & 255;\n      } else if (typeof val === \"boolean\") {\n        val = Number(val);\n      }\n      if (start < 0 || this.length < start || this.length < end) {\n        throw new RangeError(\"Out of range index\");\n      }\n      if (end <= start) {\n        return this;\n      }\n      start = start >>> 0;\n      end = end === void 0 ? this.length : end >>> 0;\n      if (!val) val = 0;\n      let i;\n      if (typeof val === \"number\") {\n        for (i = start; i < end; ++i) {\n          this[i] = val;\n        }\n      } else {\n        const bytes = Buffer3.isBuffer(val) ? val : Buffer3.from(val, encoding);\n        const len = bytes.length;\n        if (len === 0) {\n          throw new TypeError('The value \"' + val + '\" is invalid for argument \"value\"');\n        }\n        for (i = 0; i < end - start; ++i) {\n          this[i + start] = bytes[i % len];\n        }\n      }\n      return this;\n    };\n    var errors = {};\n    function E(sym, getMessage, Base) {\n      errors[sym] = class NodeError extends Base {\n        constructor() {\n          super();\n          Object.defineProperty(this, \"message\", {\n            value: getMessage.apply(this, arguments),\n            writable: true,\n            configurable: true\n          });\n          this.name = `${this.name} [${sym}]`;\n          this.stack;\n          delete this.name;\n        }\n        get code() {\n          return sym;\n        }\n        set code(value) {\n          Object.defineProperty(this, \"code\", {\n            configurable: true,\n            enumerable: true,\n            value,\n            writable: true\n          });\n        }\n        toString() {\n          return `${this.name} [${sym}]: ${this.message}`;\n        }\n      };\n    }\n    E(\n      \"ERR_BUFFER_OUT_OF_BOUNDS\",\n      function(name) {\n        if (name) {\n          return `${name} is outside of buffer bounds`;\n        }\n        return \"Attempt to access memory outside buffer bounds\";\n      },\n      RangeError\n    );\n    E(\n      \"ERR_INVALID_ARG_TYPE\",\n      function(name, actual) {\n        return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`;\n      },\n      TypeError\n    );\n    E(\n      \"ERR_OUT_OF_RANGE\",\n      function(str, range, input) {\n        let msg = `The value of \"${str}\" is out of range.`;\n        let received = input;\n        if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n          received = addNumericalSeparator(String(input));\n        } else if (typeof input === \"bigint\") {\n          received = String(input);\n          if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n            received = addNumericalSeparator(received);\n          }\n          received += \"n\";\n        }\n        msg += ` It must be ${range}. Received ${received}`;\n        return msg;\n      },\n      RangeError\n    );\n    function addNumericalSeparator(val) {\n      let res = \"\";\n      let i = val.length;\n      const start = val[0] === \"-\" ? 1 : 0;\n      for (; i >= start + 4; i -= 3) {\n        res = `_${val.slice(i - 3, i)}${res}`;\n      }\n      return `${val.slice(0, i)}${res}`;\n    }\n    function checkBounds(buf, offset, byteLength2) {\n      validateNumber(offset, \"offset\");\n      if (buf[offset] === void 0 || buf[offset + byteLength2] === void 0) {\n        boundsError(offset, buf.length - (byteLength2 + 1));\n      }\n    }\n    function checkIntBI(value, min, max, buf, offset, byteLength2) {\n      if (value > max || value < min) {\n        const n = typeof min === \"bigint\" ? \"n\" : \"\";\n        let range;\n        if (byteLength2 > 3) {\n          if (min === 0 || min === BigInt(0)) {\n            range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`;\n          } else {\n            range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${(byteLength2 + 1) * 8 - 1}${n}`;\n          }\n        } else {\n          range = `>= ${min}${n} and <= ${max}${n}`;\n        }\n        throw new errors.ERR_OUT_OF_RANGE(\"value\", range, value);\n      }\n      checkBounds(buf, offset, byteLength2);\n    }\n    function validateNumber(value, name) {\n      if (typeof value !== \"number\") {\n        throw new errors.ERR_INVALID_ARG_TYPE(name, \"number\", value);\n      }\n    }\n    function boundsError(value, length, type) {\n      if (Math.floor(value) !== value) {\n        validateNumber(value, type);\n        throw new errors.ERR_OUT_OF_RANGE(type || \"offset\", \"an integer\", value);\n      }\n      if (length < 0) {\n        throw new errors.ERR_BUFFER_OUT_OF_BOUNDS();\n      }\n      throw new errors.ERR_OUT_OF_RANGE(\n        type || \"offset\",\n        `>= ${type ? 1 : 0} and <= ${length}`,\n        value\n      );\n    }\n    var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n    function base64clean(str) {\n      str = str.split(\"=\")[0];\n      str = str.trim().replace(INVALID_BASE64_RE, \"\");\n      if (str.length < 2) return \"\";\n      while (str.length % 4 !== 0) {\n        str = str + \"=\";\n      }\n      return str;\n    }\n    function utf8ToBytes(string, units) {\n      units = units || Infinity;\n      let codePoint;\n      const length = string.length;\n      let leadSurrogate = null;\n      const bytes = [];\n      for (let i = 0; i < length; ++i) {\n        codePoint = string.charCodeAt(i);\n        if (codePoint > 55295 && codePoint < 57344) {\n          if (!leadSurrogate) {\n            if (codePoint > 56319) {\n              if ((units -= 3) > -1) bytes.push(239, 191, 189);\n              continue;\n            } else if (i + 1 === length) {\n              if ((units -= 3) > -1) bytes.push(239, 191, 189);\n              continue;\n            }\n            leadSurrogate = codePoint;\n            continue;\n          }\n          if (codePoint < 56320) {\n            if ((units -= 3) > -1) bytes.push(239, 191, 189);\n            leadSurrogate = codePoint;\n            continue;\n          }\n          codePoint = (leadSurrogate - 55296 << 10 | codePoint - 56320) + 65536;\n        } else if (leadSurrogate) {\n          if ((units -= 3) > -1) bytes.push(239, 191, 189);\n        }\n        leadSurrogate = null;\n        if (codePoint < 128) {\n          if ((units -= 1) < 0) break;\n          bytes.push(codePoint);\n        } else if (codePoint < 2048) {\n          if ((units -= 2) < 0) break;\n          bytes.push(\n            codePoint >> 6 | 192,\n            codePoint & 63 | 128\n          );\n        } else if (codePoint < 65536) {\n          if ((units -= 3) < 0) break;\n          bytes.push(\n            codePoint >> 12 | 224,\n            codePoint >> 6 & 63 | 128,\n            codePoint & 63 | 128\n          );\n        } else if (codePoint < 1114112) {\n          if ((units -= 4) < 0) break;\n          bytes.push(\n            codePoint >> 18 | 240,\n            codePoint >> 12 & 63 | 128,\n            codePoint >> 6 & 63 | 128,\n            codePoint & 63 | 128\n          );\n        } else {\n          throw new Error(\"Invalid code point\");\n        }\n      }\n      return bytes;\n    }\n    function asciiToBytes(str) {\n      const byteArray = [];\n      for (let i = 0; i < str.length; ++i) {\n        byteArray.push(str.charCodeAt(i) & 255);\n      }\n      return byteArray;\n    }\n    function utf16leToBytes(str, units) {\n      let c, hi, lo;\n      const byteArray = [];\n      for (let i = 0; i < str.length; ++i) {\n        if ((units -= 2) < 0) break;\n        c = str.charCodeAt(i);\n        hi = c >> 8;\n        lo = c % 256;\n        byteArray.push(lo);\n        byteArray.push(hi);\n      }\n      return byteArray;\n    }\n    function base64ToBytes(str) {\n      return base64.toByteArray(base64clean(str));\n    }\n    function blitBuffer(src, dst, offset, length) {\n      let i;\n      for (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    function isInstance(obj, type) {\n      return obj instanceof type || obj != null && obj.constructor != null && obj.constructor.name != null && obj.constructor.name === type.name;\n    }\n    function numberIsNaN(obj) {\n      return obj !== obj;\n    }\n    var hexSliceLookupTable = function() {\n      const alphabet = \"0123456789abcdef\";\n      const table = new Array(256);\n      for (let i = 0; i < 16; ++i) {\n        const i16 = i * 16;\n        for (let j = 0; j < 16; ++j) {\n          table[i16 + j] = alphabet[i] + alphabet[j];\n        }\n      }\n      return table;\n    }();\n    function defineBigIntMethod(fn) {\n      return typeof BigInt === \"undefined\" ? BufferBigIntNotDefined : fn;\n    }\n    function BufferBigIntNotDefined() {\n      throw new Error(\"BigInt not supported\");\n    }\n  }\n});\n\n// src/index.ts\nvar import_buffer64 = browser_toESM(require_buffer());\n\n// src/cardano.ts\nvar import_buffer62 = browser_toESM(require_buffer());\n\n// node_modules/@connectrpc/connect/dist/esm/index.js\nvar import_buffer49 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/connect-error.js\nvar import_buffer3 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/code.js\nvar import_buffer = browser_toESM(require_buffer(), 1);\nvar Code;\n(function(Code2) {\n  Code2[Code2[\"Canceled\"] = 1] = \"Canceled\";\n  Code2[Code2[\"Unknown\"] = 2] = \"Unknown\";\n  Code2[Code2[\"InvalidArgument\"] = 3] = \"InvalidArgument\";\n  Code2[Code2[\"DeadlineExceeded\"] = 4] = \"DeadlineExceeded\";\n  Code2[Code2[\"NotFound\"] = 5] = \"NotFound\";\n  Code2[Code2[\"AlreadyExists\"] = 6] = \"AlreadyExists\";\n  Code2[Code2[\"PermissionDenied\"] = 7] = \"PermissionDenied\";\n  Code2[Code2[\"ResourceExhausted\"] = 8] = \"ResourceExhausted\";\n  Code2[Code2[\"FailedPrecondition\"] = 9] = \"FailedPrecondition\";\n  Code2[Code2[\"Aborted\"] = 10] = \"Aborted\";\n  Code2[Code2[\"OutOfRange\"] = 11] = \"OutOfRange\";\n  Code2[Code2[\"Unimplemented\"] = 12] = \"Unimplemented\";\n  Code2[Code2[\"Internal\"] = 13] = \"Internal\";\n  Code2[Code2[\"Unavailable\"] = 14] = \"Unavailable\";\n  Code2[Code2[\"DataLoss\"] = 15] = \"DataLoss\";\n  Code2[Code2[\"Unauthenticated\"] = 16] = \"Unauthenticated\";\n})(Code || (Code = {}));\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-connect/code-string.js\nvar import_buffer2 = browser_toESM(require_buffer(), 1);\nfunction codeToString(value) {\n  const name = Code[value];\n  if (typeof name != \"string\") {\n    return value.toString();\n  }\n  return name[0].toLowerCase() + name.substring(1).replace(/[A-Z]/g, (c) => \"_\" + c.toLowerCase());\n}\n\n// node_modules/@connectrpc/connect/dist/esm/connect-error.js\nvar ConnectError = class _ConnectError extends Error {\n  /**\n   * Create a new ConnectError.\n   * If no code is provided, code \"unknown\" is used.\n   * Outgoing details are only relevant for the server side - a service may\n   * raise an error with details, and it is up to the protocol implementation\n   * to encode and send the details along with error.\n   */\n  constructor(message, code = Code.Unknown, metadata, outgoingDetails, cause) {\n    super(createMessage(message, code));\n    this.name = \"ConnectError\";\n    Object.setPrototypeOf(this, new.target.prototype);\n    this.rawMessage = message;\n    this.code = code;\n    this.metadata = new Headers(metadata !== null && metadata !== void 0 ? metadata : {});\n    this.details = outgoingDetails !== null && outgoingDetails !== void 0 ? outgoingDetails : [];\n    this.cause = cause;\n  }\n  /**\n   * Convert any value - typically a caught error into a ConnectError,\n   * following these rules:\n   * - If the value is already a ConnectError, return it as is.\n   * - If the value is an AbortError from the fetch API, return the message\n   *   of the AbortError with code Canceled.\n   * - For other Errors, return the error message with code Unknown by default.\n   * - For other values, return the values String representation as a message,\n   *   with the code Unknown by default.\n   * The original value will be used for the \"cause\" property for the new\n   * ConnectError.\n   */\n  static from(reason, code = Code.Unknown) {\n    if (reason instanceof _ConnectError) {\n      return reason;\n    }\n    if (reason instanceof Error) {\n      if (reason.name == \"AbortError\") {\n        return new _ConnectError(reason.message, Code.Canceled);\n      }\n      return new _ConnectError(reason.message, code, void 0, void 0, reason);\n    }\n    return new _ConnectError(String(reason), code, void 0, void 0, reason);\n  }\n  static [Symbol.hasInstance](v) {\n    if (!(v instanceof Error)) {\n      return false;\n    }\n    if (Object.getPrototypeOf(v) === _ConnectError.prototype) {\n      return true;\n    }\n    return v.name === \"ConnectError\" && \"code\" in v && typeof v.code === \"number\" && \"metadata\" in v && \"details\" in v && Array.isArray(v.details) && \"rawMessage\" in v && typeof v.rawMessage == \"string\" && \"cause\" in v;\n  }\n  findDetails(typeOrRegistry) {\n    const registry = \"typeName\" in typeOrRegistry ? {\n      findMessage: (typeName) => typeName === typeOrRegistry.typeName ? typeOrRegistry : void 0\n    } : typeOrRegistry;\n    const details = [];\n    for (const data of this.details) {\n      if (\"getType\" in data) {\n        if (registry.findMessage(data.getType().typeName)) {\n          details.push(data);\n        }\n        continue;\n      }\n      const type = registry.findMessage(data.type);\n      if (type) {\n        try {\n          details.push(type.fromBinary(data.value));\n        } catch (_) {\n        }\n      }\n    }\n    return details;\n  }\n};\nfunction createMessage(message, code) {\n  return message.length ? `[${codeToString(code)}] ${message}` : `[${codeToString(code)}]`;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/http-headers.js\nvar import_buffer31 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/index.js\nvar import_buffer30 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/proto3.js\nvar import_buffer27 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js\nvar import_buffer22 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/enum.js\nvar import_buffer5 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/assert.js\nvar import_buffer4 = browser_toESM(require_buffer(), 1);\nfunction browser_assert(condition, msg) {\n  if (!condition) {\n    throw new Error(msg);\n  }\n}\nvar browser_FLOAT32_MAX = 34028234663852886e22;\nvar browser_FLOAT32_MIN = -34028234663852886e22;\nvar browser_UINT32_MAX = 4294967295;\nvar browser_INT32_MAX = 2147483647;\nvar browser_INT32_MIN = -2147483648;\nfunction browser_assertInt32(arg) {\n  if (typeof arg !== \"number\")\n    throw new Error(\"invalid int 32: \" + typeof arg);\n  if (!Number.isInteger(arg) || arg > browser_INT32_MAX || arg < browser_INT32_MIN)\n    throw new Error(\"invalid int 32: \" + arg);\n}\nfunction browser_assertUInt32(arg) {\n  if (typeof arg !== \"number\")\n    throw new Error(\"invalid uint 32: \" + typeof arg);\n  if (!Number.isInteger(arg) || arg > browser_UINT32_MAX || arg < 0)\n    throw new Error(\"invalid uint 32: \" + arg);\n}\nfunction browser_assertFloat32(arg) {\n  if (typeof arg !== \"number\")\n    throw new Error(\"invalid float 32: \" + typeof arg);\n  if (!Number.isFinite(arg))\n    return;\n  if (arg > browser_FLOAT32_MAX || arg < browser_FLOAT32_MIN)\n    throw new Error(\"invalid float 32: \" + arg);\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/enum.js\nvar browser_enumTypeSymbol = Symbol(\"@bufbuild/protobuf/enum-type\");\nfunction browser_getEnumType(enumObject) {\n  const t = enumObject[browser_enumTypeSymbol];\n  browser_assert(t, \"missing enum type on enum object\");\n  return t;\n}\nfunction browser_setEnumType(enumObject, typeName, values, opt) {\n  enumObject[browser_enumTypeSymbol] = browser_makeEnumType(typeName, values.map((v) => ({\n    no: v.no,\n    name: v.name,\n    localName: enumObject[v.no]\n  })), opt);\n}\nfunction browser_makeEnumType(typeName, values, _opt) {\n  const names = /* @__PURE__ */ Object.create(null);\n  const numbers = /* @__PURE__ */ Object.create(null);\n  const normalValues = [];\n  for (const value of values) {\n    const n = browser_normalizeEnumValue(value);\n    normalValues.push(n);\n    names[value.name] = n;\n    numbers[value.no] = n;\n  }\n  return {\n    typeName,\n    values: normalValues,\n    // We do not surface options at this time\n    // options: opt?.options ?? Object.create(null),\n    findName(name) {\n      return names[name];\n    },\n    findNumber(no) {\n      return numbers[no];\n    }\n  };\n}\nfunction browser_makeEnum(typeName, values, opt) {\n  const enumObject = {};\n  for (const value of values) {\n    const n = browser_normalizeEnumValue(value);\n    enumObject[n.localName] = n.no;\n    enumObject[n.no] = n.localName;\n  }\n  browser_setEnumType(enumObject, typeName, values, opt);\n  return enumObject;\n}\nfunction browser_normalizeEnumValue(value) {\n  if (\"localName\" in value) {\n    return value;\n  }\n  return Object.assign(Object.assign({}, value), { localName: value.name });\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js\nvar import_buffer7 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/message.js\nvar import_buffer6 = browser_toESM(require_buffer(), 1);\nvar browser_Message = class {\n  /**\n   * Compare with a message of the same type.\n   * Note that this function disregards extensions and unknown fields.\n   */\n  equals(other) {\n    return this.getType().runtime.util.equals(this.getType(), this, other);\n  }\n  /**\n   * Create a deep copy.\n   */\n  clone() {\n    return this.getType().runtime.util.clone(this);\n  }\n  /**\n   * Parse from binary data, merging fields.\n   *\n   * Repeated fields are appended. Map entries are added, overwriting\n   * existing keys.\n   *\n   * If a message field is already present, it will be merged with the\n   * new data.\n   */\n  fromBinary(bytes, options) {\n    const type = this.getType(), format = type.runtime.bin, opt = format.makeReadOptions(options);\n    format.readMessage(this, opt.readerFactory(bytes), bytes.byteLength, opt);\n    return this;\n  }\n  /**\n   * Parse a message from a JSON value.\n   */\n  fromJson(jsonValue, options) {\n    const type = this.getType(), format = type.runtime.json, opt = format.makeReadOptions(options);\n    format.readMessage(type, jsonValue, opt, this);\n    return this;\n  }\n  /**\n   * Parse a message from a JSON string.\n   */\n  fromJsonString(jsonString, options) {\n    let json;\n    try {\n      json = JSON.parse(jsonString);\n    } catch (e) {\n      throw new Error(`cannot decode ${this.getType().typeName} from JSON: ${e instanceof Error ? e.message : String(e)}`);\n    }\n    return this.fromJson(json, options);\n  }\n  /**\n   * Serialize the message to binary data.\n   */\n  toBinary(options) {\n    const type = this.getType(), bin = type.runtime.bin, opt = bin.makeWriteOptions(options), writer = opt.writerFactory();\n    bin.writeMessage(this, writer, opt);\n    return writer.finish();\n  }\n  /**\n   * Serialize the message to a JSON value, a JavaScript value that can be\n   * passed to JSON.stringify().\n   */\n  toJson(options) {\n    const type = this.getType(), json = type.runtime.json, opt = json.makeWriteOptions(options);\n    return json.writeMessage(this, opt);\n  }\n  /**\n   * Serialize the message to a JSON string.\n   */\n  toJsonString(options) {\n    var _a;\n    const value = this.toJson(options);\n    return JSON.stringify(value, null, (_a = options === null || options === void 0 ? void 0 : options.prettySpaces) !== null && _a !== void 0 ? _a : 0);\n  }\n  /**\n   * Override for serialization behavior. This will be invoked when calling\n   * JSON.stringify on this message (i.e. JSON.stringify(msg)).\n   *\n   * Note that this will not serialize google.protobuf.Any with a packed\n   * message because the protobuf JSON format specifies that it needs to be\n   * unpacked, and this is only possible with a type registry to look up the\n   * message type.  As a result, attempting to serialize a message with this\n   * type will throw an Error.\n   *\n   * This method is protected because you should not need to invoke it\n   * directly -- instead use JSON.stringify or toJsonString for\n   * stringified JSON.  Alternatively, if actual JSON is desired, you should\n   * use toJson.\n   */\n  toJSON() {\n    return this.toJson({\n      emitDefaultValues: true\n    });\n  }\n  /**\n   * Retrieve the MessageType of this message - a singleton that represents\n   * the protobuf message declaration and provides metadata for reflection-\n   * based operations.\n   */\n  getType() {\n    return Object.getPrototypeOf(this).constructor;\n  }\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/message-type.js\nfunction browser_makeMessageType(runtime, typeName, fields, opt) {\n  var _a;\n  const localName = (_a = opt === null || opt === void 0 ? void 0 : opt.localName) !== null && _a !== void 0 ? _a : typeName.substring(typeName.lastIndexOf(\".\") + 1);\n  const type = {\n    [localName]: function(data) {\n      runtime.util.initFields(this);\n      runtime.util.initPartial(data, this);\n    }\n  }[localName];\n  Object.setPrototypeOf(type.prototype, new browser_Message());\n  Object.assign(type, {\n    runtime,\n    typeName,\n    fields: runtime.util.newFieldList(fields),\n    fromBinary(bytes, options) {\n      return new type().fromBinary(bytes, options);\n    },\n    fromJson(jsonValue, options) {\n      return new type().fromJson(jsonValue, options);\n    },\n    fromJsonString(jsonString, options) {\n      return new type().fromJsonString(jsonString, options);\n    },\n    equals(a, b) {\n      return runtime.util.equals(type, a, b);\n    }\n  });\n  return type;\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js\nvar import_buffer13 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js\nvar import_buffer11 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js\nvar import_buffer9 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/google/varint.js\nvar import_buffer8 = browser_toESM(require_buffer(), 1);\nfunction browser_varint64read() {\n  let lowBits = 0;\n  let highBits = 0;\n  for (let shift = 0; shift < 28; shift += 7) {\n    let b = this.buf[this.pos++];\n    lowBits |= (b & 127) << shift;\n    if ((b & 128) == 0) {\n      this.assertBounds();\n      return [lowBits, highBits];\n    }\n  }\n  let middleByte = this.buf[this.pos++];\n  lowBits |= (middleByte & 15) << 28;\n  highBits = (middleByte & 112) >> 4;\n  if ((middleByte & 128) == 0) {\n    this.assertBounds();\n    return [lowBits, highBits];\n  }\n  for (let shift = 3; shift <= 31; shift += 7) {\n    let b = this.buf[this.pos++];\n    highBits |= (b & 127) << shift;\n    if ((b & 128) == 0) {\n      this.assertBounds();\n      return [lowBits, highBits];\n    }\n  }\n  throw new Error(\"invalid varint\");\n}\nfunction browser_varint64write(lo, hi, bytes) {\n  for (let i = 0; i < 28; i = i + 7) {\n    const shift = lo >>> i;\n    const hasNext = !(shift >>> 7 == 0 && hi == 0);\n    const byte = (hasNext ? shift | 128 : shift) & 255;\n    bytes.push(byte);\n    if (!hasNext) {\n      return;\n    }\n  }\n  const splitBits = lo >>> 28 & 15 | (hi & 7) << 4;\n  const hasMoreBits = !(hi >> 3 == 0);\n  bytes.push((hasMoreBits ? splitBits | 128 : splitBits) & 255);\n  if (!hasMoreBits) {\n    return;\n  }\n  for (let i = 3; i < 31; i = i + 7) {\n    const shift = hi >>> i;\n    const hasNext = !(shift >>> 7 == 0);\n    const byte = (hasNext ? shift | 128 : shift) & 255;\n    bytes.push(byte);\n    if (!hasNext) {\n      return;\n    }\n  }\n  bytes.push(hi >>> 31 & 1);\n}\nvar browser_TWO_PWR_32_DBL = 4294967296;\nfunction browser_int64FromString(dec) {\n  const minus = dec[0] === \"-\";\n  if (minus) {\n    dec = dec.slice(1);\n  }\n  const base = 1e6;\n  let lowBits = 0;\n  let highBits = 0;\n  function add1e6digit(begin, end) {\n    const digit1e6 = Number(dec.slice(begin, end));\n    highBits *= base;\n    lowBits = lowBits * base + digit1e6;\n    if (lowBits >= browser_TWO_PWR_32_DBL) {\n      highBits = highBits + (lowBits / browser_TWO_PWR_32_DBL | 0);\n      lowBits = lowBits % browser_TWO_PWR_32_DBL;\n    }\n  }\n  add1e6digit(-24, -18);\n  add1e6digit(-18, -12);\n  add1e6digit(-12, -6);\n  add1e6digit(-6);\n  return minus ? browser_negate(lowBits, highBits) : browser_newBits(lowBits, highBits);\n}\nfunction browser_int64ToString(lo, hi) {\n  let bits = browser_newBits(lo, hi);\n  const negative = bits.hi & 2147483648;\n  if (negative) {\n    bits = browser_negate(bits.lo, bits.hi);\n  }\n  const result = browser_uInt64ToString(bits.lo, bits.hi);\n  return negative ? \"-\" + result : result;\n}\nfunction browser_uInt64ToString(lo, hi) {\n  ({ lo, hi } = browser_toUnsigned(lo, hi));\n  if (hi <= 2097151) {\n    return String(browser_TWO_PWR_32_DBL * hi + lo);\n  }\n  const low = lo & 16777215;\n  const mid = (lo >>> 24 | hi << 8) & 16777215;\n  const high = hi >> 16 & 65535;\n  let digitA = low + mid * 6777216 + high * 6710656;\n  let digitB = mid + high * 8147497;\n  let digitC = high * 2;\n  const base = 1e7;\n  if (digitA >= base) {\n    digitB += Math.floor(digitA / base);\n    digitA %= base;\n  }\n  if (digitB >= base) {\n    digitC += Math.floor(digitB / base);\n    digitB %= base;\n  }\n  return digitC.toString() + browser_decimalFrom1e7WithLeadingZeros(digitB) + browser_decimalFrom1e7WithLeadingZeros(digitA);\n}\nfunction browser_toUnsigned(lo, hi) {\n  return { lo: lo >>> 0, hi: hi >>> 0 };\n}\nfunction browser_newBits(lo, hi) {\n  return { lo: lo | 0, hi: hi | 0 };\n}\nfunction browser_negate(lowBits, highBits) {\n  highBits = ~highBits;\n  if (lowBits) {\n    lowBits = ~lowBits + 1;\n  } else {\n    highBits += 1;\n  }\n  return browser_newBits(lowBits, highBits);\n}\nvar browser_decimalFrom1e7WithLeadingZeros = (digit1e7) => {\n  const partial = String(digit1e7);\n  return \"0000000\".slice(partial.length) + partial;\n};\nfunction browser_varint32write(value, bytes) {\n  if (value >= 0) {\n    while (value > 127) {\n      bytes.push(value & 127 | 128);\n      value = value >>> 7;\n    }\n    bytes.push(value);\n  } else {\n    for (let i = 0; i < 9; i++) {\n      bytes.push(value & 127 | 128);\n      value = value >> 7;\n    }\n    bytes.push(1);\n  }\n}\nfunction browser_varint32read() {\n  let b = this.buf[this.pos++];\n  let result = b & 127;\n  if ((b & 128) == 0) {\n    this.assertBounds();\n    return result;\n  }\n  b = this.buf[this.pos++];\n  result |= (b & 127) << 7;\n  if ((b & 128) == 0) {\n    this.assertBounds();\n    return result;\n  }\n  b = this.buf[this.pos++];\n  result |= (b & 127) << 14;\n  if ((b & 128) == 0) {\n    this.assertBounds();\n    return result;\n  }\n  b = this.buf[this.pos++];\n  result |= (b & 127) << 21;\n  if ((b & 128) == 0) {\n    this.assertBounds();\n    return result;\n  }\n  b = this.buf[this.pos++];\n  result |= (b & 15) << 28;\n  for (let readBytes = 5; (b & 128) !== 0 && readBytes < 10; readBytes++)\n    b = this.buf[this.pos++];\n  if ((b & 128) != 0)\n    throw new Error(\"invalid varint\");\n  this.assertBounds();\n  return result >>> 0;\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/proto-int64.js\nfunction browser_makeInt64Support() {\n  const dv = new DataView(new ArrayBuffer(8));\n  const ok = typeof BigInt === \"function\" && typeof dv.getBigInt64 === \"function\" && typeof dv.getBigUint64 === \"function\" && typeof dv.setBigInt64 === \"function\" && typeof dv.setBigUint64 === \"function\" && (typeof browser_process != \"object\" || typeof browser_process.env != \"object\" || browser_process.env.BUF_BIGINT_DISABLE !== \"1\");\n  if (ok) {\n    const MIN = BigInt(\"-9223372036854775808\"), MAX = BigInt(\"9223372036854775807\"), UMIN = BigInt(\"0\"), UMAX = BigInt(\"18446744073709551615\");\n    return {\n      zero: BigInt(0),\n      supported: true,\n      parse(value) {\n        const bi = typeof value == \"bigint\" ? value : BigInt(value);\n        if (bi > MAX || bi < MIN) {\n          throw new Error(`int64 invalid: ${value}`);\n        }\n        return bi;\n      },\n      uParse(value) {\n        const bi = typeof value == \"bigint\" ? value : BigInt(value);\n        if (bi > UMAX || bi < UMIN) {\n          throw new Error(`uint64 invalid: ${value}`);\n        }\n        return bi;\n      },\n      enc(value) {\n        dv.setBigInt64(0, this.parse(value), true);\n        return {\n          lo: dv.getInt32(0, true),\n          hi: dv.getInt32(4, true)\n        };\n      },\n      uEnc(value) {\n        dv.setBigInt64(0, this.uParse(value), true);\n        return {\n          lo: dv.getInt32(0, true),\n          hi: dv.getInt32(4, true)\n        };\n      },\n      dec(lo, hi) {\n        dv.setInt32(0, lo, true);\n        dv.setInt32(4, hi, true);\n        return dv.getBigInt64(0, true);\n      },\n      uDec(lo, hi) {\n        dv.setInt32(0, lo, true);\n        dv.setInt32(4, hi, true);\n        return dv.getBigUint64(0, true);\n      }\n    };\n  }\n  const assertInt64String = (value) => browser_assert(/^-?[0-9]+$/.test(value), `int64 invalid: ${value}`);\n  const assertUInt64String = (value) => browser_assert(/^[0-9]+$/.test(value), `uint64 invalid: ${value}`);\n  return {\n    zero: \"0\",\n    supported: false,\n    parse(value) {\n      if (typeof value != \"string\") {\n        value = value.toString();\n      }\n      assertInt64String(value);\n      return value;\n    },\n    uParse(value) {\n      if (typeof value != \"string\") {\n        value = value.toString();\n      }\n      assertUInt64String(value);\n      return value;\n    },\n    enc(value) {\n      if (typeof value != \"string\") {\n        value = value.toString();\n      }\n      assertInt64String(value);\n      return browser_int64FromString(value);\n    },\n    uEnc(value) {\n      if (typeof value != \"string\") {\n        value = value.toString();\n      }\n      assertUInt64String(value);\n      return browser_int64FromString(value);\n    },\n    dec(lo, hi) {\n      return browser_int64ToString(lo, hi);\n    },\n    uDec(lo, hi) {\n      return browser_uInt64ToString(lo, hi);\n    }\n  };\n}\nvar browser_protoInt64 = browser_makeInt64Support();\n\n// node_modules/@bufbuild/protobuf/dist/esm/scalar.js\nvar import_buffer10 = browser_toESM(require_buffer(), 1);\nvar browser_ScalarType;\n(function(ScalarType2) {\n  ScalarType2[ScalarType2[\"DOUBLE\"] = 1] = \"DOUBLE\";\n  ScalarType2[ScalarType2[\"FLOAT\"] = 2] = \"FLOAT\";\n  ScalarType2[ScalarType2[\"INT64\"] = 3] = \"INT64\";\n  ScalarType2[ScalarType2[\"UINT64\"] = 4] = \"UINT64\";\n  ScalarType2[ScalarType2[\"INT32\"] = 5] = \"INT32\";\n  ScalarType2[ScalarType2[\"FIXED64\"] = 6] = \"FIXED64\";\n  ScalarType2[ScalarType2[\"FIXED32\"] = 7] = \"FIXED32\";\n  ScalarType2[ScalarType2[\"BOOL\"] = 8] = \"BOOL\";\n  ScalarType2[ScalarType2[\"STRING\"] = 9] = \"STRING\";\n  ScalarType2[ScalarType2[\"BYTES\"] = 12] = \"BYTES\";\n  ScalarType2[ScalarType2[\"UINT32\"] = 13] = \"UINT32\";\n  ScalarType2[ScalarType2[\"SFIXED32\"] = 15] = \"SFIXED32\";\n  ScalarType2[ScalarType2[\"SFIXED64\"] = 16] = \"SFIXED64\";\n  ScalarType2[ScalarType2[\"SINT32\"] = 17] = \"SINT32\";\n  ScalarType2[ScalarType2[\"SINT64\"] = 18] = \"SINT64\";\n})(browser_ScalarType || (browser_ScalarType = {}));\nvar browser_LongType;\n(function(LongType2) {\n  LongType2[LongType2[\"BIGINT\"] = 0] = \"BIGINT\";\n  LongType2[LongType2[\"STRING\"] = 1] = \"STRING\";\n})(browser_LongType || (browser_LongType = {}));\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/scalars.js\nfunction browser_scalarEquals(type, a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (type == browser_ScalarType.BYTES) {\n    if (!(a instanceof Uint8Array) || !(b instanceof Uint8Array)) {\n      return false;\n    }\n    if (a.length !== b.length) {\n      return false;\n    }\n    for (let i = 0; i < a.length; i++) {\n      if (a[i] !== b[i]) {\n        return false;\n      }\n    }\n    return true;\n  }\n  switch (type) {\n    case browser_ScalarType.UINT64:\n    case browser_ScalarType.FIXED64:\n    case browser_ScalarType.INT64:\n    case browser_ScalarType.SFIXED64:\n    case browser_ScalarType.SINT64:\n      return a == b;\n  }\n  return false;\n}\nfunction browser_scalarZeroValue(type, longType) {\n  switch (type) {\n    case browser_ScalarType.BOOL:\n      return false;\n    case browser_ScalarType.UINT64:\n    case browser_ScalarType.FIXED64:\n    case browser_ScalarType.INT64:\n    case browser_ScalarType.SFIXED64:\n    case browser_ScalarType.SINT64:\n      return longType == 0 ? browser_protoInt64.zero : \"0\";\n    case browser_ScalarType.DOUBLE:\n    case browser_ScalarType.FLOAT:\n      return 0;\n    case browser_ScalarType.BYTES:\n      return new Uint8Array(0);\n    case browser_ScalarType.STRING:\n      return \"\";\n    default:\n      return 0;\n  }\n}\nfunction browser_isScalarZeroValue(type, value) {\n  switch (type) {\n    case browser_ScalarType.BOOL:\n      return value === false;\n    case browser_ScalarType.STRING:\n      return value === \"\";\n    case browser_ScalarType.BYTES:\n      return value instanceof Uint8Array && !value.byteLength;\n    default:\n      return value == 0;\n  }\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/binary-encoding.js\nvar import_buffer12 = browser_toESM(require_buffer(), 1);\nvar browser_WireType;\n(function(WireType2) {\n  WireType2[WireType2[\"Varint\"] = 0] = \"Varint\";\n  WireType2[WireType2[\"Bit64\"] = 1] = \"Bit64\";\n  WireType2[WireType2[\"LengthDelimited\"] = 2] = \"LengthDelimited\";\n  WireType2[WireType2[\"StartGroup\"] = 3] = \"StartGroup\";\n  WireType2[WireType2[\"EndGroup\"] = 4] = \"EndGroup\";\n  WireType2[WireType2[\"Bit32\"] = 5] = \"Bit32\";\n})(browser_WireType || (browser_WireType = {}));\nvar browser_BinaryWriter = class {\n  constructor(textEncoder) {\n    this.stack = [];\n    this.textEncoder = textEncoder !== null && textEncoder !== void 0 ? textEncoder : new TextEncoder();\n    this.chunks = [];\n    this.buf = [];\n  }\n  /**\n   * Return all bytes written and reset this writer.\n   */\n  finish() {\n    this.chunks.push(new Uint8Array(this.buf));\n    let len = 0;\n    for (let i = 0; i < this.chunks.length; i++)\n      len += this.chunks[i].length;\n    let bytes = new Uint8Array(len);\n    let offset = 0;\n    for (let i = 0; i < this.chunks.length; i++) {\n      bytes.set(this.chunks[i], offset);\n      offset += this.chunks[i].length;\n    }\n    this.chunks = [];\n    return bytes;\n  }\n  /**\n   * Start a new fork for length-delimited data like a message\n   * or a packed repeated field.\n   *\n   * Must be joined later with `join()`.\n   */\n  fork() {\n    this.stack.push({ chunks: this.chunks, buf: this.buf });\n    this.chunks = [];\n    this.buf = [];\n    return this;\n  }\n  /**\n   * Join the last fork. Write its length and bytes, then\n   * return to the previous state.\n   */\n  join() {\n    let chunk = this.finish();\n    let prev = this.stack.pop();\n    if (!prev)\n      throw new Error(\"invalid state, fork stack empty\");\n    this.chunks = prev.chunks;\n    this.buf = prev.buf;\n    this.uint32(chunk.byteLength);\n    return this.raw(chunk);\n  }\n  /**\n   * Writes a tag (field number and wire type).\n   *\n   * Equivalent to `uint32( (fieldNo << 3 | type) >>> 0 )`.\n   *\n   * Generated code should compute the tag ahead of time and call `uint32()`.\n   */\n  tag(fieldNo, type) {\n    return this.uint32((fieldNo << 3 | type) >>> 0);\n  }\n  /**\n   * Write a chunk of raw bytes.\n   */\n  raw(chunk) {\n    if (this.buf.length) {\n      this.chunks.push(new Uint8Array(this.buf));\n      this.buf = [];\n    }\n    this.chunks.push(chunk);\n    return this;\n  }\n  /**\n   * Write a `uint32` value, an unsigned 32 bit varint.\n   */\n  uint32(value) {\n    browser_assertUInt32(value);\n    while (value > 127) {\n      this.buf.push(value & 127 | 128);\n      value = value >>> 7;\n    }\n    this.buf.push(value);\n    return this;\n  }\n  /**\n   * Write a `int32` value, a signed 32 bit varint.\n   */\n  int32(value) {\n    browser_assertInt32(value);\n    browser_varint32write(value, this.buf);\n    return this;\n  }\n  /**\n   * Write a `bool` value, a variant.\n   */\n  bool(value) {\n    this.buf.push(value ? 1 : 0);\n    return this;\n  }\n  /**\n   * Write a `bytes` value, length-delimited arbitrary data.\n   */\n  bytes(value) {\n    this.uint32(value.byteLength);\n    return this.raw(value);\n  }\n  /**\n   * Write a `string` value, length-delimited data converted to UTF-8 text.\n   */\n  string(value) {\n    let chunk = this.textEncoder.encode(value);\n    this.uint32(chunk.byteLength);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `float` value, 32-bit floating point number.\n   */\n  float(value) {\n    browser_assertFloat32(value);\n    let chunk = new Uint8Array(4);\n    new DataView(chunk.buffer).setFloat32(0, value, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `double` value, a 64-bit floating point number.\n   */\n  double(value) {\n    let chunk = new Uint8Array(8);\n    new DataView(chunk.buffer).setFloat64(0, value, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `fixed32` value, an unsigned, fixed-length 32-bit integer.\n   */\n  fixed32(value) {\n    browser_assertUInt32(value);\n    let chunk = new Uint8Array(4);\n    new DataView(chunk.buffer).setUint32(0, value, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `sfixed32` value, a signed, fixed-length 32-bit integer.\n   */\n  sfixed32(value) {\n    browser_assertInt32(value);\n    let chunk = new Uint8Array(4);\n    new DataView(chunk.buffer).setInt32(0, value, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `sint32` value, a signed, zigzag-encoded 32-bit varint.\n   */\n  sint32(value) {\n    browser_assertInt32(value);\n    value = (value << 1 ^ value >> 31) >>> 0;\n    browser_varint32write(value, this.buf);\n    return this;\n  }\n  /**\n   * Write a `fixed64` value, a signed, fixed-length 64-bit integer.\n   */\n  sfixed64(value) {\n    let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = browser_protoInt64.enc(value);\n    view.setInt32(0, tc.lo, true);\n    view.setInt32(4, tc.hi, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `fixed64` value, an unsigned, fixed-length 64 bit integer.\n   */\n  fixed64(value) {\n    let chunk = new Uint8Array(8), view = new DataView(chunk.buffer), tc = browser_protoInt64.uEnc(value);\n    view.setInt32(0, tc.lo, true);\n    view.setInt32(4, tc.hi, true);\n    return this.raw(chunk);\n  }\n  /**\n   * Write a `int64` value, a signed 64-bit varint.\n   */\n  int64(value) {\n    let tc = browser_protoInt64.enc(value);\n    browser_varint64write(tc.lo, tc.hi, this.buf);\n    return this;\n  }\n  /**\n   * Write a `sint64` value, a signed, zig-zag-encoded 64-bit varint.\n   */\n  sint64(value) {\n    let tc = browser_protoInt64.enc(value), sign = tc.hi >> 31, lo = tc.lo << 1 ^ sign, hi = (tc.hi << 1 | tc.lo >>> 31) ^ sign;\n    browser_varint64write(lo, hi, this.buf);\n    return this;\n  }\n  /**\n   * Write a `uint64` value, an unsigned 64-bit varint.\n   */\n  uint64(value) {\n    let tc = browser_protoInt64.uEnc(value);\n    browser_varint64write(tc.lo, tc.hi, this.buf);\n    return this;\n  }\n};\nvar browser_BinaryReader = class {\n  constructor(buf, textDecoder) {\n    this.varint64 = browser_varint64read;\n    this.uint32 = browser_varint32read;\n    this.buf = buf;\n    this.len = buf.length;\n    this.pos = 0;\n    this.view = new DataView(buf.buffer, buf.byteOffset, buf.byteLength);\n    this.textDecoder = textDecoder !== null && textDecoder !== void 0 ? textDecoder : new TextDecoder();\n  }\n  /**\n   * Reads a tag - field number and wire type.\n   */\n  tag() {\n    let tag = this.uint32(), fieldNo = tag >>> 3, wireType = tag & 7;\n    if (fieldNo <= 0 || wireType < 0 || wireType > 5)\n      throw new Error(\"illegal tag: field no \" + fieldNo + \" wire type \" + wireType);\n    return [fieldNo, wireType];\n  }\n  /**\n   * Skip one element and return the skipped data.\n   *\n   * When skipping StartGroup, provide the tags field number to check for\n   * matching field number in the EndGroup tag.\n   */\n  skip(wireType, fieldNo) {\n    let start = this.pos;\n    switch (wireType) {\n      case browser_WireType.Varint:\n        while (this.buf[this.pos++] & 128) {\n        }\n        break;\n      // eslint-disable-next-line\n      // @ts-ignore TS7029: Fallthrough case in switch\n      case browser_WireType.Bit64:\n        this.pos += 4;\n      // eslint-disable-next-line\n      // @ts-ignore TS7029: Fallthrough case in switch\n      case browser_WireType.Bit32:\n        this.pos += 4;\n        break;\n      case browser_WireType.LengthDelimited:\n        let len = this.uint32();\n        this.pos += len;\n        break;\n      case browser_WireType.StartGroup:\n        for (; ; ) {\n          const [fn, wt] = this.tag();\n          if (wt === browser_WireType.EndGroup) {\n            if (fieldNo !== void 0 && fn !== fieldNo) {\n              throw new Error(\"invalid end group tag\");\n            }\n            break;\n          }\n          this.skip(wt, fn);\n        }\n        break;\n      default:\n        throw new Error(\"cant skip wire type \" + wireType);\n    }\n    this.assertBounds();\n    return this.buf.subarray(start, this.pos);\n  }\n  /**\n   * Throws error if position in byte array is out of range.\n   */\n  assertBounds() {\n    if (this.pos > this.len)\n      throw new RangeError(\"premature EOF\");\n  }\n  /**\n   * Read a `int32` field, a signed 32 bit varint.\n   */\n  int32() {\n    return this.uint32() | 0;\n  }\n  /**\n   * Read a `sint32` field, a signed, zigzag-encoded 32-bit varint.\n   */\n  sint32() {\n    let zze = this.uint32();\n    return zze >>> 1 ^ -(zze & 1);\n  }\n  /**\n   * Read a `int64` field, a signed 64-bit varint.\n   */\n  int64() {\n    return browser_protoInt64.dec(...this.varint64());\n  }\n  /**\n   * Read a `uint64` field, an unsigned 64-bit varint.\n   */\n  uint64() {\n    return browser_protoInt64.uDec(...this.varint64());\n  }\n  /**\n   * Read a `sint64` field, a signed, zig-zag-encoded 64-bit varint.\n   */\n  sint64() {\n    let [lo, hi] = this.varint64();\n    let s = -(lo & 1);\n    lo = (lo >>> 1 | (hi & 1) << 31) ^ s;\n    hi = hi >>> 1 ^ s;\n    return browser_protoInt64.dec(lo, hi);\n  }\n  /**\n   * Read a `bool` field, a variant.\n   */\n  bool() {\n    let [lo, hi] = this.varint64();\n    return lo !== 0 || hi !== 0;\n  }\n  /**\n   * Read a `fixed32` field, an unsigned, fixed-length 32-bit integer.\n   */\n  fixed32() {\n    return this.view.getUint32((this.pos += 4) - 4, true);\n  }\n  /**\n   * Read a `sfixed32` field, a signed, fixed-length 32-bit integer.\n   */\n  sfixed32() {\n    return this.view.getInt32((this.pos += 4) - 4, true);\n  }\n  /**\n   * Read a `fixed64` field, an unsigned, fixed-length 64 bit integer.\n   */\n  fixed64() {\n    return browser_protoInt64.uDec(this.sfixed32(), this.sfixed32());\n  }\n  /**\n   * Read a `fixed64` field, a signed, fixed-length 64-bit integer.\n   */\n  sfixed64() {\n    return browser_protoInt64.dec(this.sfixed32(), this.sfixed32());\n  }\n  /**\n   * Read a `float` field, 32-bit floating point number.\n   */\n  float() {\n    return this.view.getFloat32((this.pos += 4) - 4, true);\n  }\n  /**\n   * Read a `double` field, a 64-bit floating point number.\n   */\n  double() {\n    return this.view.getFloat64((this.pos += 8) - 8, true);\n  }\n  /**\n   * Read a `bytes` field, length-delimited arbitrary data.\n   */\n  bytes() {\n    let len = this.uint32(), start = this.pos;\n    this.pos += len;\n    this.assertBounds();\n    return this.buf.subarray(start, start + len);\n  }\n  /**\n   * Read a `string` field, length-delimited data converted to UTF-8 text.\n   */\n  string() {\n    return this.textDecoder.decode(this.bytes());\n  }\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/extensions.js\nfunction browser_makeExtension(runtime, typeName, extendee, field) {\n  let fi;\n  return {\n    typeName,\n    extendee,\n    get field() {\n      if (!fi) {\n        const i = typeof field == \"function\" ? field() : field;\n        i.name = typeName.split(\".\").pop();\n        i.jsonName = `[${typeName}]`;\n        fi = runtime.util.newFieldList([i]).list()[0];\n      }\n      return fi;\n    },\n    runtime\n  };\n}\nfunction browser_createExtensionContainer(extension) {\n  const localName = extension.field.localName;\n  const container = /* @__PURE__ */ Object.create(null);\n  container[localName] = browser_initExtensionField(extension);\n  return [container, () => container[localName]];\n}\nfunction browser_initExtensionField(ext) {\n  const field = ext.field;\n  if (field.repeated) {\n    return [];\n  }\n  if (field.default !== void 0) {\n    return field.default;\n  }\n  switch (field.kind) {\n    case \"enum\":\n      return field.T.values[0].no;\n    case \"scalar\":\n      return browser_scalarZeroValue(field.T, field.L);\n    case \"message\":\n      const T = field.T, value = new T();\n      return T.fieldWrapper ? T.fieldWrapper.unwrapField(value) : value;\n    case \"map\":\n      throw \"map fields are not allowed to be extensions\";\n  }\n}\nfunction browser_filterUnknownFields(unknownFields, field) {\n  if (!field.repeated && (field.kind == \"enum\" || field.kind == \"scalar\")) {\n    for (let i = unknownFields.length - 1; i >= 0; --i) {\n      if (unknownFields[i].no == field.no) {\n        return [unknownFields[i]];\n      }\n    }\n    return [];\n  }\n  return unknownFields.filter((uf) => uf.no === field.no);\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js\nvar import_buffer19 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/proto-base64.js\nvar import_buffer14 = browser_toESM(require_buffer(), 1);\nvar browser_encTable = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\".split(\"\");\nvar browser_decTable = [];\nfor (let i = 0; i < browser_encTable.length; i++)\n  browser_decTable[browser_encTable[i].charCodeAt(0)] = i;\nbrowser_decTable[\"-\".charCodeAt(0)] = browser_encTable.indexOf(\"+\");\nbrowser_decTable[\"_\".charCodeAt(0)] = browser_encTable.indexOf(\"/\");\nvar browser_protoBase64 = {\n  /**\n   * Decodes a base64 string to a byte array.\n   *\n   * - ignores white-space, including line breaks and tabs\n   * - allows inner padding (can decode concatenated base64 strings)\n   * - does not require padding\n   * - understands base64url encoding:\n   *   \"-\" instead of \"+\",\n   *   \"_\" instead of \"/\",\n   *   no padding\n   */\n  dec(base64Str) {\n    let es = base64Str.length * 3 / 4;\n    if (base64Str[base64Str.length - 2] == \"=\")\n      es -= 2;\n    else if (base64Str[base64Str.length - 1] == \"=\")\n      es -= 1;\n    let bytes = new Uint8Array(es), bytePos = 0, groupPos = 0, b, p = 0;\n    for (let i = 0; i < base64Str.length; i++) {\n      b = browser_decTable[base64Str.charCodeAt(i)];\n      if (b === void 0) {\n        switch (base64Str[i]) {\n          // @ts-ignore TS7029: Fallthrough case in switch\n          case \"=\":\n            groupPos = 0;\n          // reset state when padding found\n          // @ts-ignore TS7029: Fallthrough case in switch\n          case \"\\n\":\n          case \"\\r\":\n          case \"\t\":\n          case \" \":\n            continue;\n          // skip white-space, and padding\n          default:\n            throw Error(\"invalid base64 string.\");\n        }\n      }\n      switch (groupPos) {\n        case 0:\n          p = b;\n          groupPos = 1;\n          break;\n        case 1:\n          bytes[bytePos++] = p << 2 | (b & 48) >> 4;\n          p = b;\n          groupPos = 2;\n          break;\n        case 2:\n          bytes[bytePos++] = (p & 15) << 4 | (b & 60) >> 2;\n          p = b;\n          groupPos = 3;\n          break;\n        case 3:\n          bytes[bytePos++] = (p & 3) << 6 | b;\n          groupPos = 0;\n          break;\n      }\n    }\n    if (groupPos == 1)\n      throw Error(\"invalid base64 string.\");\n    return bytes.subarray(0, bytePos);\n  },\n  /**\n   * Encode a byte array to a base64 string.\n   */\n  enc(bytes) {\n    let base64 = \"\", groupPos = 0, b, p = 0;\n    for (let i = 0; i < bytes.length; i++) {\n      b = bytes[i];\n      switch (groupPos) {\n        case 0:\n          base64 += browser_encTable[b >> 2];\n          p = (b & 3) << 4;\n          groupPos = 1;\n          break;\n        case 1:\n          base64 += browser_encTable[p | b >> 4];\n          p = (b & 15) << 2;\n          groupPos = 2;\n          break;\n        case 2:\n          base64 += browser_encTable[p | b >> 6];\n          base64 += browser_encTable[b & 63];\n          groupPos = 0;\n          break;\n      }\n    }\n    if (groupPos) {\n      base64 += browser_encTable[p];\n      base64 += \"=\";\n      if (groupPos == 1)\n        base64 += \"=\";\n    }\n    return base64;\n  }\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/extension-accessor.js\nvar import_buffer15 = browser_toESM(require_buffer(), 1);\nfunction browser_getExtension(message, extension, options) {\n  browser_assertExtendee(extension, message);\n  const opt = extension.runtime.bin.makeReadOptions(options);\n  const ufs = browser_filterUnknownFields(message.getType().runtime.bin.listUnknownFields(message), extension.field);\n  const [container, get] = browser_createExtensionContainer(extension);\n  for (const uf of ufs) {\n    extension.runtime.bin.readField(container, opt.readerFactory(uf.data), extension.field, uf.wireType, opt);\n  }\n  return get();\n}\nfunction browser_setExtension(message, extension, value, options) {\n  browser_assertExtendee(extension, message);\n  const readOpt = extension.runtime.bin.makeReadOptions(options);\n  const writeOpt = extension.runtime.bin.makeWriteOptions(options);\n  if (browser_hasExtension(message, extension)) {\n    const ufs = message.getType().runtime.bin.listUnknownFields(message).filter((uf) => uf.no != extension.field.no);\n    message.getType().runtime.bin.discardUnknownFields(message);\n    for (const uf of ufs) {\n      message.getType().runtime.bin.onUnknownField(message, uf.no, uf.wireType, uf.data);\n    }\n  }\n  const writer = writeOpt.writerFactory();\n  let f = extension.field;\n  if (!f.opt && !f.repeated && (f.kind == \"enum\" || f.kind == \"scalar\")) {\n    f = Object.assign(Object.assign({}, extension.field), { opt: true });\n  }\n  extension.runtime.bin.writeField(f, value, writer, writeOpt);\n  const reader = readOpt.readerFactory(writer.finish());\n  while (reader.pos < reader.len) {\n    const [no, wireType] = reader.tag();\n    const data = reader.skip(wireType, no);\n    message.getType().runtime.bin.onUnknownField(message, no, wireType, data);\n  }\n}\nfunction browser_hasExtension(message, extension) {\n  const messageType = message.getType();\n  return extension.extendee.typeName === messageType.typeName && !!messageType.runtime.bin.listUnknownFields(message).find((uf) => uf.no == extension.field.no);\n}\nfunction browser_assertExtendee(extension, message) {\n  browser_assert(extension.extendee.typeName == message.getType().typeName, `extension ${extension.typeName} can only be applied to message ${extension.extendee.typeName}`);\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/reflect.js\nvar import_buffer16 = browser_toESM(require_buffer(), 1);\nfunction browser_isFieldSet(field, target) {\n  const localName = field.localName;\n  if (field.repeated) {\n    return target[localName].length > 0;\n  }\n  if (field.oneof) {\n    return target[field.oneof.localName].case === localName;\n  }\n  switch (field.kind) {\n    case \"enum\":\n    case \"scalar\":\n      if (field.opt || field.req) {\n        return target[localName] !== void 0;\n      }\n      if (field.kind == \"enum\") {\n        return target[localName] !== field.T.values[0].no;\n      }\n      return !browser_isScalarZeroValue(field.T, target[localName]);\n    case \"message\":\n      return target[localName] !== void 0;\n    case \"map\":\n      return Object.keys(target[localName]).length > 0;\n  }\n}\nfunction browser_clearField(field, target) {\n  const localName = field.localName;\n  const implicitPresence = !field.opt && !field.req;\n  if (field.repeated) {\n    target[localName] = [];\n  } else if (field.oneof) {\n    target[field.oneof.localName] = { case: void 0 };\n  } else {\n    switch (field.kind) {\n      case \"map\":\n        target[localName] = {};\n        break;\n      case \"enum\":\n        target[localName] = implicitPresence ? field.T.values[0].no : void 0;\n        break;\n      case \"scalar\":\n        target[localName] = implicitPresence ? browser_scalarZeroValue(field.T, field.L) : void 0;\n        break;\n      case \"message\":\n        target[localName] = void 0;\n        break;\n    }\n  }\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js\nvar import_buffer18 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/is-message.js\nvar import_buffer17 = browser_toESM(require_buffer(), 1);\nfunction browser_isMessage(arg, type) {\n  if (arg === null || typeof arg != \"object\") {\n    return false;\n  }\n  if (!Object.getOwnPropertyNames(browser_Message.prototype).every((m) => m in arg && typeof arg[m] == \"function\")) {\n    return false;\n  }\n  const actualType = arg.getType();\n  if (actualType === null || typeof actualType != \"function\" || !(\"typeName\" in actualType) || typeof actualType.typeName != \"string\") {\n    return false;\n  }\n  return type === void 0 ? true : actualType.typeName == type.typeName;\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field-wrapper.js\nfunction browser_wrapField(type, value) {\n  if (browser_isMessage(value) || !type.fieldWrapper) {\n    return value;\n  }\n  return type.fieldWrapper.wrapField(value);\n}\nvar browser_wktWrapperToScalarType = {\n  \"google.protobuf.DoubleValue\": browser_ScalarType.DOUBLE,\n  \"google.protobuf.FloatValue\": browser_ScalarType.FLOAT,\n  \"google.protobuf.Int64Value\": browser_ScalarType.INT64,\n  \"google.protobuf.UInt64Value\": browser_ScalarType.UINT64,\n  \"google.protobuf.Int32Value\": browser_ScalarType.INT32,\n  \"google.protobuf.UInt32Value\": browser_ScalarType.UINT32,\n  \"google.protobuf.BoolValue\": browser_ScalarType.BOOL,\n  \"google.protobuf.StringValue\": browser_ScalarType.STRING,\n  \"google.protobuf.BytesValue\": browser_ScalarType.BYTES\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/json-format.js\nvar browser_jsonReadDefaults = {\n  ignoreUnknownFields: false\n};\nvar browser_jsonWriteDefaults = {\n  emitDefaultValues: false,\n  enumAsInteger: false,\n  useProtoFieldName: false,\n  prettySpaces: 0\n};\nfunction browser_makeReadOptions(options) {\n  return options ? Object.assign(Object.assign({}, browser_jsonReadDefaults), options) : browser_jsonReadDefaults;\n}\nfunction browser_makeWriteOptions(options) {\n  return options ? Object.assign(Object.assign({}, browser_jsonWriteDefaults), options) : browser_jsonWriteDefaults;\n}\nvar browser_tokenNull = Symbol();\nvar browser_tokenIgnoredUnknownEnum = Symbol();\nfunction browser_makeJsonFormat() {\n  return {\n    makeReadOptions: browser_makeReadOptions,\n    makeWriteOptions: browser_makeWriteOptions,\n    readMessage(type, json, options, message) {\n      if (json == null || Array.isArray(json) || typeof json != \"object\") {\n        throw new Error(`cannot decode message ${type.typeName} from JSON: ${browser_debugJsonValue(json)}`);\n      }\n      message = message !== null && message !== void 0 ? message : new type();\n      const oneofSeen = /* @__PURE__ */ new Map();\n      const registry = options.typeRegistry;\n      for (const [jsonKey, jsonValue] of Object.entries(json)) {\n        const field = type.fields.findJsonName(jsonKey);\n        if (field) {\n          if (field.oneof) {\n            if (jsonValue === null && field.kind == \"scalar\") {\n              continue;\n            }\n            const seen = oneofSeen.get(field.oneof);\n            if (seen !== void 0) {\n              throw new Error(`cannot decode message ${type.typeName} from JSON: multiple keys for oneof \"${field.oneof.name}\" present: \"${seen}\", \"${jsonKey}\"`);\n            }\n            oneofSeen.set(field.oneof, jsonKey);\n          }\n          browser_readField(message, jsonValue, field, options, type);\n        } else {\n          let found = false;\n          if ((registry === null || registry === void 0 ? void 0 : registry.findExtension) && jsonKey.startsWith(\"[\") && jsonKey.endsWith(\"]\")) {\n            const ext = registry.findExtension(jsonKey.substring(1, jsonKey.length - 1));\n            if (ext && ext.extendee.typeName == type.typeName) {\n              found = true;\n              const [container, get] = browser_createExtensionContainer(ext);\n              browser_readField(container, jsonValue, ext.field, options, ext);\n              browser_setExtension(message, ext, get(), options);\n            }\n          }\n          if (!found && !options.ignoreUnknownFields) {\n            throw new Error(`cannot decode message ${type.typeName} from JSON: key \"${jsonKey}\" is unknown`);\n          }\n        }\n      }\n      return message;\n    },\n    writeMessage(message, options) {\n      const type = message.getType();\n      const json = {};\n      let field;\n      try {\n        for (field of type.fields.byNumber()) {\n          if (!browser_isFieldSet(field, message)) {\n            if (field.req) {\n              throw `required field not set`;\n            }\n            if (!options.emitDefaultValues) {\n              continue;\n            }\n            if (!browser_canEmitFieldDefaultValue(field)) {\n              continue;\n            }\n          }\n          const value = field.oneof ? message[field.oneof.localName].value : message[field.localName];\n          const jsonValue = browser_writeField(field, value, options);\n          if (jsonValue !== void 0) {\n            json[options.useProtoFieldName ? field.name : field.jsonName] = jsonValue;\n          }\n        }\n        const registry = options.typeRegistry;\n        if (registry === null || registry === void 0 ? void 0 : registry.findExtensionFor) {\n          for (const uf of type.runtime.bin.listUnknownFields(message)) {\n            const ext = registry.findExtensionFor(type.typeName, uf.no);\n            if (ext && browser_hasExtension(message, ext)) {\n              const value = browser_getExtension(message, ext, options);\n              const jsonValue = browser_writeField(ext.field, value, options);\n              if (jsonValue !== void 0) {\n                json[ext.field.jsonName] = jsonValue;\n              }\n            }\n          }\n        }\n      } catch (e) {\n        const m = field ? `cannot encode field ${type.typeName}.${field.name} to JSON` : `cannot encode message ${type.typeName} to JSON`;\n        const r = e instanceof Error ? e.message : String(e);\n        throw new Error(m + (r.length > 0 ? `: ${r}` : \"\"));\n      }\n      return json;\n    },\n    readScalar(type, json, longType) {\n      return browser_readScalar(type, json, longType !== null && longType !== void 0 ? longType : browser_LongType.BIGINT, true);\n    },\n    writeScalar(type, value, emitDefaultValues) {\n      if (value === void 0) {\n        return void 0;\n      }\n      if (emitDefaultValues || browser_isScalarZeroValue(type, value)) {\n        return browser_writeScalar(type, value);\n      }\n      return void 0;\n    },\n    debug: browser_debugJsonValue\n  };\n}\nfunction browser_debugJsonValue(json) {\n  if (json === null) {\n    return \"null\";\n  }\n  switch (typeof json) {\n    case \"object\":\n      return Array.isArray(json) ? \"array\" : \"object\";\n    case \"string\":\n      return json.length > 100 ? \"string\" : `\"${json.split('\"').join('\\\\\"')}\"`;\n    default:\n      return String(json);\n  }\n}\nfunction browser_readField(target, jsonValue, field, options, parentType) {\n  let localName = field.localName;\n  if (field.repeated) {\n    browser_assert(field.kind != \"map\");\n    if (jsonValue === null) {\n      return;\n    }\n    if (!Array.isArray(jsonValue)) {\n      throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonValue)}`);\n    }\n    const targetArray = target[localName];\n    for (const jsonItem of jsonValue) {\n      if (jsonItem === null) {\n        throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonItem)}`);\n      }\n      switch (field.kind) {\n        case \"message\":\n          targetArray.push(field.T.fromJson(jsonItem, options));\n          break;\n        case \"enum\":\n          const enumValue = browser_readEnum(field.T, jsonItem, options.ignoreUnknownFields, true);\n          if (enumValue !== browser_tokenIgnoredUnknownEnum) {\n            targetArray.push(enumValue);\n          }\n          break;\n        case \"scalar\":\n          try {\n            targetArray.push(browser_readScalar(field.T, jsonItem, field.L, true));\n          } catch (e) {\n            let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonItem)}`;\n            if (e instanceof Error && e.message.length > 0) {\n              m += `: ${e.message}`;\n            }\n            throw new Error(m);\n          }\n          break;\n      }\n    }\n  } else if (field.kind == \"map\") {\n    if (jsonValue === null) {\n      return;\n    }\n    if (typeof jsonValue != \"object\" || Array.isArray(jsonValue)) {\n      throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonValue)}`);\n    }\n    const targetMap = target[localName];\n    for (const [jsonMapKey, jsonMapValue] of Object.entries(jsonValue)) {\n      if (jsonMapValue === null) {\n        throw new Error(`cannot decode field ${parentType.typeName}.${field.name} from JSON: map value null`);\n      }\n      let key;\n      try {\n        key = browser_readMapKey(field.K, jsonMapKey);\n      } catch (e) {\n        let m = `cannot decode map key for field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonValue)}`;\n        if (e instanceof Error && e.message.length > 0) {\n          m += `: ${e.message}`;\n        }\n        throw new Error(m);\n      }\n      switch (field.V.kind) {\n        case \"message\":\n          targetMap[key] = field.V.T.fromJson(jsonMapValue, options);\n          break;\n        case \"enum\":\n          const enumValue = browser_readEnum(field.V.T, jsonMapValue, options.ignoreUnknownFields, true);\n          if (enumValue !== browser_tokenIgnoredUnknownEnum) {\n            targetMap[key] = enumValue;\n          }\n          break;\n        case \"scalar\":\n          try {\n            targetMap[key] = browser_readScalar(field.V.T, jsonMapValue, browser_LongType.BIGINT, true);\n          } catch (e) {\n            let m = `cannot decode map value for field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonValue)}`;\n            if (e instanceof Error && e.message.length > 0) {\n              m += `: ${e.message}`;\n            }\n            throw new Error(m);\n          }\n          break;\n      }\n    }\n  } else {\n    if (field.oneof) {\n      target = target[field.oneof.localName] = { case: localName };\n      localName = \"value\";\n    }\n    switch (field.kind) {\n      case \"message\":\n        const messageType = field.T;\n        if (jsonValue === null && messageType.typeName != \"google.protobuf.Value\") {\n          return;\n        }\n        let currentValue = target[localName];\n        if (browser_isMessage(currentValue)) {\n          currentValue.fromJson(jsonValue, options);\n        } else {\n          target[localName] = currentValue = messageType.fromJson(jsonValue, options);\n          if (messageType.fieldWrapper && !field.oneof) {\n            target[localName] = messageType.fieldWrapper.unwrapField(currentValue);\n          }\n        }\n        break;\n      case \"enum\":\n        const enumValue = browser_readEnum(field.T, jsonValue, options.ignoreUnknownFields, false);\n        switch (enumValue) {\n          case browser_tokenNull:\n            browser_clearField(field, target);\n            break;\n          case browser_tokenIgnoredUnknownEnum:\n            break;\n          default:\n            target[localName] = enumValue;\n            break;\n        }\n        break;\n      case \"scalar\":\n        try {\n          const scalarValue = browser_readScalar(field.T, jsonValue, field.L, false);\n          switch (scalarValue) {\n            case browser_tokenNull:\n              browser_clearField(field, target);\n              break;\n            default:\n              target[localName] = scalarValue;\n              break;\n          }\n        } catch (e) {\n          let m = `cannot decode field ${parentType.typeName}.${field.name} from JSON: ${browser_debugJsonValue(jsonValue)}`;\n          if (e instanceof Error && e.message.length > 0) {\n            m += `: ${e.message}`;\n          }\n          throw new Error(m);\n        }\n        break;\n    }\n  }\n}\nfunction browser_readMapKey(type, json) {\n  if (type === browser_ScalarType.BOOL) {\n    switch (json) {\n      case \"true\":\n        json = true;\n        break;\n      case \"false\":\n        json = false;\n        break;\n    }\n  }\n  return browser_readScalar(type, json, browser_LongType.BIGINT, true).toString();\n}\nfunction browser_readScalar(type, json, longType, nullAsZeroValue) {\n  if (json === null) {\n    if (nullAsZeroValue) {\n      return browser_scalarZeroValue(type, longType);\n    }\n    return browser_tokenNull;\n  }\n  switch (type) {\n    // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n    // Either numbers or strings are accepted. Exponent notation is also accepted.\n    case browser_ScalarType.DOUBLE:\n    case browser_ScalarType.FLOAT:\n      if (json === \"NaN\")\n        return Number.NaN;\n      if (json === \"Infinity\")\n        return Number.POSITIVE_INFINITY;\n      if (json === \"-Infinity\")\n        return Number.NEGATIVE_INFINITY;\n      if (json === \"\") {\n        break;\n      }\n      if (typeof json == \"string\" && json.trim().length !== json.length) {\n        break;\n      }\n      if (typeof json != \"string\" && typeof json != \"number\") {\n        break;\n      }\n      const float = Number(json);\n      if (Number.isNaN(float)) {\n        break;\n      }\n      if (!Number.isFinite(float)) {\n        break;\n      }\n      if (type == browser_ScalarType.FLOAT)\n        browser_assertFloat32(float);\n      return float;\n    // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n    case browser_ScalarType.INT32:\n    case browser_ScalarType.FIXED32:\n    case browser_ScalarType.SFIXED32:\n    case browser_ScalarType.SINT32:\n    case browser_ScalarType.UINT32:\n      let int32;\n      if (typeof json == \"number\")\n        int32 = json;\n      else if (typeof json == \"string\" && json.length > 0) {\n        if (json.trim().length === json.length)\n          int32 = Number(json);\n      }\n      if (int32 === void 0)\n        break;\n      if (type == browser_ScalarType.UINT32 || type == browser_ScalarType.FIXED32)\n        browser_assertUInt32(int32);\n      else\n        browser_assertInt32(int32);\n      return int32;\n    // int64, fixed64, uint64: JSON value will be a decimal string. Either numbers or strings are accepted.\n    case browser_ScalarType.INT64:\n    case browser_ScalarType.SFIXED64:\n    case browser_ScalarType.SINT64:\n      if (typeof json != \"number\" && typeof json != \"string\")\n        break;\n      const long = browser_protoInt64.parse(json);\n      return longType ? long.toString() : long;\n    case browser_ScalarType.FIXED64:\n    case browser_ScalarType.UINT64:\n      if (typeof json != \"number\" && typeof json != \"string\")\n        break;\n      const uLong = browser_protoInt64.uParse(json);\n      return longType ? uLong.toString() : uLong;\n    // bool:\n    case browser_ScalarType.BOOL:\n      if (typeof json !== \"boolean\")\n        break;\n      return json;\n    // string:\n    case browser_ScalarType.STRING:\n      if (typeof json !== \"string\") {\n        break;\n      }\n      try {\n        encodeURIComponent(json);\n      } catch (e) {\n        throw new Error(\"invalid UTF8\");\n      }\n      return json;\n    // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n    // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n    case browser_ScalarType.BYTES:\n      if (json === \"\")\n        return new Uint8Array(0);\n      if (typeof json !== \"string\")\n        break;\n      return browser_protoBase64.dec(json);\n  }\n  throw new Error();\n}\nfunction browser_readEnum(type, json, ignoreUnknownFields, nullAsZeroValue) {\n  if (json === null) {\n    if (type.typeName == \"google.protobuf.NullValue\") {\n      return 0;\n    }\n    return nullAsZeroValue ? type.values[0].no : browser_tokenNull;\n  }\n  switch (typeof json) {\n    case \"number\":\n      if (Number.isInteger(json)) {\n        return json;\n      }\n      break;\n    case \"string\":\n      const value = type.findName(json);\n      if (value !== void 0) {\n        return value.no;\n      }\n      if (ignoreUnknownFields) {\n        return browser_tokenIgnoredUnknownEnum;\n      }\n      break;\n  }\n  throw new Error(`cannot decode enum ${type.typeName} from JSON: ${browser_debugJsonValue(json)}`);\n}\nfunction browser_canEmitFieldDefaultValue(field) {\n  if (field.repeated || field.kind == \"map\") {\n    return true;\n  }\n  if (field.oneof) {\n    return false;\n  }\n  if (field.kind == \"message\") {\n    return false;\n  }\n  if (field.opt || field.req) {\n    return false;\n  }\n  return true;\n}\nfunction browser_writeField(field, value, options) {\n  if (field.kind == \"map\") {\n    browser_assert(typeof value == \"object\" && value != null);\n    const jsonObj = {};\n    const entries = Object.entries(value);\n    switch (field.V.kind) {\n      case \"scalar\":\n        for (const [entryKey, entryValue] of entries) {\n          jsonObj[entryKey.toString()] = browser_writeScalar(field.V.T, entryValue);\n        }\n        break;\n      case \"message\":\n        for (const [entryKey, entryValue] of entries) {\n          jsonObj[entryKey.toString()] = entryValue.toJson(options);\n        }\n        break;\n      case \"enum\":\n        const enumType = field.V.T;\n        for (const [entryKey, entryValue] of entries) {\n          jsonObj[entryKey.toString()] = browser_writeEnum(enumType, entryValue, options.enumAsInteger);\n        }\n        break;\n    }\n    return options.emitDefaultValues || entries.length > 0 ? jsonObj : void 0;\n  }\n  if (field.repeated) {\n    browser_assert(Array.isArray(value));\n    const jsonArr = [];\n    switch (field.kind) {\n      case \"scalar\":\n        for (let i = 0; i < value.length; i++) {\n          jsonArr.push(browser_writeScalar(field.T, value[i]));\n        }\n        break;\n      case \"enum\":\n        for (let i = 0; i < value.length; i++) {\n          jsonArr.push(browser_writeEnum(field.T, value[i], options.enumAsInteger));\n        }\n        break;\n      case \"message\":\n        for (let i = 0; i < value.length; i++) {\n          jsonArr.push(value[i].toJson(options));\n        }\n        break;\n    }\n    return options.emitDefaultValues || jsonArr.length > 0 ? jsonArr : void 0;\n  }\n  switch (field.kind) {\n    case \"scalar\":\n      return browser_writeScalar(field.T, value);\n    case \"enum\":\n      return browser_writeEnum(field.T, value, options.enumAsInteger);\n    case \"message\":\n      return browser_wrapField(field.T, value).toJson(options);\n  }\n}\nfunction browser_writeEnum(type, value, enumAsInteger) {\n  var _a;\n  browser_assert(typeof value == \"number\");\n  if (type.typeName == \"google.protobuf.NullValue\") {\n    return null;\n  }\n  if (enumAsInteger) {\n    return value;\n  }\n  const val = type.findNumber(value);\n  return (_a = val === null || val === void 0 ? void 0 : val.name) !== null && _a !== void 0 ? _a : value;\n}\nfunction browser_writeScalar(type, value) {\n  switch (type) {\n    // int32, fixed32, uint32: JSON value will be a decimal number. Either numbers or strings are accepted.\n    case browser_ScalarType.INT32:\n    case browser_ScalarType.SFIXED32:\n    case browser_ScalarType.SINT32:\n    case browser_ScalarType.FIXED32:\n    case browser_ScalarType.UINT32:\n      browser_assert(typeof value == \"number\");\n      return value;\n    // float, double: JSON value will be a number or one of the special string values \"NaN\", \"Infinity\", and \"-Infinity\".\n    // Either numbers or strings are accepted. Exponent notation is also accepted.\n    case browser_ScalarType.FLOAT:\n    // assertFloat32(value);\n    case browser_ScalarType.DOUBLE:\n      browser_assert(typeof value == \"number\");\n      if (Number.isNaN(value))\n        return \"NaN\";\n      if (value === Number.POSITIVE_INFINITY)\n        return \"Infinity\";\n      if (value === Number.NEGATIVE_INFINITY)\n        return \"-Infinity\";\n      return value;\n    // string:\n    case browser_ScalarType.STRING:\n      browser_assert(typeof value == \"string\");\n      return value;\n    // bool:\n    case browser_ScalarType.BOOL:\n      browser_assert(typeof value == \"boolean\");\n      return value;\n    // JSON value will be a decimal string. Either numbers or strings are accepted.\n    case browser_ScalarType.UINT64:\n    case browser_ScalarType.FIXED64:\n    case browser_ScalarType.INT64:\n    case browser_ScalarType.SFIXED64:\n    case browser_ScalarType.SINT64:\n      browser_assert(typeof value == \"bigint\" || typeof value == \"string\" || typeof value == \"number\");\n      return value.toString();\n    // bytes: JSON value will be the data encoded as a string using standard base64 encoding with paddings.\n    // Either standard or URL-safe base64 encoding with/without paddings are accepted.\n    case browser_ScalarType.BYTES:\n      browser_assert(value instanceof Uint8Array);\n      return browser_protoBase64.enc(value);\n  }\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/binary-format.js\nvar import_buffer20 = browser_toESM(require_buffer(), 1);\nvar browser_unknownFieldsSymbol = Symbol(\"@bufbuild/protobuf/unknown-fields\");\nvar browser_readDefaults = {\n  readUnknownFields: true,\n  readerFactory: (bytes) => new browser_BinaryReader(bytes)\n};\nvar browser_writeDefaults = {\n  writeUnknownFields: true,\n  writerFactory: () => new browser_BinaryWriter()\n};\nfunction makeReadOptions2(options) {\n  return options ? Object.assign(Object.assign({}, browser_readDefaults), options) : browser_readDefaults;\n}\nfunction makeWriteOptions2(options) {\n  return options ? Object.assign(Object.assign({}, browser_writeDefaults), options) : browser_writeDefaults;\n}\nfunction browser_makeBinaryFormat() {\n  return {\n    makeReadOptions: makeReadOptions2,\n    makeWriteOptions: makeWriteOptions2,\n    listUnknownFields(message) {\n      var _a;\n      return (_a = message[browser_unknownFieldsSymbol]) !== null && _a !== void 0 ? _a : [];\n    },\n    discardUnknownFields(message) {\n      delete message[browser_unknownFieldsSymbol];\n    },\n    writeUnknownFields(message, writer) {\n      const m = message;\n      const c = m[browser_unknownFieldsSymbol];\n      if (c) {\n        for (const f of c) {\n          writer.tag(f.no, f.wireType).raw(f.data);\n        }\n      }\n    },\n    onUnknownField(message, no, wireType, data) {\n      const m = message;\n      if (!Array.isArray(m[browser_unknownFieldsSymbol])) {\n        m[browser_unknownFieldsSymbol] = [];\n      }\n      m[browser_unknownFieldsSymbol].push({ no, wireType, data });\n    },\n    readMessage(message, reader, lengthOrEndTagFieldNo, options, delimitedMessageEncoding) {\n      const type = message.getType();\n      const end = delimitedMessageEncoding ? reader.len : reader.pos + lengthOrEndTagFieldNo;\n      let fieldNo, wireType;\n      while (reader.pos < end) {\n        [fieldNo, wireType] = reader.tag();\n        if (delimitedMessageEncoding === true && wireType == browser_WireType.EndGroup) {\n          break;\n        }\n        const field = type.fields.find(fieldNo);\n        if (!field) {\n          const data = reader.skip(wireType, fieldNo);\n          if (options.readUnknownFields) {\n            this.onUnknownField(message, fieldNo, wireType, data);\n          }\n          continue;\n        }\n        readField2(message, reader, field, wireType, options);\n      }\n      if (delimitedMessageEncoding && // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n      (wireType != browser_WireType.EndGroup || fieldNo !== lengthOrEndTagFieldNo)) {\n        throw new Error(`invalid end group tag`);\n      }\n    },\n    readField: readField2,\n    writeMessage(message, writer, options) {\n      const type = message.getType();\n      for (const field of type.fields.byNumber()) {\n        if (!browser_isFieldSet(field, message)) {\n          if (field.req) {\n            throw new Error(`cannot encode field ${type.typeName}.${field.name} to binary: required field not set`);\n          }\n          continue;\n        }\n        const value = field.oneof ? message[field.oneof.localName].value : message[field.localName];\n        writeField2(field, value, writer, options);\n      }\n      if (options.writeUnknownFields) {\n        this.writeUnknownFields(message, writer);\n      }\n      return writer;\n    },\n    writeField(field, value, writer, options) {\n      if (value === void 0) {\n        return void 0;\n      }\n      writeField2(field, value, writer, options);\n    }\n  };\n}\nfunction readField2(target, reader, field, wireType, options) {\n  let { repeated, localName } = field;\n  if (field.oneof) {\n    target = target[field.oneof.localName];\n    if (target.case != localName) {\n      delete target.value;\n    }\n    target.case = localName;\n    localName = \"value\";\n  }\n  switch (field.kind) {\n    case \"scalar\":\n    case \"enum\":\n      const scalarType = field.kind == \"enum\" ? browser_ScalarType.INT32 : field.T;\n      let read = readScalar2;\n      if (field.kind == \"scalar\" && field.L > 0) {\n        read = browser_readScalarLTString;\n      }\n      if (repeated) {\n        let arr = target[localName];\n        const isPacked = wireType == browser_WireType.LengthDelimited && scalarType != browser_ScalarType.STRING && scalarType != browser_ScalarType.BYTES;\n        if (isPacked) {\n          let e = reader.uint32() + reader.pos;\n          while (reader.pos < e) {\n            arr.push(read(reader, scalarType));\n          }\n        } else {\n          arr.push(read(reader, scalarType));\n        }\n      } else {\n        target[localName] = read(reader, scalarType);\n      }\n      break;\n    case \"message\":\n      const messageType = field.T;\n      if (repeated) {\n        target[localName].push(browser_readMessageField(reader, new messageType(), options, field));\n      } else {\n        if (browser_isMessage(target[localName])) {\n          browser_readMessageField(reader, target[localName], options, field);\n        } else {\n          target[localName] = browser_readMessageField(reader, new messageType(), options, field);\n          if (messageType.fieldWrapper && !field.oneof && !field.repeated) {\n            target[localName] = messageType.fieldWrapper.unwrapField(target[localName]);\n          }\n        }\n      }\n      break;\n    case \"map\":\n      let [mapKey, mapVal] = browser_readMapEntry(field, reader, options);\n      target[localName][mapKey] = mapVal;\n      break;\n  }\n}\nfunction browser_readMessageField(reader, message, options, field) {\n  const format = message.getType().runtime.bin;\n  const delimited = field === null || field === void 0 ? void 0 : field.delimited;\n  format.readMessage(\n    message,\n    reader,\n    delimited ? field.no : reader.uint32(),\n    // eslint-disable-line @typescript-eslint/strict-boolean-expressions\n    options,\n    delimited\n  );\n  return message;\n}\nfunction browser_readMapEntry(field, reader, options) {\n  const length = reader.uint32(), end = reader.pos + length;\n  let key, val;\n  while (reader.pos < end) {\n    const [fieldNo] = reader.tag();\n    switch (fieldNo) {\n      case 1:\n        key = readScalar2(reader, field.K);\n        break;\n      case 2:\n        switch (field.V.kind) {\n          case \"scalar\":\n            val = readScalar2(reader, field.V.T);\n            break;\n          case \"enum\":\n            val = reader.int32();\n            break;\n          case \"message\":\n            val = browser_readMessageField(reader, new field.V.T(), options, void 0);\n            break;\n        }\n        break;\n    }\n  }\n  if (key === void 0) {\n    key = browser_scalarZeroValue(field.K, browser_LongType.BIGINT);\n  }\n  if (typeof key != \"string\" && typeof key != \"number\") {\n    key = key.toString();\n  }\n  if (val === void 0) {\n    switch (field.V.kind) {\n      case \"scalar\":\n        val = browser_scalarZeroValue(field.V.T, browser_LongType.BIGINT);\n        break;\n      case \"enum\":\n        val = field.V.T.values[0].no;\n        break;\n      case \"message\":\n        val = new field.V.T();\n        break;\n    }\n  }\n  return [key, val];\n}\nfunction browser_readScalarLTString(reader, type) {\n  const v = readScalar2(reader, type);\n  return typeof v == \"bigint\" ? v.toString() : v;\n}\nfunction readScalar2(reader, type) {\n  switch (type) {\n    case browser_ScalarType.STRING:\n      return reader.string();\n    case browser_ScalarType.BOOL:\n      return reader.bool();\n    case browser_ScalarType.DOUBLE:\n      return reader.double();\n    case browser_ScalarType.FLOAT:\n      return reader.float();\n    case browser_ScalarType.INT32:\n      return reader.int32();\n    case browser_ScalarType.INT64:\n      return reader.int64();\n    case browser_ScalarType.UINT64:\n      return reader.uint64();\n    case browser_ScalarType.FIXED64:\n      return reader.fixed64();\n    case browser_ScalarType.BYTES:\n      return reader.bytes();\n    case browser_ScalarType.FIXED32:\n      return reader.fixed32();\n    case browser_ScalarType.SFIXED32:\n      return reader.sfixed32();\n    case browser_ScalarType.SFIXED64:\n      return reader.sfixed64();\n    case browser_ScalarType.SINT64:\n      return reader.sint64();\n    case browser_ScalarType.UINT32:\n      return reader.uint32();\n    case browser_ScalarType.SINT32:\n      return reader.sint32();\n  }\n}\nfunction writeField2(field, value, writer, options) {\n  browser_assert(value !== void 0);\n  const repeated = field.repeated;\n  switch (field.kind) {\n    case \"scalar\":\n    case \"enum\":\n      let scalarType = field.kind == \"enum\" ? browser_ScalarType.INT32 : field.T;\n      if (repeated) {\n        browser_assert(Array.isArray(value));\n        if (field.packed) {\n          browser_writePacked(writer, scalarType, field.no, value);\n        } else {\n          for (const item of value) {\n            writeScalar2(writer, scalarType, field.no, item);\n          }\n        }\n      } else {\n        writeScalar2(writer, scalarType, field.no, value);\n      }\n      break;\n    case \"message\":\n      if (repeated) {\n        browser_assert(Array.isArray(value));\n        for (const item of value) {\n          browser_writeMessageField(writer, options, field, item);\n        }\n      } else {\n        browser_writeMessageField(writer, options, field, value);\n      }\n      break;\n    case \"map\":\n      browser_assert(typeof value == \"object\" && value != null);\n      for (const [key, val] of Object.entries(value)) {\n        browser_writeMapEntry(writer, options, field, key, val);\n      }\n      break;\n  }\n}\nfunction browser_writeMapEntry(writer, options, field, key, value) {\n  writer.tag(field.no, browser_WireType.LengthDelimited);\n  writer.fork();\n  let keyValue = key;\n  switch (field.K) {\n    case browser_ScalarType.INT32:\n    case browser_ScalarType.FIXED32:\n    case browser_ScalarType.UINT32:\n    case browser_ScalarType.SFIXED32:\n    case browser_ScalarType.SINT32:\n      keyValue = Number.parseInt(key);\n      break;\n    case browser_ScalarType.BOOL:\n      browser_assert(key == \"true\" || key == \"false\");\n      keyValue = key == \"true\";\n      break;\n  }\n  writeScalar2(writer, field.K, 1, keyValue);\n  switch (field.V.kind) {\n    case \"scalar\":\n      writeScalar2(writer, field.V.T, 2, value);\n      break;\n    case \"enum\":\n      writeScalar2(writer, browser_ScalarType.INT32, 2, value);\n      break;\n    case \"message\":\n      browser_assert(value !== void 0);\n      writer.tag(2, browser_WireType.LengthDelimited).bytes(value.toBinary(options));\n      break;\n  }\n  writer.join();\n}\nfunction browser_writeMessageField(writer, options, field, value) {\n  const message = browser_wrapField(field.T, value);\n  if (field.delimited)\n    writer.tag(field.no, browser_WireType.StartGroup).raw(message.toBinary(options)).tag(field.no, browser_WireType.EndGroup);\n  else\n    writer.tag(field.no, browser_WireType.LengthDelimited).bytes(message.toBinary(options));\n}\nfunction writeScalar2(writer, type, fieldNo, value) {\n  browser_assert(value !== void 0);\n  let [wireType, method] = browser_scalarTypeInfo(type);\n  writer.tag(fieldNo, wireType)[method](value);\n}\nfunction browser_writePacked(writer, type, fieldNo, value) {\n  if (!value.length) {\n    return;\n  }\n  writer.tag(fieldNo, browser_WireType.LengthDelimited).fork();\n  let [, method] = browser_scalarTypeInfo(type);\n  for (let i = 0; i < value.length; i++) {\n    writer[method](value[i]);\n  }\n  writer.join();\n}\nfunction browser_scalarTypeInfo(type) {\n  let wireType = browser_WireType.Varint;\n  switch (type) {\n    case browser_ScalarType.BYTES:\n    case browser_ScalarType.STRING:\n      wireType = browser_WireType.LengthDelimited;\n      break;\n    case browser_ScalarType.DOUBLE:\n    case browser_ScalarType.FIXED64:\n    case browser_ScalarType.SFIXED64:\n      wireType = browser_WireType.Bit64;\n      break;\n    case browser_ScalarType.FIXED32:\n    case browser_ScalarType.SFIXED32:\n    case browser_ScalarType.FLOAT:\n      wireType = browser_WireType.Bit32;\n      break;\n  }\n  const method = browser_ScalarType[type].toLowerCase();\n  return [wireType, method];\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/util-common.js\nvar import_buffer21 = browser_toESM(require_buffer(), 1);\nfunction browser_makeUtilCommon() {\n  return {\n    setEnumType: browser_setEnumType,\n    initPartial(source, target) {\n      if (source === void 0) {\n        return;\n      }\n      const type = target.getType();\n      for (const member of type.fields.byMember()) {\n        const localName = member.localName, t = target, s = source;\n        if (s[localName] == null) {\n          continue;\n        }\n        switch (member.kind) {\n          case \"oneof\":\n            const sk = s[localName].case;\n            if (sk === void 0) {\n              continue;\n            }\n            const sourceField = member.findField(sk);\n            let val = s[localName].value;\n            if (sourceField && sourceField.kind == \"message\" && !browser_isMessage(val, sourceField.T)) {\n              val = new sourceField.T(val);\n            } else if (sourceField && sourceField.kind === \"scalar\" && sourceField.T === browser_ScalarType.BYTES) {\n              val = browser_toU8Arr(val);\n            }\n            t[localName] = { case: sk, value: val };\n            break;\n          case \"scalar\":\n          case \"enum\":\n            let copy = s[localName];\n            if (member.T === browser_ScalarType.BYTES) {\n              copy = member.repeated ? copy.map(browser_toU8Arr) : browser_toU8Arr(copy);\n            }\n            t[localName] = copy;\n            break;\n          case \"map\":\n            switch (member.V.kind) {\n              case \"scalar\":\n              case \"enum\":\n                if (member.V.T === browser_ScalarType.BYTES) {\n                  for (const [k, v] of Object.entries(s[localName])) {\n                    t[localName][k] = browser_toU8Arr(v);\n                  }\n                } else {\n                  Object.assign(t[localName], s[localName]);\n                }\n                break;\n              case \"message\":\n                const messageType = member.V.T;\n                for (const k of Object.keys(s[localName])) {\n                  let val2 = s[localName][k];\n                  if (!messageType.fieldWrapper) {\n                    val2 = new messageType(val2);\n                  }\n                  t[localName][k] = val2;\n                }\n                break;\n            }\n            break;\n          case \"message\":\n            const mt = member.T;\n            if (member.repeated) {\n              t[localName] = s[localName].map((val2) => browser_isMessage(val2, mt) ? val2 : new mt(val2));\n            } else {\n              const val2 = s[localName];\n              if (mt.fieldWrapper) {\n                if (\n                  // We can't use BytesValue.typeName as that will create a circular import\n                  mt.typeName === \"google.protobuf.BytesValue\"\n                ) {\n                  t[localName] = browser_toU8Arr(val2);\n                } else {\n                  t[localName] = val2;\n                }\n              } else {\n                t[localName] = browser_isMessage(val2, mt) ? val2 : new mt(val2);\n              }\n            }\n            break;\n        }\n      }\n    },\n    // TODO use isFieldSet() here to support future field presence\n    equals(type, a, b) {\n      if (a === b) {\n        return true;\n      }\n      if (!a || !b) {\n        return false;\n      }\n      return type.fields.byMember().every((m) => {\n        const va = a[m.localName];\n        const vb = b[m.localName];\n        if (m.repeated) {\n          if (va.length !== vb.length) {\n            return false;\n          }\n          switch (m.kind) {\n            case \"message\":\n              return va.every((a2, i) => m.T.equals(a2, vb[i]));\n            case \"scalar\":\n              return va.every((a2, i) => browser_scalarEquals(m.T, a2, vb[i]));\n            case \"enum\":\n              return va.every((a2, i) => browser_scalarEquals(browser_ScalarType.INT32, a2, vb[i]));\n          }\n          throw new Error(`repeated cannot contain ${m.kind}`);\n        }\n        switch (m.kind) {\n          case \"message\":\n            return m.T.equals(va, vb);\n          case \"enum\":\n            return browser_scalarEquals(browser_ScalarType.INT32, va, vb);\n          case \"scalar\":\n            return browser_scalarEquals(m.T, va, vb);\n          case \"oneof\":\n            if (va.case !== vb.case) {\n              return false;\n            }\n            const s = m.findField(va.case);\n            if (s === void 0) {\n              return true;\n            }\n            switch (s.kind) {\n              case \"message\":\n                return s.T.equals(va.value, vb.value);\n              case \"enum\":\n                return browser_scalarEquals(browser_ScalarType.INT32, va.value, vb.value);\n              case \"scalar\":\n                return browser_scalarEquals(s.T, va.value, vb.value);\n            }\n            throw new Error(`oneof cannot contain ${s.kind}`);\n          case \"map\":\n            const keys = Object.keys(va).concat(Object.keys(vb));\n            switch (m.V.kind) {\n              case \"message\":\n                const messageType = m.V.T;\n                return keys.every((k) => messageType.equals(va[k], vb[k]));\n              case \"enum\":\n                return keys.every((k) => browser_scalarEquals(browser_ScalarType.INT32, va[k], vb[k]));\n              case \"scalar\":\n                const scalarType = m.V.T;\n                return keys.every((k) => browser_scalarEquals(scalarType, va[k], vb[k]));\n            }\n            break;\n        }\n      });\n    },\n    // TODO use isFieldSet() here to support future field presence\n    clone(message) {\n      const type = message.getType(), target = new type(), any = target;\n      for (const member of type.fields.byMember()) {\n        const source = message[member.localName];\n        let copy;\n        if (member.repeated) {\n          copy = source.map(browser_cloneSingularField);\n        } else if (member.kind == \"map\") {\n          copy = any[member.localName];\n          for (const [key, v] of Object.entries(source)) {\n            copy[key] = browser_cloneSingularField(v);\n          }\n        } else if (member.kind == \"oneof\") {\n          const f = member.findField(source.case);\n          copy = f ? { case: source.case, value: browser_cloneSingularField(source.value) } : { case: void 0 };\n        } else {\n          copy = browser_cloneSingularField(source);\n        }\n        any[member.localName] = copy;\n      }\n      for (const uf of type.runtime.bin.listUnknownFields(message)) {\n        type.runtime.bin.onUnknownField(any, uf.no, uf.wireType, uf.data);\n      }\n      return target;\n    }\n  };\n}\nfunction browser_cloneSingularField(value) {\n  if (value === void 0) {\n    return value;\n  }\n  if (browser_isMessage(value)) {\n    return value.clone();\n  }\n  if (value instanceof Uint8Array) {\n    const c = new Uint8Array(value.byteLength);\n    c.set(value);\n    return c;\n  }\n  return value;\n}\nfunction browser_toU8Arr(input) {\n  return input instanceof Uint8Array ? input : new Uint8Array(input);\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/proto-runtime.js\nfunction browser_makeProtoRuntime(syntax, newFieldList, initFields) {\n  return {\n    syntax,\n    json: browser_makeJsonFormat(),\n    bin: browser_makeBinaryFormat(),\n    util: Object.assign(Object.assign({}, browser_makeUtilCommon()), {\n      newFieldList,\n      initFields\n    }),\n    makeMessageType(typeName, fields, opt) {\n      return browser_makeMessageType(this, typeName, fields, opt);\n    },\n    makeEnum: browser_makeEnum,\n    makeEnumType: browser_makeEnumType,\n    getEnumType: browser_getEnumType,\n    makeExtension(typeName, extendee, field) {\n      return browser_makeExtension(this, typeName, extendee, field);\n    }\n  };\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field-list.js\nvar import_buffer23 = browser_toESM(require_buffer(), 1);\nvar browser_InternalFieldList = class {\n  constructor(fields, normalizer) {\n    this._fields = fields;\n    this._normalizer = normalizer;\n  }\n  findJsonName(jsonName) {\n    if (!this.jsonNames) {\n      const t = {};\n      for (const f of this.list()) {\n        t[f.jsonName] = t[f.name] = f;\n      }\n      this.jsonNames = t;\n    }\n    return this.jsonNames[jsonName];\n  }\n  find(fieldNo) {\n    if (!this.numbers) {\n      const t = {};\n      for (const f of this.list()) {\n        t[f.no] = f;\n      }\n      this.numbers = t;\n    }\n    return this.numbers[fieldNo];\n  }\n  list() {\n    if (!this.all) {\n      this.all = this._normalizer(this._fields);\n    }\n    return this.all;\n  }\n  byNumber() {\n    if (!this.numbersAsc) {\n      this.numbersAsc = this.list().concat().sort((a, b) => a.no - b.no);\n    }\n    return this.numbersAsc;\n  }\n  byMember() {\n    if (!this.members) {\n      this.members = [];\n      const a = this.members;\n      let o;\n      for (const f of this.list()) {\n        if (f.oneof) {\n          if (f.oneof !== o) {\n            o = f.oneof;\n            a.push(o);\n          }\n        } else {\n          a.push(f);\n        }\n      }\n    }\n    return this.members;\n  }\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js\nvar import_buffer26 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field.js\nvar import_buffer25 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/names.js\nvar import_buffer24 = browser_toESM(require_buffer(), 1);\nfunction browser_localFieldName(protoName, inOneof) {\n  const name = browser_protoCamelCase(protoName);\n  if (inOneof) {\n    return name;\n  }\n  return browser_safeObjectProperty(browser_safeMessageProperty(name));\n}\nfunction browser_localOneofName(protoName) {\n  return browser_localFieldName(protoName, false);\n}\nvar browser_fieldJsonName = browser_protoCamelCase;\nfunction browser_protoCamelCase(snakeCase) {\n  let capNext = false;\n  const b = [];\n  for (let i = 0; i < snakeCase.length; i++) {\n    let c = snakeCase.charAt(i);\n    switch (c) {\n      case \"_\":\n        capNext = true;\n        break;\n      case \"0\":\n      case \"1\":\n      case \"2\":\n      case \"3\":\n      case \"4\":\n      case \"5\":\n      case \"6\":\n      case \"7\":\n      case \"8\":\n      case \"9\":\n        b.push(c);\n        capNext = false;\n        break;\n      default:\n        if (capNext) {\n          capNext = false;\n          c = c.toUpperCase();\n        }\n        b.push(c);\n        break;\n    }\n  }\n  return b.join(\"\");\n}\nvar browser_reservedObjectProperties = /* @__PURE__ */ new Set([\n  // names reserved by JavaScript\n  \"constructor\",\n  \"toString\",\n  \"toJSON\",\n  \"valueOf\"\n]);\nvar browser_reservedMessageProperties = /* @__PURE__ */ new Set([\n  // names reserved by the runtime\n  \"getType\",\n  \"clone\",\n  \"equals\",\n  \"fromBinary\",\n  \"fromJson\",\n  \"fromJsonString\",\n  \"toBinary\",\n  \"toJson\",\n  \"toJsonString\",\n  // names reserved by the runtime for the future\n  \"toObject\"\n]);\nvar browser_fallback = (name) => `${name}$`;\nvar browser_safeMessageProperty = (name) => {\n  if (browser_reservedMessageProperties.has(name)) {\n    return browser_fallback(name);\n  }\n  return name;\n};\nvar browser_safeObjectProperty = (name) => {\n  if (browser_reservedObjectProperties.has(name)) {\n    return browser_fallback(name);\n  }\n  return name;\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field.js\nvar browser_InternalOneofInfo = class {\n  constructor(name) {\n    this.kind = \"oneof\";\n    this.repeated = false;\n    this.packed = false;\n    this.opt = false;\n    this.req = false;\n    this.default = void 0;\n    this.fields = [];\n    this.name = name;\n    this.localName = browser_localOneofName(name);\n  }\n  addField(field) {\n    browser_assert(field.oneof === this, `field ${field.name} not one of ${this.name}`);\n    this.fields.push(field);\n  }\n  findField(localName) {\n    if (!this._lookup) {\n      this._lookup = /* @__PURE__ */ Object.create(null);\n      for (let i = 0; i < this.fields.length; i++) {\n        this._lookup[this.fields[i].localName] = this.fields[i];\n      }\n    }\n    return this._lookup[localName];\n  }\n};\n\n// node_modules/@bufbuild/protobuf/dist/esm/private/field-normalize.js\nfunction browser_normalizeFieldInfos(fieldInfos, packedByDefault) {\n  var _a, _b, _c, _d, _e, _f;\n  const r = [];\n  let o;\n  for (const field of typeof fieldInfos == \"function\" ? fieldInfos() : fieldInfos) {\n    const f = field;\n    f.localName = browser_localFieldName(field.name, field.oneof !== void 0);\n    f.jsonName = (_a = field.jsonName) !== null && _a !== void 0 ? _a : browser_fieldJsonName(field.name);\n    f.repeated = (_b = field.repeated) !== null && _b !== void 0 ? _b : false;\n    if (field.kind == \"scalar\") {\n      f.L = (_c = field.L) !== null && _c !== void 0 ? _c : browser_LongType.BIGINT;\n    }\n    f.delimited = (_d = field.delimited) !== null && _d !== void 0 ? _d : false;\n    f.req = (_e = field.req) !== null && _e !== void 0 ? _e : false;\n    f.opt = (_f = field.opt) !== null && _f !== void 0 ? _f : false;\n    if (field.packed === void 0) {\n      if (packedByDefault) {\n        f.packed = field.kind == \"enum\" || field.kind == \"scalar\" && field.T != browser_ScalarType.BYTES && field.T != browser_ScalarType.STRING;\n      } else {\n        f.packed = false;\n      }\n    }\n    if (field.oneof !== void 0) {\n      const ooname = typeof field.oneof == \"string\" ? field.oneof : field.oneof.name;\n      if (!o || o.name != ooname) {\n        o = new browser_InternalOneofInfo(ooname);\n      }\n      f.oneof = o;\n      o.addField(f);\n    }\n    r.push(f);\n  }\n  return r;\n}\n\n// node_modules/@bufbuild/protobuf/dist/esm/proto3.js\nvar browser_proto3 = browser_makeProtoRuntime(\n  \"proto3\",\n  (fields) => {\n    return new browser_InternalFieldList(fields, (source) => browser_normalizeFieldInfos(source, true));\n  },\n  // TODO merge with proto2 and initExtensionField, also see initPartial, equals, clone\n  (target) => {\n    for (const member of target.getType().fields.byMember()) {\n      if (member.opt) {\n        continue;\n      }\n      const name = member.localName, t = target;\n      if (member.repeated) {\n        t[name] = [];\n        continue;\n      }\n      switch (member.kind) {\n        case \"oneof\":\n          t[name] = { case: void 0 };\n          break;\n        case \"enum\":\n          t[name] = 0;\n          break;\n        case \"map\":\n          t[name] = {};\n          break;\n        case \"scalar\":\n          t[name] = browser_scalarZeroValue(member.T, member.L);\n          break;\n        case \"message\":\n          break;\n      }\n    }\n  }\n);\n\n// node_modules/@bufbuild/protobuf/dist/esm/service-type.js\nvar import_buffer28 = browser_toESM(require_buffer(), 1);\nvar browser_MethodKind;\n(function(MethodKind2) {\n  MethodKind2[MethodKind2[\"Unary\"] = 0] = \"Unary\";\n  MethodKind2[MethodKind2[\"ServerStreaming\"] = 1] = \"ServerStreaming\";\n  MethodKind2[MethodKind2[\"ClientStreaming\"] = 2] = \"ClientStreaming\";\n  MethodKind2[MethodKind2[\"BiDiStreaming\"] = 3] = \"BiDiStreaming\";\n})(browser_MethodKind || (browser_MethodKind = {}));\nvar browser_MethodIdempotency;\n(function(MethodIdempotency2) {\n  MethodIdempotency2[MethodIdempotency2[\"NoSideEffects\"] = 1] = \"NoSideEffects\";\n  MethodIdempotency2[MethodIdempotency2[\"Idempotent\"] = 2] = \"Idempotent\";\n})(browser_MethodIdempotency || (browser_MethodIdempotency = {}));\n\n// node_modules/@bufbuild/protobuf/dist/esm/google/protobuf/any_pb.js\nvar import_buffer29 = browser_toESM(require_buffer(), 1);\nvar Any = class _Any extends browser_Message {\n  constructor(data) {\n    super();\n    this.typeUrl = \"\";\n    this.value = new Uint8Array(0);\n    browser_proto3.util.initPartial(data, this);\n  }\n  toJson(options) {\n    var _a;\n    if (this.typeUrl === \"\") {\n      return {};\n    }\n    const typeName = this.typeUrlToName(this.typeUrl);\n    const messageType = (_a = options === null || options === void 0 ? void 0 : options.typeRegistry) === null || _a === void 0 ? void 0 : _a.findMessage(typeName);\n    if (!messageType) {\n      throw new Error(`cannot encode message google.protobuf.Any to JSON: \"${this.typeUrl}\" is not in the type registry`);\n    }\n    const message = messageType.fromBinary(this.value);\n    let json = message.toJson(options);\n    if (typeName.startsWith(\"google.protobuf.\") || (json === null || Array.isArray(json) || typeof json !== \"object\")) {\n      json = { value: json };\n    }\n    json[\"@type\"] = this.typeUrl;\n    return json;\n  }\n  fromJson(json, options) {\n    var _a;\n    if (json === null || Array.isArray(json) || typeof json != \"object\") {\n      throw new Error(`cannot decode message google.protobuf.Any from JSON: expected object but got ${json === null ? \"null\" : Array.isArray(json) ? \"array\" : typeof json}`);\n    }\n    if (Object.keys(json).length == 0) {\n      return this;\n    }\n    const typeUrl = json[\"@type\"];\n    if (typeof typeUrl != \"string\" || typeUrl == \"\") {\n      throw new Error(`cannot decode message google.protobuf.Any from JSON: \"@type\" is empty`);\n    }\n    const typeName = this.typeUrlToName(typeUrl), messageType = (_a = options === null || options === void 0 ? void 0 : options.typeRegistry) === null || _a === void 0 ? void 0 : _a.findMessage(typeName);\n    if (!messageType) {\n      throw new Error(`cannot decode message google.protobuf.Any from JSON: ${typeUrl} is not in the type registry`);\n    }\n    let message;\n    if (typeName.startsWith(\"google.protobuf.\") && Object.prototype.hasOwnProperty.call(json, \"value\")) {\n      message = messageType.fromJson(json[\"value\"], options);\n    } else {\n      const copy = Object.assign({}, json);\n      delete copy[\"@type\"];\n      message = messageType.fromJson(copy, options);\n    }\n    this.packFrom(message);\n    return this;\n  }\n  packFrom(message) {\n    this.value = message.toBinary();\n    this.typeUrl = this.typeNameToUrl(message.getType().typeName);\n  }\n  unpackTo(target) {\n    if (!this.is(target.getType())) {\n      return false;\n    }\n    target.fromBinary(this.value);\n    return true;\n  }\n  unpack(registry) {\n    if (this.typeUrl === \"\") {\n      return void 0;\n    }\n    const messageType = registry.findMessage(this.typeUrlToName(this.typeUrl));\n    if (!messageType) {\n      return void 0;\n    }\n    return messageType.fromBinary(this.value);\n  }\n  is(type) {\n    if (this.typeUrl === \"\") {\n      return false;\n    }\n    const name = this.typeUrlToName(this.typeUrl);\n    let typeName = \"\";\n    if (typeof type === \"string\") {\n      typeName = type;\n    } else {\n      typeName = type.typeName;\n    }\n    return name === typeName;\n  }\n  typeNameToUrl(name) {\n    return `type.googleapis.com/${name}`;\n  }\n  typeUrlToName(url) {\n    if (!url.length) {\n      throw new Error(`invalid type url: ${url}`);\n    }\n    const slash = url.lastIndexOf(\"/\");\n    const name = slash >= 0 ? url.substring(slash + 1) : url;\n    if (!name.length) {\n      throw new Error(`invalid type url: ${url}`);\n    }\n    return name;\n  }\n  static pack(message) {\n    const any = new _Any();\n    any.packFrom(message);\n    return any;\n  }\n  static fromBinary(bytes, options) {\n    return new _Any().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Any().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Any().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return browser_proto3.util.equals(_Any, a, b);\n  }\n};\nAny.runtime = browser_proto3;\nAny.typeName = \"google.protobuf.Any\";\nAny.fields = browser_proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"type_url\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  },\n  {\n    no: 2,\n    name: \"value\",\n    kind: \"scalar\",\n    T: 12\n    /* ScalarType.BYTES */\n  }\n]);\n\n// node_modules/@connectrpc/connect/dist/esm/http-headers.js\nfunction decodeBinaryHeader(value, type, options) {\n  try {\n    const bytes = browser_protoBase64.dec(value);\n    if (type) {\n      return type.fromBinary(bytes, options);\n    }\n    return bytes;\n  } catch (e) {\n    throw ConnectError.from(e, Code.DataLoss);\n  }\n}\n\n// node_modules/@connectrpc/connect/dist/esm/any-client.js\nvar import_buffer32 = browser_toESM(require_buffer(), 1);\nfunction makeAnyClient(service, createMethod) {\n  const client = {};\n  for (const [localName, methodInfo] of Object.entries(service.methods)) {\n    const method = createMethod(Object.assign(Object.assign({}, methodInfo), {\n      localName,\n      service\n    }));\n    if (method != null) {\n      client[localName] = method;\n    }\n  }\n  return client;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js\nvar import_buffer34 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/envelope.js\nvar import_buffer33 = browser_toESM(require_buffer(), 1);\nfunction createEnvelopeReadableStream(stream) {\n  let reader;\n  let buffer = new Uint8Array(0);\n  function append(chunk) {\n    const n = new Uint8Array(buffer.length + chunk.length);\n    n.set(buffer);\n    n.set(chunk, buffer.length);\n    buffer = n;\n  }\n  return new ReadableStream({\n    start() {\n      reader = stream.getReader();\n    },\n    async pull(controller) {\n      let header = void 0;\n      for (; ; ) {\n        if (header === void 0 && buffer.byteLength >= 5) {\n          let length = 0;\n          for (let i = 1; i < 5; i++) {\n            length = (length << 8) + buffer[i];\n          }\n          header = { flags: buffer[0], length };\n        }\n        if (header !== void 0 && buffer.byteLength >= header.length + 5) {\n          break;\n        }\n        const result = await reader.read();\n        if (result.done) {\n          break;\n        }\n        append(result.value);\n      }\n      if (header === void 0) {\n        if (buffer.byteLength == 0) {\n          controller.close();\n          return;\n        }\n        controller.error(new ConnectError(\"premature end of stream\", Code.DataLoss));\n        return;\n      }\n      const data = buffer.subarray(5, 5 + header.length);\n      buffer = buffer.subarray(5 + header.length);\n      controller.enqueue({\n        flags: header.flags,\n        data\n      });\n    }\n  });\n}\nfunction encodeEnvelope(flags, data) {\n  const bytes = new Uint8Array(data.length + 5);\n  bytes.set(data, 5);\n  const v = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);\n  v.setUint8(0, flags);\n  v.setUint32(1, data.length);\n  return bytes;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/async-iterable.js\nvar __asyncValues = function(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i);\n  function verb(n) {\n    i[n] = o[n] && function(v) {\n      return new Promise(function(resolve, reject) {\n        v = o[n](v), settle(resolve, reject, v.done, v.value);\n      });\n    };\n  }\n  function settle(resolve, reject, d, v) {\n    Promise.resolve(v).then(function(v2) {\n      resolve({ value: v2, done: d });\n    }, reject);\n  }\n};\nvar __await = function(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n};\nvar __asyncGenerator = function(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i;\n  function awaitReturn(f) {\n    return function(v) {\n      return Promise.resolve(v).then(f, reject);\n    };\n  }\n  function verb(n, f) {\n    if (g[n]) {\n      i[n] = function(v) {\n        return new Promise(function(a, b) {\n          q.push([n, v, a, b]) > 1 || resume(n, v);\n        });\n      };\n      if (f) i[n] = f(i[n]);\n    }\n  }\n  function resume(n, v) {\n    try {\n      step(g[n](v));\n    } catch (e) {\n      settle(q[0][3], e);\n    }\n  }\n  function step(r) {\n    r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n  }\n  function fulfill(value) {\n    resume(\"next\", value);\n  }\n  function reject(value) {\n    resume(\"throw\", value);\n  }\n  function settle(f, v) {\n    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n  }\n};\nvar __asyncDelegator = function(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function(e) {\n    throw e;\n  }), verb(\"return\"), i[Symbol.iterator] = function() {\n    return this;\n  }, i;\n  function verb(n, f) {\n    i[n] = o[n] ? function(v) {\n      return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v;\n    } : f;\n  }\n};\nfunction createAsyncIterable(items) {\n  return __asyncGenerator(this, arguments, function* createAsyncIterable_1() {\n    yield __await(yield* __asyncDelegator(__asyncValues(items)));\n  });\n}\n\n// node_modules/@connectrpc/connect/dist/esm/promise-client.js\nvar import_buffer35 = browser_toESM(require_buffer(), 1);\nvar __asyncValues2 = function(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i);\n  function verb(n) {\n    i[n] = o[n] && function(v) {\n      return new Promise(function(resolve, reject) {\n        v = o[n](v), settle(resolve, reject, v.done, v.value);\n      });\n    };\n  }\n  function settle(resolve, reject, d, v) {\n    Promise.resolve(v).then(function(v2) {\n      resolve({ value: v2, done: d });\n    }, reject);\n  }\n};\nvar __await2 = function(v) {\n  return this instanceof __await2 ? (this.v = v, this) : new __await2(v);\n};\nvar __asyncDelegator2 = function(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function(e) {\n    throw e;\n  }), verb(\"return\"), i[Symbol.iterator] = function() {\n    return this;\n  }, i;\n  function verb(n, f) {\n    i[n] = o[n] ? function(v) {\n      return (p = !p) ? { value: __await2(o[n](v)), done: false } : f ? f(v) : v;\n    } : f;\n  }\n};\nvar __asyncGenerator2 = function(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i;\n  function awaitReturn(f) {\n    return function(v) {\n      return Promise.resolve(v).then(f, reject);\n    };\n  }\n  function verb(n, f) {\n    if (g[n]) {\n      i[n] = function(v) {\n        return new Promise(function(a, b) {\n          q.push([n, v, a, b]) > 1 || resume(n, v);\n        });\n      };\n      if (f) i[n] = f(i[n]);\n    }\n  }\n  function resume(n, v) {\n    try {\n      step(g[n](v));\n    } catch (e) {\n      settle(q[0][3], e);\n    }\n  }\n  function step(r) {\n    r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n  }\n  function fulfill(value) {\n    resume(\"next\", value);\n  }\n  function reject(value) {\n    resume(\"throw\", value);\n  }\n  function settle(f, v) {\n    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n  }\n};\nfunction createPromiseClient(service, transport) {\n  return makeAnyClient(service, (method) => {\n    switch (method.kind) {\n      case browser_MethodKind.Unary:\n        return createUnaryFn(transport, service, method);\n      case browser_MethodKind.ServerStreaming:\n        return createServerStreamingFn(transport, service, method);\n      case browser_MethodKind.ClientStreaming:\n        return createClientStreamingFn(transport, service, method);\n      case browser_MethodKind.BiDiStreaming:\n        return createBiDiStreamingFn(transport, service, method);\n      default:\n        return null;\n    }\n  });\n}\nfunction createUnaryFn(transport, service, method) {\n  return async function(input, options) {\n    var _a, _b;\n    const response = await transport.unary(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, input, options === null || options === void 0 ? void 0 : options.contextValues);\n    (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n    (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n    return response.message;\n  };\n}\nfunction createServerStreamingFn(transport, service, method) {\n  return function(input, options) {\n    return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, createAsyncIterable([input]), options === null || options === void 0 ? void 0 : options.contextValues), options);\n  };\n}\nfunction createClientStreamingFn(transport, service, method) {\n  return async function(request, options) {\n    var _a, e_1, _b, _c;\n    var _d, _e;\n    const response = await transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues);\n    (_d = options === null || options === void 0 ? void 0 : options.onHeader) === null || _d === void 0 ? void 0 : _d.call(options, response.header);\n    let singleMessage;\n    try {\n      for (var _f = true, _g = __asyncValues2(response.message), _h; _h = await _g.next(), _a = _h.done, !_a; _f = true) {\n        _c = _h.value;\n        _f = false;\n        const message = _c;\n        singleMessage = message;\n      }\n    } catch (e_1_1) {\n      e_1 = { error: e_1_1 };\n    } finally {\n      try {\n        if (!_f && !_a && (_b = _g.return)) await _b.call(_g);\n      } finally {\n        if (e_1) throw e_1.error;\n      }\n    }\n    if (!singleMessage) {\n      throw new ConnectError(\"protocol error: missing response message\", Code.Internal);\n    }\n    (_e = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _e === void 0 ? void 0 : _e.call(options, response.trailer);\n    return singleMessage;\n  };\n}\nfunction createBiDiStreamingFn(transport, service, method) {\n  return function(request, options) {\n    return handleStreamResponse(transport.stream(service, method, options === null || options === void 0 ? void 0 : options.signal, options === null || options === void 0 ? void 0 : options.timeoutMs, options === null || options === void 0 ? void 0 : options.headers, request, options === null || options === void 0 ? void 0 : options.contextValues), options);\n  };\n}\nfunction handleStreamResponse(stream, options) {\n  const it = function() {\n    var _a, _b;\n    return __asyncGenerator2(this, arguments, function* () {\n      const response = yield __await2(stream);\n      (_a = options === null || options === void 0 ? void 0 : options.onHeader) === null || _a === void 0 ? void 0 : _a.call(options, response.header);\n      yield __await2(yield* __asyncDelegator2(__asyncValues2(response.message)));\n      (_b = options === null || options === void 0 ? void 0 : options.onTrailer) === null || _b === void 0 ? void 0 : _b.call(options, response.trailer);\n    });\n  }()[Symbol.asyncIterator]();\n  return {\n    [Symbol.asyncIterator]: () => ({\n      next: () => it.next()\n    })\n  };\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/signals.js\nvar import_buffer36 = browser_toESM(require_buffer(), 1);\nfunction createLinkedAbortController(...signals) {\n  const controller = new AbortController();\n  const sa = signals.filter((s) => s !== void 0).concat(controller.signal);\n  for (const signal of sa) {\n    if (signal.aborted) {\n      onAbort.apply(signal);\n      break;\n    }\n    signal.addEventListener(\"abort\", onAbort);\n  }\n  function onAbort() {\n    if (!controller.signal.aborted) {\n      controller.abort(getAbortSignalReason(this));\n    }\n    for (const signal of sa) {\n      signal.removeEventListener(\"abort\", onAbort);\n    }\n  }\n  return controller;\n}\nfunction createDeadlineSignal(timeoutMs) {\n  const controller = new AbortController();\n  const listener = () => {\n    controller.abort(new ConnectError(\"the operation timed out\", Code.DeadlineExceeded));\n  };\n  let timeoutId;\n  if (timeoutMs !== void 0) {\n    if (timeoutMs <= 0)\n      listener();\n    else\n      timeoutId = setTimeout(listener, timeoutMs);\n  }\n  return {\n    signal: controller.signal,\n    cleanup: () => clearTimeout(timeoutId)\n  };\n}\nfunction getAbortSignalReason(signal) {\n  if (!signal.aborted) {\n    return void 0;\n  }\n  if (signal.reason !== void 0) {\n    return signal.reason;\n  }\n  const e = new Error(\"This operation was aborted\");\n  e.name = \"AbortError\";\n  return e;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/context-values.js\nvar import_buffer37 = browser_toESM(require_buffer(), 1);\nfunction createContextValues() {\n  return {\n    get(key) {\n      return key.id in this ? this[key.id] : key.defaultValue;\n    },\n    set(key, value) {\n      this[key.id] = value;\n      return this;\n    },\n    delete(key) {\n      delete this[key.id];\n      return this;\n    }\n  };\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/trailer.js\nvar import_buffer38 = browser_toESM(require_buffer(), 1);\nvar trailerFlag = 128;\nfunction trailerParse(data) {\n  const headers = new Headers();\n  const lines = new TextDecoder().decode(data).split(\"\\r\\n\");\n  for (const line of lines) {\n    if (line === \"\") {\n      continue;\n    }\n    const i = line.indexOf(\":\");\n    if (i > 0) {\n      const name = line.substring(0, i).trim();\n      const value = line.substring(i + 1).trim();\n      headers.append(name, value);\n    }\n  }\n  return headers;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.js\nvar import_buffer40 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/headers.js\nvar import_buffer39 = browser_toESM(require_buffer(), 1);\nvar headerContentType = \"Content-Type\";\nvar headerTimeout = \"Grpc-Timeout\";\nvar headerGrpcStatus = \"Grpc-Status\";\nvar headerGrpcMessage = \"Grpc-Message\";\nvar headerStatusDetailsBin = \"Grpc-Status-Details-Bin\";\nvar headerUserAgent = \"User-Agent\";\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/headers.js\nvar headerXUserAgent = \"X-User-Agent\";\nvar headerXGrpcWeb = \"X-Grpc-Web\";\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/content-type.js\nvar import_buffer41 = browser_toESM(require_buffer(), 1);\nvar contentTypeProto = \"application/grpc-web+proto\";\nvar contentTypeJson = \"application/grpc-web+json\";\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.js\nvar import_buffer43 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/gen/status_pb.js\nvar import_buffer42 = browser_toESM(require_buffer(), 1);\nvar Status = class _Status extends browser_Message {\n  constructor(data) {\n    super();\n    this.code = 0;\n    this.message = \"\";\n    this.details = [];\n    browser_proto3.util.initPartial(data, this);\n  }\n  static fromBinary(bytes, options) {\n    return new _Status().fromBinary(bytes, options);\n  }\n  static fromJson(jsonValue, options) {\n    return new _Status().fromJson(jsonValue, options);\n  }\n  static fromJsonString(jsonString, options) {\n    return new _Status().fromJsonString(jsonString, options);\n  }\n  static equals(a, b) {\n    return browser_proto3.util.equals(_Status, a, b);\n  }\n};\nStatus.runtime = browser_proto3;\nStatus.typeName = \"google.rpc.Status\";\nStatus.fields = browser_proto3.util.newFieldList(() => [\n  {\n    no: 1,\n    name: \"code\",\n    kind: \"scalar\",\n    T: 5\n    /* ScalarType.INT32 */\n  },\n  {\n    no: 2,\n    name: \"message\",\n    kind: \"scalar\",\n    T: 9\n    /* ScalarType.STRING */\n  },\n  { no: 3, name: \"details\", kind: \"message\", T: Any, repeated: true }\n]);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/trailer-status.js\nvar grpcStatusOk = \"0\";\nfunction findTrailerError(headerOrTrailer) {\n  var _a;\n  const statusBytes = headerOrTrailer.get(headerStatusDetailsBin);\n  if (statusBytes != null) {\n    const status = decodeBinaryHeader(statusBytes, Status);\n    if (status.code == 0) {\n      return void 0;\n    }\n    const error = new ConnectError(status.message, status.code, headerOrTrailer);\n    error.details = status.details.map((any) => ({\n      type: any.typeUrl.substring(any.typeUrl.lastIndexOf(\"/\") + 1),\n      value: any.value\n    }));\n    return error;\n  }\n  const grpcStatus = headerOrTrailer.get(headerGrpcStatus);\n  if (grpcStatus != null) {\n    if (grpcStatus === grpcStatusOk) {\n      return void 0;\n    }\n    const code = parseInt(grpcStatus, 10);\n    if (code in Code) {\n      return new ConnectError(decodeURIComponent((_a = headerOrTrailer.get(headerGrpcMessage)) !== null && _a !== void 0 ? _a : \"\"), code, headerOrTrailer);\n    }\n    return new ConnectError(`invalid grpc-status: ${grpcStatus}`, Code.Internal, headerOrTrailer);\n  }\n  return void 0;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/create-method-url.js\nvar import_buffer44 = browser_toESM(require_buffer(), 1);\nfunction createMethodUrl(baseUrl, service, method) {\n  const s = typeof service == \"string\" ? service : service.typeName;\n  const m = typeof method == \"string\" ? method : method.name;\n  return baseUrl.toString().replace(/\\/?$/, `/${s}/${m}`);\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/normalize.js\nvar import_buffer45 = browser_toESM(require_buffer(), 1);\nfunction browser_normalize(type, message) {\n  return message instanceof type ? message : new type(message);\n}\nfunction normalizeIterable(messageType, input) {\n  function transform(result) {\n    if (result.done === true) {\n      return result;\n    }\n    return {\n      done: result.done,\n      value: browser_normalize(messageType, result.value)\n    };\n  }\n  return {\n    [Symbol.asyncIterator]() {\n      const it = input[Symbol.asyncIterator]();\n      const res = {\n        next: () => it.next().then(transform)\n      };\n      if (it.throw !== void 0) {\n        res.throw = (e) => it.throw(e).then(transform);\n      }\n      if (it.return !== void 0) {\n        res.return = (v) => it.return(v).then(transform);\n      }\n      return res;\n    }\n  };\n}\n\n// node_modules/@connectrpc/connect/dist/esm/interceptor.js\nvar import_buffer46 = browser_toESM(require_buffer(), 1);\nfunction applyInterceptors(next, interceptors) {\n  var _a;\n  return (_a = interceptors === null || interceptors === void 0 ? void 0 : interceptors.concat().reverse().reduce(\n    // eslint-disable-next-line @typescript-eslint/no-unsafe-argument\n    (n, i) => i(n),\n    next\n  )) !== null && _a !== void 0 ? _a : next;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/serialization.js\nvar import_buffer47 = browser_toESM(require_buffer(), 1);\nfunction getJsonOptions(options) {\n  var _a;\n  const o = Object.assign({}, options);\n  (_a = o.ignoreUnknownFields) !== null && _a !== void 0 ? _a : o.ignoreUnknownFields = true;\n  return o;\n}\nfunction createClientMethodSerializers(method, useBinaryFormat, jsonOptions, binaryOptions) {\n  const input = useBinaryFormat ? createBinarySerialization(method.I, binaryOptions) : createJsonSerialization(method.I, jsonOptions);\n  const output = useBinaryFormat ? createBinarySerialization(method.O, binaryOptions) : createJsonSerialization(method.O, jsonOptions);\n  return { parse: output.parse, serialize: input.serialize };\n}\nfunction createBinarySerialization(messageType, options) {\n  return {\n    parse(data) {\n      try {\n        return messageType.fromBinary(data, options);\n      } catch (e) {\n        const m = e instanceof Error ? e.message : String(e);\n        throw new ConnectError(`parse binary: ${m}`, Code.InvalidArgument);\n      }\n    },\n    serialize(data) {\n      try {\n        return data.toBinary(options);\n      } catch (e) {\n        const m = e instanceof Error ? e.message : String(e);\n        throw new ConnectError(`serialize binary: ${m}`, Code.Internal);\n      }\n    }\n  };\n}\nfunction createJsonSerialization(messageType, options) {\n  var _a, _b;\n  const textEncoder = (_a = options === null || options === void 0 ? void 0 : options.textEncoder) !== null && _a !== void 0 ? _a : new TextEncoder();\n  const textDecoder = (_b = options === null || options === void 0 ? void 0 : options.textDecoder) !== null && _b !== void 0 ? _b : new TextDecoder();\n  const o = getJsonOptions(options);\n  return {\n    parse(data) {\n      try {\n        const json = textDecoder.decode(data);\n        return messageType.fromJsonString(json, o);\n      } catch (e) {\n        throw ConnectError.from(e, Code.InvalidArgument);\n      }\n    },\n    serialize(data) {\n      try {\n        const json = data.toJsonString(o);\n        return textEncoder.encode(json);\n      } catch (e) {\n        throw ConnectError.from(e, Code.Internal);\n      }\n    }\n  };\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/run-call.js\nvar import_buffer48 = browser_toESM(require_buffer(), 1);\nfunction runUnaryCall(opt) {\n  const next = applyInterceptors(opt.next, opt.interceptors);\n  const [signal, abort, done] = setupSignal(opt);\n  const req = Object.assign(Object.assign({}, opt.req), { message: browser_normalize(opt.req.method.I, opt.req.message), signal });\n  return next(req).then((res) => {\n    done();\n    return res;\n  }, abort);\n}\nfunction runStreamingCall(opt) {\n  const next = applyInterceptors(opt.next, opt.interceptors);\n  const [signal, abort, done] = setupSignal(opt);\n  const req = Object.assign(Object.assign({}, opt.req), { message: normalizeIterable(opt.req.method.I, opt.req.message), signal });\n  let doneCalled = false;\n  signal.addEventListener(\"abort\", function() {\n    var _a, _b;\n    const it = opt.req.message[Symbol.asyncIterator]();\n    if (!doneCalled) {\n      (_a = it.throw) === null || _a === void 0 ? void 0 : _a.call(it, this.reason).catch(() => {\n      });\n    }\n    (_b = it.return) === null || _b === void 0 ? void 0 : _b.call(it).catch(() => {\n    });\n  });\n  return next(req).then((res) => {\n    return Object.assign(Object.assign({}, res), { message: {\n      [Symbol.asyncIterator]() {\n        const it = res.message[Symbol.asyncIterator]();\n        return {\n          next() {\n            return it.next().then((r) => {\n              if (r.done == true) {\n                doneCalled = true;\n                done();\n              }\n              return r;\n            }, abort);\n          }\n          // We deliberately omit throw/return.\n        };\n      }\n    } });\n  }, abort);\n}\nfunction setupSignal(opt) {\n  const { signal, cleanup } = createDeadlineSignal(opt.timeoutMs);\n  const controller = createLinkedAbortController(opt.signal, signal);\n  return [\n    controller.signal,\n    function abort(reason) {\n      const e = ConnectError.from(signal.aborted ? getAbortSignalReason(signal) : reason);\n      controller.abort(e);\n      cleanup();\n      return Promise.reject(e);\n    },\n    function done() {\n      cleanup();\n      controller.abort();\n    }\n  ];\n}\n\n// src/grpcTransport.web.ts\nvar import_buffer60 = browser_toESM(require_buffer());\n\n// node_modules/@connectrpc/connect-web/dist/esm/index.js\nvar import_buffer59 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol/index.js\nvar import_buffer50 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect-web/dist/esm/assert-fetch-api.js\nvar import_buffer51 = browser_toESM(require_buffer(), 1);\nfunction assertFetchApi() {\n  try {\n    new Headers();\n  } catch (_) {\n    throw new Error(\"connect-web requires the fetch API. Are you running on an old version of Node.js? Node.js is not supported in Connect for Web - please stay tuned for Connect for Node.\");\n  }\n}\n\n// node_modules/@connectrpc/connect-web/dist/esm/grpc-web-transport.js\nvar import_buffer58 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/index.js\nvar import_buffer57 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/validate-trailer.js\nvar import_buffer52 = browser_toESM(require_buffer(), 1);\nfunction validateTrailer(trailer, header) {\n  const err = findTrailerError(trailer);\n  if (err) {\n    header.forEach((value, key) => {\n      err.metadata.append(key, value);\n    });\n    throw err;\n  }\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/request-header.js\nvar import_buffer53 = browser_toESM(require_buffer(), 1);\nfunction requestHeader(useBinaryFormat, timeoutMs, userProvidedHeaders, setUserAgent) {\n  const result = new Headers(userProvidedHeaders !== null && userProvidedHeaders !== void 0 ? userProvidedHeaders : {});\n  result.set(headerContentType, useBinaryFormat ? contentTypeProto : contentTypeJson);\n  result.set(headerXGrpcWeb, \"1\");\n  result.set(headerXUserAgent, \"connect-es/1.4.0\");\n  if (setUserAgent) {\n    result.set(headerUserAgent, \"connect-es/1.4.0\");\n  }\n  if (timeoutMs !== void 0) {\n    result.set(headerTimeout, `${timeoutMs}m`);\n  }\n  return result;\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.js\nvar import_buffer55 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/http-status.js\nvar import_buffer54 = browser_toESM(require_buffer(), 1);\nfunction codeFromHttpStatus(httpStatus) {\n  switch (httpStatus) {\n    case 400:\n      return Code.Internal;\n    case 401:\n      return Code.Unauthenticated;\n    case 403:\n      return Code.PermissionDenied;\n    case 404:\n      return Code.Unimplemented;\n    case 429:\n      return Code.Unavailable;\n    case 502:\n      return Code.Unavailable;\n    case 503:\n      return Code.Unavailable;\n    case 504:\n      return Code.Unavailable;\n    default:\n      return Code.Unknown;\n  }\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc-web/validate-response.js\nfunction validateResponse(status, headers) {\n  var _a;\n  if (status >= 200 && status < 300) {\n    const err = findTrailerError(headers);\n    if (err) {\n      throw err;\n    }\n    return { foundStatus: headers.has(headerGrpcStatus) };\n  }\n  throw new ConnectError(decodeURIComponent((_a = headers.get(headerGrpcMessage)) !== null && _a !== void 0 ? _a : `HTTP ${status}`), codeFromHttpStatus(status), headers);\n}\n\n// node_modules/@connectrpc/connect/dist/esm/protocol-grpc/index.js\nvar import_buffer56 = browser_toESM(require_buffer(), 1);\n\n// node_modules/@connectrpc/connect-web/dist/esm/grpc-web-transport.js\nvar __await3 = function(v) {\n  return this instanceof __await3 ? (this.v = v, this) : new __await3(v);\n};\nvar __asyncGenerator3 = function(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function() {\n    return this;\n  }, i;\n  function awaitReturn(f) {\n    return function(v) {\n      return Promise.resolve(v).then(f, reject);\n    };\n  }\n  function verb(n, f) {\n    if (g[n]) {\n      i[n] = function(v) {\n        return new Promise(function(a, b) {\n          q.push([n, v, a, b]) > 1 || resume(n, v);\n        });\n      };\n      if (f) i[n] = f(i[n]);\n    }\n  }\n  function resume(n, v) {\n    try {\n      step(g[n](v));\n    } catch (e) {\n      settle(q[0][3], e);\n    }\n  }\n  function step(r) {\n    r.value instanceof __await3 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n  }\n  function fulfill(value) {\n    resume(\"next\", value);\n  }\n  function reject(value) {\n    resume(\"throw\", value);\n  }\n  function settle(f, v) {\n    if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n  }\n};\nfunction createGrpcWebTransport(options) {\n  var _a;\n  assertFetchApi();\n  const useBinaryFormat = (_a = options.useBinaryFormat) !== null && _a !== void 0 ? _a : true;\n  return {\n    async unary(service, method, signal, timeoutMs, header, message, contextValues) {\n      var _a2;\n      const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n      timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs;\n      return await runUnaryCall({\n        interceptors: options.interceptors,\n        signal,\n        timeoutMs,\n        req: {\n          stream: false,\n          service,\n          method,\n          url: createMethodUrl(options.baseUrl, service, method),\n          init: {\n            method: \"POST\",\n            credentials: (_a2 = options.credentials) !== null && _a2 !== void 0 ? _a2 : \"same-origin\",\n            redirect: \"error\",\n            mode: \"cors\"\n          },\n          header: requestHeader(useBinaryFormat, timeoutMs, header, false),\n          contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n          message\n        },\n        next: async (req) => {\n          var _a3;\n          const fetch = (_a3 = options.fetch) !== null && _a3 !== void 0 ? _a3 : globalThis.fetch;\n          const response = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: encodeEnvelope(0, serialize(req.message)) }));\n          validateResponse(response.status, response.headers);\n          if (!response.body) {\n            throw \"missing response body\";\n          }\n          const reader = createEnvelopeReadableStream(response.body).getReader();\n          let trailer;\n          let message2;\n          for (; ; ) {\n            const r = await reader.read();\n            if (r.done) {\n              break;\n            }\n            const { flags, data } = r.value;\n            if (flags === trailerFlag) {\n              if (trailer !== void 0) {\n                throw \"extra trailer\";\n              }\n              trailer = trailerParse(data);\n              continue;\n            }\n            if (message2 !== void 0) {\n              throw \"extra message\";\n            }\n            message2 = parse(data);\n          }\n          if (trailer === void 0) {\n            throw \"missing trailer\";\n          }\n          validateTrailer(trailer, response.headers);\n          if (message2 === void 0) {\n            throw \"missing message\";\n          }\n          return {\n            stream: false,\n            service,\n            method,\n            header: response.headers,\n            message: message2,\n            trailer\n          };\n        }\n      });\n    },\n    async stream(service, method, signal, timeoutMs, header, input, contextValues) {\n      var _a2;\n      const { serialize, parse } = createClientMethodSerializers(method, useBinaryFormat, options.jsonOptions, options.binaryOptions);\n      function parseResponseBody(body, foundStatus, trailerTarget, header2) {\n        return __asyncGenerator3(this, arguments, function* parseResponseBody_1() {\n          const reader = createEnvelopeReadableStream(body).getReader();\n          if (foundStatus) {\n            if (!(yield __await3(reader.read())).done) {\n              throw \"extra data for trailers-only\";\n            }\n            return yield __await3(void 0);\n          }\n          let trailerReceived = false;\n          for (; ; ) {\n            const result = yield __await3(reader.read());\n            if (result.done) {\n              break;\n            }\n            const { flags, data } = result.value;\n            if ((flags & trailerFlag) === trailerFlag) {\n              if (trailerReceived) {\n                throw \"extra trailer\";\n              }\n              trailerReceived = true;\n              const trailer = trailerParse(data);\n              validateTrailer(trailer, header2);\n              trailer.forEach((value, key) => trailerTarget.set(key, value));\n              continue;\n            }\n            if (trailerReceived) {\n              throw \"extra message\";\n            }\n            yield yield __await3(parse(data));\n            continue;\n          }\n          if (!trailerReceived) {\n            throw \"missing trailer\";\n          }\n        });\n      }\n      async function createRequestBody(input2) {\n        if (method.kind != browser_MethodKind.ServerStreaming) {\n          throw \"The fetch API does not support streaming request bodies\";\n        }\n        const r = await input2[Symbol.asyncIterator]().next();\n        if (r.done == true) {\n          throw \"missing request message\";\n        }\n        return encodeEnvelope(0, serialize(r.value));\n      }\n      timeoutMs = timeoutMs === void 0 ? options.defaultTimeoutMs : timeoutMs <= 0 ? void 0 : timeoutMs;\n      return runStreamingCall({\n        interceptors: options.interceptors,\n        signal,\n        timeoutMs,\n        req: {\n          stream: true,\n          service,\n          method,\n          url: createMethodUrl(options.baseUrl, service, method),\n          init: {\n            method: \"POST\",\n            credentials: (_a2 = options.credentials) !== null && _a2 !== void 0 ? _a2 : \"same-origin\",\n            redirect: \"error\",\n            mode: \"cors\"\n          },\n          header: requestHeader(useBinaryFormat, timeoutMs, header, false),\n          contextValues: contextValues !== null && contextValues !== void 0 ? contextValues : createContextValues(),\n          message: input\n        },\n        next: async (req) => {\n          var _a3;\n          const fetch = (_a3 = options.fetch) !== null && _a3 !== void 0 ? _a3 : globalThis.fetch;\n          const fRes = await fetch(req.url, Object.assign(Object.assign({}, req.init), { headers: req.header, signal: req.signal, body: await createRequestBody(req.message) }));\n          const { foundStatus } = validateResponse(fRes.status, fRes.headers);\n          if (!fRes.body) {\n            throw \"missing response body\";\n          }\n          const trailer = new Headers();\n          const res = Object.assign(Object.assign({}, req), { header: fRes.headers, trailer, message: parseResponseBody(fRes.body, foundStatus, trailer, fRes.headers) });\n          return res;\n        }\n      });\n    }\n  };\n}\n\n// src/grpcTransport.web.ts\nvar createGrpcTransport = createGrpcWebTransport;\n\n// src/cardano.ts\n\n\n\n// src/common.ts\nvar import_buffer61 = browser_toESM(require_buffer());\nfunction metadataInterceptor(options) {\n  return (next) => async (req) => {\n    if (!!(options == null ? void 0 : options.headers)) {\n      Object.entries(options.headers).forEach(\n        ([key, value]) => req.header.set(key, value)\n      );\n    }\n    return await next(req);\n  };\n}\n\n// src/cardano.ts\nfunction anyChainToBlock(msg) {\n  return msg.chain.case == \"cardano\" ? msg.chain.value : null;\n}\nfunction pointToBlockRef(p) {\n  return new sync_pb_exports.BlockRef({\n    index: BigInt(p.slot),\n    hash: new Uint8Array(buffer.Buffer.from(p.hash, \"hex\"))\n  });\n}\nfunction blockRefToPoint(r) {\n  return {\n    slot: r.index.toString(),\n    hash: buffer.Buffer.from(r.hash).toString(\"hex\")\n  };\n}\nfunction anyUtxoToChain(u) {\n  switch (u.parsedState.case) {\n    case \"cardano\":\n      return {\n        txoRef: u.txoRef,\n        parsedValued: u.parsedState.value,\n        nativeBytes: u.nativeBytes\n      };\n    default:\n      throw Error(\"source is not Cardano data\");\n  }\n}\nfunction anyParamsToChain(p) {\n  switch (p.params.case) {\n    case \"cardano\":\n      return p.params.value;\n    default:\n      throw Error(\"source is not Cardano data\");\n  }\n}\nvar SyncClient = class {\n  constructor(options) {\n    let headerInterceptor = metadataInterceptor(options);\n    const transport = createGrpcTransport({\n      httpVersion: \"2\",\n      baseUrl: options.uri,\n      interceptors: [headerInterceptor]\n    });\n    this.inner = createPromiseClient(sync_connect_exports.SyncService, transport);\n  }\n  async *followTip(intersect) {\n    const req = new sync_pb_exports.FollowTipRequest({\n      intersect: intersect == null ? void 0 : intersect.map((p) => pointToBlockRef(p))\n    });\n    const res = this.inner.followTip(req);\n    for await (const any of res) {\n      switch (any.action.case) {\n        case \"apply\":\n          yield {\n            action: \"apply\",\n            block: anyChainToBlock(any.action.value)\n          };\n          break;\n        case \"undo\":\n          yield {\n            action: \"undo\",\n            block: anyChainToBlock(any.action.value)\n          };\n          break;\n        case \"reset\":\n          yield {\n            action: \"reset\",\n            point: blockRefToPoint(any.action.value)\n          };\n      }\n    }\n  }\n  async fetchBlock(p) {\n    const req = pointToBlockRef(p);\n    const res = await this.inner.fetchBlock({ ref: [req] });\n    return anyChainToBlock(res.block[0]);\n  }\n};\nvar QueryClient = class {\n  constructor(options) {\n    let headerInterceptor = metadataInterceptor(options);\n    const transport = createGrpcTransport({\n      httpVersion: \"2\",\n      baseUrl: options.uri,\n      interceptors: [headerInterceptor]\n    });\n    this.inner = createPromiseClient(query_connect_exports.QueryService, transport);\n  }\n  async readParams() {\n    const res = await this.inner.readParams({});\n    return anyParamsToChain(res.values);\n  }\n  async readUtxosByOutputRef(refs) {\n    const searchResponse = await this.inner.readUtxos({\n      keys: refs.map((ref) => {\n        return {\n          hash: ref.txHash,\n          index: ref.outputIndex\n        };\n      })\n    });\n    return searchResponse.items.map(anyUtxoToChain);\n  }\n  async searchUtxosByMatch(pattern) {\n    const searchResponse = await this.inner.searchUtxos({\n      predicate: {\n        match: { utxoPattern: { value: pattern, case: \"cardano\" } }\n      }\n    });\n    return searchResponse.items.map(anyUtxoToChain);\n  }\n  async searchUtxosByAddress(address) {\n    return this.searchUtxosByMatch({\n      address: {\n        exactAddress: address\n      }\n    });\n  }\n  async searchUtxosByPaymentPart(paymentPart) {\n    return this.searchUtxosByMatch({\n      address: {\n        paymentPart\n      }\n    });\n  }\n  async searchUtxosByDelegationPart(delegationPart) {\n    return this.searchUtxosByMatch({\n      address: {\n        delegationPart\n      }\n    });\n  }\n  async searchUtxosByAsset(policyId, name) {\n    return this.searchUtxosByMatch({\n      asset: policyId ? { policyId } : { assetName: name }\n    });\n  }\n  async searchUtxosByAddressWithAsset(address, policyId, name) {\n    return this.searchUtxosByMatch({\n      address: {\n        exactAddress: address\n      },\n      asset: policyId ? { policyId } : { assetName: name }\n    });\n  }\n};\nvar SubmitClient = class {\n  constructor(options) {\n    let headerInterceptor = metadataInterceptor(options);\n    const transport = createGrpcTransport({\n      httpVersion: \"2\",\n      baseUrl: options.uri,\n      interceptors: [headerInterceptor]\n    });\n    this.inner = createPromiseClient(submit_connect_exports.SubmitService, transport);\n  }\n  async submitTx(tx) {\n    const res = await this.inner.submitTx({\n      tx: [tx].map((cbor) => ({ type: { case: \"raw\", value: cbor } }))\n    });\n    return res.ref[0];\n  }\n  async *waitForTx(txHash) {\n    const updates = this.inner.waitForTx({\n      ref: [txHash]\n    });\n    for await (const change of updates) {\n      yield change.stage;\n    }\n  }\n};\n\n/*! Bundled license information:\n\nieee754/index.js:\n  (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)\n\nbuffer/index.js:\n  (*!\n   * The buffer module from node.js, for the browser.\n   *\n   * @author   Feross Aboukhadijeh <https://feross.org>\n   * @license  MIT\n   *)\n*/\n//# sourceMappingURL=index.mjs.map\n;// ./node_modules/@meshsdk/provider/dist/index.js\n/* provided dependency */ var provider_dist_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n// src/begin.ts\n\n\n// src/utils/parse-http-error.ts\n\nvar parseHttpError = (error) => {\n  if (axios[\"default\"].isAxiosError(error)) {\n    if (error.response) {\n      return JSON.stringify({\n        data: error.response.data,\n        headers: error.response.headers,\n        status: error.response.status\n      });\n    } else if (error.request && !(error.request instanceof XMLHttpRequest)) {\n      return JSON.stringify(error.request);\n    } else {\n      return JSON.stringify({ code: error.code, message: error.message });\n    }\n  } else {\n    return JSON.stringify(error);\n  }\n};\n\n// src/begin.ts\nvar BeginProvider = class {\n  apikey;\n  chainNumber = 1815;\n  domainUrl = \".bgin.id\";\n  /**\n   * Creates a new instance of the BeginProvider.\n   * @param apikey The API key for querying Begin ID.\n   */\n  constructor(apikey) {\n    this.apikey = apikey ?? \"31cab9edcc1c530e29924a56167d4ed17d50b7fds\";\n  }\n  /**\n   * Given a Begin ID, resolves the address and other information.\n   * @param name name of Begin ID, e.g. `mesh`\n   * @param url optional URL to override the default: https://resolveidaddress-ylo5dtxzdq-uc.a.run.app\n   * @returns\n   * - name: string\n   * - domain: string\n   * - image: string\n   * - address: string\n   */\n  async resolveAddress(name, url) {\n    try {\n      const axiosInstance = axios[\"default\"].create({\n        baseURL: url ?? \"https://resolveidaddress-ylo5dtxzdq-uc.a.run.app\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Authorization: this.apikey\n        }\n      });\n      const { data, status } = await axiosInstance.post(``, {\n        name: name.replace(\"@\", \"\").replace(/(\\.bgin\\.id|\\.beginid\\.io|\\.bgn\\.is)$/, \"\"),\n        chain: this.chainNumber\n      });\n      if (status === 200) {\n        const result = data.result;\n        return {\n          name: result.name,\n          domain: `${\"\".concat(result.name, this.domainUrl)}`,\n          image: result.image,\n          address: result.addresses[this.chainNumber]\n        };\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Given an address, resolves the Begin ID and other information.\n   * @param address address to resolve\n   * @param url optional URL to override the default: https://resolveIdReserveAddress-ylo5dtxzdq-uc.a.run.app\n   * @returns\n   * - name: string\n   * - domain: string\n   * - image: string\n   * - address: string\n   */\n  async resolveAdressReverse(address, url) {\n    try {\n      const axiosInstance = axios[\"default\"].create({\n        baseURL: url ?? \"https://resolveIdReserveAddress-ylo5dtxzdq-uc.a.run.app\",\n        headers: {\n          \"Content-Type\": \"application/json\",\n          Authorization: this.apikey\n        }\n      });\n      const { data, status } = await axiosInstance.post(``, {\n        address,\n        chain: this.chainNumber\n      });\n      if (status === 200) {\n        const result = data.result;\n        return {\n          name: result.name,\n          domain: `${\"\".concat(result.name, this.domainUrl)}`,\n          image: result.image,\n          address: result.addresses[this.chainNumber]\n        };\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n};\n\n// src/blockfrost.ts\n\n\n\n\n// src/common/utxos-to-assets.ts\nfunction utxosToAssets(utxos) {\n  const _balance = utxos.map((utxo) => {\n    return utxo.output.amount;\n  }).reduce(\n    (acc, amount) => {\n      for (const asset of amount) {\n        if (asset) {\n          if (acc[asset.unit] == void 0) {\n            acc[asset.unit] = 0;\n          }\n          if (asset.unit in acc) {\n            acc[asset.unit] += parseFloat(asset.quantity);\n          }\n        }\n      }\n      return acc;\n    },\n    {}\n  );\n  return Object.fromEntries(\n    Object.entries(_balance).map(([key, value]) => [key, value.toString()])\n  );\n}\n\n// src/utils/parse-asset-unit.ts\n\nvar dist_parseAssetUnit = (unit) => {\n  const policyId = unit.slice(0, POLICY_ID_LENGTH);\n  const assetName = unit.includes(\".\") ? fromUTF8(unit.split(\".\")[1] || \"\") : unit.slice(POLICY_ID_LENGTH);\n  return { policyId, assetName };\n};\n\n// src/blockfrost.ts\nvar BlockfrostProvider = class {\n  _axiosInstance;\n  _network;\n  submitTxToBytes = true;\n  constructor(...args) {\n    if (typeof args[0] === \"string\" && (args[0].startsWith(\"http\") || args[0].startsWith(\"/\"))) {\n      this._axiosInstance = axios[\"default\"].create({ baseURL: args[0] });\n      this._network = \"mainnet\";\n    } else {\n      const projectId = args[0];\n      const network = projectId.slice(0, 7);\n      this._axiosInstance = axios[\"default\"].create({\n        baseURL: `https://cardano-${network}.blockfrost.io/api/v${args[1] ?? 0}`,\n        headers: { project_id: projectId }\n      });\n      this._network = network;\n    }\n  }\n  setSubmitTxToBytes(value) {\n    this.submitTxToBytes = value;\n  }\n  /**\n   * Evaluates the resources required to execute the transaction\n   * @param tx - The transaction to evaluate\n   */\n  async evaluateTx(cbor) {\n    try {\n      const headers = { \"Content-Type\": \"application/cbor\" };\n      const { status, data } = await this._axiosInstance.post(\n        \"utils/txs/evaluate\",\n        cbor,\n        {\n          headers\n        }\n      );\n      if (status === 200 && data.result.EvaluationResult) {\n        const tagMap = {\n          spend: \"SPEND\",\n          mint: \"MINT\",\n          certificate: \"CERT\",\n          withdrawal: \"REWARD\"\n        };\n        const result = [];\n        Object.keys(data.result.EvaluationResult).forEach((key) => {\n          const [tagKey, index] = key.split(\":\");\n          const { memory, steps } = data.result.EvaluationResult[key];\n          result.push({\n            tag: tagMap[tagKey],\n            index: Number(index),\n            budget: { mem: memory, steps }\n          });\n        });\n        return result;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Obtain information about a specific stake account.\n   * @param address - Wallet address to fetch account information\n   */\n  async fetchAccountInfo(address) {\n    const rewardAddress = address.startsWith(\"addr\") ? resolveRewardAddress(address) : address;\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `accounts/${rewardAddress}`\n      );\n      if (status === 200 || status == 202)\n        return {\n          poolId: data.pool_id,\n          active: data.active || data.active_epoch !== null,\n          balance: data.controlled_amount,\n          rewards: data.withdrawable_amount,\n          withdrawals: data.withdrawals_sum\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the assets for a given address.\n   * @param address - The address to fetch assets for\n   * @returns A map of asset unit to quantity\n   */\n  async fetchAddressAssets(address) {\n    const utxos = await this.fetchAddressUTxOs(address);\n    return utxosToAssets(utxos);\n  }\n  /**\n   * Transactions for an address. The `TransactionInfo` would only return the `hash`, `inputs`, and `outputs`.\n   * @param address - The address to fetch transactions for\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTxs(address, option = DEFAULT_FETCHER_OPTIONS) {\n    const txs = [];\n    try {\n      const fetcherOptions = { ...DEFAULT_FETCHER_OPTIONS, ...option };\n      for (let i = 1; i <= fetcherOptions.maxPage; i++) {\n        let { data, status } = await this._axiosInstance.get(\n          `/addresses/${address}/transactions?page=${i}&order=${fetcherOptions.order}`\n        );\n        if (status !== 200) throw parseHttpError(data);\n        if (data.length === 0) break;\n        for (const tx of data) {\n          const txInfo = await this.fetchTxInfo(tx.tx_hash);\n          const _tx = {\n            ...txInfo,\n            blockHeight: tx.block_height,\n            blockTime: tx.block_time\n          };\n          txs.push(_tx);\n        }\n      }\n      return txs;\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Deprecated, use fetchAddressTxs instead\n   * @param address\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTransactions(address) {\n    return await this.fetchAddressTxs(address);\n  }\n  /**\n   * UTXOs of the address.\n   * @param address - The address to fetch UTXO\n   * @param asset - UTXOs of a given asset​\n   * @returns - Array of UTxOs\n   */\n  async fetchAddressUTxOs(address, asset) {\n    const filter = asset !== void 0 ? `/${asset}` : \"\";\n    const url = `addresses/${address}/utxos` + filter;\n    const paginateUTxOs = async (page = 1, utxos = []) => {\n      const { data, status } = await this._axiosInstance.get(\n        `${url}?page=${page}`\n      );\n      if (status === 200 || status == 202)\n        return data.length > 0 ? paginateUTxOs(page + 1, [\n          ...utxos,\n          ...await Promise.all(\n            data.map(\n              (utxo) => this.toUTxO(utxo, utxo.tx_hash)\n            )\n          )\n        ]) : utxos;\n      throw parseHttpError(data);\n    };\n    try {\n      return await paginateUTxOs();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Fetches the asset addresses for a given asset.\n   * @param asset - The asset to fetch addresses for\n   */\n  async fetchAssetAddresses(asset) {\n    const paginateAddresses = async (page = 1, addresses = []) => {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}/addresses?page=${page}`\n      );\n      if (status === 200 || status == 202)\n        return data.length > 0 ? paginateAddresses(page + 1, [...addresses, ...data]) : addresses;\n      throw parseHttpError(data);\n    };\n    try {\n      return await paginateAddresses();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   * @returns The metadata for the asset\n   */\n  async fetchAssetMetadata(asset) {\n    try {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}`\n      );\n      if (status === 200 || status == 202)\n        return {\n          ...data.onchain_metadata,\n          fingerprint: data.fingerprint,\n          totalSupply: data.quantity,\n          mintingTxHash: data.initial_mint_tx_hash,\n          // todo: request for `initial_mint_tx_hash`\n          mintCount: data.mint_or_burn_count\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   * @returns The metadata for the asset\n   */\n  async fetchLatestBlock() {\n    try {\n      const { data, status } = await this._axiosInstance.get(`blocks/latest`);\n      if (status === 200 || status == 202)\n        return {\n          confirmations: data.confirmations,\n          epoch: data.epoch,\n          epochSlot: data.epoch_slot.toString(),\n          fees: data.fees,\n          hash: data.hash,\n          nextBlock: data.next_block ?? \"\",\n          operationalCertificate: data.op_cert,\n          output: data.output ?? \"0\",\n          previousBlock: data.previous_block,\n          size: data.size,\n          slot: data.slot.toString(),\n          slotLeader: data.slot_leader ?? \"\",\n          time: data.time,\n          txCount: data.tx_count,\n          VRFKey: data.block_vrf\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the block information for a given block hash.\n   * @param hash The block hash to fetch from\n   * @returns The block information\n   */\n  async fetchBlockInfo(hash) {\n    try {\n      const { data, status } = await this._axiosInstance.get(`blocks/${hash}`);\n      if (status === 200 || status == 202)\n        return {\n          confirmations: data.confirmations,\n          epoch: data.epoch,\n          epochSlot: data.epoch_slot.toString(),\n          fees: data.fees,\n          hash: data.hash,\n          nextBlock: data.next_block ?? \"\",\n          operationalCertificate: data.op_cert,\n          output: data.output ?? \"0\",\n          previousBlock: data.previous_block,\n          size: data.size,\n          slot: data.slot.toString(),\n          slotLeader: data.slot_leader ?? \"\",\n          time: data.time,\n          txCount: data.tx_count,\n          VRFKey: data.block_vrf\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the list of assets for a given policy ID.\n   * @param policyId The policy ID to fetch assets for\n   * @param cursor The cursor for pagination\n   * @returns The list of assets and the next cursor\n   */\n  async fetchCollectionAssets(policyId, cursor = 1) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `assets/policy/${policyId}?page=${cursor}`\n      );\n      if (status === 200 || status == 202)\n        return {\n          assets: data.map((asset) => ({\n            unit: asset.asset,\n            quantity: asset.quantity\n          })),\n          next: data.length === 100 ? cursor + 1 : null\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      return { assets: [], next: null };\n    }\n  }\n  async fetchHandle(handle) {\n    if (this._network !== \"mainnet\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const assetName = fromUTF8(`${handle.replace(\"$\", \"\")}`);\n      const asset = await this.fetchAssetMetadata(\n        `${SUPPORTED_HANDLES[1]}000de140${assetName}`\n      );\n      return asset;\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchHandleAddress(handle) {\n    if (this._network !== \"mainnet\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const assetName = fromUTF8(handle.replace(\"$\", \"\"));\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${SUPPORTED_HANDLES[1]}${assetName}/addresses`\n      );\n      if (status === 200 || status == 202) return data[0].address;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetch the latest protocol parameters.\n   * @param epoch Optional - The epoch to fetch protocol parameters for\n   * @returns - Protocol parameters\n   */\n  async fetchProtocolParameters(epoch = Number.NaN) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `epochs/${isNaN(epoch) ? \"latest\" : epoch}/parameters`\n      );\n      if (status === 200 || status == 202)\n        return castProtocol({\n          coinsPerUtxoSize: data.coins_per_utxo_word,\n          collateralPercent: data.collateral_percent,\n          decentralisation: data.decentralisation_param,\n          epoch: data.epoch,\n          keyDeposit: data.key_deposit,\n          maxBlockExMem: data.max_block_ex_mem,\n          maxBlockExSteps: data.max_block_ex_steps,\n          maxBlockHeaderSize: data.max_block_header_size,\n          maxBlockSize: data.max_block_size,\n          maxCollateralInputs: data.max_collateral_inputs,\n          maxTxExMem: data.max_tx_ex_mem,\n          maxTxExSteps: data.max_tx_ex_steps,\n          maxTxSize: data.max_tx_size,\n          maxValSize: data.max_val_size,\n          minFeeA: data.min_fee_a,\n          minFeeB: data.min_fee_b,\n          minPoolCost: data.min_pool_cost,\n          poolDeposit: data.pool_deposit,\n          priceMem: data.price_mem,\n          priceStep: data.price_step\n        });\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the transaction information for a given transaction hash.\n   * @param hash The transaction hash to fetch\n   * @returns The transaction information\n   */\n  async fetchTxInfo(hash) {\n    try {\n      const { data: txData, status } = await this._axiosInstance.get(\n        `txs/${hash}`\n      );\n      if (status === 200 || status == 202) {\n        const { data, status: status2 } = await this._axiosInstance.get(\n          `/txs/${txData.hash}/utxos`\n        );\n        if (status2 !== 200) throw parseHttpError(data);\n        return {\n          block: txData.block,\n          deposit: txData.deposit,\n          fees: txData.fees,\n          hash: txData.hash,\n          index: txData.index,\n          invalidAfter: txData.invalid_hereafter ?? \"\",\n          invalidBefore: txData.invalid_before ?? \"\",\n          slot: txData.slot.toString(),\n          size: txData.size,\n          inputs: data.inputs,\n          outputs: data.outputs\n        };\n      }\n      throw parseHttpError(txData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Get UTxOs for a given hash.\n   * @param hash The transaction hash\n   * @param index Optional - The output index for filtering post fetching\n   * @returns - Array of UTxOs\n   */\n  async fetchUTxOs(hash, index) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `txs/${hash}/utxos`\n      );\n      if (status === 200 || status == 202) {\n        const bfOutputs = data.outputs;\n        const outputsPromises = [];\n        bfOutputs.forEach((output) => {\n          outputsPromises.push(this.toUTxO(output, hash));\n        });\n        const outputs = await Promise.all(outputsPromises);\n        if (index !== void 0) {\n          return outputs.filter((utxo) => utxo.input.outputIndex === index);\n        }\n        return outputs;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the governance proposal information.\n   * @param txHash The transaction hash of the proposal\n   * @param certIndex The certificate index of the proposal\n   * @returns The governance proposal information\n   */\n  async fetchGovernanceProposal(txHash, certIndex) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `governance/proposals/${txHash}/${certIndex}`\n      );\n      if (status === 200 || status == 202)\n        return {\n          txHash: data.tx_hash,\n          certIndex: data.cert_index,\n          governanceType: data.governance_type,\n          deposit: data.deposit,\n          returnAddress: data.return_address,\n          governanceDescription: data.governance_description,\n          ratifiedEpoch: data.ratified_epoch,\n          enactedEpoch: data.enacted_epoch,\n          droppedEpoch: data.dropped_epoch,\n          expiredEpoch: data.expired_epoch,\n          expiration: data.expiration,\n          metadata: (await this._axiosInstance.get(\n            `governance/proposals/${txHash}/${certIndex}/metadata`\n          )).data\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * A generic method to fetch data from a URL.\n   * @param url - The URL to fetch data from\n   * @returns - The data fetched from the URL\n   */\n  async get(url) {\n    try {\n      const { data, status } = await this._axiosInstance.get(url);\n      if (status === 200 || status == 202) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * A generic method to post data to a URL.\n   * @param url - The URL to fetch data from\n   * @param body - Payload\n   * @param headers - Specify headers, default: { \"Content-Type\": \"application/json\" }\n   * @returns - Data\n   */\n  async post(url, body, headers = { \"Content-Type\": \"application/json\" }) {\n    try {\n      const { data, status } = await this._axiosInstance.post(url, body, {\n        headers\n      });\n      if (status === 200 || status == 202) return data;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Allow you to listen to a transaction confirmation. Upon confirmation, the callback will be called.\n   * @param txHash - The transaction hash to listen for confirmation\n   * @param callback - The callback function to call when the transaction is confirmed\n   * @param limit - The number of blocks to wait for confirmation\n   */\n  onTxConfirmed(txHash, callback, limit = 100) {\n    let attempts = 0;\n    const checkTx = setInterval(() => {\n      if (attempts >= limit) clearInterval(checkTx);\n      this.fetchTxInfo(txHash).then((txInfo) => {\n        this.fetchBlockInfo(txInfo.block).then((blockInfo) => {\n          if (blockInfo?.confirmations > 0) {\n            clearInterval(checkTx);\n            callback();\n          }\n        }).catch(() => {\n          attempts += 1;\n        });\n      }).catch(() => {\n        attempts += 1;\n      });\n    }, 5e3);\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(tx) {\n    try {\n      const headers = { \"Content-Type\": \"application/cbor\" };\n      const { data, status } = await this._axiosInstance.post(\n        \"tx/submit\",\n        this.submitTxToBytes ? toBytes(tx) : tx,\n        { headers }\n      );\n      if (status === 200 || status == 202) return data;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  resolveScriptRef = async (scriptHash) => {\n    if (scriptHash) {\n      const { data, status } = await this._axiosInstance.get(\n        `scripts/${scriptHash}`\n      );\n      if (status === 200 || status == 202) {\n        let script;\n        if (data.type.startsWith(\"plutus\")) {\n          const plutusScript = await this.fetchPlutusScriptCBOR(scriptHash);\n          const normalized = normalizePlutusScript(plutusScript, \"DoubleCBOR\");\n          script = {\n            version: data.type.replace(\"plutus\", \"\"),\n            code: normalized\n          };\n        } else {\n          script = await this.fetchNativeScriptJSON(scriptHash);\n        }\n        return toScriptRef(script).toCbor().toString();\n      }\n      throw parseHttpError(data);\n    }\n    return void 0;\n  };\n  toUTxO = async (bfUTxO, tx_hash) => ({\n    input: {\n      outputIndex: bfUTxO.output_index,\n      txHash: tx_hash\n    },\n    output: {\n      address: bfUTxO.address,\n      amount: bfUTxO.amount,\n      dataHash: bfUTxO.data_hash ?? void 0,\n      plutusData: bfUTxO.inline_datum ?? void 0,\n      scriptRef: bfUTxO.reference_script_hash ? await this.resolveScriptRef(bfUTxO.reference_script_hash) : void 0,\n      scriptHash: bfUTxO.reference_script_hash\n    }\n  });\n  async fetchPlutusScriptCBOR(scriptHash) {\n    const { data, status } = await this._axiosInstance.get(\n      `scripts/${scriptHash}/cbor`\n    );\n    if (status === 200 || status == 202) return data.cbor;\n    throw parseHttpError(data);\n  }\n  async fetchNativeScriptJSON(scriptHash) {\n    const { data, status } = await this._axiosInstance.get(\n      `scripts/${scriptHash}/json`\n    );\n    if (status === 200 || status == 202) return data.json;\n    throw parseHttpError(data);\n  }\n};\n\n// src/koios.ts\n\n\n\nvar KoiosProvider = class {\n  _axiosInstance;\n  _network;\n  constructor(...args) {\n    if (typeof args[0] === \"string\" && args[0].startsWith(\"http\")) {\n      this._axiosInstance = axios[\"default\"].create({\n        baseURL: args[0],\n        headers: {\n          Authorization: `Bearer ${args[1]}`\n        }\n      });\n      this._network = \"api\";\n    } else {\n      let version = 1;\n      if (typeof args[2] === \"number\") {\n        version = args[2];\n      }\n      const config = {\n        baseURL: `https://${args[0]}.koios.rest/api/v${version}`\n      };\n      this._network = args[0];\n      if (typeof args[1] === \"string\") {\n        config.headers = {\n          Authorization: `Bearer ${args[1]}`\n        };\n      }\n      this._axiosInstance = axios[\"default\"].create(config);\n    }\n  }\n  /**\n   * Obtain information about a specific stake account.\n   * @param address - Wallet address to fetch account information\n   */\n  async fetchAccountInfo(address) {\n    try {\n      const rewardAddress = address.startsWith(\"addr\") ? resolveRewardAddress(address) : address;\n      const { data, status } = await this._axiosInstance.post(\"account_info\", {\n        _stake_addresses: [rewardAddress]\n      });\n      if (status === 200)\n        return {\n          poolId: data[0].delegated_pool,\n          active: data[0].status === \"registered\",\n          balance: data[0].total_balance.toString(),\n          rewards: data[0].rewards_available,\n          withdrawals: data[0].withdrawals\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the assets for a given address.\n   * @param address - The address to fetch assets for\n   * @returns A map of asset unit to quantity\n   */\n  async fetchAddressAssets(address) {\n    const utxos = await this.fetchAddressUTxOs(address);\n    return utxosToAssets(utxos);\n  }\n  /**\n   * Unimplemented - open for contribution, see blockfrost.ts for reference\n   * @param address\n   */\n  async fetchAddressTxs(address, option = DEFAULT_FETCHER_OPTIONS) {\n    try {\n      const { data, status } = await this._axiosInstance.post(`/address_txs`, {\n        _addresses: [address]\n      });\n      if (status === 200 || status == 202) {\n        return data.map((tx) => {\n          return {\n            hash: tx.tx_hash,\n            index: 0,\n            block: \"\",\n            slot: \"\",\n            fees: \"\",\n            size: 0,\n            deposit: \"\",\n            invalidBefore: \"\",\n            invalidAfter: \"\"\n          };\n        });\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * UTXOs of the address.\n   * @param address - The address to fetch UTXO\n   * @param asset - UTXOs of a given asset​\n   * @returns - Array of UTxOs\n   */\n  async fetchAddressUTxOs(address, asset) {\n    try {\n      const { data, status } = await this._axiosInstance.post(\"address_info\", {\n        _addresses: [address]\n      });\n      if (status === 200) {\n        const utxos = data.flatMap((info) => info.utxo_set).map((utxo) => this.toUTxO(utxo, address));\n        return asset !== void 0 ? utxos.filter(\n          (utxo) => utxo.output.amount.find((a) => a.unit === asset) !== void 0\n        ) : utxos;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Fetches the asset addresses for a given asset.\n   * @param asset - The asset to fetch addresses for\n   */\n  async fetchAssetAddresses(asset) {\n    try {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `asset_addresses?_asset_policy=${policyId}&_asset_name=${assetName}`\n      );\n      if (status === 200)\n        return data.map(\n          (item) => ({\n            address: item.payment_address,\n            quantity: item.quantity\n          })\n        );\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   * @returns The metadata for the asset\n   */\n  async fetchAssetMetadata(asset) {\n    try {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `asset_info?_asset_policy=${policyId}&_asset_name=${assetName}`\n      );\n      if (status === 200)\n        return {\n          ...data[0].minting_tx_metadata[721][policyId][toUTF8(assetName)],\n          fingerprint: data[0].fingerprint,\n          totalSupply: data[0].total_supply,\n          mintingTxHash: data[0].minting_tx_hash,\n          mintCount: data[0].mint_cnt\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the block information for a given block hash.\n   * @param hash The block hash to fetch from\n   * @returns The block information\n   */\n  async fetchBlockInfo(hash) {\n    try {\n      const { data, status } = await this._axiosInstance.post(\"block_info\", {\n        _block_hashes: [hash]\n      });\n      if (status === 200)\n        return {\n          confirmations: data[0].num_confirmations,\n          epoch: data[0].epoch_no,\n          epochSlot: data[0].epoch_slot.toString(),\n          fees: data[0].total_fees ?? \"\",\n          hash: data[0].hash,\n          nextBlock: data[0].child_hash ?? \"\",\n          operationalCertificate: data[0].op_cert,\n          output: data[0].total_output ?? \"0\",\n          previousBlock: data[0].parent_hash,\n          size: data[0].block_size,\n          slot: data[0].abs_slot.toString(),\n          slotLeader: data[0].pool ?? \"\",\n          time: data[0].block_time,\n          txCount: data[0].tx_count,\n          VRFKey: data[0].vrf_key\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the list of assets for a given policy ID.\n   * @param policyId The policy ID to fetch assets for\n   * @param cursor The cursor for pagination\n   * @returns The list of assets and the next cursor\n   */\n  async fetchCollectionAssets(policyId) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `policy_asset_info?_asset_policy=${policyId}`\n      );\n      if (status === 200)\n        return {\n          assets: data.map((asset) => ({\n            unit: `${asset.policy_id}${asset.asset_name}`,\n            quantity: asset.total_supply\n          }))\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchHandle(handle) {\n    if (this._network !== \"api\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const assetName = fromUTF8(`${handle.replace(\"$\", \"\")}`);\n      const asset = await this.fetchAssetMetadata(\n        `${SUPPORTED_HANDLES[1]}000de140${assetName}`\n      );\n      return asset;\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchHandleAddress(handle) {\n    if (this._network !== \"api\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const assetName = fromUTF8(handle.replace(\"$\", \"\"));\n      const { data, status } = await this._axiosInstance.get(\n        `asset_addresses?_asset_policy=${SUPPORTED_HANDLES[1]}&_asset_name=${assetName}`\n      );\n      if (status === 200) return data[0].payment_address;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetch the latest protocol parameters.\n   * @param epoch\n   * @returns - Protocol parameters\n   */\n  async fetchProtocolParameters(epoch = Number.NaN) {\n    try {\n      if (isNaN(epoch)) {\n        const { data: data2 } = await this._axiosInstance.get(`tip`);\n        epoch = data2[0].epoch_no;\n      }\n      const { data, status } = await this._axiosInstance.get(\n        `epoch_params?_epoch_no=${epoch}`\n      );\n      if (status === 200)\n        return castProtocol({\n          coinsPerUtxoSize: data[0].coins_per_utxo_size,\n          collateralPercent: data[0].collateral_percent,\n          decentralisation: data[0].decentralisation,\n          epoch: data[0].epoch_no,\n          keyDeposit: data[0].key_deposit,\n          maxBlockExMem: data[0].max_block_ex_mem.toString(),\n          maxBlockExSteps: data[0].max_block_ex_steps.toString(),\n          maxBlockHeaderSize: data[0].max_bh_size,\n          maxBlockSize: data[0].max_block_size,\n          maxCollateralInputs: data[0].max_collateral_inputs,\n          maxTxExMem: data[0].max_tx_ex_mem.toString(),\n          maxTxExSteps: data[0].max_tx_ex_steps.toString(),\n          maxTxSize: data[0].max_tx_size,\n          maxValSize: data[0].max_val_size,\n          minFeeA: data[0].min_fee_a,\n          minFeeB: data[0].min_fee_b,\n          minPoolCost: data[0].min_pool_cost,\n          poolDeposit: data[0].pool_deposit,\n          priceMem: data[0].price_mem,\n          priceStep: data[0].price_step\n        });\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the transaction information for a given transaction hash.\n   * @param hash The transaction hash to fetch\n   * @returns The transaction information\n   */\n  async fetchTxInfo(hash) {\n    try {\n      const { data, status } = await this._axiosInstance.post(\"tx_info\", {\n        _tx_hashes: [hash]\n      });\n      if (status === 200 && data.length == 1)\n        return {\n          block: data[0].block_hash,\n          deposit: data[0].deposit,\n          fees: data[0].fee,\n          hash: data[0].tx_hash,\n          index: data[0].tx_block_index,\n          invalidAfter: data[0].invalid_after?.toString() ?? \"\",\n          invalidBefore: data[0].invalid_before?.toString() ?? \"\",\n          slot: data[0].absolute_slot.toString(),\n          size: data[0].tx_size\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Get UTxOs for a given hash.\n   * @param hash The transaction hash\n   * @param index Optional - The output index for filtering post fetching\n   * @returns - Array of UTxOs\n   */\n  async fetchUTxOs(hash, index) {\n    try {\n      const { data, status } = await this._axiosInstance.post(\"tx_info\", {\n        _tx_hashes: [hash],\n        _assets: true\n      });\n      if (status === 200) {\n        const utxos = data[0].outputs.map(\n          (utxo) => this.toUTxO(utxo, utxo.payment_addr.bech32)\n        );\n        if (index !== void 0) {\n          return utxos.filter((utxo) => utxo.input.outputIndex === index);\n        }\n        return utxos;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchGovernanceProposal(txHash, certIndex) {\n    throw new Error(\"Method not implemented\");\n  }\n  /**\n   * A generic method to fetch data from a URL.\n   * @param url - The URL to fetch data from\n   * @returns - The data fetched from the URL\n   */\n  async get(url) {\n    try {\n      const { data, status } = await this._axiosInstance.get(url);\n      if (status === 200 || status == 202) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * A generic method to post data to a URL.\n   * @param url - The URL to fetch data from\n   * @param body - Payload\n   * @param headers - Specify headers, default: { \"Content-Type\": \"application/json\" }\n   * @returns - Data\n   */\n  async post(url, body, headers = { \"Content-Type\": \"application/json\" }) {\n    try {\n      const { data, status } = await this._axiosInstance.post(url, body, {\n        headers\n      });\n      if (status === 200 || status == 202) return data;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Allow you to listen to a transaction confirmation. Upon confirmation, the callback will be called.\n   * @param txHash - The transaction hash to listen for confirmation\n   * @param callback - The callback function to call when the transaction is confirmed\n   * @param limit - The number of blocks to wait for confirmation\n   */\n  onTxConfirmed(txHash, callback, limit = 100) {\n    let attempts = 0;\n    const checkTx = setInterval(() => {\n      if (attempts >= limit) clearInterval(checkTx);\n      this.fetchTxInfo(txHash).then((txInfo) => {\n        this.fetchBlockInfo(txInfo.block).then((blockInfo) => {\n          if (blockInfo?.confirmations > 0) {\n            clearInterval(checkTx);\n            callback();\n          }\n        }).catch(() => {\n          attempts += 1;\n        });\n      }).catch(() => {\n        attempts += 1;\n      });\n    }, 5e3);\n  }\n  /**\n   * Deprecated, use fetchAddressTxs instead\n   * @param address\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTransactions(address) {\n    return await this.fetchAddressTxs(address);\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(tx) {\n    try {\n      const headers = { \"Content-Type\": \"application/cbor\" };\n      const { data, status } = await this._axiosInstance.post(\n        \"submittx\",\n        toBytes(tx),\n        { headers }\n      );\n      if (status === 202) return data;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  toUTxO(utxo, address) {\n    return {\n      input: {\n        outputIndex: utxo.tx_index,\n        txHash: utxo.tx_hash\n      },\n      output: {\n        address,\n        amount: [\n          { unit: \"lovelace\", quantity: utxo.value },\n          ...utxo.asset_list.map(\n            (a) => ({\n              unit: `${a.policy_id}${a.asset_name}`,\n              quantity: `${a.quantity}`\n            })\n          )\n        ],\n        dataHash: utxo.datum_hash ?? void 0,\n        plutusData: utxo.inline_datum?.bytes ?? void 0,\n        scriptRef: this.resolveScriptRef(utxo.reference_script),\n        scriptHash: utxo.reference_script?.hash ?? void 0\n      }\n    };\n  }\n  resolveScriptRef = (kScriptRef) => {\n    if (kScriptRef) {\n      let script;\n      if (kScriptRef.type.startsWith(\"plutus\")) {\n        const normalized = normalizePlutusScript(\n          kScriptRef.bytes,\n          \"DoubleCBOR\"\n        );\n        script = {\n          code: normalized,\n          version: kScriptRef.type.replace(\"plutus\", \"\")\n        };\n      } else {\n        script = fromNativeScript(deserializeNativeScript(kScriptRef.bytes));\n      }\n      if (script) return toScriptRef(script).toCbor().toString();\n    }\n    return void 0;\n  };\n};\n\n// src/maestro.ts\n\n\n\nvar MaestroProvider = class {\n  _axiosInstance;\n  _amountsAsStrings = {\n    headers: {\n      \"amounts-as-strings\": \"true\"\n    }\n  };\n  _network;\n  submitUrl;\n  constructor({ network, apiKey, turboSubmit = false }) {\n    this._axiosInstance = axios[\"default\"].create({\n      baseURL: `https://${network}.gomaestro-api.org/v1`,\n      headers: { \"api-key\": apiKey }\n    });\n    this.submitUrl = turboSubmit ? \"txmanager/turbosubmit\" : \"txmanager\";\n    this._network = network;\n  }\n  /**\n   * Evaluates the resources required to execute the transaction\n   * @param tx - The transaction to evaluate\n   */\n  async evaluateTx(cbor) {\n    try {\n      const { data, status } = await this._axiosInstance.post(\n        \"transactions/evaluate\",\n        { cbor }\n      );\n      if (status === 200) {\n        const tagMap = {\n          spend: \"SPEND\",\n          mint: \"MINT\",\n          cert: \"CERT\",\n          wdrl: \"REWARD\"\n        };\n        const result = data.map((action) => {\n          const budget = action.ex_units;\n          const index = action.redeemer_index;\n          const tag = tagMap[action.redeemer_tag];\n          return { budget, index, tag };\n        });\n        return result;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Obtain information about a specific stake account.\n   * @param address - Wallet address to fetch account information\n   */\n  async fetchAccountInfo(address) {\n    const rewardAddress = address.startsWith(\"addr\") ? resolveRewardAddress(address) : address;\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `accounts/${rewardAddress}`,\n        this._amountsAsStrings\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        return {\n          poolId: data.delegated_pool,\n          active: data.registered,\n          balance: data.total_balance,\n          rewards: data.rewards_available,\n          withdrawals: data.total_withdrawn\n        };\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the assets for a given address.\n   * @param address - The address to fetch assets for\n   * @returns A map of asset unit to quantity\n   */\n  async fetchAddressAssets(address) {\n    const utxos = await this.fetchAddressUTxOs(address);\n    return utxosToAssets(utxos);\n  }\n  /**\n   * UTXOs of the address.\n   * @param address - The address to fetch UTXO\n   * @param asset - UTXOs of a given asset​\n   * @returns - Array of UTxOs\n   */\n  async fetchAddressUTxOs(address, asset) {\n    const queryPredicate = (() => {\n      if (address.startsWith(\"addr_vkh\") || address.startsWith(\"addr_shared_vkh\"))\n        return `addresses/cred/${address}`;\n      else return `addresses/${address}`;\n    })();\n    const appendAssetString = asset ? `&asset=${asset}` : \"\";\n    const paginateUTxOs = async (cursor = null, utxos = []) => {\n      const appendCursorString = cursor === null ? \"\" : `&cursor=${cursor}`;\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `${queryPredicate}/utxos?count=100${appendAssetString}${appendCursorString}`,\n        this._amountsAsStrings\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        const pageUTxOs = data.map(this.toUTxO);\n        const addedUtxos = [...utxos, ...pageUTxOs];\n        const nextCursor = timestampedData.next_cursor;\n        return nextCursor == null ? addedUtxos : paginateUTxOs(nextCursor, addedUtxos);\n      }\n      throw parseHttpError(timestampedData);\n    };\n    try {\n      return await paginateUTxOs();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Transactions for an address. The `TransactionInfo` would only return the `hash`, `inputs`, and `outputs`.\n   * @param address\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTxs(address, option = { maxPage: 100, order: \"desc\" }) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Fetches the asset addresses for a given asset.\n   * @param asset - The asset to fetch addresses for\n   */\n  async fetchAssetAddresses(asset) {\n    const { policyId, assetName } = dist_parseAssetUnit(asset);\n    const paginateAddresses = async (cursor = null, addressesWithQuantity = []) => {\n      const appendCursorString = cursor === null ? \"\" : `&cursor=${cursor}`;\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}/addresses?count=100${appendCursorString}`,\n        this._amountsAsStrings\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        const pageAddressesWithQuantity = data.map((a) => {\n          return { address: a.address, quantity: a.amount };\n        });\n        const nextCursor = timestampedData.next_cursor;\n        const addedData = [\n          ...addressesWithQuantity,\n          ...pageAddressesWithQuantity\n        ];\n        return nextCursor == null ? addedData : paginateAddresses(nextCursor, addedData);\n      }\n      throw parseHttpError(timestampedData);\n    };\n    try {\n      return await paginateAddresses();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   * @returns The metadata for the asset\n   */\n  async fetchAssetMetadata(asset) {\n    try {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}`\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        return {\n          ...data.asset_standards.cip25_metadata,\n          ...data.asset_standards.cip68_metadata,\n          fingerprint: data.fingerprint,\n          totalSupply: data.total_supply,\n          mintingTxHash: data.latest_mint_tx.tx_hash,\n          mintCount: data.mint_tx_count\n        };\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the block information for a given block hash.\n   * @param hash The block hash to fetch from\n   * @returns The block information\n   */\n  async fetchBlockInfo(hash) {\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `blocks/${hash}`,\n        this._amountsAsStrings\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        return {\n          confirmations: data.confirmations,\n          epoch: data.epoch,\n          epochSlot: data.epoch_slot.toString(),\n          fees: data.total_fees,\n          hash: data.hash,\n          nextBlock: data.next_block ?? \"\",\n          operationalCertificate: data.operational_certificate?.hot_vkey,\n          output: data.total_output_lovelace ?? \"0\",\n          previousBlock: data.previous_block,\n          size: data.size,\n          slot: data.absolute_slot.toString(),\n          slotLeader: data.block_producer ?? \"\",\n          time: Date.parse(data.timestamp) / 1e3,\n          txCount: data.tx_hashes.length,\n          VRFKey: dist_VrfVkBech32.fromHex(data.vrf_key)\n        };\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the list of assets for a given policy ID.\n   * @param policyId The policy ID to fetch assets for\n   * @param cursor The cursor for pagination\n   * @returns The list of assets and the next cursor\n   */\n  async fetchCollectionAssets(policyId, cursor) {\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `policy/${policyId}/assets?count=100${cursor ? `&cursor=${cursor}` : \"\"}`\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        return {\n          assets: data.map((asset) => ({\n            unit: policyId + asset.asset_name,\n            quantity: asset.total_supply\n          })),\n          next: timestampedData.next_cursor\n        };\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      return { assets: [], next: null };\n    }\n  }\n  async fetchHandle(handle) {\n    if (this._network !== \"Mainnet\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const assetName = fromUTF8(`${handle.replace(\"$\", \"\")}`);\n      const asset = await this.fetchAssetMetadata(\n        `${SUPPORTED_HANDLES[1]}000643b0${assetName}`\n      );\n      if (asset.metadata !== void 0) return asset.metadata;\n      throw \"Problem fetching metadata\";\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchHandleAddress(handle) {\n    if (this._network !== \"Mainnet\") {\n      throw new Error(\n        \"Does not support fetching addresses by handle on non-mainnet networks.\"\n      );\n    }\n    try {\n      const handleWithoutDollar = handle.charAt(0) === \"$\" ? handle.substring(1) : handle;\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `ecosystem/adahandle/${handleWithoutDollar}`\n      );\n      if (status === 200) return timestampedData.data;\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetch the latest protocol parameters.\n   * @param epoch\n   * @returns - Protocol parameters\n   */\n  async fetchProtocolParameters(epoch = Number.NaN) {\n    if (!isNaN(epoch))\n      throw new Error(\n        \"Maestro only supports fetching Protocol parameters of the latest completed epoch.\"\n      );\n    const decimalFromRationalString = (str) => {\n      const forwardSlashIndex = str.indexOf(\"/\");\n      return parseInt(str.slice(0, forwardSlashIndex)) / parseInt(str.slice(forwardSlashIndex + 1));\n    };\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\"protocol-params\");\n      if (status === 200) {\n        const data = timestampedData.data;\n        try {\n          const { data: timestampedDataEpochData, status: epochStatus } = await this._axiosInstance.get(\"epochs/current\");\n          if (epochStatus === 200) {\n            const epochData = timestampedDataEpochData.data;\n            return castProtocol({\n              coinsPerUtxoSize: parseInt(data.coins_per_utxo_byte),\n              collateralPercent: parseInt(data.collateral_percentage),\n              decentralisation: 0,\n              // Deprecated in Babbage era.\n              epoch: parseInt(epochData.epoch_no),\n              keyDeposit: parseInt(data.stake_key_deposit),\n              maxBlockExMem: data.max_execution_units_per_block.memory.toString(),\n              maxBlockExSteps: data.max_execution_units_per_block.steps.toString(),\n              maxBlockHeaderSize: parseInt(data.max_block_header_size),\n              maxBlockSize: parseInt(data.max_block_body_size),\n              maxCollateralInputs: parseInt(data.max_collateral_inputs),\n              maxTxExMem: data.max_execution_units_per_transaction.memory.toString(),\n              maxTxExSteps: data.max_execution_units_per_transaction.steps.toString(),\n              maxTxSize: parseInt(data.max_tx_size),\n              maxValSize: parseInt(data.max_value_sized),\n              minFeeA: data.min_fee_coefficient,\n              minFeeB: data.min_fee_constant,\n              minPoolCost: data.min_pool_cost.toString(),\n              poolDeposit: parseInt(data.pool_deposit),\n              priceMem: decimalFromRationalString(data.prices.memory),\n              priceStep: decimalFromRationalString(data.prices.steps)\n            });\n          }\n          throw parseHttpError(timestampedDataEpochData);\n        } catch (error) {\n          throw parseHttpError(error);\n        }\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the transaction information for a given transaction hash.\n   * @param hash The transaction hash to fetch\n   * @returns The transaction information\n   */\n  async fetchTxInfo(hash) {\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `transactions/${hash}`\n      );\n      if (status === 200) {\n        const data = timestampedData.data;\n        return {\n          block: data.block_hash,\n          deposit: data.deposit.toString(),\n          fees: data.fee.toString(),\n          hash: data.tx_hash,\n          index: data.block_tx_index,\n          invalidAfter: data.invalid_hereafter ?? \"\",\n          invalidBefore: data.invalid_before ?? \"\",\n          slot: data.block_absolute_slot.toString(),\n          size: data.size - 1\n        };\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Get UTxOs for a given hash.\n   * @param hash The transaction hash\n   * @param index Optional - The output index for filtering post fetching\n   * @returns - Array of UTxOs\n   */\n  async fetchUTxOs(hash, index) {\n    try {\n      const { data: timestampedData, status } = await this._axiosInstance.get(\n        `transactions/${hash}`,\n        this._amountsAsStrings\n      );\n      if (status === 200) {\n        const msOutputs = timestampedData.data.outputs;\n        const outputs = msOutputs.map(this.toUTxO);\n        if (index !== void 0) {\n          return outputs.filter((utxo) => utxo.input.outputIndex === index);\n        }\n        return outputs;\n      }\n      throw parseHttpError(timestampedData);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the governance proposal information.\n   * @param txHash The transaction hash of the proposal\n   * @param certIndex The certificate index of the proposal\n   * @returns The governance proposal information\n   */\n  async fetchGovernanceProposal(txHash, certIndex) {\n    throw new Error(\"Method not implemented by Maestro\");\n  }\n  async get(url) {\n    try {\n      const { data, status } = await this._axiosInstance.get(url);\n      if (status === 200) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Allow you to listen to a transaction confirmation. Upon confirmation, the callback will be called.\n   * @param txHash - The transaction hash to listen for confirmation\n   * @param callback - The callback function to call when the transaction is confirmed\n   * @param limit - The number of blocks to wait for confirmation\n   */\n  onTxConfirmed(txHash, callback, limit = 100) {\n    let attempts = 0;\n    const checkTx = setInterval(() => {\n      if (attempts >= limit) clearInterval(checkTx);\n      this.fetchTxInfo(txHash).then((txInfo) => {\n        this.fetchBlockInfo(txInfo.block).then((blockInfo) => {\n          if (blockInfo?.confirmations > 0) {\n            clearInterval(checkTx);\n            callback();\n          }\n        }).catch(() => {\n          attempts += 1;\n        });\n      }).catch(() => {\n        attempts += 1;\n      });\n    }, 5e3);\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(tx) {\n    try {\n      const headers = { \"Content-Type\": \"application/cbor\" };\n      const { data, status } = await this._axiosInstance.post(\n        this.submitUrl,\n        toBytes(tx),\n        { headers }\n      );\n      if (status === 202) return data;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  toUTxO = (utxo) => ({\n    input: {\n      outputIndex: utxo.index,\n      txHash: utxo.tx_hash\n    },\n    output: {\n      address: utxo.address,\n      amount: utxo.assets.map((asset) => ({\n        unit: asset.unit,\n        quantity: asset.amount\n      })),\n      dataHash: utxo.datum?.hash,\n      plutusData: utxo.datum?.bytes,\n      scriptRef: this.resolveScript(utxo),\n      scriptHash: utxo.reference_script?.hash\n    }\n  });\n  resolveScript = (utxo) => {\n    if (utxo.reference_script) {\n      let script;\n      if (utxo.reference_script.type === \"native\") {\n        script = utxo.reference_script.json;\n      } else {\n        const scriptBytes = utxo.reference_script.bytes;\n        if (scriptBytes) {\n          const normalized = normalizePlutusScript(scriptBytes, \"DoubleCBOR\");\n          script = {\n            code: normalized,\n            version: utxo.reference_script.type.replace(\"plutusv\", \"V\")\n          };\n        } else {\n          throw new Error(\"Script bytes not found\");\n        }\n      }\n      return toScriptRef(script).toCbor().toString();\n    } else return void 0;\n  };\n};\n\n// src/ogmios.ts\n\nvar OgmiosProvider = class {\n  _baseUrl;\n  constructor(...args) {\n    this._baseUrl = isNetwork(args[0]) ? SUPPORTED_OGMIOS_LINKS[args[0]] : args[0];\n  }\n  /**\n   * Evaluates the resources required to execute the transaction\n   * @param tx - The transaction to evaluate\n   */\n  async evaluateTx(tx) {\n    const client = await this.open();\n    this.send(client, \"evaluateTransaction\", {\n      transaction: {\n        cbor: tx\n      }\n    });\n    return new Promise((resolve, reject) => {\n      client.addEventListener(\n        \"message\",\n        (response) => {\n          try {\n            const { result } = JSON.parse(response.data);\n            if (result) {\n              resolve(\n                Object.values(result).map((val) => {\n                  return {\n                    index: val.validator.index,\n                    tag: val.validator.purpose.toUpperCase(),\n                    budget: {\n                      mem: val.budget.memory,\n                      steps: val.budget.cpu\n                    }\n                  };\n                })\n              );\n            } else {\n              reject(result);\n            }\n            client.close();\n          } catch (error) {\n            reject(error);\n          }\n        },\n        { once: true }\n      );\n    });\n  }\n  async onNextTx(callback) {\n    const client = await this.open();\n    this.send(client, \"acquireMempool\", {});\n    client.addEventListener(\"message\", (response) => {\n      const { result } = JSON.parse(response.data);\n      if (result === null) {\n        return this.send(client, \"acquireMempool\", {});\n      }\n      if (result.transaction === null || result.transaction === void 0) {\n        this.send(client, \"acquireMempool\", {});\n      } else {\n        callback(result);\n      }\n      this.send(client, \"nextTransaction\", {\n        fields: \"all\"\n      });\n    });\n    return () => client.close();\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(tx) {\n    const client = await this.open();\n    this.send(client, \"submitTransaction\", {\n      transaction: {\n        cbor: tx\n      }\n    });\n    return new Promise((resolve, reject) => {\n      client.addEventListener(\n        \"message\",\n        (response) => {\n          try {\n            const { result } = JSON.parse(response.data);\n            if (!result) {\n              reject(JSON.parse(response.data).error);\n            }\n            if (result.transaction !== null && result.transaction !== void 0) {\n              resolve(result.transaction.id);\n            } else {\n              reject(result);\n            }\n            client.close();\n          } catch (error) {\n            reject(error);\n          }\n        },\n        { once: true }\n      );\n    });\n  }\n  async open() {\n    const client = new WebSocket(this._baseUrl);\n    await new Promise((resolve) => {\n      client.addEventListener(\"open\", () => resolve(true), { once: true });\n    });\n    return client;\n  }\n  send(client, method, params) {\n    client.send(\n      JSON.stringify({\n        jsonrpc: \"2.0\",\n        type: \"jsonwsp/request\",\n        servicename: \"ogmios\",\n        method,\n        params\n      })\n    );\n  }\n};\n\n// src/utxo-rpc.ts\n\n\n\n\nvar U5CProvider = class {\n  // Clients for querying and submitting transactions on the Cardano blockchain.\n  queryClient;\n  submitClient;\n  /**\n   * Constructor initializes the query and submit clients with provided URL and optional headers.\n   * @param url - The base URL for interacting with Cardano nodes.\n   * @param headers - Optional HTTP headers for API requests.\n   */\n  constructor({\n    url,\n    headers\n  }) {\n    this.queryClient = new QueryClient({\n      uri: url,\n      headers\n    });\n    this.submitClient = new SubmitClient({\n      uri: url,\n      headers\n    });\n  }\n  /**\n   * Allow you to listen to a transaction confirmation. Upon confirmation, the callback will be called.\n   * @param txHash - The transaction hash to listen for confirmation\n   * @param callback - The callback function to call when the transaction is confirmed\n   * @param limit - The number of blocks to wait for confirmation\n   */\n  onTxConfirmed(txHash, callback, limit = 100) {\n    const onConfirmed = async () => {\n      const updates = this.submitClient.waitForTx(dist_hexToBytes(txHash));\n      for await (const stage of updates) {\n        console.log(JSON.stringify(updates));\n        if (stage === submit_pb_exports.Stage.CONFIRMED) {\n          callback();\n          return;\n        }\n      }\n    };\n    const timeoutId = setTimeout(() => {\n      console.log(\"Transaction confirmation timed out.\");\n    }, limit * 5e3);\n    onConfirmed().finally(() => clearTimeout(timeoutId));\n  }\n  /**\n   * Evaluates the resources required to execute the transaction\n   * @param tx - The transaction to evaluate\n   */\n  evaluateTx(tx) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(tx) {\n    const cbor = toBytes(tx);\n    const hash = await this.submitClient.submitTx(cbor);\n    return dist_bytesToHex(hash);\n  }\n  /**\n   * Obtain information about a specific stake account.\n   * @param address - Wallet address to fetch account information\n   */\n  fetchAccountInfo(address) {\n    throw new Error(\"Method not implemented.\");\n  }\n  async fetchAddressAssets(address) {\n    const utxos = await this.fetchAddressUTxOs(address);\n    return utxosToAssets(utxos);\n  }\n  /**\n   * Fetches the UTxOs for a given address.\n   * @param address - The address to fetch UTxOs for\n   * @param asset - The asset to filter UTxOs by (optional)\n   * @returns UTxOs for the given address\n   */\n  async fetchAddressUTxOs(address, asset) {\n    const addressBytes = provider_dist_Buffer.from(dist_Address.fromBech32(address).toBytes());\n    const utxoSearchResult = await this.queryClient.searchUtxosByAddress(addressBytes);\n    return utxoSearchResult.map((item) => {\n      const utxo = this._rpcUtxoToMeshUtxo(item.txoRef, item.parsedValued);\n      if (asset) {\n        if (utxo.output.amount.some((amountItem) => amountItem.unit === asset)) {\n          return utxo;\n        }\n        return void 0;\n      }\n      return utxo;\n    }).filter((utxo) => utxo !== void 0);\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Transactions for an address. The `TransactionInfo` would only return the `hash`, `inputs`, and `outputs`.\n   * @param address - The address to fetch transactions for\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTxs(address, option = { maxPage: 100, order: \"desc\" }) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the asset addresses for a given asset.\n   * @param asset - The asset to fetch addresses for\n   */\n  fetchAssetAddresses(asset) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   */\n  fetchAssetMetadata(asset) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the block information for a given block hash.\n   * @param hash - The block hash to fetch block information for\n   */\n  fetchBlockInfo(hash) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the collection assets for a given policy ID.\n   * @param policyId - The policy ID to fetch collection assets for\n   * @param cursor - The cursor to fetch the next set of assets (optional)\n   */\n  fetchCollectionAssets(policyId, cursor) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the information (AssetMetadata) for a given handle.\n   * @param handle - The handle to fetch information for\n   */\n  fetchHandle(handle) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Resolve the handle's address from the handle.\n   * @param handle - The handle to resolve\n   */\n  fetchHandleAddress(handle) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches protocol parameters\n   */\n  async fetchProtocolParameters(epoch = Number.NaN) {\n    const rpcPParams = await this.queryClient.readParams();\n    if (rpcPParams === void 0 || rpcPParams === null) {\n      throw new Error(`Error fetching protocol parameters`);\n    }\n    return this._rpcPParamsToProtocol(rpcPParams);\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches transaction info for a given hash.\n   * @param hash - The transaction hash\n   */\n  fetchTxInfo(hash) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches output UTxOs of a given transaction hash.\n   * @param hash - The transaction hash\n   */\n  fetchUTxOs(hash) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the governance proposal information.\n   * @param txHash The transaction hash of the proposal\n   * @param certIndex The certificate index of the proposal\n   * @returns The governance proposal information\n   */\n  async fetchGovernanceProposal(txHash, certIndex) {\n    throw new Error(\"Method not implemented\");\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * @param url\n   */\n  get(url) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Waits for transaction confirmation within a given timeout.\n   * @param txId - The transaction hash.\n   * @param timeout - Optional timeout in milliseconds.\n   * @returns True if the transaction is confirmed within the timeout, otherwise false.\n   */\n  awaitTransactionConfirmation(txId, timeout) {\n    const onConfirmed = (async () => {\n      const updates = this.submitClient.waitForTx(dist_hexToBytes(txId));\n      for await (const stage of updates) {\n        if (stage == submit_pb_exports.Stage.CONFIRMED) {\n          return true;\n        }\n      }\n      return false;\n    })();\n    const onTimeout = new Promise(\n      (resolve) => setTimeout(() => resolve(false), timeout)\n    );\n    return Promise.race([onConfirmed, onTimeout]);\n  }\n  /**\n   * Helper function to convert an RPC UTxO object to a Mesh UTxO object.\n   * @param rpcTxoRef - The transaction output reference from RPC.\n   * @param rpcTxOutput - The transaction output details from RPC.\n   * @returns A formatted UTxO object.\n   */\n  _rpcUtxoToMeshUtxo(rpcTxoRef, rpcTxOutput) {\n    const amount = [\n      {\n        unit: \"lovelace\",\n        quantity: rpcTxOutput.coin.toString()\n      }\n    ];\n    rpcTxOutput.assets.forEach((ma) => {\n      ma.assets.forEach((asset) => {\n        amount.push({\n          unit: provider_dist_Buffer.from(ma.policyId).toString(\"hex\") + provider_dist_Buffer.from(asset.name).toString(\"hex\"),\n          quantity: asset.outputCoin.toString()\n        });\n      });\n    });\n    let dataHash = void 0;\n    let plutusData = void 0;\n    if (rpcTxOutput.datum !== void 0) {\n      if (rpcTxOutput.datum?.originalCbor && rpcTxOutput.datum.originalCbor.length > 0) {\n        dataHash = provider_dist_Buffer.from(rpcTxOutput.datum.hash).toString(\"hex\");\n        plutusData = provider_dist_Buffer.from(rpcTxOutput.datum.originalCbor).toString(\n          \"hex\"\n        );\n      } else if (rpcTxOutput.datum?.hash && rpcTxOutput.datum.hash.length > 0) {\n        dataHash = provider_dist_Buffer.from(rpcTxOutput.datum.hash).toString(\"hex\");\n      }\n    }\n    let scriptRef = void 0;\n    let scriptHash = void 0;\n    if (rpcTxOutput.script !== void 0) {\n    }\n    return {\n      input: {\n        outputIndex: rpcTxoRef.index,\n        txHash: provider_dist_Buffer.from(rpcTxoRef.hash).toString(\"hex\")\n      },\n      output: {\n        address: dist_Address.fromBytes(\n          esm_primitives_HexBlob.fromBytes(rpcTxOutput.address)\n        ).toBech32(),\n        amount,\n        dataHash,\n        plutusData,\n        scriptRef,\n        scriptHash\n      }\n    };\n  }\n  /**\n   * Converts RPC protocol parameters to a Mesh Protocol object.\n   * @param rpcPParams - The protocol parameters from the RPC.\n   * @returns A Protocol object.\n   */\n  _rpcPParamsToProtocol(rpcPParams) {\n    return castProtocol({\n      coinsPerUtxoSize: Number(rpcPParams.coinsPerUtxoByte),\n      collateralPercent: Number(rpcPParams.collateralPercentage),\n      decentralisation: 0,\n      // Deprecated in Babbage era.\n      keyDeposit: Number(rpcPParams.stakeKeyDeposit),\n      maxBlockExMem: Number(rpcPParams.maxExecutionUnitsPerBlock?.memory),\n      maxBlockExSteps: Number(rpcPParams.maxExecutionUnitsPerBlock?.steps),\n      maxBlockHeaderSize: Number(rpcPParams.maxBlockHeaderSize),\n      maxBlockSize: Number(rpcPParams.maxBlockBodySize),\n      maxCollateralInputs: Number(rpcPParams.maxCollateralInputs),\n      maxTxExMem: Number(rpcPParams.maxExecutionUnitsPerTransaction?.memory),\n      maxTxExSteps: Number(rpcPParams.maxExecutionUnitsPerTransaction?.steps),\n      maxTxSize: Number(rpcPParams.maxTxSize),\n      maxValSize: Number(rpcPParams.maxValueSize),\n      minFeeA: Number(rpcPParams.minFeeCoefficient),\n      minFeeB: Number(rpcPParams.minFeeConstant),\n      minPoolCost: Number(rpcPParams.minPoolCost),\n      poolDeposit: Number(rpcPParams.poolDeposit),\n      priceMem: Number(rpcPParams.prices?.memory),\n      priceStep: Number(rpcPParams.prices?.steps)\n    });\n  }\n};\n\n// src/yaci.ts\n\n\n\nvar YaciProvider = class {\n  _axiosInstance;\n  _adminAxiosInstance;\n  /**\n   * Set the URL of the instance.\n   * @param baseUrl The base URL of the instance.\n   */\n  constructor(baseUrl = \"https://yaci-node.meshjs.dev/api/v1/\", adminUrl) {\n    this._axiosInstance = axios[\"default\"].create({\n      baseURL: baseUrl\n    });\n    if (adminUrl) {\n      this._adminAxiosInstance = axios[\"default\"].create({\n        baseURL: adminUrl\n      });\n    }\n  }\n  /**\n   * Obtain information about a specific stake account.\n   * @param address - Wallet address to fetch account information\n   */\n  async fetchAccountInfo(address) {\n    const rewardAddress = address.startsWith(\"addr\") ? resolveRewardAddress(address) : address;\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `accounts/${rewardAddress}`\n      );\n      if (status === 200)\n        return {\n          poolId: data.pool_id,\n          active: data.active || data.active_epoch !== null,\n          balance: data.controlled_amount,\n          rewards: data.withdrawable_amount,\n          withdrawals: data.withdrawals_sum\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  resolveScriptRef = async (scriptHash) => {\n    if (scriptHash) {\n      const { data, status } = await this._axiosInstance.get(\n        `scripts/${scriptHash}`\n      );\n      if (status === 200) {\n        let script;\n        if (data.type.startsWith(\"plutus\")) {\n          const plutusScript = await this.fetchPlutusScriptCBOR(scriptHash);\n          const normalized = normalizePlutusScript(plutusScript, \"DoubleCBOR\");\n          script = {\n            version: data.type.replace(\"plutus\", \"\"),\n            code: normalized\n          };\n        } else {\n          script = await this.fetchNativeScriptJSON(scriptHash);\n        }\n        return toScriptRef(script).toCbor();\n      }\n      throw parseHttpError(data);\n    }\n    return void 0;\n  };\n  toUTxO = async (bfUTxO, tx_hash) => ({\n    input: {\n      outputIndex: bfUTxO.output_index,\n      txHash: tx_hash\n    },\n    output: {\n      address: bfUTxO.address,\n      amount: bfUTxO.amount.map((utxo) => {\n        return { ...utxo, quantity: utxo.quantity.toString() };\n      }),\n      dataHash: bfUTxO.data_hash ?? void 0,\n      plutusData: bfUTxO.inline_datum ?? void 0,\n      scriptRef: bfUTxO.script_ref ? bfUTxO.script_ref : bfUTxO.reference_script_hash ? await this.resolveScriptRef(bfUTxO.reference_script_hash) : void 0,\n      scriptHash: bfUTxO.reference_script_hash\n    }\n  });\n  /**\n   * Fetches the assets for a given address.\n   * @param address - The address to fetch assets for\n   * @returns A map of asset unit to quantity\n   */\n  async fetchAddressAssets(address) {\n    const utxos = await this.fetchAddressUTxOs(address);\n    return utxosToAssets(utxos);\n  }\n  /**\n   * UTXOs of the address.\n   * @param address - The address to fetch UTXO\n   * @param asset - UTXOs of a given asset​\n   * @returns - Array of UTxOs\n   */\n  async fetchAddressUTxOs(address, asset) {\n    const filter = asset !== void 0 ? `/${asset}` : \"\";\n    const url = `addresses/${address}/utxos` + filter;\n    const paginateUTxOs = async (page = 1, utxos = []) => {\n      const { data, status } = await this._axiosInstance.get(\n        `${url}?page=${page}`\n      );\n      if (status === 200)\n        return data.length > 0 ? paginateUTxOs(page + 1, [\n          ...utxos,\n          ...await Promise.all(\n            data.map((utxo) => this.toUTxO(utxo, utxo.tx_hash))\n          )\n        ]) : utxos;\n      throw parseHttpError(data);\n    };\n    try {\n      return await paginateUTxOs();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Transactions for an address. The `TransactionInfo` would only return the `hash`, `inputs`, and `outputs`.\n   * @param address - The address to fetch transactions for\n   * @returns - partial TransactionInfo\n   */\n  async fetchAddressTxs(address, option = { maxPage: 100, order: \"desc\" }) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Fetches the asset addresses for a given asset.\n   * @param asset - The asset to fetch addresses for\n   */\n  async fetchAssetAddresses(asset) {\n    const paginateAddresses = async (page = 1, addresses = []) => {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}/addresses?page=${page}`\n      );\n      if (status === 200)\n        return data.length > 0 ? paginateAddresses(page + 1, [...addresses, ...data]) : addresses;\n      throw parseHttpError(data);\n    };\n    try {\n      return await paginateAddresses();\n    } catch (error) {\n      return [];\n    }\n  }\n  /**\n   * Fetches the metadata for a given asset.\n   * @param asset - The asset to fetch metadata for\n   * @returns The metadata for the asset\n   */\n  async fetchAssetMetadata(asset) {\n    try {\n      const { policyId, assetName } = dist_parseAssetUnit(asset);\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${policyId}${assetName}`\n      );\n      if (status === 200)\n        return {\n          ...data.onchain_metadata\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the block information for a given block hash.\n   * @param hash The block hash to fetch from\n   * @returns The block information\n   */\n  async fetchBlockInfo(hash) {\n    try {\n      const { data, status } = await this._axiosInstance.get(`blocks/${hash}`);\n      if (status === 200)\n        return {\n          confirmations: data.confirmations,\n          epoch: data.epoch,\n          epochSlot: data.epoch_slot.toString(),\n          fees: data.fees,\n          hash: data.hash,\n          nextBlock: data.next_block ?? \"\",\n          operationalCertificate: data.op_cert,\n          output: data.output ?? \"0\",\n          previousBlock: data.previous_block,\n          size: data.size,\n          slot: data.slot.toString(),\n          slotLeader: data.slot_leader ?? \"\",\n          time: data.time,\n          txCount: data.tx_count,\n          VRFKey: data.block_vrf\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the list of assets for a given policy ID.\n   * @param policyId The policy ID to fetch assets for\n   * @param cursor The cursor for pagination\n   * @returns The list of assets and the next cursor\n   */\n  async fetchCollectionAssets(policyId, cursor = 1) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `assets/policy/${policyId}?page=${cursor}`\n      );\n      if (status === 200)\n        return {\n          assets: data.map((asset) => ({\n            unit: asset.asset,\n            quantity: asset.quantity\n          })),\n          next: data.length === 100 ? cursor + 1 : null\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      return { assets: [], next: null };\n    }\n  }\n  async fetchHandle(handle) {\n    throw new Error(\"Method not implemented.\");\n  }\n  async fetchHandleAddress(handle) {\n    try {\n      const assetName = fromUTF8(handle.replace(\"$\", \"\"));\n      const { data, status } = await this._axiosInstance.get(\n        `assets/${SUPPORTED_HANDLES[1]}${assetName}/addresses`\n      );\n      if (status === 200) return data[0].address;\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetch the latest protocol parameters.\n   * @param epoch Optional - The epoch to fetch protocol parameters for\n   * @returns - Protocol parameters\n   */\n  async fetchProtocolParameters(epoch = Number.NaN) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `epochs/${isNaN(epoch) ? \"latest\" : epoch}/parameters`\n      );\n      if (status === 200)\n        return castProtocol({\n          coinsPerUtxoSize: data.coins_per_utxo_size,\n          collateralPercent: data.collateral_percent,\n          decentralisation: data.decentralisation_param,\n          epoch: data.epoch,\n          keyDeposit: data.key_deposit,\n          maxBlockExMem: data.max_block_ex_mem,\n          maxBlockExSteps: data.max_block_ex_steps,\n          maxBlockHeaderSize: data.max_block_header_size,\n          maxBlockSize: data.max_block_size,\n          maxCollateralInputs: data.max_collateral_inputs,\n          maxTxExMem: data.max_tx_ex_mem,\n          maxTxExSteps: data.max_tx_ex_steps,\n          maxTxSize: data.max_tx_size,\n          maxValSize: data.max_val_size,\n          minFeeA: data.min_fee_a,\n          minFeeB: data.min_fee_b,\n          minPoolCost: data.min_pool_cost,\n          poolDeposit: data.pool_deposit,\n          priceMem: data.price_mem,\n          priceStep: data.price_step\n        });\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches the transaction information for a given transaction hash.\n   * @param hash The transaction hash to fetch\n   * @returns The transaction information\n   */\n  async fetchTxInfo(hash) {\n    try {\n      const { data, status } = await this._axiosInstance.get(`txs/${hash}`);\n      if (status === 200)\n        return {\n          block: data.block,\n          deposit: data.deposit,\n          fees: data.fees,\n          hash: data.hash,\n          index: data.index,\n          invalidAfter: data.invalid_hereafter ?? \"\",\n          invalidBefore: data.invalid_before ?? \"\",\n          slot: data.slot.toString(),\n          size: data.size\n        };\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Get UTxOs for a given hash.\n   * @param hash The transaction hash\n   * @param index Optional - The output index for filtering post fetching\n   * @returns - Array of UTxOs\n   */\n  async fetchUTxOs(hash, index) {\n    try {\n      const { data, status } = await this._axiosInstance.get(\n        `txs/${hash}/utxos`\n      );\n      if (status === 200) {\n        const bfOutputs = data.outputs;\n        const outputsPromises = [];\n        bfOutputs.forEach((output) => {\n          outputsPromises.push(this.toUTxO(output, hash));\n        });\n        const outputs = await Promise.all(outputsPromises);\n        if (index !== void 0) {\n          return outputs.filter((utxo) => utxo.input.outputIndex === index);\n        }\n        return outputs;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Unimplemented - open for contribution\n   *\n   * Fetches the governance proposal information.\n   * @param txHash The transaction hash of the proposal\n   * @param certIndex The certificate index of the proposal\n   * @returns The governance proposal information\n   */\n  async fetchGovernanceProposal(txHash, certIndex) {\n    throw new Error(\"Method not implemented\");\n  }\n  async get(url) {\n    try {\n      const { data, status } = await this._axiosInstance.get(url);\n      if (status === 200) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Allow you to listen to a transaction confirmation. Upon confirmation, the callback will be called.\n   * @param txHash - The transaction hash to listen for confirmation\n   * @param callback - The callback function to call when the transaction is confirmed\n   * @param limit - The number of blocks to wait for confirmation\n   */\n  onTxConfirmed(txHash, callback, limit = 100) {\n    let attempts = 0;\n    const checkTx = setInterval(() => {\n      if (attempts >= limit) clearInterval(checkTx);\n      this.fetchTxInfo(txHash).then((txInfo) => {\n        this.fetchBlockInfo(txInfo.block).then((blockInfo) => {\n          if (blockInfo?.confirmations > 0) {\n            clearInterval(checkTx);\n            callback();\n          }\n        }).catch(() => {\n          attempts += 1;\n        });\n      }).catch(() => {\n        attempts += 1;\n      });\n    }, 5e3);\n  }\n  /**\n   * Submit a serialized transaction to the network.\n   * @param tx - The serialized transaction in hex to submit\n   * @returns The transaction hash of the submitted transaction\n   */\n  async submitTx(txHex) {\n    try {\n      const headers = { \"Content-Type\": \"text/plain\" };\n      const { status, data } = await this._axiosInstance.post(\n        \"/tx/submit\",\n        txHex,\n        {\n          headers\n        }\n      );\n      if (status === 202) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Evaluates the resources required to execute the transaction\n   * @param tx - The transaction to evaluate\n   */\n  async evaluateTx(txHex) {\n    try {\n      const headers = { \"Content-Type\": \"application/cbor\" };\n      const { status, data } = await this._axiosInstance.post(\n        \"utils/txs/evaluate\",\n        txHex,\n        {\n          headers\n        }\n      );\n      if (status === 202 && data.result.EvaluationResult) {\n        const tagMap = {\n          spend: \"SPEND\",\n          mint: \"MINT\",\n          certificate: \"CERT\",\n          reward: \"REWARD\"\n        };\n        const result = [];\n        Object.keys(data.result.EvaluationResult).forEach((key) => {\n          const [tagKey, index] = key.split(\":\");\n          const { memory, steps } = data.result.EvaluationResult[key];\n          result.push({\n            tag: tagMap[tagKey],\n            index: Number(index),\n            budget: { mem: memory, steps }\n          });\n        });\n        return result;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async getDevnetInfo() {\n    try {\n      if (this._adminAxiosInstance === void 0)\n        throw parseHttpError(\"Admin URL not provided\");\n      const { status, data } = await this._adminAxiosInstance.get(\n        `local-cluster/api/admin/devnet`\n      );\n      if (status === 200) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async getGenesisByEra(era) {\n    try {\n      if (this._adminAxiosInstance === void 0)\n        throw parseHttpError(\"Admin URL not provided\");\n      const { status, data } = await this._adminAxiosInstance.get(\n        `local-cluster/api/admin/devnet/genesis/${era}`\n      );\n      if (status === 200) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Topup address with ADA\n   * @param address - Address to topup\n   * @param amount - Amount to topup\n   */\n  async addressTopup(address, amount) {\n    try {\n      if (this._adminAxiosInstance === void 0)\n        throw parseHttpError(\"Admin URL not provided\");\n      const headers = { \"Content-Type\": \"application/json\", accept: \"*/*\" };\n      const { status, data } = await this._adminAxiosInstance.post(\n        \"local-cluster/api/addresses/topup\",\n        JSON.stringify({ address, adaAmount: parseInt(amount) }),\n        {\n          headers\n        }\n      );\n      if (status === 200) {\n        return data;\n      }\n      throw parseHttpError(data);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  async fetchPlutusScriptCBOR(scriptHash) {\n    const { data, status } = await this._axiosInstance.get(\n      `scripts/${scriptHash}/cbor`\n    );\n    if (status === 200) return data.cbor;\n    throw parseHttpError(data);\n  }\n  async fetchNativeScriptJSON(scriptHash) {\n    const { data, status } = await this._axiosInstance.get(\n      `scripts/${scriptHash}/json`\n    );\n    if (status === 200) return data.json;\n    throw parseHttpError(data);\n  }\n};\n\n// src/offline/offline-fetcher.ts\n\n\n\n\nvar OfflineFetcher = class _OfflineFetcher {\n  constructor(network) {\n    this.network = network;\n  }\n  accounts = {};\n  utxos = {};\n  assetAddresses = {};\n  assetMetadata = {};\n  blocks = {};\n  collections = {};\n  protocolParameters = {};\n  transactions = {};\n  paginate(items, cursor, pageSize = 20) {\n    const startIndex = cursor != null ? parseInt(String(cursor), 10) : 0;\n    const paginatedItems = items.slice(startIndex, startIndex + pageSize);\n    const nextCursor = startIndex + pageSize < items.length ? startIndex + pageSize : void 0;\n    return { paginatedItems, nextCursor };\n  }\n  /**\n   * Fetches account information for a given address.\n   * @param address - Address to fetch info for\n   * @returns Promise resolving to account information\n   * @throws Error if account not found\n   */\n  async fetchAccountInfo(address) {\n    const account = this.accounts[address];\n    if (!account) throw new Error(`Account not found: ${address}`);\n    return account;\n  }\n  /**\n   * Fetches UTXOs for a given address, optionally filtered by asset.\n   * @param address - Address to fetch UTXOs for\n   * @param asset - Optional asset ID to filter UTXOs\n   * @returns Promise resolving to array of UTXOs\n   */\n  async fetchAddressUTxOs(address, asset) {\n    const addressUtxos = this.utxos[address] || [];\n    return asset ? addressUtxos.filter(\n      (utxo) => utxo.output.amount.some((a) => a.unit === asset)\n    ) : addressUtxos;\n  }\n  /**\n   * WIP - NOT IMPLEMENTED\n   * @param address\n   * @param options\n   */\n  fetchAddressTxs(address, options) {\n    throw new Error(\"Method not implemented.\");\n  }\n  /**\n   * Fetches addresses holding a specific asset.\n   * @param asset - Asset identifier\n   * @returns Promise resolving to array of asset addresses and quantities\n   */\n  async fetchAssetAddresses(asset) {\n    if (!_OfflineFetcher.isValidHex(asset)) {\n      throw new Error(\"Invalid asset: must be a hex string\");\n    }\n    const addressMap = /* @__PURE__ */ new Map();\n    const registryAddresses = this.assetAddresses[asset] || [];\n    for (const addr of registryAddresses) {\n      addressMap.set(addr.address, BigInt(addr.quantity));\n    }\n    for (const [address, utxos] of Object.entries(this.utxos)) {\n      for (const utxo of utxos) {\n        const assetAmount = utxo.output.amount.find(\n          (amt) => amt.unit === asset\n        );\n        if (assetAmount) {\n          const currentAmount = addressMap.get(address) || BigInt(0);\n          addressMap.set(address, currentAmount + BigInt(assetAmount.quantity));\n        }\n      }\n    }\n    return Array.from(addressMap.entries()).filter(([_, quantity]) => quantity > BigInt(0)).map(([address, quantity]) => ({\n      address,\n      quantity: quantity.toString()\n    }));\n  }\n  /**\n   * Fetches all assets associated with an address.\n   * @param address - Address to fetch assets for\n   * @returns Promise resolving to array of assets held by the address\n   */\n  async fetchAddressAssets(address) {\n    if (!_OfflineFetcher.isValidAddress(address)) {\n      throw new Error(\n        \"Invalid address: must be a valid Bech32 or Base58 address\"\n      );\n    }\n    const assetMap = /* @__PURE__ */ new Map();\n    const addressUtxos = this.utxos[address] || [];\n    for (const utxo of addressUtxos) {\n      for (const amount of utxo.output.amount) {\n        const currentAmount = assetMap.get(amount.unit) || BigInt(0);\n        assetMap.set(amount.unit, currentAmount + BigInt(amount.quantity));\n      }\n    }\n    for (const [assetId, addresses] of Object.entries(this.assetAddresses)) {\n      const assetAddress = addresses.find((addr) => addr.address === address);\n      if (assetAddress) {\n        const currentAmount = assetMap.get(assetId) || BigInt(0);\n        assetMap.set(assetId, currentAmount + BigInt(assetAddress.quantity));\n      }\n    }\n    return Array.from(assetMap.entries()).map(([unit, quantity]) => ({\n      unit,\n      quantity: quantity.toString()\n    }));\n  }\n  /**\n   * Fetches metadata for a specific asset.\n   * @param asset - Asset identifier\n   * @returns Promise resolving to asset metadata\n   * @throws Error if asset metadata not found\n   */\n  async fetchAssetMetadata(asset) {\n    const metadata = this.assetMetadata[asset];\n    if (!metadata) throw new Error(`Asset metadata not found: ${asset}`);\n    return metadata;\n  }\n  /**\n   * Fetches information about a specific block.\n   * @param hash - Block hash\n   * @returns Promise resolving to block information\n   * @throws Error if block not found\n   */\n  async fetchBlockInfo(hash) {\n    const block = this.blocks[hash];\n    if (!block) throw new Error(`Block not found: ${hash}`);\n    return block;\n  }\n  /**\n   * Fetches assets in a collection (by policy ID) with pagination.\n   * @param policyId - Policy ID of the collection\n   * @param cursor - Optional pagination cursor\n   * @returns Promise resolving to paginated assets and next cursor\n   * @throws Error if collection not found or invalid cursor\n   */\n  async fetchCollectionAssets(policyId, cursor) {\n    const assets = this.collections[policyId];\n    if (!assets) throw new Error(`Collection not found: ${policyId}`);\n    if (cursor && !_OfflineFetcher.isIntegerString(String(cursor))) {\n      throw new Error(\"Invalid cursor: must be a string of digits\");\n    }\n    const { paginatedItems, nextCursor } = this.paginate(assets, cursor);\n    return { assets: paginatedItems, next: nextCursor };\n  }\n  /**\n   * Fetches metadata for a handle.\n   * @param handle - Handle to fetch metadata for\n   * @returns Promise resolving to handle metadata\n   * @throws Error if handle not found or invalid\n   */\n  async fetchHandle(handle) {\n    try {\n      const assetName = fromUTF8(handle.replace(\"$\", \"\"));\n      const handleAsset = `${SUPPORTED_HANDLES[1]}000de140${assetName}`;\n      return await this.fetchAssetMetadata(handleAsset);\n    } catch (error) {\n      throw parseHttpError(error);\n    }\n  }\n  /**\n   * Fetches address associated with a handle.\n   * @param handle - Handle to fetch address for\n   * @returns Promise resolving to address\n   * @throws Error if no address found for handle\n   */\n  async fetchHandleAddress(handle) {\n    const assetName = fromUTF8(handle.replace(\"$\", \"\"));\n    const policyId = SUPPORTED_HANDLES[1];\n    const addresses = await this.fetchAssetAddresses(`${policyId}${assetName}`);\n    const address = addresses[0]?.address;\n    if (!address) {\n      throw new Error(`No addresses found for handle: ${handle}`);\n    }\n    return address;\n  }\n  /**\n   * Fetches protocol parameters for a specific epoch.\n   * @param epoch - Epoch number\n   * @returns Promise resolving to protocol parameters\n   * @throws Error if parameters not found for epoch\n   */\n  async fetchProtocolParameters(epoch) {\n    if (!epoch) {\n      const maxEpochNumber = Math.max(\n        ...Object.keys(this.protocolParameters).map(Number)\n      );\n      return this.protocolParameters[maxEpochNumber];\n    }\n    const parameters = this.protocolParameters[epoch];\n    if (!parameters)\n      throw new Error(`Protocol parameters not found for epoch: ${epoch}`);\n    return parameters;\n  }\n  /**\n   * Fetches information about a specific transaction.\n   * @param hash - Transaction hash\n   * @returns Promise resolving to transaction information\n   * @throws Error if transaction not found\n   */\n  async fetchTxInfo(hash) {\n    const transaction = this.transactions[hash];\n    if (!transaction) throw new Error(`Transaction not found: ${hash}`);\n    return transaction;\n  }\n  /**\n   * Fetches all UTXOs associated with a specific transaction hash.\n   * @param hash - Transaction hash to fetch UTXOs for\n   * @returns Promise resolving to array of UTXOs associated with the transaction\n   * @throws Error if no UTXOs found for the transaction hash\n   */\n  async fetchUTxOs(hash) {\n    const utxos = Object.values(this.utxos).flat().filter((utxo) => utxo.input.txHash === hash);\n    if (!utxos.length)\n      throw new Error(`No UTxOs found for transaction hash: ${hash}`);\n    return utxos;\n  }\n  async fetchGovernanceProposal(txHash, certIndex) {\n    throw new Error(\"Method not implemented\");\n  }\n  /**\n   * HTTP GET method required by IFetcher interface but not implemented in OfflineFetcher.\n   * @param url - URL to fetch from\n   * @throws Error always, as this fetcher operates offline\n   */\n  async get(url) {\n    throw new Error(\"Method not implemented in OfflineFetcher.\");\n  }\n  /**\n   * Serializes fetcher data to JSON string.\n   * @returns JSON string containing all fetcher data\n   */\n  toJSON() {\n    return JSON.stringify({\n      accounts: this.accounts,\n      utxos: this.utxos,\n      assetAddresses: this.assetAddresses,\n      assetMetadata: this.assetMetadata,\n      blocks: this.blocks,\n      collections: this.collections,\n      protocolParameters: this.protocolParameters,\n      transactions: this.transactions\n    });\n  }\n  /**\n   * Creates an OfflineFetcher instance from JSON data.\n   * @param json - JSON string containing fetcher data\n   * @returns New OfflineFetcher instance\n   */\n  static fromJSON(json) {\n    const data = JSON.parse(json);\n    const fetcher = new _OfflineFetcher();\n    Object.entries(data.accounts || {}).forEach(\n      ([address, info]) => fetcher.addAccount(address, info)\n    );\n    Object.entries(data.utxos || {}).forEach(\n      ([address, utxos]) => fetcher.addUTxOs(utxos)\n    );\n    Object.entries(data.assetAddresses || {}).forEach(\n      ([asset, addresses]) => fetcher.addAssetAddresses(asset, addresses)\n    );\n    Object.entries(data.assetMetadata || {}).forEach(\n      ([asset, metadata]) => fetcher.addAssetMetadata(asset, metadata)\n    );\n    Object.entries(data.blocks || {}).forEach(\n      ([_, info]) => fetcher.addBlock(info)\n    );\n    Object.entries(data.collections || {}).forEach(\n      ([policyId, assets]) => fetcher.addCollectionAssets(assets)\n    );\n    Object.entries(data.protocolParameters || {}).forEach(\n      ([_, params]) => fetcher.addProtocolParameters(params)\n    );\n    Object.entries(data.transactions || {}).forEach(\n      ([_, info]) => fetcher.addTransaction(info)\n    );\n    return fetcher;\n  }\n  static isValidHex(str, length) {\n    if (length && str.length !== length) {\n      return false;\n    }\n    return /^[0-9a-fA-F]+$/.test(str);\n  }\n  static isValidAddress(address) {\n    return _OfflineFetcher.isValidBech32Address(address) || _OfflineFetcher.isValidBase58(address);\n  }\n  static isValidBase58(input) {\n    const base58Regex = /^[123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]+$/;\n    if (!base58Regex.test(input)) {\n      return false;\n    }\n    return true;\n  }\n  static isValidBech32(input, prefix) {\n    if (input !== input.toLowerCase() && input !== input.toUpperCase()) {\n      return false;\n    }\n    const pattern = new RegExp(`^${prefix}1[02-9ac-hj-np-z]+$`, \"i\");\n    return pattern.test(input);\n  }\n  static isValidBech32Address(address) {\n    return _OfflineFetcher.isValidBech32(address, \"(addr|addr_test)\");\n  }\n  static isValidBech32Pool(poolId) {\n    return _OfflineFetcher.isValidBech32(poolId, \"pool\");\n  }\n  static isValidBech32VrfVk(vrfKey) {\n    return _OfflineFetcher.isValidBech32(vrfKey, \"vrf_vk\");\n  }\n  static isIntegerString(str) {\n    return /^\\d+$/.test(str);\n  }\n  static isValidAssetOrLovelace(asset) {\n    if (asset === \"lovelace\") {\n      return true;\n    }\n    if (asset.length < 56) {\n      return false;\n    }\n    return _OfflineFetcher.isValidHex(asset);\n  }\n  /**\n   * Adds account information to the fetcher.\n   * @param address - Account address\n   * @param accountInfo - Account information\n   * @throws Error if address or account info invalid\n   */\n  addAccount(address, accountInfo) {\n    if (!_OfflineFetcher.isValidAddress(address)) {\n      throw new Error(\n        \"Invalid address: must be a valid Bech32 or Base58 address\"\n      );\n    }\n    if (accountInfo.poolId) {\n      if (!_OfflineFetcher.isValidBech32Pool(accountInfo.poolId)) {\n        throw new Error(\n          \"Invalid 'poolId': must be a valid Bech32 pool address\"\n        );\n      }\n    }\n    if (!_OfflineFetcher.isIntegerString(accountInfo.balance)) {\n      throw new Error(\"Invalid 'balance': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(accountInfo.rewards)) {\n      throw new Error(\"Invalid 'rewards': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(accountInfo.withdrawals)) {\n      throw new Error(\"Invalid 'withdrawals': must be a string of digits\");\n    }\n    this.accounts[address] = accountInfo;\n  }\n  /**\n   * Adds UTXOs to the fetcher.\n   * @param utxos - Array of UTXOs\n   * @throws Error if UTXOs invalid\n   */\n  addUTxOs(utxos) {\n    if (!Array.isArray(utxos) || utxos.length === 0) {\n      throw new Error(\"Invalid utxos: must be a non-empty array\");\n    }\n    utxos.forEach((utxo, index) => {\n      if (!Number.isInteger(utxo.input.outputIndex) || utxo.input.outputIndex < 0) {\n        throw new Error(\n          `Invalid outputIndex for UTxO at index ${index}: must be a non-negative integer`\n        );\n      }\n      if (!_OfflineFetcher.isValidHex(utxo.input.txHash, 64)) {\n        throw new Error(\n          `Invalid txHash for UTxO at index ${index}: must be a 64-character hexadecimal string`\n        );\n      }\n      if (!_OfflineFetcher.isValidAddress(utxo.output.address)) {\n        throw new Error(\n          `Invalid address in output for UTxO at index ${index}: must be a valid Bech32 or Base58 address`\n        );\n      }\n      if (!Array.isArray(utxo.output.amount) || utxo.output.amount.length === 0) {\n        throw new Error(\n          `Invalid amount for UTxO at index ${index}: must be a non-empty array of assets`\n        );\n      }\n      utxo.output.amount.forEach((asset, assetIndex) => {\n        if (!_OfflineFetcher.isValidAssetOrLovelace(asset.unit)) {\n          throw new Error(\n            `Invalid unit for asset at index ${assetIndex} in UTxO at index ${index}`\n          );\n        }\n        if (!_OfflineFetcher.isIntegerString(asset.quantity)) {\n          throw new Error(\n            `Invalid quantity for asset at index ${assetIndex} in UTxO at index ${index}: must be a string of digits`\n          );\n        }\n      });\n      if (utxo.output.dataHash && !_OfflineFetcher.isValidHex(utxo.output.dataHash, 64)) {\n        throw new Error(\n          `Invalid dataHash for UTxO at index ${index}: must be a 64-character hexadecimal string or undefined`\n        );\n      }\n      if (utxo.output.plutusData && !_OfflineFetcher.isValidHex(utxo.output.plutusData)) {\n        throw new Error(\n          `Invalid plutusData for UTxO at index ${index}: must be a hexadecimal string or undefined`\n        );\n      }\n      if (utxo.output.scriptRef && !_OfflineFetcher.isValidHex(utxo.output.scriptRef)) {\n        throw new Error(\n          `Invalid scriptRef for UTxO at index ${index}: must be a hexadecimal string or undefined`\n        );\n      }\n      if (utxo.output.scriptHash && !_OfflineFetcher.isValidHex(utxo.output.scriptHash, 56)) {\n        throw new Error(\n          `Invalid scriptHash for UTxO at index ${index}: must be a 56-character hexadecimal string or undefined`\n        );\n      }\n    });\n    for (const utxo of utxos) {\n      if (!this.utxos[utxo.output.address]) {\n        this.utxos[utxo.output.address] = [];\n      }\n      this.utxos[utxo.output.address].push(utxo);\n    }\n  }\n  /**\n   * Adds asset address information to the fetcher.\n   * @param asset - Asset identifier\n   * @param addresses - Array of asset addresses\n   * @throws Error if asset or addresses invalid\n   */\n  addAssetAddresses(asset, addresses) {\n    if (!_OfflineFetcher.isValidHex(asset)) {\n      throw new Error(\"Invalid asset: must be a hex string\");\n    }\n    if (addresses.length === 0) {\n      throw new Error(\"Invalid addresses: must be a non-empty array\");\n    }\n    addresses.forEach((item, index) => {\n      if (!_OfflineFetcher.isValidAddress(item.address)) {\n        throw new Error(\n          `Invalid 'address' field at index ${index}, should be bech32 string`\n        );\n      }\n      if (!_OfflineFetcher.isIntegerString(item.quantity)) {\n        throw new Error(\n          `Invalid 'quantity' field at index ${index}, should be a string of digits`\n        );\n      }\n    });\n    this.assetAddresses[asset] = addresses;\n  }\n  /**\n   * Adds asset metadata to the fetcher.\n   * @param asset - Asset identifier\n   * @param metadata - Asset metadata\n   * @throws Error if asset or metadata invalid\n   */\n  addAssetMetadata(asset, metadata) {\n    if (asset.length < 56) {\n      throw new Error(\n        `Invalid asset ${asset}: must be a string longer than 56 characters`\n      );\n    }\n    if (!_OfflineFetcher.isValidHex(asset)) {\n      throw new Error(\"Invalid asset: must be a hex string\");\n    }\n    if (typeof metadata !== \"object\" || metadata === null) {\n      throw new Error(\"Invalid metadata object\");\n    }\n    this.assetMetadata[asset] = metadata;\n  }\n  /**\n   * Adds collection assets to the fetcher.\n   * @param assets - Array of assets\n   * @throws Error if assets invalid\n   */\n  addCollectionAssets(assets) {\n    if (!Array.isArray(assets) || assets.length === 0) {\n      throw new Error(\"Invalid assets: must be a non-empty array\");\n    }\n    const groupedAssets = {};\n    assets.forEach((asset, index) => {\n      if (asset.unit.length < 56) {\n        throw new Error(\n          `Invalid unit for asset at index ${index}: must be a string longer than 56 characters`\n        );\n      }\n      if (!_OfflineFetcher.isValidHex(asset.unit)) {\n        throw new Error(\n          `Invalid unit for asset at index ${index}: must be a hexadecimal string`\n        );\n      }\n      const policyId = asset.unit.slice(0, 56);\n      if (!_OfflineFetcher.isValidHex(policyId, 56)) {\n        throw new Error(\n          `Invalid policyId in asset unit at index ${index}: must be a 56-character hexadecimal string`\n        );\n      }\n      if (!_OfflineFetcher.isIntegerString(asset.quantity)) {\n        throw new Error(\n          `Invalid quantity for asset at index ${index}: must be a string of digits`\n        );\n      }\n      if (!groupedAssets[policyId]) {\n        groupedAssets[policyId] = [];\n      }\n      groupedAssets[policyId].push(asset);\n    });\n    for (const [policyId, policyAssets] of Object.entries(groupedAssets)) {\n      if (!this.collections[policyId]) {\n        this.collections[policyId] = [];\n      }\n      this.collections[policyId] = this.collections[policyId].concat(policyAssets);\n    }\n  }\n  /**\n   * Adds protocol parameters to the fetcher.\n   * @param parameters - Protocol parameters\n   * @throws Error if parameters invalid\n   */\n  addProtocolParameters(parameters) {\n    if (parameters.epoch < 0 || !Number.isInteger(parameters.epoch)) {\n      throw new Error(\"Invalid epoch: must be a non-negative integer\");\n    }\n    if (parameters.minFeeA < 0 || !Number.isInteger(parameters.minFeeA)) {\n      throw new Error(\"Invalid 'minFeeA': must be a non-negative integer\");\n    }\n    if (parameters.minFeeB < 0 || !Number.isInteger(parameters.minFeeB)) {\n      throw new Error(\"Invalid 'minFeeB': must be a non-negative integer\");\n    }\n    if (parameters.maxBlockSize <= 0 || !Number.isInteger(parameters.maxBlockSize)) {\n      throw new Error(\"Invalid 'maxBlockSize': must be a positive integer\");\n    }\n    if (parameters.maxTxSize <= 0 || !Number.isInteger(parameters.maxTxSize)) {\n      throw new Error(\"Invalid 'maxTxSize': must be a positive integer\");\n    }\n    if (parameters.maxBlockHeaderSize <= 0 || !Number.isInteger(parameters.maxBlockHeaderSize)) {\n      throw new Error(\n        \"Invalid 'maxBlockHeaderSize': must be a positive integer\"\n      );\n    }\n    if (parameters.keyDeposit < 0 || !Number.isInteger(parameters.keyDeposit)) {\n      throw new Error(\"Invalid 'keyDeposit': must be a non-negative integer\");\n    }\n    if (parameters.poolDeposit < 0 || !Number.isInteger(parameters.poolDeposit)) {\n      throw new Error(\"Invalid 'poolDeposit': must be a non-negative integer\");\n    }\n    if (parameters.decentralisation < 0 || parameters.decentralisation > 1) {\n      throw new Error(\"Invalid 'decentralisation': must be between 0 and 1\");\n    }\n    if (parameters.priceMem < 0) {\n      throw new Error(\"Invalid 'priceMem': must be non-negative\");\n    }\n    if (parameters.priceStep < 0) {\n      throw new Error(\"Invalid 'priceStep': must be non-negative\");\n    }\n    if (parameters.maxValSize < 0 || !Number.isInteger(parameters.maxValSize)) {\n      throw new Error(\"Invalid 'maxValSize': must be a non-negative integer\");\n    }\n    if (parameters.collateralPercent < 0) {\n      throw new Error(\n        \"Invalid 'collateralPercent': must be a non-negative integer\"\n      );\n    }\n    if (parameters.maxCollateralInputs < 0 || !Number.isInteger(parameters.maxCollateralInputs)) {\n      throw new Error(\n        \"Invalid 'maxCollateralInputs': must be a non-negative integer\"\n      );\n    }\n    if (parameters.coinsPerUtxoSize < 0) {\n      throw new Error(\"Invalid 'coinsPerUtxoSize': must be non-negative\");\n    }\n    if (parameters.minFeeRefScriptCostPerByte < 0) {\n      throw new Error(\n        \"Invalid 'minFeeRefScriptCostPerByte': must be non-negative\"\n      );\n    }\n    if (!_OfflineFetcher.isIntegerString(parameters.minPoolCost)) {\n      throw new Error(\"Invalid 'minPoolCost': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(parameters.maxTxExMem)) {\n      throw new Error(\"Invalid 'maxTxExMem': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(parameters.maxTxExSteps)) {\n      throw new Error(\"Invalid 'maxTxExSteps': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(parameters.maxBlockExMem)) {\n      throw new Error(\"Invalid 'maxBlockExMem': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(parameters.maxBlockExSteps)) {\n      throw new Error(\"Invalid 'maxBlockExSteps': must be a string of digits\");\n    }\n    this.protocolParameters[parameters.epoch] = parameters;\n  }\n  /**\n   * Adds transaction information to the fetcher.\n   * @param txInfo - Transaction information\n   * @throws Error if transaction info invalid\n   */\n  addTransaction(txInfo) {\n    if (!_OfflineFetcher.isValidHex(txInfo.hash, 64)) {\n      throw new Error(\n        \"Invalid transaction hash: must be a 64-character hexadecimal string\"\n      );\n    }\n    if (!Number.isInteger(txInfo.index) || txInfo.index < 0) {\n      throw new Error(\"Invalid 'index': must be a non-negative integer\");\n    }\n    if (!_OfflineFetcher.isValidHex(txInfo.block, 64)) {\n      throw new Error(\n        \"Invalid 'block': must be a 64-character hexadecimal string\"\n      );\n    }\n    if (!_OfflineFetcher.isIntegerString(txInfo.slot)) {\n      throw new Error(\"Invalid 'slot': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isIntegerString(txInfo.fees)) {\n      throw new Error(\"Invalid 'fees': must be a string of digits\");\n    }\n    if (!Number.isInteger(txInfo.size) || txInfo.size <= 0) {\n      throw new Error(\"Invalid 'size': must be a positive integer\");\n    }\n    if (!/^-?\\d+$/.test(txInfo.deposit)) {\n      throw new Error(\n        \"Invalid 'deposit': must be a string representing an integer (positive or negative)\"\n      );\n    }\n    if (txInfo.invalidBefore !== \"\" && !_OfflineFetcher.isIntegerString(txInfo.invalidBefore)) {\n      throw new Error(\n        \"Invalid 'invalidBefore': must be a string of digits or empty string\"\n      );\n    }\n    if (txInfo.invalidAfter !== \"\" && !_OfflineFetcher.isIntegerString(txInfo.invalidAfter)) {\n      throw new Error(\n        \"Invalid 'invalidAfter': must be a string of digits or empty string\"\n      );\n    }\n    this.transactions[txInfo.hash] = txInfo;\n    this.addUTxOs(txInfo.outputs);\n  }\n  /**\n   * Adds block information to the fetcher.\n   * @param blockInfo - Block information\n   * @throws Error if block info invalid\n   */\n  addBlock(blockInfo) {\n    if (!_OfflineFetcher.isValidHex(blockInfo.hash, 64)) {\n      throw new Error(\n        \"Invalid block hash: must be a 64-character hexadecimal string\"\n      );\n    }\n    if (!Number.isInteger(blockInfo.time) || blockInfo.time < 0) {\n      throw new Error(\"Invalid 'time': must be a non-negative integer\");\n    }\n    if (!_OfflineFetcher.isIntegerString(blockInfo.slot)) {\n      throw new Error(\"Invalid 'slot': must be a string of digits\");\n    }\n    if (!Number.isInteger(blockInfo.epoch) || blockInfo.epoch < 0) {\n      throw new Error(\"Invalid 'epoch': must be a non-negative integer\");\n    }\n    if (!_OfflineFetcher.isIntegerString(blockInfo.epochSlot)) {\n      throw new Error(\"Invalid 'epochSlot': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isValidBech32Pool(blockInfo.slotLeader)) {\n      throw new Error(\n        \"Invalid 'slotLeader': must be a bech32 string with pool prefix\"\n      );\n    }\n    if (!Number.isInteger(blockInfo.size) || blockInfo.size <= 0) {\n      throw new Error(\"Invalid 'size': must be a positive integer\");\n    }\n    if (!Number.isInteger(blockInfo.txCount) || blockInfo.txCount < 0) {\n      throw new Error(\"Invalid 'txCount': must be a non-negative integer\");\n    }\n    if (!_OfflineFetcher.isIntegerString(blockInfo.output)) {\n      throw new Error(\"Invalid 'output': must be a string of digits\");\n    }\n    if (!_OfflineFetcher.isValidHex(blockInfo.operationalCertificate, 64)) {\n      throw new Error(\n        \"Invalid 'operationalCertificate': must be a 64-character hexadecimal string\"\n      );\n    }\n    if (!_OfflineFetcher.isValidHex(blockInfo.previousBlock, 64)) {\n      throw new Error(\n        \"Invalid 'previousBlock': must be a 64-character hexadecimal string\"\n      );\n    }\n    if (!_OfflineFetcher.isValidBech32VrfVk(blockInfo.VRFKey)) {\n      throw new Error(\n        \"Invalid 'VRFKey': must be a bech32 string with vrf_vk1 prefix\"\n      );\n    }\n    this.blocks[blockInfo.hash] = blockInfo;\n  }\n  /**\n   * Adds a serialized transaction to the fetcher, it's generates pseudo block in addition to transaction.\n   * Removes spent UTxOs from the fetcher and adds new UTxOs from the transaction.\n   * @param txHex - Hexadecimal string of the transaction\n   * @throws Error if transaction hex invalid\n   */\n  addSerializedTransaction(txHex) {\n    const tx = Transaction.fromCbor(TxCBOR(txHex));\n    const time = Date.now();\n    const slot = resolveSlotNo(this.network ?? \"mainnet\", time);\n    const epoch = resolveEpochNo(this.network ?? \"mainnet\", time);\n    const epochSlot = this.slotToEpochSlot(BigInt(slot));\n    const randomBlockHash = (0,crypto_browserify.randomBytes)(32).toString(\"hex\");\n    const randomPrevBlockHash = (0,crypto_browserify.randomBytes)(32).toString(\"hex\");\n    const randomOCert = (0,crypto_browserify.randomBytes)(32).toString(\"hex\");\n    const fee = tx.body().fee().toString();\n    const totalOutput = tx.body().outputs().reduce((acc, output) => {\n      const amount = output.amount().coin();\n      return acc + amount;\n    }, 0n);\n    const ttl = tx.body().ttl();\n    const validityStartInterval = tx.body().validityStartInterval();\n    const txHash = tx.body().hash();\n    const blockInfo = {\n      confirmations: 40,\n      nextBlock: \"undefined its a random block\",\n      hash: randomBlockHash,\n      time,\n      slot,\n      epoch,\n      epochSlot: epochSlot.toString(),\n      fees: fee,\n      slotLeader: \"pool1qv3x5x5x5x5x5x5x5x5x5x5x5x5x5x5\",\n      size: txHex.length / 2,\n      txCount: 1,\n      output: totalOutput.toString(),\n      operationalCertificate: randomOCert,\n      previousBlock: randomPrevBlockHash,\n      VRFKey: \"vrf_vk1qv3x5x5x5x5x5x5x5x5x5x5x5x5x5\"\n    };\n    const txInputs = tx.body().inputs();\n    const fetchedUTxOs = txInputs.values().map((input) => {\n      const txHash2 = input.transactionId();\n      const outputIndex = Number(input.index());\n      const utxo = Object.values(this.utxos).flat().find((utxo2) => {\n        return utxo2.input.txHash === txHash2 && utxo2.input.outputIndex === outputIndex;\n      });\n      if (!utxo) {\n        throw new Error(`UTxO not found for transaction hash and output index: ${txHash2} ${outputIndex}`);\n      }\n      return utxo;\n    });\n    for (const addressUtxos of Object.values(this.utxos)) {\n      for (const utxo of fetchedUTxOs) {\n        const index = addressUtxos.indexOf(utxo);\n        if (index !== -1) {\n          addressUtxos.splice(index, 1);\n        }\n      }\n    }\n    const newUtxOs = tx.body().outputs().map((output, index) => {\n      return this.mapOutputToUTxO(output, txHash, index);\n    });\n    const transactionInfo = {\n      inputs: fetchedUTxOs,\n      hash: txHash,\n      index: 0,\n      block: randomBlockHash,\n      slot: slot.toString(),\n      fees: fee,\n      size: txHex.length / 2,\n      deposit: \"0\",\n      invalidBefore: validityStartInterval ? validityStartInterval.toString() : \"\",\n      invalidAfter: ttl ? ttl.toString() : \"\",\n      outputs: newUtxOs\n    };\n    this.addBlock(blockInfo);\n    this.addTransaction(transactionInfo);\n  }\n  slotToEpochSlot(slot) {\n    const slotConfig = SLOT_CONFIG_NETWORK[this.network ?? \"mainnet\"];\n    const epochLength = BigInt(slotConfig.epochLength);\n    return slot % epochLength;\n  }\n  mapOutputToUTxO(output, txHash, index) {\n    return {\n      input: {\n        txHash,\n        outputIndex: index\n      },\n      output: {\n        address: output.address().toBech32(),\n        amount: this.mapValueToAsset(output.amount()),\n        dataHash: output.datum()?.asDataHash(),\n        plutusData: output.datum()?.asInlineData()?.toCbor(),\n        scriptRef: output.scriptRef()?.toCbor(),\n        scriptHash: output.scriptRef()?.hash()\n      }\n    };\n  }\n  mapValueToAsset(value) {\n    const assets = [];\n    const multiAsset = value.multiasset();\n    if (multiAsset) {\n      for (const [assetId, quantity] of multiAsset) {\n        const asset = {\n          unit: assetId,\n          quantity: quantity.toString()\n        };\n        assets.push(asset);\n      }\n    } else {\n      const lovelace = value.coin().toString();\n      assets.push({ unit: \"lovelace\", quantity: lovelace });\n    }\n    return assets;\n  }\n};\n\n\n// EXTERNAL MODULE: ./node_modules/json-bigint/index.js\nvar json_bigint = __webpack_require__(\"./node_modules/json-bigint/index.js\");\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/InputSelectionError.js\n\nvar InputSelectionFailure;\n(function (InputSelectionFailure) {\n    InputSelectionFailure[\"UtxoBalanceInsufficient\"] = \"UTxO Balance Insufficient\";\n    InputSelectionFailure[\"UtxoNotFragmentedEnough\"] = \"UTxO Not Fragmented Enough\";\n    InputSelectionFailure[\"UtxoFullyDepleted\"] = \"UTxO Fully Depleted\";\n    InputSelectionFailure[\"MaximumInputCountExceeded\"] = \"Maximum Input Count Exceeded\";\n})(InputSelectionFailure || (InputSelectionFailure = {}));\nclass InputSelectionError extends CustomError {\n    constructor(failure) {\n        super(failure);\n        this.failure = failure;\n    }\n}\n//# sourceMappingURL=InputSelectionError.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/crypto/dist/esm/hexTypes.js\n\nconst hexTypes_BIP32_PUBLIC_KEY_HASH_LENGTH = 28;\nconst hexTypes_Ed25519SignatureHex = (value) => esm_primitives_typedHex(value, 128);\nconst hexTypes_Bip32PublicKeyHex = (key) => esm_primitives_typedHex(key, 128);\nconst hexTypes_Bip32PrivateKeyHex = (key) => esm_primitives_typedHex(key, 192);\nconst hexTypes_Ed25519PublicKeyHex = (value) => esm_primitives_typedHex(value, 64);\nconst hexTypes_Ed25519PrivateExtendedKeyHex = (value) => esm_primitives_typedHex(value, 128);\nconst hexTypes_Ed25519PrivateNormalKeyHex = (value) => esm_primitives_typedHex(value, 64);\nconst hexTypes_Ed25519KeyHashHex = (value) => esm_primitives_typedHex(value, 56);\nconst hexTypes_Bip32PublicKeyHashHex = (value) => esm_primitives_typedHex(value, hexTypes_BIP32_PUBLIC_KEY_HASH_LENGTH * 2);\nconst hexTypes_Hash32ByteBase16 = (value) => esm_primitives_typedHex(value, 64);\nhexTypes_Hash32ByteBase16.fromHexBlob = (value) => esm_primitives_castHexBlob(value, 64);\nconst hexTypes_Hash28ByteBase16 = (value) => esm_primitives_typedHex(value, 56);\nhexTypes_Hash28ByteBase16.fromEd25519KeyHashHex = (value) => value;\n//# sourceMappingURL=hexTypes.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/BaseAddress.js\n/* provided dependency */ var Address_BaseAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar BaseAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar BaseAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar BaseAddress_BaseAddress_type, BaseAddress_BaseAddress_networkId, BaseAddress_BaseAddress_paymentPart, BaseAddress_BaseAddress_delegationPart;\n\n\n\nclass BaseAddress_BaseAddress {\n    constructor(props) {\n        BaseAddress_BaseAddress_type.set(this, void 0);\n        BaseAddress_BaseAddress_networkId.set(this, void 0);\n        BaseAddress_BaseAddress_paymentPart.set(this, void 0);\n        BaseAddress_BaseAddress_delegationPart.set(this, void 0);\n        BaseAddress_classPrivateFieldSet(this, BaseAddress_BaseAddress_networkId, props.networkId, \"f\");\n        BaseAddress_classPrivateFieldSet(this, BaseAddress_BaseAddress_paymentPart, props.paymentPart, \"f\");\n        BaseAddress_classPrivateFieldSet(this, BaseAddress_BaseAddress_delegationPart, props.delegationPart, \"f\");\n        BaseAddress_classPrivateFieldSet(this, BaseAddress_BaseAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment, stake) {\n        let type = Address_AddressType.BasePaymentKeyStakeKey;\n        if (payment.type === Address_CredentialType.ScriptHash)\n            type |= 0b0001;\n        if (stake.type === Address_CredentialType.ScriptHash)\n            type |= 0b0010;\n        return new BaseAddress_BaseAddress({\n            delegationPart: stake,\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_paymentPart, \"f\");\n    }\n    getStakeCredential() {\n        return BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_delegationPart, \"f\");\n    }\n    toAddress() {\n        return new Address_Address({\n            delegationPart: BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_delegationPart, \"f\"),\n            networkId: BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_networkId, \"f\"),\n            paymentPart: BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_paymentPart, \"f\"),\n            type: BaseAddress_classPrivateFieldGet(this, BaseAddress_BaseAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case Address_AddressType.BasePaymentKeyStakeKey:\n            case Address_AddressType.BasePaymentScriptStakeKey:\n            case Address_AddressType.BasePaymentKeyStakeScript:\n            case Address_AddressType.BasePaymentScriptStakeScript:\n                address = new BaseAddress_BaseAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return Address_BaseAddress_Buffer.concat([\n            Address_BaseAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            Address_BaseAddress_Buffer.from(props.paymentPart.hash, 'hex'),\n            Address_BaseAddress_Buffer.from(props.delegationPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 57)\n            throw new esm_errors_InvalidArgumentError('data', 'Base address data length should be 57 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = hexTypes_Hash28ByteBase16(Address_BaseAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        const stakeCredential = hexTypes_Hash28ByteBase16(Address_BaseAddress_Buffer.from(data.slice(29, 57)).toString('hex'));\n        const delegationCredType = type === Address_AddressType.BasePaymentKeyStakeScript || type === Address_AddressType.BasePaymentScriptStakeScript\n            ? Address_CredentialType.ScriptHash\n            : Address_CredentialType.KeyHash;\n        const paymentCredType = type === Address_AddressType.BasePaymentScriptStakeKey || type === Address_AddressType.BasePaymentScriptStakeScript\n            ? Address_CredentialType.ScriptHash\n            : Address_CredentialType.KeyHash;\n        return new Address_Address({\n            delegationPart: {\n                hash: stakeCredential,\n                type: delegationCredType\n            },\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: paymentCredType\n            },\n            type\n        });\n    }\n}\nBaseAddress_BaseAddress_type = new WeakMap(), BaseAddress_BaseAddress_networkId = new WeakMap(), BaseAddress_BaseAddress_paymentPart = new WeakMap(), BaseAddress_BaseAddress_delegationPart = new WeakMap();\n//# sourceMappingURL=BaseAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborInitialByte.js\nvar CBOR_CborInitialByte_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CBOR_CborInitialByte_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar CborInitialByte_CborInitialByte_initialByte;\nclass CborInitialByte_CborInitialByte {\n    constructor() {\n        CborInitialByte_CborInitialByte_initialByte.set(this, void 0);\n    }\n    CborInitialByte(majorType, additionalInfo) {\n        CBOR_CborInitialByte_classPrivateFieldSet(this, CborInitialByte_CborInitialByte_initialByte, (majorType << 5) | additionalInfo, \"f\");\n    }\n    static from(initialByte) {\n        const init = new CborInitialByte_CborInitialByte();\n        CBOR_CborInitialByte_classPrivateFieldSet(init, CborInitialByte_CborInitialByte_initialByte, initialByte, \"f\");\n        return init;\n    }\n    getInitialByte() {\n        return CBOR_CborInitialByte_classPrivateFieldGet(this, CborInitialByte_CborInitialByte_initialByte, \"f\");\n    }\n    getMajorType() {\n        return CBOR_CborInitialByte_classPrivateFieldGet(this, CborInitialByte_CborInitialByte_initialByte, \"f\") >> 5;\n    }\n    getAdditionalInfo() {\n        return CBOR_CborInitialByte_classPrivateFieldGet(this, CborInitialByte_CborInitialByte_initialByte, \"f\") & CborInitialByte_CborInitialByte.AdditionalInformationMask;\n    }\n}\nCborInitialByte_CborInitialByte_initialByte = new WeakMap();\nCborInitialByte_CborInitialByte.IndefiniteLengthBreakByte = 0xff;\nCborInitialByte_CborInitialByte.AdditionalInformationMask = 31;\n//# sourceMappingURL=CborInitialByte.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborMajorType.js\nvar CborMajorType_CborMajorType;\n(function (CborMajorType) {\n    CborMajorType[CborMajorType[\"UnsignedInteger\"] = 0] = \"UnsignedInteger\";\n    CborMajorType[CborMajorType[\"NegativeInteger\"] = 1] = \"NegativeInteger\";\n    CborMajorType[CborMajorType[\"ByteString\"] = 2] = \"ByteString\";\n    CborMajorType[CborMajorType[\"Utf8String\"] = 3] = \"Utf8String\";\n    CborMajorType[CborMajorType[\"Array\"] = 4] = \"Array\";\n    CborMajorType[CborMajorType[\"Map\"] = 5] = \"Map\";\n    CborMajorType[CborMajorType[\"Tag\"] = 6] = \"Tag\";\n    CborMajorType[CborMajorType[\"Simple\"] = 7] = \"Simple\";\n})(CborMajorType_CborMajorType || (CborMajorType_CborMajorType = {}));\n//# sourceMappingURL=CborMajorType.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborTag.js\nvar CborTag_CborTag;\n(function (CborTag) {\n    CborTag[CborTag[\"DateTimeString\"] = 0] = \"DateTimeString\";\n    CborTag[CborTag[\"UnixTimeSeconds\"] = 1] = \"UnixTimeSeconds\";\n    CborTag[CborTag[\"UnsignedBigNum\"] = 2] = \"UnsignedBigNum\";\n    CborTag[CborTag[\"NegativeBigNum\"] = 3] = \"NegativeBigNum\";\n    CborTag[CborTag[\"DecimalFraction\"] = 4] = \"DecimalFraction\";\n    CborTag[CborTag[\"BigFloat\"] = 5] = \"BigFloat\";\n    CborTag[CborTag[\"Base64UrlLaterEncoding\"] = 21] = \"Base64UrlLaterEncoding\";\n    CborTag[CborTag[\"Base64StringLaterEncoding\"] = 22] = \"Base64StringLaterEncoding\";\n    CborTag[CborTag[\"Base16StringLaterEncoding\"] = 23] = \"Base16StringLaterEncoding\";\n    CborTag[CborTag[\"EncodedCborDataItem\"] = 24] = \"EncodedCborDataItem\";\n    CborTag[CborTag[\"RationalNumber\"] = 30] = \"RationalNumber\";\n    CborTag[CborTag[\"Uri\"] = 32] = \"Uri\";\n    CborTag[CborTag[\"Base64Url\"] = 33] = \"Base64Url\";\n    CborTag[CborTag[\"Base64\"] = 34] = \"Base64\";\n    CborTag[CborTag[\"Regex\"] = 35] = \"Regex\";\n    CborTag[CborTag[\"MimeMessage\"] = 36] = \"MimeMessage\";\n    CborTag[CborTag[\"Set\"] = 258] = \"Set\";\n    CborTag[CborTag[\"SelfDescribeCbor\"] = 55799] = \"SelfDescribeCbor\";\n})(CborTag_CborTag || (CborTag_CborTag = {}));\n//# sourceMappingURL=CborTag.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/errors.js\n\nclass errors_CborInvalidOperationException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\nclass errors_CborContentException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\nclass errors_LossOfPrecisionException extends CustomError {\n    constructor(reason) {\n        super(reason);\n    }\n}\n//# sourceMappingURL=errors.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/Half.js\n/* provided dependency */ var CBOR_Half_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\nconst Half_LOSS_OF_PRECISION_MSG = 'Invalid conversion. Loss of precision';\nconst Half_ldexp = (mantissa, exponent) => {\n    const steps = Math.min(3, Math.ceil(Math.abs(exponent) / 1023));\n    let result = mantissa;\n    for (let i = 0; i < steps; i++)\n        result *= Math.pow(2, Math.floor((exponent + i) / steps));\n    return result;\n};\nconst Half_decodeHalf = (data) => {\n    const half = (data[0] << 8) + data[1];\n    const exp = (half >> 10) & 0x1f;\n    const mant = half & 1023;\n    let val;\n    if (exp === 0) {\n        val = Half_ldexp(mant, -24);\n    }\n    else if (exp !== 31) {\n        val = Half_ldexp(mant + 1024, exp - 25);\n    }\n    else {\n        val = mant === 0 ? Number.POSITIVE_INFINITY : Number.NaN;\n    }\n    return half & 32768 ? -val : val;\n};\nconst Half_encodeHalf = (value) => {\n    const u32 = CBOR_Half_Buffer.allocUnsafe(4);\n    u32.writeFloatBE(value, 0);\n    const u = u32.readUInt32BE(0);\n    if ((u & 8191) !== 0) {\n        throw new errors_LossOfPrecisionException(Half_LOSS_OF_PRECISION_MSG);\n    }\n    let s16 = (u >> 16) & 32768;\n    const exp = (u >> 23) & 0xff;\n    const mant = u & 8388607;\n    if (exp >= 113 && exp <= 142) {\n        s16 += ((exp - 112) << 10) + (mant >> 13);\n    }\n    else if (exp >= 103 && exp < 113) {\n        if (mant & ((1 << (126 - exp)) - 1)) {\n            throw new errors_LossOfPrecisionException(Half_LOSS_OF_PRECISION_MSG);\n        }\n        s16 += (mant + 8388608) >> (126 - exp);\n    }\n    else {\n        throw new errors_LossOfPrecisionException(Half_LOSS_OF_PRECISION_MSG);\n    }\n    const result = new Uint8Array(2);\n    result[0] = (s16 >>> 8) & 0xff;\n    result[1] = s16 & 0xff;\n    return result;\n};\n//# sourceMappingURL=Half.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborWriter.js\n/* provided dependency */ var CBOR_CborWriter_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CBOR_CborWriter_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar CBOR_CborWriter_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CborWriter_CborWriter_instances, CborWriter_CborWriter_buffer, CborWriter_CborWriter_writeTypeValue, CborWriter_CborWriter_pushUInt8, CborWriter_CborWriter_pushUInt16, CborWriter_CborWriter_pushUInt32;\n\n\n\n\nconst CborWriter_MINUS_ONE = BigInt(-1);\nconst CborWriter_SHIFT32 = BigInt('0x100000000');\nconst CborWriter_ONE = 24;\nconst CborWriter_TWO = 25;\nconst CborWriter_FOUR = 26;\nconst CborWriter_EIGHT = 27;\nconst CborWriter_FALSE = 0xf4;\nconst CborWriter_TRUE = 0xf5;\nconst CborWriter_NULL = 0xf6;\nconst CborWriter_UNDEFINED = 0xf7;\nconst CborWriter_INDEFINITE_LENGTH_ARRAY = 0x9f;\nconst CborWriter_INDEFINITE_LENGTH_MAP = 0xbf;\nconst CborWriter_HALF = (7 << 5) | 25;\nconst CborWriter_FLOAT = (7 << 5) | 26;\nconst CborWriter_DOUBLE = (7 << 5) | 27;\nconst CborWriter_BUF_NAN = CBOR_CborWriter_Buffer.from('ffc00000', 'hex');\nconst CborWriter_BUF_INF_NEG = CBOR_CborWriter_Buffer.from('fff0000000000000', 'hex');\nconst CborWriter_BUF_INF_POS = CBOR_CborWriter_Buffer.from('7ff0000000000000', 'hex');\nclass CborWriter_CborWriter {\n    constructor() {\n        CborWriter_CborWriter_instances.add(this);\n        CborWriter_CborWriter_buffer.set(this, CBOR_CborWriter_Buffer.from([]));\n    }\n    writeBigInteger(value) {\n        let tag = CborTag_CborTag.UnsignedBigNum;\n        if (value < 0) {\n            value = -value + CborWriter_MINUS_ONE;\n            tag = CborTag_CborTag.NegativeBigNum;\n        }\n        let str = value.toString(16);\n        if (str.length % 2) {\n            str = `0${str}`;\n        }\n        const buffer = CBOR_CborWriter_Buffer.from(str, 'hex');\n        this.writeTag(tag);\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.ByteString, buffer.length);\n        CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), buffer]), \"f\");\n        return this;\n    }\n    writeBoolean(value) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, value ? CborWriter_TRUE : CborWriter_FALSE);\n        return this;\n    }\n    writeByteString(value) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.ByteString, value.length);\n        CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), value]), \"f\");\n        return this;\n    }\n    writeTextString(value) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.Utf8String, CBOR_CborWriter_Buffer.from(value, 'utf8').length);\n        CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), CBOR_CborWriter_Buffer.from(value, 'utf8')]), \"f\");\n        return this;\n    }\n    writeEncodedValue(value) {\n        CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), value]), \"f\");\n        return this;\n    }\n    writeStartArray(length) {\n        if (length !== undefined) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.Array, length);\n        }\n        else {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_INDEFINITE_LENGTH_ARRAY);\n        }\n        return this;\n    }\n    writeEndArray() {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte);\n        return this;\n    }\n    writeStartMap(length) {\n        if (length !== undefined) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.Map, length);\n        }\n        else {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_INDEFINITE_LENGTH_MAP);\n        }\n        return this;\n    }\n    writeEndMap() {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte);\n        return this;\n    }\n    writeInt(value) {\n        if (value < 0) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.NegativeInteger, -(BigInt(value) + 1n));\n        }\n        else {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.UnsignedInteger, value);\n        }\n        return this;\n    }\n    writeFloat(value) {\n        let val;\n        if (value === Number.NEGATIVE_INFINITY) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_DOUBLE);\n            this.writeEncodedValue(CborWriter_BUF_INF_NEG);\n            return this;\n        }\n        if (value === Number.POSITIVE_INFINITY) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_DOUBLE);\n            this.writeEncodedValue(CborWriter_BUF_INF_POS);\n            return this;\n        }\n        if (Number.isNaN(value)) {\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_FLOAT);\n            this.writeEncodedValue(CborWriter_BUF_NAN);\n            return this;\n        }\n        try {\n            val = Half_encodeHalf(value);\n            CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_HALF);\n            this.writeEncodedValue(val);\n        }\n        catch {\n            const b4 = CBOR_CborWriter_Buffer.allocUnsafe(4);\n            b4.writeFloatBE(value, 0);\n            if (b4.readFloatBE(0) === value) {\n                CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_FLOAT);\n                this.writeEncodedValue(b4.valueOf());\n            }\n            else {\n                const b8 = CBOR_CborWriter_Buffer.allocUnsafe(8);\n                b8.writeFloatBE(value, 0);\n                CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_DOUBLE);\n                this.writeEncodedValue(b8.valueOf());\n            }\n        }\n        return this;\n    }\n    writeNull() {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_NULL);\n        return this;\n    }\n    writeUndefined() {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, CborWriter_UNDEFINED);\n        return this;\n    }\n    writeTag(tag) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_writeTypeValue).call(this, CborMajorType_CborMajorType.Tag, tag);\n        return this;\n    }\n    encodeAsHex() {\n        return CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\").toString('hex');\n    }\n    encode() {\n        return new Uint8Array(CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"));\n    }\n    reset() {\n        CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.from([]), \"f\");\n    }\n}\nCborWriter_CborWriter_buffer = new WeakMap(), CborWriter_CborWriter_instances = new WeakSet(), CborWriter_CborWriter_writeTypeValue = function _CborWriter_writeTypeValue(majorType, value) {\n    const m = majorType << 5;\n    if (value < 24) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, m | Number(value));\n    }\n    else if (value < 256) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, m | CborWriter_ONE);\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, Number(value));\n    }\n    else if (value < 65536) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, m | CborWriter_TWO);\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt16).call(this, Number(value));\n    }\n    else if (value < 4294967296) {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, m | CborWriter_FOUR);\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt32).call(this, Number(value));\n    }\n    else {\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt8).call(this, m | CborWriter_EIGHT);\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt32).call(this, Number(BigInt(value) / CborWriter_SHIFT32));\n        CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_instances, \"m\", CborWriter_CborWriter_pushUInt32).call(this, Number(BigInt(value) % CborWriter_SHIFT32));\n    }\n}, CborWriter_CborWriter_pushUInt8 = function _CborWriter_pushUInt8(value) {\n    const b = CBOR_CborWriter_Buffer.allocUnsafe(1);\n    b.writeUInt8(value, 0);\n    CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), b]), \"f\");\n}, CborWriter_CborWriter_pushUInt16 = function _CborWriter_pushUInt16(value) {\n    const b = CBOR_CborWriter_Buffer.allocUnsafe(2);\n    b.writeUInt16BE(value, 0);\n    CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), b]), \"f\");\n}, CborWriter_CborWriter_pushUInt32 = function _CborWriter_pushUInt32(value) {\n    const b = CBOR_CborWriter_Buffer.allocUnsafe(4);\n    b.writeUInt32BE(value, 0);\n    CBOR_CborWriter_classPrivateFieldSet(this, CborWriter_CborWriter_buffer, CBOR_CborWriter_Buffer.concat([CBOR_CborWriter_classPrivateFieldGet(this, CborWriter_CborWriter_buffer, \"f\"), b]), \"f\");\n};\n//# sourceMappingURL=CborWriter.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborAdditionalInfo.js\nvar CborAdditionalInfo_CborAdditionalInfo;\n(function (CborAdditionalInfo) {\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalFalse\"] = 20] = \"AdditionalFalse\";\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalTrue\"] = 21] = \"AdditionalTrue\";\n    CborAdditionalInfo[CborAdditionalInfo[\"AdditionalNull\"] = 22] = \"AdditionalNull\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional8BitData\"] = 24] = \"Additional8BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional16BitData\"] = 25] = \"Additional16BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional32BitData\"] = 26] = \"Additional32BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"Additional64BitData\"] = 27] = \"Additional64BitData\";\n    CborAdditionalInfo[CborAdditionalInfo[\"IndefiniteLength\"] = 31] = \"IndefiniteLength\";\n})(CborAdditionalInfo_CborAdditionalInfo || (CborAdditionalInfo_CborAdditionalInfo = {}));\n//# sourceMappingURL=CborAdditionalInfo.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborReaderState.js\nvar CborReaderState_CborReaderState;\n(function (CborReaderState) {\n    CborReaderState[CborReaderState[\"Undefined\"] = 0] = \"Undefined\";\n    CborReaderState[CborReaderState[\"UnsignedInteger\"] = 1] = \"UnsignedInteger\";\n    CborReaderState[CborReaderState[\"NegativeInteger\"] = 2] = \"NegativeInteger\";\n    CborReaderState[CborReaderState[\"ByteString\"] = 3] = \"ByteString\";\n    CborReaderState[CborReaderState[\"StartIndefiniteLengthByteString\"] = 4] = \"StartIndefiniteLengthByteString\";\n    CborReaderState[CborReaderState[\"EndIndefiniteLengthByteString\"] = 5] = \"EndIndefiniteLengthByteString\";\n    CborReaderState[CborReaderState[\"TextString\"] = 6] = \"TextString\";\n    CborReaderState[CborReaderState[\"StartIndefiniteLengthTextString\"] = 7] = \"StartIndefiniteLengthTextString\";\n    CborReaderState[CborReaderState[\"EndIndefiniteLengthTextString\"] = 8] = \"EndIndefiniteLengthTextString\";\n    CborReaderState[CborReaderState[\"StartArray\"] = 9] = \"StartArray\";\n    CborReaderState[CborReaderState[\"EndArray\"] = 10] = \"EndArray\";\n    CborReaderState[CborReaderState[\"StartMap\"] = 11] = \"StartMap\";\n    CborReaderState[CborReaderState[\"EndMap\"] = 12] = \"EndMap\";\n    CborReaderState[CborReaderState[\"Tag\"] = 13] = \"Tag\";\n    CborReaderState[CborReaderState[\"SimpleValue\"] = 14] = \"SimpleValue\";\n    CborReaderState[CborReaderState[\"HalfPrecisionFloat\"] = 15] = \"HalfPrecisionFloat\";\n    CborReaderState[CborReaderState[\"SinglePrecisionFloat\"] = 16] = \"SinglePrecisionFloat\";\n    CborReaderState[CborReaderState[\"DoublePrecisionFloat\"] = 17] = \"DoublePrecisionFloat\";\n    CborReaderState[CborReaderState[\"Null\"] = 18] = \"Null\";\n    CborReaderState[CborReaderState[\"Boolean\"] = 19] = \"Boolean\";\n    CborReaderState[CborReaderState[\"Finished\"] = 20] = \"Finished\";\n})(CborReaderState_CborReaderState || (CborReaderState_CborReaderState = {}));\n//# sourceMappingURL=CborReaderState.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Serialization/CBOR/CborReader.js\n/* provided dependency */ var CBOR_CborReader_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar CBOR_CborReader_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar CBOR_CborReader_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar CborReader_CborReader_instances, CborReader_a, CborReader_CborReader_data, CborReader_CborReader_offset, CborReader_CborReader_nestedItems, CborReader_CborReader_isTagContext, CborReader_CborReader_currentFrame, CborReader_CborReader_cachedState, CborReader_CborReader_peekInitialByte, CborReader_CborReader_peekNextInitialByte, CborReader_CborReader_validateNextByteIsBreakByte, CborReader_CborReader_pushDataItem, CborReader_CborReader_popDataItem, CborReader_CborReader_restoreStackFrame, CborReader_CborReader_getRemainingBytes, CborReader_CborReader_advanceDataItemCounters, CborReader_CborReader_advanceBuffer, CborReader_CborReader_ensureReadCapacity, CborReader_CborReader_peekStateCore, CborReader_CborReader_peekDefiniteLength, CborReader_CborReader_peekUnsignedInteger, CborReader_CborReader_peekSignedInteger, CborReader_CborReader_readIndefiniteLengthByteStringConcatenated, CborReader_CborReader_peekTagCore, CborReader_CborReader_decodeUnsignedInteger, CborReader_CborReader_skipNextNode;\n\n\n\n\n\n\nconst CborReader_UNEXPECTED_END_OF_BUFFER_MSG = 'Unexpected end of buffer';\nclass CborReader_CborReader {\n    constructor(data) {\n        CborReader_CborReader_instances.add(this);\n        CborReader_CborReader_data.set(this, void 0);\n        CborReader_CborReader_offset.set(this, 0);\n        CborReader_CborReader_nestedItems.set(this, new Array());\n        CborReader_CborReader_isTagContext.set(this, false);\n        CborReader_CborReader_currentFrame.set(this, void 0);\n        CborReader_CborReader_cachedState.set(this, CborReaderState_CborReaderState.Undefined);\n        CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_data, new Uint8Array(CBOR_CborReader_Buffer.from(data, 'hex')), \"f\");\n        CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_currentFrame, {\n            currentKeyOffset: null,\n            frameOffset: 0,\n            itemsRead: 0,\n            type: null\n        }, \"f\");\n    }\n    peekState() {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_cachedState, \"f\") === CborReaderState_CborReaderState.Undefined)\n            CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_cachedState, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekStateCore).call(this), \"f\");\n        return CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_cachedState, \"f\");\n    }\n    getBytesRemaining() {\n        return CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").length - CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\");\n    }\n    skipValue() {\n        this.readEncodedValue();\n    }\n    readEncodedValue() {\n        const initialOffset = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\");\n        let depth = 0;\n        do {\n            depth = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_skipNextNode).call(this, depth);\n        } while (depth > 0);\n        return CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").slice(initialOffset, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\"));\n    }\n    readStartArray() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Array);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.Array);\n            return null;\n        }\n        const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.Array, length);\n        return length;\n    }\n    readEndArray() {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_validateNextByteIsBreakByte).call(this);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.Array);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        }\n        else {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.Array);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        }\n    }\n    readInt() {\n        const value = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekSignedInteger).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, value.bytesRead);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return value.signedInt;\n    }\n    readUInt() {\n        const value = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekUnsignedInteger).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, value.bytesRead);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return value.unsignedInt;\n    }\n    readDouble() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Simple);\n        let result;\n        const remainingBytes = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        switch (header.getAdditionalInfo()) {\n            case CborAdditionalInfo_CborAdditionalInfo.Additional16BitData: {\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, 3);\n                result = Half_decodeHalf(remainingBytes.slice(1));\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 3);\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            case CborAdditionalInfo_CborAdditionalInfo.Additional32BitData: {\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, 5);\n                result = CBOR_CborReader_Buffer.from(remainingBytes).readFloatBE(1);\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 5);\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            case CborAdditionalInfo_CborAdditionalInfo.Additional64BitData: {\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, 9);\n                result = CBOR_CborReader_Buffer.from(remainingBytes).readDoubleBE(1);\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 9);\n                CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n                return result;\n            }\n            default:\n                throw new errors_CborInvalidOperationException('Not a float encoding');\n        }\n    }\n    readSimpleValue() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Simple);\n        if ((header.getInitialByte() & CborInitialByte_CborInitialByte.AdditionalInformationMask) < CborAdditionalInfo_CborAdditionalInfo.Additional8BitData) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            return header.getAdditionalInfo().valueOf();\n        }\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.Additional8BitData) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, 2);\n            const value = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\")[CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") + 1];\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 2);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            return value;\n        }\n        throw new errors_CborInvalidOperationException('Not a simple value encoding');\n    }\n    readCborNegativeIntegerRepresentation() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.NegativeInteger);\n        const value = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this));\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, value.bytesRead);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return value.unsignedInt;\n    }\n    readStartMap() {\n        let length = null;\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Map);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.Map);\n            length = null;\n        }\n        else {\n            const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n            const result = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n            if (2 * result.length > buffer.length - result.bytesRead)\n                throw new errors_CborContentException('Definite length exceeds buffer size');\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, result.bytesRead);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.Map, 2 * result.length);\n            length = result.length;\n        }\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").currentKeyOffset = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\");\n        return length;\n    }\n    readEndMap() {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_validateNextByteIsBreakByte).call(this);\n            if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead % 2 !== 0)\n                throw new errors_CborContentException('Key missing value');\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.Map);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        }\n        else {\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.Map);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        }\n    }\n    readBoolean() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Simple);\n        const val = header.getAdditionalInfo();\n        if (val !== CborAdditionalInfo_CborAdditionalInfo.AdditionalTrue && val !== CborAdditionalInfo_CborAdditionalInfo.AdditionalFalse)\n            throw new errors_CborContentException('Not a boolean encoding');\n        const result = val === CborAdditionalInfo_CborAdditionalInfo.AdditionalTrue;\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return result;\n    }\n    readNull() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Simple);\n        const val = header.getAdditionalInfo();\n        if (val !== CborAdditionalInfo_CborAdditionalInfo.AdditionalNull)\n            throw new errors_CborContentException('Not a null encoding');\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n    }\n    readStartIndefiniteLengthByteString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.ByteString);\n        if (header.getAdditionalInfo() !== CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength)\n            throw new errors_CborInvalidOperationException('Not indefinite length string');\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.ByteString);\n    }\n    readEndIndefiniteLengthByteString() {\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_validateNextByteIsBreakByte).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.ByteString);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n    }\n    readByteString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.ByteString);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            const { val, encodingLength } = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_readIndefiniteLengthByteStringConcatenated).call(this, CborMajorType_CborMajorType.ByteString);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, encodingLength);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            return val;\n        }\n        const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return buffer.slice(bytesRead, bytesRead + length);\n    }\n    readDefiniteLengthByteString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.ByteString);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            throw new errors_CborInvalidOperationException('Expected definite length array and got indefinite length');\n        }\n        const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return buffer.slice(bytesRead, bytesRead + length);\n    }\n    readStartIndefiniteLengthTextString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() !== CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength)\n            throw new errors_CborInvalidOperationException('Not indefinite length string');\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_pushDataItem).call(this, CborMajorType_CborMajorType.Utf8String);\n    }\n    readEndIndefiniteLengthTextString() {\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_validateNextByteIsBreakByte).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_popDataItem).call(this, CborMajorType_CborMajorType.Utf8String);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, 1);\n    }\n    readTextString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            const { val, encodingLength } = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_readIndefiniteLengthByteStringConcatenated).call(this, CborMajorType_CborMajorType.Utf8String);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, encodingLength);\n            CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n            return CBOR_CborReader_Buffer.from(val).toString('utf8');\n        }\n        const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return CBOR_CborReader_Buffer.from(buffer.slice(bytesRead, bytesRead + length)).toString('utf8');\n    }\n    readDefiniteLengthTextString() {\n        const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Utf8String);\n        if (header.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength) {\n            throw new errors_CborInvalidOperationException('Expected definite length string and got indefinite length');\n        }\n        const buffer = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n        const { length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, header, buffer);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_ensureReadCapacity).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead + length);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceDataItemCounters).call(this);\n        return CBOR_CborReader_Buffer.from(buffer.slice(bytesRead, bytesRead + length)).toString('utf8');\n    }\n    readTag() {\n        const { tag, bytesRead } = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekTagCore).call(this);\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_advanceBuffer).call(this, bytesRead);\n        CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_isTagContext, true, \"f\");\n        return tag;\n    }\n    peekTag() {\n        const { tag } = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekTagCore).call(this);\n        return tag;\n    }\n    static ensureReadCapacityInArray(data, bytesToRead) {\n        if (data.length < bytesToRead) {\n            throw new errors_CborContentException(CborReader_UNEXPECTED_END_OF_BUFFER_MSG);\n        }\n    }\n    static mapSimpleValueDataToReaderState(value) {\n        switch (value) {\n            case CborAdditionalInfo_CborAdditionalInfo.AdditionalNull:\n                return CborReaderState_CborReaderState.Null;\n            case CborAdditionalInfo_CborAdditionalInfo.AdditionalFalse:\n            case CborAdditionalInfo_CborAdditionalInfo.AdditionalTrue:\n                return CborReaderState_CborReaderState.Boolean;\n            case CborAdditionalInfo_CborAdditionalInfo.Additional16BitData:\n                return CborReaderState_CborReaderState.HalfPrecisionFloat;\n            case CborAdditionalInfo_CborAdditionalInfo.Additional32BitData:\n                return CborReaderState_CborReaderState.SinglePrecisionFloat;\n            case CborAdditionalInfo_CborAdditionalInfo.Additional64BitData:\n                return CborReaderState_CborReaderState.DoublePrecisionFloat;\n            default:\n                return CborReaderState_CborReaderState.SimpleValue;\n        }\n    }\n}\nCborReader_a = CborReader_CborReader, CborReader_CborReader_data = new WeakMap(), CborReader_CborReader_offset = new WeakMap(), CborReader_CborReader_nestedItems = new WeakMap(), CborReader_CborReader_isTagContext = new WeakMap(), CborReader_CborReader_currentFrame = new WeakMap(), CborReader_CborReader_cachedState = new WeakMap(), CborReader_CborReader_instances = new WeakSet(), CborReader_CborReader_peekInitialByte = function _CborReader_peekInitialByte(expectedType) {\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength - CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead === 0)\n        throw new errors_CborInvalidOperationException('No more data items to read');\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") === CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").length) {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type === null && CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength === undefined && CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") > 0)\n            throw new errors_CborInvalidOperationException('End of root-level. No more data items to read');\n        throw new errors_CborContentException(CborReader_UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n    const nextByte = CborInitialByte_CborInitialByte.from(CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\")[CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\")]);\n    switch (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type) {\n        case CborMajorType_CborMajorType.ByteString:\n        case CborMajorType_CborMajorType.Utf8String:\n            if (nextByte.getInitialByte() === CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte ||\n                (nextByte.getMajorType() === CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type &&\n                    nextByte.getAdditionalInfo() !== CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength)) {\n                break;\n            }\n            throw new errors_CborContentException(`Indefinite length string contains invalid data item, ${nextByte.getMajorType()}`);\n    }\n    if (expectedType && expectedType !== nextByte.getMajorType())\n        throw new errors_CborInvalidOperationException(`Major type mismatch, expected type ${expectedType} but got ${nextByte.getMajorType()}`);\n    return nextByte;\n}, CborReader_CborReader_peekNextInitialByte = function _CborReader_peekNextInitialByte(buffer, expectedType) {\n    CborReader_CborReader.ensureReadCapacityInArray(buffer, 1);\n    const header = CborInitialByte_CborInitialByte.from(buffer[0]);\n    if (header.getInitialByte() !== CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte && header.getMajorType() !== expectedType)\n        throw new errors_CborContentException('Indefinite length string contains invalid data item');\n    return header;\n}, CborReader_CborReader_validateNextByteIsBreakByte = function _CborReader_validateNextByteIsBreakByte() {\n    const result = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this);\n    if (result.getInitialByte() !== CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte)\n        throw new errors_CborInvalidOperationException('Not at end of indefinite length data item');\n}, CborReader_CborReader_pushDataItem = function _CborReader_pushDataItem(majorType, definiteLength) {\n    const frame = {\n        currentKeyOffset: CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").currentKeyOffset,\n        definiteLength: CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength,\n        frameOffset: CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").frameOffset,\n        itemsRead: CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead,\n        type: CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type\n    };\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_nestedItems, \"f\").push(frame);\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type = majorType;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength = definiteLength;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead = 0;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").frameOffset = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\");\n    CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_isTagContext, false, \"f\");\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").currentKeyOffset = null;\n}, CborReader_CborReader_popDataItem = function _CborReader_popDataItem(expectedType) {\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type === null || CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_nestedItems, \"f\").length <= 0)\n        throw new errors_CborInvalidOperationException('Is at root context');\n    if (expectedType !== CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type)\n        throw new errors_CborInvalidOperationException(`Pop major type mismatch, expected ${expectedType} but got ${CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type}`);\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength - CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead > 0)\n        throw new errors_CborInvalidOperationException('Not at end of definite length data item');\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_isTagContext, \"f\"))\n        throw new errors_CborContentException('Tag not followed by value');\n    const frame = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_nestedItems, \"f\").pop();\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_restoreStackFrame).call(this, frame);\n}, CborReader_CborReader_restoreStackFrame = function _CborReader_restoreStackFrame(frame) {\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type = frame.type;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").frameOffset = frame.frameOffset;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength = frame.definiteLength;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead = frame.itemsRead;\n    CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").currentKeyOffset = frame.currentKeyOffset;\n    CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_cachedState, CborReaderState_CborReaderState.Undefined, \"f\");\n}, CborReader_CborReader_getRemainingBytes = function _CborReader_getRemainingBytes() {\n    return CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").slice(CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\"));\n}, CborReader_CborReader_advanceDataItemCounters = function _CborReader_advanceDataItemCounters() {\n    ++CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead;\n    CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_isTagContext, false, \"f\");\n}, CborReader_CborReader_advanceBuffer = function _CborReader_advanceBuffer(length) {\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") + length > CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").length)\n        throw new errors_CborContentException('Buffer offset out of bounds');\n    CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_offset, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") + length, \"f\");\n    CBOR_CborReader_classPrivateFieldSet(this, CborReader_CborReader_cachedState, CborReaderState_CborReaderState.Undefined, \"f\");\n}, CborReader_CborReader_ensureReadCapacity = function _CborReader_ensureReadCapacity(bytesToRead) {\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").length - CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") < bytesToRead) {\n        throw new errors_CborContentException(CborReader_UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n}, CborReader_CborReader_peekStateCore = function _CborReader_peekStateCore() {\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength !== undefined &&\n        CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength - CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead === 0) {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type === null)\n            return CborReaderState_CborReaderState.Finished;\n        switch (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type) {\n            case CborMajorType_CborMajorType.Array:\n                return CborReaderState_CborReaderState.EndArray;\n            case CborMajorType_CborMajorType.Map:\n                return CborReaderState_CborReaderState.EndMap;\n            default:\n                throw new errors_CborInvalidOperationException('Invalid CBOR major type pushed to stack.');\n        }\n    }\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\") === CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\").length) {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type === null && CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            return CborReaderState_CborReaderState.Finished;\n        }\n        throw new errors_CborInvalidOperationException(CborReader_UNEXPECTED_END_OF_BUFFER_MSG);\n    }\n    const initialByte = CborInitialByte_CborInitialByte.from(CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_data, \"f\")[CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_offset, \"f\")]);\n    if (initialByte.getInitialByte() === CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte) {\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_isTagContext, \"f\")) {\n            throw new errors_CborContentException('Tag not followed by value');\n        }\n        if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength === undefined) {\n            switch (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type) {\n                case null:\n                    throw new errors_CborContentException('Unexpected break byte');\n                case CborMajorType_CborMajorType.ByteString:\n                    return CborReaderState_CborReaderState.EndIndefiniteLengthByteString;\n                case CborMajorType_CborMajorType.Utf8String:\n                    return CborReaderState_CborReaderState.EndIndefiniteLengthTextString;\n                case CborMajorType_CborMajorType.Array:\n                    return CborReaderState_CborReaderState.EndArray;\n                case CborMajorType_CborMajorType.Map: {\n                    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").itemsRead % 2 === 0)\n                        return CborReaderState_CborReaderState.EndMap;\n                    throw new errors_CborContentException('Key missing value');\n                }\n                default:\n                    throw new errors_CborInvalidOperationException('Invalid CBOR major type pushed to stack.');\n            }\n        }\n        else {\n            throw new errors_CborContentException('Unexpected break byte');\n        }\n    }\n    if (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type !== null && CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").definiteLength !== null) {\n        switch (CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type) {\n            case CborMajorType_CborMajorType.ByteString:\n            case CborMajorType_CborMajorType.Utf8String:\n                if (initialByte.getMajorType() !== CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_currentFrame, \"f\").type) {\n                    throw new errors_CborContentException('Indefinite length string contains invalid data item');\n                }\n                break;\n        }\n    }\n    switch (initialByte.getMajorType()) {\n        case CborMajorType_CborMajorType.UnsignedInteger:\n            return CborReaderState_CborReaderState.UnsignedInteger;\n        case CborMajorType_CborMajorType.NegativeInteger:\n            return CborReaderState_CborReaderState.NegativeInteger;\n        case CborMajorType_CborMajorType.ByteString:\n            return initialByte.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength\n                ? CborReaderState_CborReaderState.StartIndefiniteLengthByteString\n                : CborReaderState_CborReaderState.ByteString;\n        case CborMajorType_CborMajorType.Utf8String:\n            return initialByte.getAdditionalInfo() === CborAdditionalInfo_CborAdditionalInfo.IndefiniteLength\n                ? CborReaderState_CborReaderState.StartIndefiniteLengthTextString\n                : CborReaderState_CborReaderState.TextString;\n        case CborMajorType_CborMajorType.Array:\n            return CborReaderState_CborReaderState.StartArray;\n        case CborMajorType_CborMajorType.Map:\n            return CborReaderState_CborReaderState.StartMap;\n        case CborMajorType_CborMajorType.Tag:\n            return CborReaderState_CborReaderState.Tag;\n        case CborMajorType_CborMajorType.Simple:\n            return CborReader_CborReader.mapSimpleValueDataToReaderState(initialByte.getAdditionalInfo());\n        default:\n            throw new errors_CborContentException('Invalid CBOR major type.');\n    }\n}, CborReader_CborReader_peekDefiniteLength = function _CborReader_peekDefiniteLength(header, data) {\n    const { unsignedInt: length, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, data);\n    return { bytesRead, length: Number(length) };\n}, CborReader_CborReader_peekUnsignedInteger = function _CborReader_peekUnsignedInteger() {\n    const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this);\n    switch (header.getMajorType()) {\n        case CborMajorType_CborMajorType.UnsignedInteger: {\n            return CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this));\n        }\n        case CborMajorType_CborMajorType.NegativeInteger: {\n            throw new errors_CborContentException('Integer overflow');\n        }\n        default:\n            throw new errors_CborInvalidOperationException(`Reader type mismatch, expected ${CborMajorType_CborMajorType.UnsignedInteger} but got ${header.getMajorType()}`);\n    }\n}, CborReader_CborReader_peekSignedInteger = function _CborReader_peekSignedInteger() {\n    const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this);\n    switch (header.getMajorType()) {\n        case CborMajorType_CborMajorType.UnsignedInteger: {\n            const { unsignedInt: signedInt, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this));\n            return { bytesRead, signedInt: BigInt(signedInt) };\n        }\n        case CborMajorType_CborMajorType.NegativeInteger: {\n            const { unsignedInt, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this));\n            return { bytesRead, signedInt: BigInt(-1) - unsignedInt };\n        }\n        default:\n            throw new errors_CborInvalidOperationException(`Reader type mismatch, expected ${CborMajorType_CborMajorType.UnsignedInteger} or ${CborMajorType_CborMajorType.NegativeInteger} but got ${header.getMajorType()}`);\n    }\n}, CborReader_CborReader_readIndefiniteLengthByteStringConcatenated = function _CborReader_readIndefiniteLengthByteStringConcatenated(type) {\n    const data = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this);\n    let concat = CBOR_CborReader_Buffer.from([]);\n    let encodingLength = 0;\n    let i = 1;\n    let nextInitialByte = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekNextInitialByte).call(CborReader_CborReader, data.slice(i), type);\n    while (nextInitialByte.getInitialByte() !== CborInitialByte_CborInitialByte.IndefiniteLengthBreakByte) {\n        const { length: chunkLength, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekDefiniteLength).call(CborReader_CborReader, nextInitialByte, data.slice(i));\n        const payloadSize = bytesRead + Number(chunkLength);\n        concat = CBOR_CborReader_Buffer.concat([concat, data.slice(i + (payloadSize - chunkLength), i + payloadSize)]);\n        i += payloadSize;\n        nextInitialByte = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_peekNextInitialByte).call(CborReader_CborReader, data.slice(i), type);\n    }\n    encodingLength = i + 1;\n    return { encodingLength, val: new Uint8Array(concat) };\n}, CborReader_CborReader_peekTagCore = function _CborReader_peekTagCore() {\n    const header = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekInitialByte).call(this, CborMajorType_CborMajorType.Tag);\n    const { unsignedInt: result, bytesRead } = CBOR_CborReader_classPrivateFieldGet(CborReader_CborReader, CborReader_a, \"m\", CborReader_CborReader_decodeUnsignedInteger).call(CborReader_CborReader, header, CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_getRemainingBytes).call(this));\n    return { bytesRead, tag: Number(result) };\n}, CborReader_CborReader_decodeUnsignedInteger = function _CborReader_decodeUnsignedInteger(header, data) {\n    if ((header.getInitialByte() & CborInitialByte_CborInitialByte.AdditionalInformationMask) < CborAdditionalInfo_CborAdditionalInfo.Additional8BitData)\n        return { bytesRead: 1, unsignedInt: BigInt(header.getAdditionalInfo()) };\n    switch (header.getAdditionalInfo()) {\n        case CborAdditionalInfo_CborAdditionalInfo.Additional8BitData: {\n            CborReader_CborReader.ensureReadCapacityInArray(data, 2);\n            return { bytesRead: 2, unsignedInt: BigInt(data[1]) };\n        }\n        case CborAdditionalInfo_CborAdditionalInfo.Additional16BitData: {\n            CborReader_CborReader.ensureReadCapacityInArray(data, 3);\n            const buffer = CBOR_CborReader_Buffer.from(data.slice(1));\n            const val = buffer.readUInt16BE();\n            return { bytesRead: 3, unsignedInt: BigInt(val) };\n        }\n        case CborAdditionalInfo_CborAdditionalInfo.Additional32BitData: {\n            CborReader_CborReader.ensureReadCapacityInArray(data, 5);\n            const buffer = CBOR_CborReader_Buffer.from(data.slice(1));\n            const val = buffer.readUInt32BE();\n            return { bytesRead: 5, unsignedInt: BigInt(val) };\n        }\n        case CborAdditionalInfo_CborAdditionalInfo.Additional64BitData: {\n            CborReader_CborReader.ensureReadCapacityInArray(data, 9);\n            const buffer = CBOR_CborReader_Buffer.from(data.slice(1, 9));\n            let result = BigInt(0);\n            for (const element of buffer) {\n                result = (result << BigInt(8)) + BigInt(element);\n            }\n            return { bytesRead: 9, unsignedInt: result };\n        }\n        default:\n            throw new errors_CborContentException('Invalid integer encoding');\n    }\n}, CborReader_CborReader_skipNextNode = function _CborReader_skipNextNode(initialDepth) {\n    let state;\n    let depth = initialDepth;\n    while ((state = CBOR_CborReader_classPrivateFieldGet(this, CborReader_CborReader_instances, \"m\", CborReader_CborReader_peekStateCore).call(this)) === CborReaderState_CborReaderState.Tag)\n        this.readTag();\n    switch (state) {\n        case CborReaderState_CborReaderState.UnsignedInteger:\n            this.readUInt();\n            break;\n        case CborReaderState_CborReaderState.NegativeInteger:\n            this.readCborNegativeIntegerRepresentation();\n            break;\n        case CborReaderState_CborReaderState.ByteString:\n            this.readByteString();\n            break;\n        case CborReaderState_CborReaderState.TextString:\n            this.readTextString();\n            break;\n        case CborReaderState_CborReaderState.StartIndefiniteLengthByteString:\n            this.readStartIndefiniteLengthByteString();\n            depth++;\n            break;\n        case CborReaderState_CborReaderState.EndIndefiniteLengthByteString:\n            this.readEndIndefiniteLengthByteString();\n            depth--;\n            break;\n        case CborReaderState_CborReaderState.StartIndefiniteLengthTextString:\n            this.readStartIndefiniteLengthTextString();\n            depth++;\n            break;\n        case CborReaderState_CborReaderState.EndIndefiniteLengthTextString:\n            if (depth === 0)\n                throw new errors_CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndIndefiniteLengthTextString();\n            depth--;\n            break;\n        case CborReaderState_CborReaderState.StartArray:\n            this.readStartArray();\n            depth++;\n            break;\n        case CborReaderState_CborReaderState.EndArray:\n            if (depth === 0)\n                throw new errors_CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndArray();\n            depth--;\n            break;\n        case CborReaderState_CborReaderState.StartMap:\n            this.readStartMap();\n            depth++;\n            break;\n        case CborReaderState_CborReaderState.EndMap:\n            if (depth === 0)\n                throw new errors_CborInvalidOperationException(`Skip invalid state: ${state}`);\n            this.readEndMap();\n            depth--;\n            break;\n        case CborReaderState_CborReaderState.HalfPrecisionFloat:\n        case CborReaderState_CborReaderState.SinglePrecisionFloat:\n        case CborReaderState_CborReaderState.DoublePrecisionFloat:\n            this.readDouble();\n            break;\n        case CborReaderState_CborReaderState.Null:\n        case CborReaderState_CborReaderState.Boolean:\n        case CborReaderState_CborReaderState.SimpleValue:\n            this.readSimpleValue();\n            break;\n        default:\n            throw new errors_CborInvalidOperationException(`Skip invalid state: ${state}`);\n    }\n    return depth;\n};\n//# sourceMappingURL=CborReader.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/ByronAddress.js\n/* provided dependency */ var Address_ByronAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_ByronAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_ByronAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar ByronAddress_ByronAddress_type, ByronAddress_ByronAddress_content;\n\n\n\n\n\nvar ByronAddress_ByronAddressType;\n(function (ByronAddressType) {\n    ByronAddressType[ByronAddressType[\"PubKey\"] = 0] = \"PubKey\";\n    ByronAddressType[ByronAddressType[\"Script\"] = 1] = \"Script\";\n    ByronAddressType[ByronAddressType[\"Redeem\"] = 2] = \"Redeem\";\n})(ByronAddress_ByronAddressType || (ByronAddress_ByronAddressType = {}));\nclass ByronAddress_ByronAddress {\n    constructor(props) {\n        ByronAddress_ByronAddress_type.set(this, void 0);\n        ByronAddress_ByronAddress_content.set(this, void 0);\n        Address_ByronAddress_classPrivateFieldSet(this, ByronAddress_ByronAddress_content, props.byronAddressContent, \"f\");\n        Address_ByronAddress_classPrivateFieldSet(this, ByronAddress_ByronAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(root, attrs, type) {\n        return new ByronAddress_ByronAddress({\n            byronAddressContent: {\n                attrs,\n                root,\n                type\n            },\n            type: Address_AddressType.Byron\n        });\n    }\n    getAttributes() {\n        return Address_ByronAddress_classPrivateFieldGet(this, ByronAddress_ByronAddress_content, \"f\").attrs;\n    }\n    getRoot() {\n        return Address_ByronAddress_classPrivateFieldGet(this, ByronAddress_ByronAddress_content, \"f\").root;\n    }\n    getByronAddressType() {\n        return Address_ByronAddress_classPrivateFieldGet(this, ByronAddress_ByronAddress_content, \"f\").type;\n    }\n    toAddress() {\n        return new Address_Address({\n            byronAddressContent: Address_ByronAddress_classPrivateFieldGet(this, ByronAddress_ByronAddress_content, \"f\"),\n            type: Address_ByronAddress_classPrivateFieldGet(this, ByronAddress_ByronAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        return addr.getProps().type === Address_AddressType.Byron ? new ByronAddress_ByronAddress(addr.getProps()) : undefined;\n    }\n    static packParts(props) {\n        const { root, attrs, type } = props.byronAddressContent;\n        let mapSize = 0;\n        if (attrs.derivationPath)\n            ++mapSize;\n        if (attrs.magic)\n            ++mapSize;\n        const writer = new CborWriter_CborWriter();\n        writer.writeStartArray(3);\n        writer.writeByteString(Address_ByronAddress_Buffer.from(root, 'hex'));\n        writer.writeStartMap(mapSize);\n        if (attrs.derivationPath) {\n            const encodedPathCbor = new CborWriter_CborWriter().writeByteString(Address_ByronAddress_Buffer.from(attrs.derivationPath, 'hex')).encode();\n            writer.writeInt(1);\n            writer.writeByteString(encodedPathCbor);\n        }\n        if (attrs.magic) {\n            const encodedMagicCbor = new CborWriter_CborWriter().writeInt(attrs.magic).encode();\n            writer.writeInt(2);\n            writer.writeByteString(encodedMagicCbor);\n        }\n        writer.writeInt(type);\n        const addressDataEncoded = Address_ByronAddress_Buffer.from(writer.encodeAsHex(), 'hex');\n        writer.reset();\n        writer.writeStartArray(2);\n        writer.writeTag(CborTag_CborTag.EncodedCborDataItem);\n        writer.writeByteString(addressDataEncoded);\n        writer.writeInt(crc32(addressDataEncoded));\n        return writer.encode();\n    }\n    static unpackParts(type, data) {\n        let reader = new CborReader_CborReader(esm_primitives_HexBlob.fromBytes(data));\n        reader.readStartArray();\n        reader.readTag();\n        const addressDataEncoded = reader.readByteString();\n        if (Number(reader.readInt()) !== crc32(addressDataEncoded))\n            throw new esm_errors_InvalidArgumentError('data', 'Invalid Byron raw data. Checksum doesnt match.');\n        reader = new CborReader_CborReader(esm_primitives_HexBlob.fromBytes(addressDataEncoded));\n        reader.readStartArray();\n        const root = hexTypes_Hash28ByteBase16(Address_ByronAddress_Buffer.from(reader.readByteString()).toString('hex'));\n        reader.readStartMap();\n        let magic;\n        let derivationPath;\n        while (reader.peekState() !== CborReaderState_CborReaderState.EndMap) {\n            const key = reader.readInt();\n            switch (key) {\n                case 1n: {\n                    const cborBytes = reader.readByteString();\n                    derivationPath = esm_primitives_HexBlob.fromBytes(new CborReader_CborReader(esm_primitives_HexBlob.fromBytes(cborBytes)).readByteString());\n                    break;\n                }\n                case 2n: {\n                    const cborBytes = reader.readByteString();\n                    magic = Number(new CborReader_CborReader(esm_primitives_HexBlob.fromBytes(cborBytes)).readInt());\n                    break;\n                }\n            }\n        }\n        reader.readEndMap();\n        const byronAddressType = Number(reader.readInt());\n        return new Address_Address({\n            byronAddressContent: {\n                attrs: { derivationPath, magic },\n                root,\n                type: byronAddressType\n            },\n            type\n        });\n    }\n}\nByronAddress_ByronAddress_type = new WeakMap(), ByronAddress_ByronAddress_content = new WeakMap();\n//# sourceMappingURL=ByronAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/EnterpriseAddress.js\n/* provided dependency */ var Address_EnterpriseAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_EnterpriseAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_EnterpriseAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar EnterpriseAddress_EnterpriseAddress_type, EnterpriseAddress_EnterpriseAddress_networkId, EnterpriseAddress_EnterpriseAddress_paymentPart;\n\n\n\nclass EnterpriseAddress_EnterpriseAddress {\n    constructor(props) {\n        EnterpriseAddress_EnterpriseAddress_type.set(this, void 0);\n        EnterpriseAddress_EnterpriseAddress_networkId.set(this, void 0);\n        EnterpriseAddress_EnterpriseAddress_paymentPart.set(this, void 0);\n        Address_EnterpriseAddress_classPrivateFieldSet(this, EnterpriseAddress_EnterpriseAddress_networkId, props.networkId, \"f\");\n        Address_EnterpriseAddress_classPrivateFieldSet(this, EnterpriseAddress_EnterpriseAddress_paymentPart, props.paymentPart, \"f\");\n        Address_EnterpriseAddress_classPrivateFieldSet(this, EnterpriseAddress_EnterpriseAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment) {\n        const type = payment.type === Address_CredentialType.ScriptHash ? Address_AddressType.EnterpriseScript : Address_AddressType.EnterpriseKey;\n        return new EnterpriseAddress_EnterpriseAddress({\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return Address_EnterpriseAddress_classPrivateFieldGet(this, EnterpriseAddress_EnterpriseAddress_paymentPart, \"f\");\n    }\n    toAddress() {\n        return new Address_Address({\n            networkId: Address_EnterpriseAddress_classPrivateFieldGet(this, EnterpriseAddress_EnterpriseAddress_networkId, \"f\"),\n            paymentPart: Address_EnterpriseAddress_classPrivateFieldGet(this, EnterpriseAddress_EnterpriseAddress_paymentPart, \"f\"),\n            type: Address_EnterpriseAddress_classPrivateFieldGet(this, EnterpriseAddress_EnterpriseAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case Address_AddressType.EnterpriseKey:\n            case Address_AddressType.EnterpriseScript:\n                address = new EnterpriseAddress_EnterpriseAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return Address_EnterpriseAddress_Buffer.concat([\n            Address_EnterpriseAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            Address_EnterpriseAddress_Buffer.from(props.paymentPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 29)\n            throw new esm_errors_InvalidArgumentError('data', 'Enterprise address data length should be 29 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = hexTypes_Hash28ByteBase16(Address_EnterpriseAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        return new Address_Address({\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: type === Address_AddressType.EnterpriseScript ? Address_CredentialType.ScriptHash : Address_CredentialType.KeyHash\n            },\n            type\n        });\n    }\n}\nEnterpriseAddress_EnterpriseAddress_type = new WeakMap(), EnterpriseAddress_EnterpriseAddress_networkId = new WeakMap(), EnterpriseAddress_EnterpriseAddress_paymentPart = new WeakMap();\n//# sourceMappingURL=EnterpriseAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/ChainId.js\nvar ChainId_NetworkId;\n(function (NetworkId) {\n    NetworkId[NetworkId[\"Mainnet\"] = 1] = \"Mainnet\";\n    NetworkId[NetworkId[\"Testnet\"] = 0] = \"Testnet\";\n})(ChainId_NetworkId || (ChainId_NetworkId = {}));\nvar ChainId_NetworkMagics;\n(function (NetworkMagics) {\n    NetworkMagics[NetworkMagics[\"Mainnet\"] = 764824073] = \"Mainnet\";\n    NetworkMagics[NetworkMagics[\"Preprod\"] = 1] = \"Preprod\";\n    NetworkMagics[NetworkMagics[\"Preview\"] = 2] = \"Preview\";\n    NetworkMagics[NetworkMagics[\"Sanchonet\"] = 4] = \"Sanchonet\";\n})(ChainId_NetworkMagics || (ChainId_NetworkMagics = {}));\nconst ChainId_ChainIds = {\n    Mainnet: {\n        networkId: ChainId_NetworkId.Mainnet,\n        networkMagic: ChainId_NetworkMagics.Mainnet\n    },\n    Preprod: {\n        networkId: ChainId_NetworkId.Testnet,\n        networkMagic: ChainId_NetworkMagics.Preprod\n    },\n    Preview: {\n        networkId: ChainId_NetworkId.Testnet,\n        networkMagic: ChainId_NetworkMagics.Preview\n    },\n    Sanchonet: {\n        networkId: ChainId_NetworkId.Testnet,\n        networkMagic: ChainId_NetworkMagics.Sanchonet\n    }\n};\n//# sourceMappingURL=ChainId.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/PointerAddress.js\n/* provided dependency */ var Address_PointerAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_PointerAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_PointerAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar PointerAddress_PointerAddress_type, PointerAddress_PointerAddress_networkId, PointerAddress_PointerAddress_paymentPart, PointerAddress_PointerAddress_pointer;\n\n\n\nconst PointerAddress_variableLengthEncode = (val) => {\n    if (typeof val !== 'bigint') {\n        val = BigInt(val);\n    }\n    if (val < 0) {\n        throw new esm_errors_InvalidArgumentError('val', `Negative numbers not supported. Number supplied: ${val}`);\n    }\n    const encoded = [];\n    let bitLength = val.toString(2).length;\n    encoded.push(Number(val & 127n));\n    while (bitLength > 7) {\n        val >>= 7n;\n        bitLength -= 7;\n        encoded.unshift(Number((val & 127n) + 128n));\n    }\n    return Address_PointerAddress_Buffer.from(encoded);\n};\nconst PointerAddress_variableLengthDecode = (array) => {\n    let more = true;\n    let value = 0n;\n    let bytesRead = 0;\n    while (more && bytesRead < array.length) {\n        const b = array[bytesRead];\n        value <<= 7n;\n        value |= BigInt(b & 127);\n        more = (b & 128) !== 0;\n        ++bytesRead;\n    }\n    return { bytesRead, value };\n};\nconst PointerAddress_TxIndex = (value) => value;\nconst PointerAddress_CertIndex = (value) => value;\nclass PointerAddress_PointerAddress {\n    constructor(props) {\n        PointerAddress_PointerAddress_type.set(this, void 0);\n        PointerAddress_PointerAddress_networkId.set(this, void 0);\n        PointerAddress_PointerAddress_paymentPart.set(this, void 0);\n        PointerAddress_PointerAddress_pointer.set(this, void 0);\n        Address_PointerAddress_classPrivateFieldSet(this, PointerAddress_PointerAddress_networkId, props.networkId, \"f\");\n        Address_PointerAddress_classPrivateFieldSet(this, PointerAddress_PointerAddress_paymentPart, props.paymentPart, \"f\");\n        Address_PointerAddress_classPrivateFieldSet(this, PointerAddress_PointerAddress_pointer, props.pointer, \"f\");\n        Address_PointerAddress_classPrivateFieldSet(this, PointerAddress_PointerAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment, pointer) {\n        let type = Address_AddressType.PointerKey;\n        if (payment.type === Address_CredentialType.ScriptHash)\n            type &= 0b0001;\n        return new PointerAddress_PointerAddress({\n            networkId,\n            paymentPart: payment,\n            pointer,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_paymentPart, \"f\");\n    }\n    getStakePointer() {\n        return Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_pointer, \"f\");\n    }\n    toAddress() {\n        return new Address_Address({\n            networkId: Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_networkId, \"f\"),\n            paymentPart: Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_paymentPart, \"f\"),\n            pointer: Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_pointer, \"f\"),\n            type: Address_PointerAddress_classPrivateFieldGet(this, PointerAddress_PointerAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case Address_AddressType.PointerKey:\n            case Address_AddressType.PointerScript:\n                address = new PointerAddress_PointerAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        const { slot, txIndex, certIndex } = props.pointer;\n        return Address_PointerAddress_Buffer.concat([\n            Address_PointerAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            Address_PointerAddress_Buffer.from(props.paymentPart.hash, 'hex'),\n            Address_PointerAddress_Buffer.concat([PointerAddress_variableLengthEncode(slot), PointerAddress_variableLengthEncode(txIndex), PointerAddress_variableLengthEncode(certIndex)])\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length <= 29)\n            throw new esm_errors_InvalidArgumentError('data', 'Pointer address data length should greater than 29 bytes long.');\n        const network = data[0] & 15;\n        const paymentCredential = hexTypes_Hash28ByteBase16(Address_PointerAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        let index = 29;\n        const dataBuffer = Address_PointerAddress_Buffer.from(data);\n        const { value: slot, bytesRead: slotBytes } = PointerAddress_variableLengthDecode(dataBuffer.subarray(index));\n        index += slotBytes;\n        const { value: txIndex, bytesRead: txIndexBytes } = PointerAddress_variableLengthDecode(dataBuffer.subarray(index));\n        index += txIndexBytes;\n        const { value: certIndex } = PointerAddress_variableLengthDecode(dataBuffer.subarray(index));\n        return new Address_Address({\n            networkId: network,\n            paymentPart: {\n                hash: paymentCredential,\n                type: type === Address_AddressType.PointerScript ? Address_CredentialType.ScriptHash : Address_CredentialType.KeyHash\n            },\n            pointer: { certIndex: PointerAddress_CertIndex(Number(certIndex)), slot, txIndex: PointerAddress_TxIndex(Number(txIndex)) },\n            type\n        });\n    }\n}\nPointerAddress_PointerAddress_type = new WeakMap(), PointerAddress_PointerAddress_networkId = new WeakMap(), PointerAddress_PointerAddress_paymentPart = new WeakMap(), PointerAddress_PointerAddress_pointer = new WeakMap();\n//# sourceMappingURL=PointerAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/RewardAddress.js\n/* provided dependency */ var Address_RewardAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_RewardAddress_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_RewardAddress_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar RewardAddress_RewardAddress_type, RewardAddress_RewardAddress_networkId, RewardAddress_RewardAddress_paymentPart;\n\n\n\nclass RewardAddress_RewardAddress {\n    constructor(props) {\n        RewardAddress_RewardAddress_type.set(this, void 0);\n        RewardAddress_RewardAddress_networkId.set(this, void 0);\n        RewardAddress_RewardAddress_paymentPart.set(this, void 0);\n        Address_RewardAddress_classPrivateFieldSet(this, RewardAddress_RewardAddress_networkId, props.networkId, \"f\");\n        Address_RewardAddress_classPrivateFieldSet(this, RewardAddress_RewardAddress_paymentPart, props.paymentPart, \"f\");\n        Address_RewardAddress_classPrivateFieldSet(this, RewardAddress_RewardAddress_type, props.type, \"f\");\n    }\n    static fromCredentials(networkId, payment) {\n        let type = Address_AddressType.RewardKey;\n        if (payment.type === Address_CredentialType.ScriptHash)\n            type |= 0b0001;\n        return new RewardAddress_RewardAddress({\n            networkId,\n            paymentPart: payment,\n            type\n        });\n    }\n    getPaymentCredential() {\n        return Address_RewardAddress_classPrivateFieldGet(this, RewardAddress_RewardAddress_paymentPart, \"f\");\n    }\n    toAddress() {\n        return new Address_Address({\n            networkId: Address_RewardAddress_classPrivateFieldGet(this, RewardAddress_RewardAddress_networkId, \"f\"),\n            paymentPart: Address_RewardAddress_classPrivateFieldGet(this, RewardAddress_RewardAddress_paymentPart, \"f\"),\n            type: Address_RewardAddress_classPrivateFieldGet(this, RewardAddress_RewardAddress_type, \"f\")\n        });\n    }\n    static fromAddress(addr) {\n        let address;\n        switch (addr.getProps().type) {\n            case Address_AddressType.RewardKey:\n            case Address_AddressType.RewardScript:\n                address = new RewardAddress_RewardAddress(addr.getProps());\n                break;\n            default:\n        }\n        return address;\n    }\n    static packParts(props) {\n        return Address_RewardAddress_Buffer.concat([\n            Address_RewardAddress_Buffer.from([(props.type << 4) | props.networkId]),\n            Address_RewardAddress_Buffer.from(props.paymentPart.hash, 'hex')\n        ]);\n    }\n    static unpackParts(type, data) {\n        if (data.length !== 29)\n            throw new esm_errors_InvalidArgumentError('data', 'Enterprise address data length should be 29 bytes long.');\n        const network = data[0] & 15;\n        const stakeCredential = hexTypes_Hash28ByteBase16(Address_RewardAddress_Buffer.from(data.slice(1, 29)).toString('hex'));\n        return new Address_Address({\n            networkId: network,\n            paymentPart: {\n                hash: stakeCredential,\n                type: type === Address_AddressType.RewardScript ? Address_CredentialType.ScriptHash : Address_CredentialType.KeyHash\n            },\n            type\n        });\n    }\n}\nRewardAddress_RewardAddress_type = new WeakMap(), RewardAddress_RewardAddress_networkId = new WeakMap(), RewardAddress_RewardAddress_paymentPart = new WeakMap();\n//# sourceMappingURL=RewardAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/Address.js\n/* provided dependency */ var Address_Address_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar Address_Address_classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n};\nvar Address_Address_classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n};\nvar Address_Address_props;\n\n\n\n\n\n\n\n\nconst Address_Address_MAX_BECH32_LENGTH_LIMIT = 1023;\nvar Address_AddressType;\n(function (AddressType) {\n    AddressType[AddressType[\"BasePaymentKeyStakeKey\"] = 0] = \"BasePaymentKeyStakeKey\";\n    AddressType[AddressType[\"BasePaymentScriptStakeKey\"] = 1] = \"BasePaymentScriptStakeKey\";\n    AddressType[AddressType[\"BasePaymentKeyStakeScript\"] = 2] = \"BasePaymentKeyStakeScript\";\n    AddressType[AddressType[\"BasePaymentScriptStakeScript\"] = 3] = \"BasePaymentScriptStakeScript\";\n    AddressType[AddressType[\"PointerKey\"] = 4] = \"PointerKey\";\n    AddressType[AddressType[\"PointerScript\"] = 5] = \"PointerScript\";\n    AddressType[AddressType[\"EnterpriseKey\"] = 6] = \"EnterpriseKey\";\n    AddressType[AddressType[\"EnterpriseScript\"] = 7] = \"EnterpriseScript\";\n    AddressType[AddressType[\"Byron\"] = 8] = \"Byron\";\n    AddressType[AddressType[\"RewardKey\"] = 14] = \"RewardKey\";\n    AddressType[AddressType[\"RewardScript\"] = 15] = \"RewardScript\";\n})(Address_AddressType || (Address_AddressType = {}));\nvar Address_CredentialType;\n(function (CredentialType) {\n    CredentialType[CredentialType[\"KeyHash\"] = 0] = \"KeyHash\";\n    CredentialType[CredentialType[\"ScriptHash\"] = 1] = \"ScriptHash\";\n})(Address_CredentialType || (Address_CredentialType = {}));\nclass Address_Address {\n    constructor(props) {\n        Address_Address_props.set(this, void 0);\n        Address_Address_classPrivateFieldSet(this, Address_Address_props, props, \"f\");\n    }\n    static fromBytes(hex) {\n        const data = Address_Address_Buffer.from(hex, 'hex');\n        const type = data[0] >> 4;\n        let address;\n        switch (type) {\n            case Address_AddressType.BasePaymentKeyStakeKey:\n            case Address_AddressType.BasePaymentScriptStakeKey:\n            case Address_AddressType.BasePaymentKeyStakeScript:\n            case Address_AddressType.BasePaymentScriptStakeScript: {\n                address = BaseAddress_BaseAddress.unpackParts(type, data);\n                break;\n            }\n            case Address_AddressType.PointerKey:\n            case Address_AddressType.PointerScript: {\n                address = PointerAddress_PointerAddress.unpackParts(type, data);\n                break;\n            }\n            case Address_AddressType.EnterpriseKey:\n            case Address_AddressType.EnterpriseScript: {\n                address = EnterpriseAddress_EnterpriseAddress.unpackParts(type, data);\n                break;\n            }\n            case Address_AddressType.RewardKey:\n            case Address_AddressType.RewardScript: {\n                address = RewardAddress_RewardAddress.unpackParts(type, data);\n                break;\n            }\n            case Address_AddressType.Byron: {\n                address = ByronAddress_ByronAddress.unpackParts(type, data);\n                break;\n            }\n            default:\n                throw new esm_errors_InvalidArgumentError('data', 'Invalid address raw data');\n        }\n        return address;\n    }\n    toBytes() {\n        let cborData;\n        switch (Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type) {\n            case Address_AddressType.BasePaymentKeyStakeKey:\n            case Address_AddressType.BasePaymentScriptStakeKey:\n            case Address_AddressType.BasePaymentKeyStakeScript:\n            case Address_AddressType.BasePaymentScriptStakeScript: {\n                cborData = BaseAddress_BaseAddress.packParts(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\"));\n                break;\n            }\n            case Address_AddressType.PointerKey:\n            case Address_AddressType.PointerScript: {\n                cborData = PointerAddress_PointerAddress.packParts(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\"));\n                break;\n            }\n            case Address_AddressType.EnterpriseKey:\n            case Address_AddressType.EnterpriseScript: {\n                cborData = EnterpriseAddress_EnterpriseAddress.packParts(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\"));\n                break;\n            }\n            case Address_AddressType.RewardKey:\n            case Address_AddressType.RewardScript: {\n                cborData = RewardAddress_RewardAddress.packParts(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\"));\n                break;\n            }\n            case Address_AddressType.Byron: {\n                cborData = ByronAddress_ByronAddress.packParts(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\"));\n                break;\n            }\n            default:\n                throw new Error('Invalid address');\n        }\n        return esm_primitives_HexBlob.fromBytes(cborData);\n    }\n    static fromBase58(base58Address) {\n        return Address_Address.fromBytes(esm_primitives_HexBlob.fromBytes(base58.decode(base58Address)));\n    }\n    toBase58() {\n        if (Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type !== Address_AddressType.Byron)\n            throw new Error('Only Byron addresses will be encoded in base58');\n        return base58.encode(Address_Address_Buffer.from(this.toBytes(), 'hex'));\n    }\n    toBech32() {\n        const words = esm_bech32.toWords(Address_Address_Buffer.from(this.toBytes(), 'hex'));\n        if (Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type === Address_AddressType.Byron)\n            throw new Error('Only Shelley addresses will be encoded in bech32');\n        const prefix = Address_Address.getBech32Prefix(Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type, Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").networkId);\n        const bech32Address = esm_bech32.encode(prefix, words, Address_Address_MAX_BECH32_LENGTH_LIMIT);\n        return Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type === Address_AddressType.RewardKey || Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type === Address_AddressType.RewardScript\n            ? bech32Address\n            : bech32Address;\n    }\n    static fromBech32(bech32) {\n        const { words } = esm_bech32.decode(bech32, Address_Address_MAX_BECH32_LENGTH_LIMIT);\n        return Address_Address.fromBytes(esm_primitives_HexBlob.fromBytes(esm_bech32.fromWords(words)));\n    }\n    static fromString(address) {\n        try {\n            if (Address_Address.isValidBech32(address))\n                return Address_Address.fromBech32(address);\n            if (Address_Address.isValidByron(address))\n                return Address_Address.fromBase58(address);\n            return Address_Address.fromBytes(esm_primitives_HexBlob(address));\n        }\n        catch {\n        }\n        return null;\n    }\n    static isValidBech32(bech32) {\n        try {\n            Address_Address.fromBech32(bech32);\n        }\n        catch {\n            return false;\n        }\n        return true;\n    }\n    static isValidByron(base58) {\n        try {\n            const addr = Address_Address.fromBase58(base58);\n            if (Address_Address_classPrivateFieldGet(addr, Address_Address_props, \"f\").type !== Address_AddressType.Byron)\n                return false;\n        }\n        catch {\n            return false;\n        }\n        return true;\n    }\n    static isValid(address) {\n        return Address_Address.isValidBech32(address) || Address_Address.isValidByron(address);\n    }\n    asByron() {\n        return ByronAddress_ByronAddress.fromAddress(this);\n    }\n    asReward() {\n        return RewardAddress_RewardAddress.fromAddress(this);\n    }\n    asPointer() {\n        return PointerAddress_PointerAddress.fromAddress(this);\n    }\n    asEnterprise() {\n        return EnterpriseAddress_EnterpriseAddress.fromAddress(this);\n    }\n    asBase() {\n        return BaseAddress_BaseAddress.fromAddress(this);\n    }\n    getType() {\n        return Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type;\n    }\n    getNetworkId() {\n        if (Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").type === Address_AddressType.Byron) {\n            if (Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").byronAddressContent?.attrs.magic === undefined)\n                return ChainId_NetworkId.Mainnet;\n            return ChainId_NetworkId.Testnet;\n        }\n        return Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\").networkId;\n    }\n    getProps() {\n        return Address_Address_classPrivateFieldGet(this, Address_Address_props, \"f\");\n    }\n    static getBech32Prefix(type, networkId) {\n        let prefix = '';\n        switch (type) {\n            case Address_AddressType.BasePaymentKeyStakeKey:\n            case Address_AddressType.BasePaymentScriptStakeKey:\n            case Address_AddressType.BasePaymentKeyStakeScript:\n            case Address_AddressType.BasePaymentScriptStakeScript:\n            case Address_AddressType.PointerKey:\n            case Address_AddressType.PointerScript:\n            case Address_AddressType.EnterpriseKey:\n            case Address_AddressType.EnterpriseScript:\n                prefix = 'addr';\n                break;\n            case Address_AddressType.RewardKey:\n            case Address_AddressType.RewardScript: {\n                prefix = 'stake';\n                break;\n            }\n            default:\n                throw new Error('Invalid address');\n        }\n        prefix += networkId === 0 ? '_test' : '';\n        return prefix;\n    }\n}\nAddress_Address_props = new WeakMap();\nconst Address_isAddress = (input) => Address_Address.isValid(input);\n//# sourceMappingURL=Address.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/DRepID.js\n/* provided dependency */ var Address_DRepID_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\n\nconst Address_DRepID_MAX_BECH32_LENGTH_LIMIT = 1023;\nconst DRepID_CIP_105_DREP_ID_LENGTH = 28;\nconst DRepID_CIP_129_DREP_ID_LENGTH = 29;\nconst DRepID_DRepID = (value) => {\n    try {\n        return esm_primitives_typedBech32(value, ['drep'], 47);\n    }\n    catch {\n        return esm_primitives_typedBech32(value, ['drep', 'drep_script'], 45);\n    }\n};\nDRepID_DRepID.isValid = (value) => {\n    try {\n        DRepID_DRepID(value);\n        return true;\n    }\n    catch {\n        return false;\n    }\n};\nDRepID_DRepID.cip105FromCredential = (credential) => {\n    let prefix = 'drep';\n    if (credential.type === Address_CredentialType.ScriptHash) {\n        prefix = 'drep_script';\n    }\n    const words = esm_bech32.toWords(Address_DRepID_Buffer.from(credential.hash, 'hex'));\n    return esm_bech32.encode(prefix, words, Address_DRepID_MAX_BECH32_LENGTH_LIMIT);\n};\nDRepID_DRepID.cip129FromCredential = (credential) => {\n    let header = '22';\n    if (credential.type === Address_CredentialType.ScriptHash) {\n        header = '23';\n    }\n    const cip129payload = `${header}${credential.hash}`;\n    const words = esm_bech32.toWords(Address_DRepID_Buffer.from(cip129payload, 'hex'));\n    return esm_bech32.encode('drep', words, Address_DRepID_MAX_BECH32_LENGTH_LIMIT);\n};\nDRepID_DRepID.toCredential = (drepId) => {\n    const { words } = esm_bech32.decode(drepId, Address_DRepID_MAX_BECH32_LENGTH_LIMIT);\n    const payload = esm_bech32.fromWords(words);\n    if (payload.length !== DRepID_CIP_105_DREP_ID_LENGTH && payload.length !== DRepID_CIP_129_DREP_ID_LENGTH) {\n        throw new Error('Invalid DRepID payload');\n    }\n    if (payload.length === DRepID_CIP_105_DREP_ID_LENGTH) {\n        const isScriptHash = drepId.includes('drep_script');\n        return {\n            hash: hexTypes_Hash28ByteBase16(Address_DRepID_Buffer.from(payload).toString('hex')),\n            type: isScriptHash ? Address_CredentialType.ScriptHash : Address_CredentialType.KeyHash\n        };\n    }\n    const header = payload[0];\n    const hash = payload.slice(1);\n    const isDrepGovCred = (header & 0x20) === 0x20;\n    const isScriptHash = (header & 0x03) === 0x03;\n    if (!isDrepGovCred) {\n        throw new Error('Invalid governance credential type');\n    }\n    return {\n        hash: hexTypes_Hash28ByteBase16(Address_DRepID_Buffer.from(hash).toString('hex')),\n        type: isScriptHash ? Address_CredentialType.ScriptHash : Address_CredentialType.KeyHash\n    };\n};\nDRepID_DRepID.toCip105DRepID = (drepId) => {\n    const credential = DRepID_DRepID.toCredential(drepId);\n    return DRepID_DRepID.cip105FromCredential(credential);\n};\nDRepID_DRepID.toCip129DRepID = (drepId) => {\n    const credential = DRepID_DRepID.toCredential(drepId);\n    return DRepID_DRepID.cip129FromCredential(credential);\n};\nDRepID_DRepID.toAddress = (drepId) => {\n    const credential = DRepID_DRepID.toCredential(drepId);\n    return new Address_Address({\n        paymentPart: credential,\n        type: credential.type === Address_CredentialType.KeyHash ? Address_AddressType.EnterpriseKey : Address_AddressType.EnterpriseScript\n    }).asEnterprise();\n};\n//# sourceMappingURL=DRepID.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Cardano/Address/PaymentAddress.js\n/* provided dependency */ var Address_PaymentAddress_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\nconst PaymentAddress_isRewardAccount = (address) => {\n    try {\n        esm_primitives_assertIsBech32WithPrefix(address, ['stake', 'stake_test']);\n        return true;\n    }\n    catch {\n        return false;\n    }\n};\nconst PaymentAddress_PaymentAddress = (value) => {\n    if (Address_Address.isValid(value)) {\n        if (PaymentAddress_isRewardAccount(value) || DRepID_DRepID.isValid(value)) {\n            throw new esm_errors_InvalidStringError(value, 'Address type can only be used for payment addresses');\n        }\n        return value;\n    }\n    try {\n        esm_primitives_assertIsHexString(value);\n    }\n    catch {\n        throw new esm_errors_InvalidStringError(value, 'Expected payment address as bech32, base58 or hex-encoded bytes');\n    }\n    const address = Address_Address.fromBytes(esm_primitives_HexBlob.fromBytes(Address_PaymentAddress_Buffer.from(value, 'hex')));\n    return (address.getType() === Address_AddressType.Byron ? address.toBase58() : address.toBech32());\n};\nconst PaymentAddress_isAddressWithin = (addresses) => ({ address }) => addresses.includes(address);\nconst PaymentAddress_inputsWithAddresses = (tx, ownAddresses) => tx.body.inputs.filter(PaymentAddress_isAddressWithin(ownAddresses));\nconst PaymentAddress_addressNetworkId = (address) => {\n    const addr = Address_Address.fromString(address);\n    return addr.getNetworkId();\n};\n//# sourceMappingURL=PaymentAddress.js.map\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/util.js\n\n\n\n\nconst stubMaxSizeAddress = PaymentAddress_PaymentAddress('addr_test1qqydn46r6mhge0kfpqmt36m6q43knzsd9ga32n96m89px3nuzcjqw982pcftgx53fu5527z2cj2tkx2h8ux2vxsg475qypp3m9');\nconst mintToImplicitTokens = (mintMap = new Map()) => {\n    const mint = [...mintMap.entries()];\n    const implicitTokensInput = new Map(mint.filter(([_, quantity]) => quantity > 0));\n    const implicitTokensSpend = new Map(mint.filter(([_, quantity]) => quantity < 0).map(([assetId, quantity]) => [assetId, -quantity]));\n    return { implicitTokensInput, implicitTokensSpend };\n};\nconst preProcessArgs = (preSelectedUtxo, availableUtxo, outputSet, changeAddress, partialImplicitValue) => {\n    const outputs = [...outputSet];\n    const implicitCoin = {\n        deposit: partialImplicitValue?.coin?.deposit || 0n,\n        input: partialImplicitValue?.coin?.input || 0n,\n        reclaimDeposit: partialImplicitValue?.coin?.reclaimDeposit || 0n,\n        withdrawals: partialImplicitValue?.coin?.withdrawals || 0n\n    };\n    const mintMap = partialImplicitValue?.mint || new Map();\n    const { implicitTokensInput, implicitTokensSpend } = mintToImplicitTokens(mintMap);\n    const implicitTokens = {\n        input: (assetId) => implicitTokensInput.get(assetId) || 0n,\n        spend: (assetId) => implicitTokensSpend.get(assetId) || 0n\n    };\n    const uniqueOutputAssetIDs = uniq(outputs.flatMap(({ value: { assets } }) => [...(assets?.keys() || [])]));\n    const uniqueTxAssetIDs = uniq([...uniqueOutputAssetIDs, ...mintMap.keys()]);\n    return {\n        changeAddress,\n        implicitValue: { implicitCoin, implicitTokens },\n        outputs,\n        requiredUtxo: [...preSelectedUtxo],\n        uniqueTxAssetIDs,\n        utxo: [...availableUtxo]\n    };\n};\nconst isUtxoArray = (outputsOrUtxo) => outputsOrUtxo.length > 0 && Array.isArray(outputsOrUtxo[0]);\nfunction toValues(outputsOrUtxo) {\n    if (isUtxoArray(outputsOrUtxo)) {\n        return outputsOrUtxo.map(([_, { value }]) => value);\n    }\n    return outputsOrUtxo.map(({ value }) => value);\n}\nconst assetQuantitySelector = (id) => (quantities) => BigIntMath_BigIntMath.sum(quantities.map(({ assets }) => assets?.get(id) || 0n));\nconst getCoinQuantity = (quantities) => BigIntMath_BigIntMath.sum(quantities.map(({ coins }) => coins));\nconst assertIsCoinBalanceSufficient = (utxoValues, outputValues, implicitCoin) => {\n    const utxoCoinTotal = getCoinQuantity(utxoValues);\n    const outputsCoinTotal = getCoinQuantity(outputValues);\n    if (outputsCoinTotal + implicitCoin.deposit > utxoCoinTotal + implicitCoin.input) {\n        throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);\n    }\n};\nconst assertIsBalanceSufficient = (uniqueTxAssetIDs, preSelectedUtxo, utxo, outputs, { implicitCoin, implicitTokens }) => {\n    if (preSelectedUtxo.length + utxo.length === 0) {\n        throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);\n    }\n    const utxoValues = [...toValues(utxo), ...toValues(preSelectedUtxo)];\n    const outputsValues = toValues(outputs);\n    for (const assetId of uniqueTxAssetIDs) {\n        const getAssetQuantity = assetQuantitySelector(assetId);\n        const utxoTotal = getAssetQuantity(utxoValues);\n        const outputsTotal = getAssetQuantity(outputsValues);\n        if (outputsTotal + implicitTokens.spend(assetId) > utxoTotal + implicitTokens.input(assetId)) {\n            throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);\n        }\n    }\n    assertIsCoinBalanceSufficient(utxoValues, outputsValues, implicitCoin);\n};\nconst sortByCoins = (lhs, rhs) => {\n    if (lhs.value.coins > rhs.value.coins) {\n        return -1;\n    }\n    else if (lhs.value.coins < rhs.value.coins) {\n        return 1;\n    }\n    return 0;\n};\nconst util_subtractTokenMaps = (lhs, rhs) => {\n    if (!rhs) {\n        if (!lhs)\n            return undefined;\n        const nonEmptyValues = new Map();\n        for (const [key, value] of lhs.entries()) {\n            if (value !== 0n)\n                nonEmptyValues.set(key, value);\n        }\n        return nonEmptyValues;\n    }\n    if (!lhs) {\n        const negativeValues = new Map();\n        for (const [key, value] of rhs.entries()) {\n            if (value !== 0n)\n                negativeValues.set(key, -value);\n        }\n        return negativeValues;\n    }\n    const result = new Map();\n    const intersection = new Array();\n    for (const [key, value] of lhs.entries()) {\n        if (rhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, value);\n    }\n    for (const [key, value] of rhs.entries()) {\n        if (lhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, -value);\n    }\n    const uniqIntersection = uniq(intersection);\n    for (const id of uniqIntersection) {\n        const lshVal = lhs.get(id);\n        const rshVal = rhs.get(id);\n        const remainingCoins = lshVal - rshVal;\n        if (remainingCoins !== 0n)\n            result.set(id, remainingCoins);\n    }\n    return result;\n};\nconst addTokenMaps = (lhs, rhs) => {\n    if (!lhs)\n        return rhs;\n    if (!rhs)\n        return lhs;\n    const result = new Map();\n    const intersection = new Array();\n    for (const [key, value] of lhs.entries()) {\n        if (rhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, value);\n    }\n    for (const [key, value] of rhs.entries()) {\n        if (lhs.has(key)) {\n            intersection.push(key);\n            continue;\n        }\n        if (value !== 0n)\n            result.set(key, value);\n    }\n    const uniqIntersection = uniq(intersection);\n    for (const id of uniqIntersection) {\n        const lshVal = lhs.get(id);\n        const rshVal = rhs.get(id);\n        if (lshVal + rshVal !== 0n)\n            result.set(id, lshVal + rshVal);\n    }\n    return result;\n};\nconst hasNegativeAssetValue = (assets) => {\n    if (!assets)\n        return false;\n    const values = [...assets.values()];\n    return values.some((quantity) => quantity < 0n);\n};\nconst isValidValue = (value, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, feeToDiscount) => {\n    let isValid = value.coins - feeToDiscount >= computeMinimumCoinQuantity({ address: stubMaxSizeAddress, value });\n    if (value.assets)\n        isValid = isValid && !tokenBundleSizeExceedsLimit(value.assets);\n    return isValid;\n};\n//# sourceMappingURL=util.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/Asset/util/coalesceTokenMaps.js\n\nconst coalesceTokenMaps_coalesceTokenMaps = (totals) => {\n    const result = new Map();\n    for (const assetTotals of totals.filter(isNotNil_isNotNil)) {\n        for (const [assetId, assetQuantity] of assetTotals.entries()) {\n            const sum = result.get(assetId) || 0n;\n            result.set(assetId, sum + assetQuantity);\n        }\n    }\n    if (result.size === 0) {\n        return undefined;\n    }\n    return result;\n};\n//# sourceMappingURL=coalesceTokenMaps.js.map\n;// ./node_modules/@cardano-sdk/input-selection/node_modules/@cardano-sdk/core/dist/esm/util/coalesceValueQuantities.js\n\n\nconst coalesceValueQuantities_coalesceValueQuantities = (quantities) => ({\n    assets: coalesceTokenMaps_coalesceTokenMaps(quantities.map(({ assets }) => assets)),\n    coins: BigIntMath_BigIntMath.sum(quantities.map(({ coins }) => coins))\n});\n//# sourceMappingURL=coalesceValueQuantities.js.map\n// EXTERNAL MODULE: ./node_modules/lodash/minBy.js\nvar minBy = __webpack_require__(\"./node_modules/lodash/minBy.js\");\n// EXTERNAL MODULE: ./node_modules/lodash/pick.js\nvar pick = __webpack_require__(\"./node_modules/lodash/pick.js\");\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/RoundRobinRandomImprove/change.js\n\n\n\n\n\n\nconst getLeftoverAssets = (utxoSelected, uniqueTxAssetIDs) => {\n    const leftovers = new Map();\n    for (const [_, { value: { assets } }] of utxoSelected) {\n        if (assets) {\n            const leftoverAssetKeys = [...assets.keys()].filter((id) => !uniqueTxAssetIDs.includes(id));\n            for (const assetKey of leftoverAssetKeys) {\n                const quantity = assets.get(assetKey);\n                if (quantity === 0n)\n                    continue;\n                const assetLeftovers = leftovers.get(assetKey) || [];\n                leftovers.set(assetKey, [...assetLeftovers, quantity]);\n            }\n        }\n    }\n    return leftovers;\n};\nconst redistributeLeftoverAssets = (utxoSelected, requestedAssetChangeBundles, uniqueTxAssetIDs) => {\n    const leftovers = getLeftoverAssets(utxoSelected, uniqueTxAssetIDs);\n    const resultBundles = [...requestedAssetChangeBundles];\n    for (const assetId of leftovers.keys()) {\n        const quantities = orderBy(leftovers.get(assetId), (q) => q, 'desc');\n        if (resultBundles.length === 0) {\n            resultBundles.push({ coins: 0n });\n        }\n        while (quantities.length > resultBundles.length) {\n            const smallestQuantity = quantities.pop();\n            quantities[quantities.length - 1] += smallestQuantity;\n        }\n        for (const [idx, quantity] of quantities.entries()) {\n            const originalBundle = resultBundles[idx];\n            const originalBundleAssets = originalBundle.assets?.entries() || [];\n            resultBundles.splice(idx, 1, {\n                assets: new Map([...originalBundleAssets, [assetId, quantity]]),\n                coins: originalBundle.coins\n            });\n        }\n    }\n    return resultBundles;\n};\nconst createBundlePerOutput = (outputValues, coinTotalRequested, coinChangeTotal, assetTotals) => {\n    let totalCoinBundled = 0n;\n    const totalAssetsBundled = new Map();\n    const bundles = outputValues.map((value) => {\n        const coins = coinTotalRequested > 0n ? (coinChangeTotal * value.coins) / coinTotalRequested : 0n;\n        totalCoinBundled += coins;\n        if (!value.assets) {\n            return { coins };\n        }\n        const assets = new Map();\n        for (const [assetId, outputAmount] of value.assets.entries()) {\n            const { selected, requested } = assetTotals.get(assetId);\n            const assetChangeTotal = selected - requested;\n            const assetChange = (assetChangeTotal * outputAmount) / selected;\n            totalAssetsBundled.set(assetId, (totalAssetsBundled.get(assetId) || 0n) + assetChange);\n            assets.set(assetId, assetChange);\n        }\n        return { assets, coins };\n    });\n    return { bundles, totalAssetsBundled, totalCoinBundled };\n};\nconst smallestBundleTokenMap = (bundles) => {\n    if (bundles.length === 0) {\n        const bundle = { assets: new Map(), coins: 0n };\n        bundles.push(bundle);\n        return bundle.assets;\n    }\n    const bundle = minBy(bundles, ({ assets }) => assets?.size || 0);\n    if (!bundle.assets)\n        bundle.assets = new Map();\n    return bundle.assets;\n};\nconst computeRequestedAssetChangeBundles = (utxoSelected, outputValues, uniqueTxAssetIDs, { implicitCoin, implicitTokens }, fee) => {\n    const assetTotals = new Map();\n    const utxoSelectedValues = toValues(utxoSelected);\n    for (const assetId of uniqueTxAssetIDs) {\n        assetTotals.set(assetId, {\n            requested: assetQuantitySelector(assetId)(outputValues) + implicitTokens.spend(assetId),\n            selected: assetQuantitySelector(assetId)(utxoSelectedValues) + implicitTokens.input(assetId)\n        });\n    }\n    const coinTotalSelected = getCoinQuantity(utxoSelectedValues) + implicitCoin.input;\n    const coinTotalRequested = getCoinQuantity(outputValues) + fee + implicitCoin.deposit;\n    const coinChangeTotal = coinTotalSelected - coinTotalRequested;\n    const { totalCoinBundled, bundles, totalAssetsBundled } = createBundlePerOutput(outputValues, coinTotalRequested, coinChangeTotal, assetTotals);\n    const coinLost = coinChangeTotal - totalCoinBundled;\n    if (coinLost > 0) {\n        if (bundles.length === 0) {\n            bundles.push({ coins: coinLost });\n        }\n        else {\n            bundles[0].coins += coinLost;\n        }\n    }\n    for (const assetId of uniqueTxAssetIDs) {\n        const assetTotal = assetTotals.get(assetId);\n        const bundled = totalAssetsBundled.get(assetId) || 0n;\n        const assetLost = assetTotal.selected - assetTotal.requested - bundled;\n        if (assetLost > 0n) {\n            const anyChangeTokenBundle = bundles.find(({ assets }) => assets?.has(assetId))?.assets || smallestBundleTokenMap(bundles);\n            const assetQuantityAlreadyInBundle = anyChangeTokenBundle.get(assetId) || 0n;\n            anyChangeTokenBundle.set(assetId, assetQuantityAlreadyInBundle + assetLost);\n        }\n    }\n    return bundles;\n};\nconst pickExtraRandomUtxo = ({ utxoRemaining, utxoSelected }, random) => {\n    const remainingUtxoOfOnlyCoin = utxoRemaining.filter(([_, { value }]) => !value.assets);\n    const pickFrom = remainingUtxoOfOnlyCoin.length > 0 ? remainingUtxoOfOnlyCoin : utxoRemaining;\n    const pickIdx = Math.floor(random() * pickFrom.length);\n    const newUtxoSelected = [...utxoSelected, pickFrom[pickIdx]];\n    const originalIdx = utxoRemaining.indexOf(pickFrom[pickIdx]);\n    const newUtxoRemaining = [...utxoRemaining.slice(0, originalIdx), ...utxoRemaining.slice(originalIdx + 1)];\n    return { utxoRemaining: newUtxoRemaining, utxoSelected: newUtxoSelected };\n};\nconst mergeWithSmallestBundle = (values, index) => {\n    let result = [...values];\n    const toBeMerged = result.splice(index, 1)[0];\n    if (result.length === 0)\n        return [toBeMerged];\n    const last = result.splice(-1, 1)[0];\n    const merged = coalesceValueQuantities_coalesceValueQuantities([toBeMerged, last]);\n    result = [...result, merged];\n    result = orderBy(result, ({ coins }) => coins, 'desc');\n    return result;\n};\nconst coalesceChangeBundlesForMinCoinRequirement = (changeBundles, computeMinimumCoinQuantity) => {\n    if (changeBundles.length === 0) {\n        return changeBundles;\n    }\n    const noZeroQuantityAssetChangeBundles = changeBundles.map(({ coins, assets }) => ({\n        assets: assets ? new Map([...assets.entries()].filter(([_, quantity]) => quantity > 0n)) : undefined,\n        coins\n    }));\n    let sortedBundles = orderBy(noZeroQuantityAssetChangeBundles, ({ coins }) => coins, 'desc');\n    const satisfiesMinCoinRequirement = (value) => {\n        const stubTxOut = { address: stubMaxSizeAddress, value };\n        return value.coins >= computeMinimumCoinQuantity(stubTxOut);\n    };\n    let allBundlesSatisfyMinCoin = false;\n    while (sortedBundles.length > 1 && !allBundlesSatisfyMinCoin) {\n        allBundlesSatisfyMinCoin = true;\n        for (let i = sortedBundles.length - 1; i >= 0; --i) {\n            const satisfies = satisfiesMinCoinRequirement(sortedBundles[i]);\n            allBundlesSatisfyMinCoin = allBundlesSatisfyMinCoin && satisfies;\n            if (!satisfies) {\n                sortedBundles = mergeWithSmallestBundle(sortedBundles, i);\n                break;\n            }\n        }\n    }\n    if (!satisfiesMinCoinRequirement(sortedBundles[0])) {\n        return undefined;\n    }\n    return sortedBundles.filter((bundle) => bundle.coins > 0n || (bundle.assets?.size || 0) > 0);\n};\nconst splitChangeIfTokenBundlesSizeExceedsLimit = (changeBundles, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit) => {\n    const result = [];\n    for (const bundle of changeBundles) {\n        const { assets, coins } = bundle;\n        if (!assets || assets.size === 0 || !tokenBundleSizeExceedsLimit(assets)) {\n            result.push({ assets, coins });\n            continue;\n        }\n        const newValues = [];\n        let newValue = { assets: new Map(), coins: 0n };\n        for (const [assetId, quantity] of assets.entries()) {\n            newValue.assets.set(assetId, quantity);\n            if (tokenBundleSizeExceedsLimit(newValue.assets) && newValue.assets.size > 1) {\n                newValue.assets.delete(assetId);\n                newValues.push(newValue);\n                newValue = { assets: new Map([[assetId, quantity]]), coins: 0n };\n            }\n        }\n        newValues.push(newValue);\n        let totalMinCoin = 0n;\n        for (const value of newValues) {\n            const minCoin = computeMinimumCoinQuantity({ address: stubMaxSizeAddress, value });\n            value.coins = minCoin;\n            totalMinCoin += minCoin;\n        }\n        if (coins < totalMinCoin) {\n            throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);\n        }\n        newValues[0].coins += coins - totalMinCoin;\n        result.push(...newValues);\n    }\n    return result;\n};\nconst computeChangeBundles = ({ utxoSelection, outputValues, uniqueTxAssetIDs, implicitValue, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee = 0n }) => {\n    const requestedAssetChangeBundles = computeRequestedAssetChangeBundles(utxoSelection.utxoSelected, outputValues, uniqueTxAssetIDs, implicitValue, fee);\n    const requestedAssetChangeBundlesWithLeftoverAssets = redistributeLeftoverAssets(utxoSelection.utxoSelected, requestedAssetChangeBundles, uniqueTxAssetIDs);\n    const changeBundles = coalesceChangeBundlesForMinCoinRequirement(requestedAssetChangeBundlesWithLeftoverAssets, computeMinimumCoinQuantity);\n    if (!changeBundles) {\n        return false;\n    }\n    const adjustedChange = splitChangeIfTokenBundlesSizeExceedsLimit(changeBundles, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit);\n    return { changeBundles: adjustedChange, ...utxoSelection };\n};\nconst validateChangeBundles = (changeBundles, tokenBundleSizeExceedsLimit) => {\n    for (const { assets } of changeBundles) {\n        if (!assets)\n            continue;\n        if (tokenBundleSizeExceedsLimit(assets)) {\n            throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);\n        }\n    }\n    return changeBundles;\n};\nconst computeChangeAndAdjustForFee = async ({ computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, estimateTxCosts, outputValues, uniqueTxAssetIDs, implicitValue, random, utxoSelection }) => {\n    const recomputeChangeAndAdjustForFeeWithExtraUtxo = (currentUtxoSelection) => {\n        if (currentUtxoSelection.utxoRemaining.length > 0) {\n            return computeChangeAndAdjustForFee({\n                computeMinimumCoinQuantity,\n                estimateTxCosts,\n                implicitValue,\n                outputValues,\n                random,\n                tokenBundleSizeExceedsLimit,\n                uniqueTxAssetIDs,\n                utxoSelection: pickExtraRandomUtxo(currentUtxoSelection, random)\n            });\n        }\n        throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);\n    };\n    const selectionWithChangeAndFee = computeChangeBundles({\n        computeMinimumCoinQuantity,\n        implicitValue,\n        outputValues,\n        tokenBundleSizeExceedsLimit,\n        uniqueTxAssetIDs,\n        utxoSelection\n    });\n    if (!selectionWithChangeAndFee)\n        return recomputeChangeAndAdjustForFeeWithExtraUtxo(utxoSelection);\n    const estimatedCosts = await estimateTxCosts(selectionWithChangeAndFee.utxoSelected, validateChangeBundles(selectionWithChangeAndFee.changeBundles, tokenBundleSizeExceedsLimit));\n    const totalOutputCoin = getCoinQuantity(outputValues) + estimatedCosts.fee + implicitValue.implicitCoin.deposit;\n    const totalInputCoin = getCoinQuantity(toValues(selectionWithChangeAndFee.utxoSelected)) + implicitValue.implicitCoin.input;\n    if (totalOutputCoin > totalInputCoin) {\n        if (selectionWithChangeAndFee.utxoRemaining.length === 0) {\n            throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);\n        }\n        return recomputeChangeAndAdjustForFeeWithExtraUtxo(selectionWithChangeAndFee);\n    }\n    const finalSelection = computeChangeBundles({\n        computeMinimumCoinQuantity,\n        fee: estimatedCosts.fee,\n        implicitValue,\n        outputValues,\n        tokenBundleSizeExceedsLimit,\n        uniqueTxAssetIDs,\n        utxoSelection: pick(selectionWithChangeAndFee, ['utxoRemaining', 'utxoSelected'])\n    });\n    if (!finalSelection) {\n        return recomputeChangeAndAdjustForFeeWithExtraUtxo(selectionWithChangeAndFee);\n    }\n    const { changeBundles, utxoSelected, utxoRemaining } = finalSelection;\n    return {\n        change: validateChangeBundles(changeBundles, tokenBundleSizeExceedsLimit),\n        fee: estimatedCosts.fee,\n        inputs: utxoSelected,\n        redeemers: estimatedCosts.redeemers,\n        remainingUTxO: utxoRemaining\n    };\n};\n//# sourceMappingURL=change.js.map\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/RoundRobinRandomImprove/roundRobin.js\n\n\nconst improvesSelection = (utxoAlreadySelected, input, minimumTarget, getQuantity) => {\n    const oldQuantity = getQuantity(utxoAlreadySelected);\n    if (oldQuantity < minimumTarget)\n        return true;\n    const newQuantity = oldQuantity + getQuantity([input]);\n    const idealTarget = 2n * minimumTarget;\n    const newDistance = BigIntMath_BigIntMath.abs(idealTarget - newQuantity);\n    const oldDistance = BigIntMath_BigIntMath.abs(idealTarget - oldQuantity);\n    if (newDistance < oldDistance)\n        return true;\n    return false;\n};\nconst listTokensWithin = (uniqueOutputAssetIDs, outputs, { implicitCoin, implicitTokens }) => [\n    ...uniqueOutputAssetIDs.map((id) => {\n        const getQuantity = assetQuantitySelector(id);\n        const implicitInput = implicitTokens.input(id);\n        const implicitSpend = implicitTokens.spend(id);\n        return {\n            filterUtxo: (utxo) => utxo.filter(([_, { value: { assets } }]) => assets?.get(id)),\n            getTotalSelectedQuantity: (utxo) => getQuantity(toValues(utxo)) + implicitInput,\n            minimumTarget: getQuantity(toValues(outputs)) + implicitSpend\n        };\n    }),\n    {\n        filterUtxo: (utxo) => utxo,\n        getTotalSelectedQuantity: (utxo) => getCoinQuantity(toValues(utxo)) + implicitCoin.input,\n        minimumTarget: getCoinQuantity(toValues(outputs)) + implicitCoin.deposit\n    }\n];\nconst roundRobinSelection = ({ requiredUtxo: requiredUtxoWithValue, utxo: utxosWithValue, outputs: outputsWithValue, uniqueTxAssetIDs, random, implicitValue }) => {\n    const utxoSelected = requiredUtxoWithValue;\n    const utxoRemaining = [...utxosWithValue];\n    const tokensRemaining = listTokensWithin(uniqueTxAssetIDs, outputsWithValue, implicitValue);\n    while (tokensRemaining.length > 0) {\n        for (const [tokenIdx, { filterUtxo, minimumTarget, getTotalSelectedQuantity }] of tokensRemaining.entries()) {\n            const utxo = filterUtxo(utxoRemaining);\n            if (utxo.length > 0) {\n                const inputIdx = Math.floor(random() * utxo.length);\n                const input = utxo[inputIdx];\n                if (improvesSelection(utxoSelected, input, minimumTarget, getTotalSelectedQuantity)) {\n                    utxoSelected.push(input);\n                    utxoRemaining.splice(utxoRemaining.indexOf(input), 1);\n                }\n                else {\n                    tokensRemaining.splice(tokenIdx, 1);\n                }\n            }\n            else {\n                tokensRemaining.splice(tokenIdx, 1);\n            }\n        }\n    }\n    if (utxoSelected.length === 0) {\n        utxoSelected.push(utxoRemaining[0]);\n        utxoRemaining.splice(0, 1);\n    }\n    return { utxoRemaining, utxoSelected };\n};\n//# sourceMappingURL=roundRobin.js.map\n;// ./node_modules/bignumber.js/bignumber.mjs\n/*\r\n *      bignumber.js v9.3.0\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\nvar\r\n  isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n  mathceil = Math.ceil,\r\n  mathfloor = Math.floor,\r\n\r\n  bignumberError = '[BigNumber Error] ',\r\n  tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n  BASE = 1e14,\r\n  LOG_BASE = 14,\r\n  MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n  // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n  POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n  SQRT_BASE = 1e7,\r\n\r\n  // EDITABLE\r\n  // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n  // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n  MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n  var div, convertBase, parseNumeric,\r\n    P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n    ONE = new BigNumber(1),\r\n\r\n\r\n    //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n    // The default values below must be integers within the inclusive ranges stated.\r\n    // The values can also be changed at run-time using BigNumber.set.\r\n\r\n    // The maximum number of decimal places for operations involving division.\r\n    DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n    // The rounding mode used when rounding to the above decimal places, and when using\r\n    // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n    // UP         0 Away from zero.\r\n    // DOWN       1 Towards zero.\r\n    // CEIL       2 Towards +Infinity.\r\n    // FLOOR      3 Towards -Infinity.\r\n    // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n    // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n    // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n    // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n    // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n    ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n    // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n    // The exponent value at and beneath which toString returns exponential notation.\r\n    // Number type: -7\r\n    TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n    // The exponent value at and above which toString returns exponential notation.\r\n    // Number type: 21\r\n    TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n    // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n    // The minimum exponent value, beneath which underflow to zero occurs.\r\n    // Number type: -324  (5e-324)\r\n    MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n    // The maximum exponent value, above which overflow to Infinity occurs.\r\n    // Number type:  308  (1.7976931348623157e+308)\r\n    // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n    MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n    // Whether to use cryptographically-secure random number generation, if available.\r\n    CRYPTO = false,                          // true or false\r\n\r\n    // The modulo mode used when calculating the modulus: a mod n.\r\n    // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n    // The remainder (r) is calculated as: r = a - n * q.\r\n    //\r\n    // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n    // DOWN      1 The remainder has the same sign as the dividend.\r\n    //             This modulo mode is commonly known as 'truncated division' and is\r\n    //             equivalent to (a % n) in JavaScript.\r\n    // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n    // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n    // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n    //             The remainder is always positive.\r\n    //\r\n    // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n    // modes are commonly used for the modulus operation.\r\n    // Although the other rounding modes can also be used, they may not give useful results.\r\n    MODULO_MODE = 1,                         // 0 to 9\r\n\r\n    // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n    // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n    POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n    // The format specification used by the BigNumber.prototype.toFormat method.\r\n    FORMAT = {\r\n      prefix: '',\r\n      groupSize: 3,\r\n      secondaryGroupSize: 0,\r\n      groupSeparator: ',',\r\n      decimalSeparator: '.',\r\n      fractionGroupSize: 0,\r\n      fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n      suffix: ''\r\n    },\r\n\r\n    // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n    // '-', '.', whitespace, or repeated character.\r\n    // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n    ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n    alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n  //------------------------------------------------------------------------------------------\r\n\r\n\r\n  // CONSTRUCTOR\r\n\r\n\r\n  /*\r\n   * The BigNumber constructor and exported function.\r\n   * Create and return a new instance of a BigNumber object.\r\n   *\r\n   * v {number|string|BigNumber} A numeric value.\r\n   * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n   */\r\n  function BigNumber(v, b) {\r\n    var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n      x = this;\r\n\r\n    // Enable constructor call without `new`.\r\n    if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n    if (b == null) {\r\n\r\n      if (v && v._isBigNumber === true) {\r\n        x.s = v.s;\r\n\r\n        if (!v.c || v.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n        } else if (v.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = v.e;\r\n          x.c = v.c.slice();\r\n        }\r\n\r\n        return;\r\n      }\r\n\r\n      if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n        // Use `1 / n` to handle minus zero also.\r\n        x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n        // Fast path for integers, where n < 2147483648 (2**31).\r\n        if (v === ~~v) {\r\n          for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n          if (e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else {\r\n            x.e = e;\r\n            x.c = [v];\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        str = String(v);\r\n      } else {\r\n\r\n        if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n        x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n      // Exponential form?\r\n      if ((i = str.search(/e/i)) > 0) {\r\n\r\n        // Determine exponent.\r\n        if (e < 0) e = i;\r\n        e += +str.slice(i + 1);\r\n        str = str.substring(0, i);\r\n      } else if (e < 0) {\r\n\r\n        // Integer.\r\n        e = str.length;\r\n      }\r\n\r\n    } else {\r\n\r\n      // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n      intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n      // Allow exponential notation to be used with base 10 argument, while\r\n      // also rounding to DECIMAL_PLACES as with other bases.\r\n      if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n        x = new BigNumber(v);\r\n        return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n      }\r\n\r\n      str = String(v);\r\n\r\n      if (isNum = typeof v == 'number') {\r\n\r\n        // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n        if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n        x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n          throw Error\r\n           (tooManyDigits + v);\r\n        }\r\n      } else {\r\n        x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n      }\r\n\r\n      alphabet = ALPHABET.slice(0, b);\r\n      e = i = 0;\r\n\r\n      // Check that str is a valid base b number.\r\n      // Don't use RegExp, so alphabet can contain special characters.\r\n      for (len = str.length; i < len; i++) {\r\n        if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n          if (c == '.') {\r\n\r\n            // If '.' is not the first character and it has not be found before.\r\n            if (i > e) {\r\n              e = len;\r\n              continue;\r\n            }\r\n          } else if (!caseChanged) {\r\n\r\n            // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n            if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n              caseChanged = true;\r\n              i = -1;\r\n              e = 0;\r\n              continue;\r\n            }\r\n          }\r\n\r\n          return parseNumeric(x, String(v), isNum, b);\r\n        }\r\n      }\r\n\r\n      // Prevent later check for length on converted number.\r\n      isNum = false;\r\n      str = convertBase(str, b, 10, x.s);\r\n\r\n      // Decimal point?\r\n      if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n      else e = str.length;\r\n    }\r\n\r\n    // Determine leading zeros.\r\n    for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n    // Determine trailing zeros.\r\n    for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n    if (str = str.slice(i, ++len)) {\r\n      len -= i;\r\n\r\n      // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n      if (isNum && BigNumber.DEBUG &&\r\n        len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n          throw Error\r\n           (tooManyDigits + (x.s * v));\r\n      }\r\n\r\n       // Overflow?\r\n      if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        x.c = x.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      } else {\r\n        x.e = e;\r\n        x.c = [];\r\n\r\n        // Transform base\r\n\r\n        // e is the base 10 exponent.\r\n        // i is where to slice str to get the first element of the coefficient array.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n        if (i < len) {\r\n          if (i) x.c.push(+str.slice(0, i));\r\n\r\n          for (len -= LOG_BASE; i < len;) {\r\n            x.c.push(+str.slice(i, i += LOG_BASE));\r\n          }\r\n\r\n          i = LOG_BASE - (str = str.slice(i)).length;\r\n        } else {\r\n          i -= len;\r\n        }\r\n\r\n        for (; i--; str += '0');\r\n        x.c.push(+str);\r\n      }\r\n    } else {\r\n\r\n      // Zero.\r\n      x.c = [x.e = 0];\r\n    }\r\n  }\r\n\r\n\r\n  // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n  BigNumber.clone = clone;\r\n\r\n  BigNumber.ROUND_UP = 0;\r\n  BigNumber.ROUND_DOWN = 1;\r\n  BigNumber.ROUND_CEIL = 2;\r\n  BigNumber.ROUND_FLOOR = 3;\r\n  BigNumber.ROUND_HALF_UP = 4;\r\n  BigNumber.ROUND_HALF_DOWN = 5;\r\n  BigNumber.ROUND_HALF_EVEN = 6;\r\n  BigNumber.ROUND_HALF_CEIL = 7;\r\n  BigNumber.ROUND_HALF_FLOOR = 8;\r\n  BigNumber.EUCLID = 9;\r\n\r\n\r\n  /*\r\n   * Configure infrequently-changing library-wide settings.\r\n   *\r\n   * Accept an object with the following optional properties (if the value of a property is\r\n   * a number, it must be an integer within the inclusive range stated):\r\n   *\r\n   *   DECIMAL_PLACES   {number}           0 to MAX\r\n   *   ROUNDING_MODE    {number}           0 to 8\r\n   *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n   *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n   *   CRYPTO           {boolean}          true or false\r\n   *   MODULO_MODE      {number}           0 to 9\r\n   *   POW_PRECISION       {number}           0 to MAX\r\n   *   ALPHABET         {string}           A string of two or more unique characters which does\r\n   *                                       not contain '.'.\r\n   *   FORMAT           {object}           An object with some of the following properties:\r\n   *     prefix                 {string}\r\n   *     groupSize              {number}\r\n   *     secondaryGroupSize     {number}\r\n   *     groupSeparator         {string}\r\n   *     decimalSeparator       {string}\r\n   *     fractionGroupSize      {number}\r\n   *     fractionGroupSeparator {string}\r\n   *     suffix                 {string}\r\n   *\r\n   * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n   *\r\n   * E.g.\r\n   * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n   *\r\n   * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n   *\r\n   * Return an object with the properties current values.\r\n   */\r\n  BigNumber.config = BigNumber.set = function (obj) {\r\n    var p, v;\r\n\r\n    if (obj != null) {\r\n\r\n      if (typeof obj == 'object') {\r\n\r\n        // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          DECIMAL_PLACES = v;\r\n        }\r\n\r\n        // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n        // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 8, p);\r\n          ROUNDING_MODE = v;\r\n        }\r\n\r\n        // EXPONENTIAL_AT {number|number[]}\r\n        // Integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n        // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, 0, p);\r\n            intCheck(v[1], 0, MAX, p);\r\n            TO_EXP_NEG = v[0];\r\n            TO_EXP_POS = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n          }\r\n        }\r\n\r\n        // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n        // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n        // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n        if (obj.hasOwnProperty(p = 'RANGE')) {\r\n          v = obj[p];\r\n          if (v && v.pop) {\r\n            intCheck(v[0], -MAX, -1, p);\r\n            intCheck(v[1], 1, MAX, p);\r\n            MIN_EXP = v[0];\r\n            MAX_EXP = v[1];\r\n          } else {\r\n            intCheck(v, -MAX, MAX, p);\r\n            if (v) {\r\n              MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' cannot be zero: ' + v);\r\n            }\r\n          }\r\n        }\r\n\r\n        // CRYPTO {boolean} true or false.\r\n        // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n        // '[BigNumber Error] crypto unavailable'\r\n        if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n          v = obj[p];\r\n          if (v === !!v) {\r\n            if (v) {\r\n              if (typeof crypto != 'undefined' && crypto &&\r\n               (crypto.getRandomValues || crypto.randomBytes)) {\r\n                CRYPTO = v;\r\n              } else {\r\n                CRYPTO = !v;\r\n                throw Error\r\n                 (bignumberError + 'crypto unavailable');\r\n              }\r\n            } else {\r\n              CRYPTO = v;\r\n            }\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' not true or false: ' + v);\r\n          }\r\n        }\r\n\r\n        // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n        // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, 9, p);\r\n          MODULO_MODE = v;\r\n        }\r\n\r\n        // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n        // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n        if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n          v = obj[p];\r\n          intCheck(v, 0, MAX, p);\r\n          POW_PRECISION = v;\r\n        }\r\n\r\n        // FORMAT {object}\r\n        // '[BigNumber Error] FORMAT not an object: {v}'\r\n        if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n          v = obj[p];\r\n          if (typeof v == 'object') FORMAT = v;\r\n          else throw Error\r\n           (bignumberError + p + ' not an object: ' + v);\r\n        }\r\n\r\n        // ALPHABET {string}\r\n        // '[BigNumber Error] ALPHABET invalid: {v}'\r\n        if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n          v = obj[p];\r\n\r\n          // Disallow if less than two characters,\r\n          // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n          if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n            alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n            ALPHABET = v;\r\n          } else {\r\n            throw Error\r\n             (bignumberError + p + ' invalid: ' + v);\r\n          }\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Object expected: {v}'\r\n        throw Error\r\n         (bignumberError + 'Object expected: ' + obj);\r\n      }\r\n    }\r\n\r\n    return {\r\n      DECIMAL_PLACES: DECIMAL_PLACES,\r\n      ROUNDING_MODE: ROUNDING_MODE,\r\n      EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n      RANGE: [MIN_EXP, MAX_EXP],\r\n      CRYPTO: CRYPTO,\r\n      MODULO_MODE: MODULO_MODE,\r\n      POW_PRECISION: POW_PRECISION,\r\n      FORMAT: FORMAT,\r\n      ALPHABET: ALPHABET\r\n    };\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if v is a BigNumber instance, otherwise return false.\r\n   *\r\n   * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n   *\r\n   * v {any}\r\n   *\r\n   * '[BigNumber Error] Invalid BigNumber: {v}'\r\n   */\r\n  BigNumber.isBigNumber = function (v) {\r\n    if (!v || v._isBigNumber !== true) return false;\r\n    if (!BigNumber.DEBUG) return true;\r\n\r\n    var i, n,\r\n      c = v.c,\r\n      e = v.e,\r\n      s = v.s;\r\n\r\n    out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n      if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n        // If the first element is zero, the BigNumber value must be zero.\r\n        if (c[0] === 0) {\r\n          if (e === 0 && c.length === 1) return true;\r\n          break out;\r\n        }\r\n\r\n        // Calculate number of digits that c[0] should have, based on the exponent.\r\n        i = (e + 1) % LOG_BASE;\r\n        if (i < 1) i += LOG_BASE;\r\n\r\n        // Calculate number of digits of c[0].\r\n        //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n        if (String(c[0]).length == i) {\r\n\r\n          for (i = 0; i < c.length; i++) {\r\n            n = c[i];\r\n            if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n          }\r\n\r\n          // Last element cannot be zero, unless it is the only element.\r\n          if (n !== 0) return true;\r\n        }\r\n      }\r\n\r\n    // Infinity/NaN\r\n    } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n      return true;\r\n    }\r\n\r\n    throw Error\r\n      (bignumberError + 'Invalid BigNumber: ' + v);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the maximum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.maximum = BigNumber.max = function () {\r\n    return maxOrMin(arguments, -1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the minimum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.minimum = BigNumber.min = function () {\r\n    return maxOrMin(arguments, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n   * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n   * zeros are produced).\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n   * '[BigNumber Error] crypto unavailable'\r\n   */\r\n  BigNumber.random = (function () {\r\n    var pow2_53 = 0x20000000000000;\r\n\r\n    // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n    // Check if Math.random() produces more than 32 bits of randomness.\r\n    // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n    // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n    var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n     ? function () { return mathfloor(Math.random() * pow2_53); }\r\n     : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n       (Math.random() * 0x800000 | 0); };\r\n\r\n    return function (dp) {\r\n      var a, b, e, k, v,\r\n        i = 0,\r\n        c = [],\r\n        rand = new BigNumber(ONE);\r\n\r\n      if (dp == null) dp = DECIMAL_PLACES;\r\n      else intCheck(dp, 0, MAX);\r\n\r\n      k = mathceil(dp / LOG_BASE);\r\n\r\n      if (CRYPTO) {\r\n\r\n        // Browsers supporting crypto.getRandomValues.\r\n        if (crypto.getRandomValues) {\r\n\r\n          a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n          for (; i < k;) {\r\n\r\n            // 53 bits:\r\n            // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n            // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n            // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n            //                                     11111 11111111 11111111\r\n            // 0x20000 is 2^21.\r\n            v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n            // Rejection sampling:\r\n            // 0 <= v < 9007199254740992\r\n            // Probability that v >= 9e15, is\r\n            // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n            if (v >= 9e15) {\r\n              b = crypto.getRandomValues(new Uint32Array(2));\r\n              a[i] = b[0];\r\n              a[i + 1] = b[1];\r\n            } else {\r\n\r\n              // 0 <= v <= 8999999999999999\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 2;\r\n            }\r\n          }\r\n          i = k / 2;\r\n\r\n        // Node.js supporting crypto.randomBytes.\r\n        } else if (crypto.randomBytes) {\r\n\r\n          // buffer\r\n          a = crypto.randomBytes(k *= 7);\r\n\r\n          for (; i < k;) {\r\n\r\n            // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n            // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n            // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n            // 0 <= v < 9007199254740992\r\n            v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n               (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n               (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n            if (v >= 9e15) {\r\n              crypto.randomBytes(7).copy(a, i);\r\n            } else {\r\n\r\n              // 0 <= (v % 1e14) <= 99999999999999\r\n              c.push(v % 1e14);\r\n              i += 7;\r\n            }\r\n          }\r\n          i = k / 7;\r\n        } else {\r\n          CRYPTO = false;\r\n          throw Error\r\n           (bignumberError + 'crypto unavailable');\r\n        }\r\n      }\r\n\r\n      // Use Math.random.\r\n      if (!CRYPTO) {\r\n\r\n        for (; i < k;) {\r\n          v = random53bitInt();\r\n          if (v < 9e15) c[i++] = v % 1e14;\r\n        }\r\n      }\r\n\r\n      k = c[--i];\r\n      dp %= LOG_BASE;\r\n\r\n      // Convert trailing digits to zeros according to dp.\r\n      if (k && dp) {\r\n        v = POWS_TEN[LOG_BASE - dp];\r\n        c[i] = mathfloor(k / v) * v;\r\n      }\r\n\r\n      // Remove trailing elements which are zero.\r\n      for (; c[i] === 0; c.pop(), i--);\r\n\r\n      // Zero?\r\n      if (i < 0) {\r\n        c = [e = 0];\r\n      } else {\r\n\r\n        // Remove leading elements which are zero and adjust exponent accordingly.\r\n        for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n        // Count the digits of the first element of c to determine leading zeros, and...\r\n        for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n        // adjust the exponent accordingly.\r\n        if (i < LOG_BASE) e -= LOG_BASE - i;\r\n      }\r\n\r\n      rand.e = e;\r\n      rand.c = c;\r\n      return rand;\r\n    };\r\n  })();\r\n\r\n\r\n   /*\r\n   * Return a BigNumber whose value is the sum of the arguments.\r\n   *\r\n   * arguments {number|string|BigNumber}\r\n   */\r\n  BigNumber.sum = function () {\r\n    var i = 1,\r\n      args = arguments,\r\n      sum = new BigNumber(args[0]);\r\n    for (; i < args.length;) sum = sum.plus(args[i++]);\r\n    return sum;\r\n  };\r\n\r\n\r\n  // PRIVATE FUNCTIONS\r\n\r\n\r\n  // Called by BigNumber and BigNumber.prototype.toString.\r\n  convertBase = (function () {\r\n    var decimal = '0123456789';\r\n\r\n    /*\r\n     * Convert string of baseIn to an array of numbers of baseOut.\r\n     * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n     * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n     */\r\n    function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n      var j,\r\n        arr = [0],\r\n        arrL,\r\n        i = 0,\r\n        len = str.length;\r\n\r\n      for (; i < len;) {\r\n        for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n        arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n        for (j = 0; j < arr.length; j++) {\r\n\r\n          if (arr[j] > baseOut - 1) {\r\n            if (arr[j + 1] == null) arr[j + 1] = 0;\r\n            arr[j + 1] += arr[j] / baseOut | 0;\r\n            arr[j] %= baseOut;\r\n          }\r\n        }\r\n      }\r\n\r\n      return arr.reverse();\r\n    }\r\n\r\n    // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n    // If the caller is toString, we are converting from base 10 to baseOut.\r\n    // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n    return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n      var alphabet, d, e, k, r, x, xc, y,\r\n        i = str.indexOf('.'),\r\n        dp = DECIMAL_PLACES,\r\n        rm = ROUNDING_MODE;\r\n\r\n      // Non-integer.\r\n      if (i >= 0) {\r\n        k = POW_PRECISION;\r\n\r\n        // Unlimited precision.\r\n        POW_PRECISION = 0;\r\n        str = str.replace('.', '');\r\n        y = new BigNumber(baseIn);\r\n        x = y.pow(str.length - i);\r\n        POW_PRECISION = k;\r\n\r\n        // Convert str as if an integer, then restore the fraction part by dividing the\r\n        // result by its base raised to a power.\r\n\r\n        y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n         10, baseOut, decimal);\r\n        y.e = y.c.length;\r\n      }\r\n\r\n      // Convert the number as integer.\r\n\r\n      xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n       ? (alphabet = ALPHABET, decimal)\r\n       : (alphabet = decimal, ALPHABET));\r\n\r\n      // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n      e = k = xc.length;\r\n\r\n      // Remove trailing zeros.\r\n      for (; xc[--k] == 0; xc.pop());\r\n\r\n      // Zero?\r\n      if (!xc[0]) return alphabet.charAt(0);\r\n\r\n      // Does str represent an integer? If so, no need for the division.\r\n      if (i < 0) {\r\n        --e;\r\n      } else {\r\n        x.c = xc;\r\n        x.e = e;\r\n\r\n        // The sign is needed for correct rounding.\r\n        x.s = sign;\r\n        x = div(x, y, dp, rm, baseOut);\r\n        xc = x.c;\r\n        r = x.r;\r\n        e = x.e;\r\n      }\r\n\r\n      // xc now represents str converted to baseOut.\r\n\r\n      // The index of the rounding digit.\r\n      d = e + dp + 1;\r\n\r\n      // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n      i = xc[d];\r\n\r\n      // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n      k = baseOut / 2;\r\n      r = r || d < 0 || xc[d + 1] != null;\r\n\r\n      r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n            : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n      // If the index of the rounding digit is not greater than zero, or xc represents\r\n      // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n      // such as 0.00001.\r\n      if (d < 1 || !xc[0]) {\r\n\r\n        // 1^-dp or 0\r\n        str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n      } else {\r\n\r\n        // Truncate xc to the required number of decimal places.\r\n        xc.length = d;\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          // Rounding up may mean the previous digit has to be rounded up and so on.\r\n          for (--baseOut; ++xc[--d] > baseOut;) {\r\n            xc[d] = 0;\r\n\r\n            if (!d) {\r\n              ++e;\r\n              xc = [1].concat(xc);\r\n            }\r\n          }\r\n        }\r\n\r\n        // Determine trailing zeros.\r\n        for (k = xc.length; !xc[--k];);\r\n\r\n        // E.g. [4, 11, 15] becomes 4bf.\r\n        for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n        // Add leading zeros, decimal point and trailing zeros as required.\r\n        str = toFixedPoint(str, e, alphabet.charAt(0));\r\n      }\r\n\r\n      // The caller will add the sign.\r\n      return str;\r\n    };\r\n  })();\r\n\r\n\r\n  // Perform division in the specified base. Called by div and convertBase.\r\n  div = (function () {\r\n\r\n    // Assume non-zero x and k.\r\n    function multiply(x, k, base) {\r\n      var m, temp, xlo, xhi,\r\n        carry = 0,\r\n        i = x.length,\r\n        klo = k % SQRT_BASE,\r\n        khi = k / SQRT_BASE | 0;\r\n\r\n      for (x = x.slice(); i--;) {\r\n        xlo = x[i] % SQRT_BASE;\r\n        xhi = x[i] / SQRT_BASE | 0;\r\n        m = khi * xlo + xhi * klo;\r\n        temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n        carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n        x[i] = temp % base;\r\n      }\r\n\r\n      if (carry) x = [carry].concat(x);\r\n\r\n      return x;\r\n    }\r\n\r\n    function compare(a, b, aL, bL) {\r\n      var i, cmp;\r\n\r\n      if (aL != bL) {\r\n        cmp = aL > bL ? 1 : -1;\r\n      } else {\r\n\r\n        for (i = cmp = 0; i < aL; i++) {\r\n\r\n          if (a[i] != b[i]) {\r\n            cmp = a[i] > b[i] ? 1 : -1;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      return cmp;\r\n    }\r\n\r\n    function subtract(a, b, aL, base) {\r\n      var i = 0;\r\n\r\n      // Subtract b from a.\r\n      for (; aL--;) {\r\n        a[aL] -= i;\r\n        i = a[aL] < b[aL] ? 1 : 0;\r\n        a[aL] = i * base + a[aL] - b[aL];\r\n      }\r\n\r\n      // Remove leading zeros.\r\n      for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n    }\r\n\r\n    // x: dividend, y: divisor.\r\n    return function (x, y, dp, rm, base) {\r\n      var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n        yL, yz,\r\n        s = x.s == y.s ? 1 : -1,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      // Either NaN, Infinity or 0?\r\n      if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n        return new BigNumber(\r\n\r\n         // Return NaN if either NaN, or both Infinity or 0.\r\n         !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n          // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n          xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n       );\r\n      }\r\n\r\n      q = new BigNumber(s);\r\n      qc = q.c = [];\r\n      e = x.e - y.e;\r\n      s = dp + e + 1;\r\n\r\n      if (!base) {\r\n        base = BASE;\r\n        e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n        s = s / LOG_BASE | 0;\r\n      }\r\n\r\n      // Result exponent may be one less then the current value of e.\r\n      // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n      for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n      if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n      if (s < 0) {\r\n        qc.push(1);\r\n        more = true;\r\n      } else {\r\n        xL = xc.length;\r\n        yL = yc.length;\r\n        i = 0;\r\n        s += 2;\r\n\r\n        // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n        n = mathfloor(base / (yc[0] + 1));\r\n\r\n        // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n        // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n        if (n > 1) {\r\n          yc = multiply(yc, n, base);\r\n          xc = multiply(xc, n, base);\r\n          yL = yc.length;\r\n          xL = xc.length;\r\n        }\r\n\r\n        xi = yL;\r\n        rem = xc.slice(0, yL);\r\n        remL = rem.length;\r\n\r\n        // Add zeros to make remainder as long as divisor.\r\n        for (; remL < yL; rem[remL++] = 0);\r\n        yz = yc.slice();\r\n        yz = [0].concat(yz);\r\n        yc0 = yc[0];\r\n        if (yc[1] >= base / 2) yc0++;\r\n        // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n        // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n        do {\r\n          n = 0;\r\n\r\n          // Compare divisor and remainder.\r\n          cmp = compare(yc, rem, yL, remL);\r\n\r\n          // If divisor < remainder.\r\n          if (cmp < 0) {\r\n\r\n            // Calculate trial digit, n.\r\n\r\n            rem0 = rem[0];\r\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n            // n is how many times the divisor goes into the current remainder.\r\n            n = mathfloor(rem0 / yc0);\r\n\r\n            //  Algorithm:\r\n            //  product = divisor multiplied by trial digit (n).\r\n            //  Compare product and remainder.\r\n            //  If product is greater than remainder:\r\n            //    Subtract divisor from product, decrement trial digit.\r\n            //  Subtract product from remainder.\r\n            //  If product was less than remainder at the last compare:\r\n            //    Compare new remainder and divisor.\r\n            //    If remainder is greater than divisor:\r\n            //      Subtract divisor from remainder, increment trial digit.\r\n\r\n            if (n > 1) {\r\n\r\n              // n may be > base only when base is 3.\r\n              if (n >= base) n = base - 1;\r\n\r\n              // product = divisor * trial digit.\r\n              prod = multiply(yc, n, base);\r\n              prodL = prod.length;\r\n              remL = rem.length;\r\n\r\n              // Compare product and remainder.\r\n              // If product > remainder then trial digit n too high.\r\n              // n is 1 too high about 5% of the time, and is not known to have\r\n              // ever been more than 1 too high.\r\n              while (compare(prod, rem, prodL, remL) == 1) {\r\n                n--;\r\n\r\n                // Subtract divisor from product.\r\n                subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                prodL = prod.length;\r\n                cmp = 1;\r\n              }\r\n            } else {\r\n\r\n              // n is 0 or 1, cmp is -1.\r\n              // If n is 0, there is no need to compare yc and rem again below,\r\n              // so change cmp to 1 to avoid it.\r\n              // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n              if (n == 0) {\r\n\r\n                // divisor < remainder, so n must be at least 1.\r\n                cmp = n = 1;\r\n              }\r\n\r\n              // product = divisor\r\n              prod = yc.slice();\r\n              prodL = prod.length;\r\n            }\r\n\r\n            if (prodL < remL) prod = [0].concat(prod);\r\n\r\n            // Subtract product from remainder.\r\n            subtract(rem, prod, remL, base);\r\n            remL = rem.length;\r\n\r\n             // If product was < remainder.\r\n            if (cmp == -1) {\r\n\r\n              // Compare divisor and new remainder.\r\n              // If divisor < new remainder, subtract divisor from remainder.\r\n              // Trial digit n too low.\r\n              // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n              while (compare(yc, rem, yL, remL) < 1) {\r\n                n++;\r\n\r\n                // Subtract divisor from remainder.\r\n                subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                remL = rem.length;\r\n              }\r\n            }\r\n          } else if (cmp === 0) {\r\n            n++;\r\n            rem = [0];\r\n          } // else cmp === 1 and n will be 0\r\n\r\n          // Add the next digit, n, to the result array.\r\n          qc[i++] = n;\r\n\r\n          // Update the remainder.\r\n          if (rem[0]) {\r\n            rem[remL++] = xc[xi] || 0;\r\n          } else {\r\n            rem = [xc[xi]];\r\n            remL = 1;\r\n          }\r\n        } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n        more = rem[0] != null;\r\n\r\n        // Leading zero?\r\n        if (!qc[0]) qc.splice(0, 1);\r\n      }\r\n\r\n      if (base == BASE) {\r\n\r\n        // To calculate q.e, first get the number of digits of qc[0].\r\n        for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n        round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n      // Caller is convertBase.\r\n      } else {\r\n        q.e = e;\r\n        q.r = +more;\r\n      }\r\n\r\n      return q;\r\n    };\r\n  })();\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n   * notation rounded to the specified decimal places or significant digits.\r\n   *\r\n   * n: a BigNumber.\r\n   * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n   * rm: the rounding mode.\r\n   * id: 1 (toExponential) or 2 (toPrecision).\r\n   */\r\n  function format(n, i, rm, id) {\r\n    var c0, e, ne, len, str;\r\n\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n\r\n    if (!n.c) return n.toString();\r\n\r\n    c0 = n.c[0];\r\n    ne = n.e;\r\n\r\n    if (i == null) {\r\n      str = coeffToString(n.c);\r\n      str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n       ? toExponential(str, ne)\r\n       : toFixedPoint(str, ne, '0');\r\n    } else {\r\n      n = round(new BigNumber(n), i, rm);\r\n\r\n      // n.e may have changed if the value was rounded up.\r\n      e = n.e;\r\n\r\n      str = coeffToString(n.c);\r\n      len = str.length;\r\n\r\n      // toPrecision returns exponential notation if the number of significant digits\r\n      // specified is less than the number of digits necessary to represent the integer\r\n      // part of the value in fixed-point notation.\r\n\r\n      // Exponential notation.\r\n      if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n        // Append zeros?\r\n        for (; len < i; str += '0', len++);\r\n        str = toExponential(str, e);\r\n\r\n      // Fixed-point notation.\r\n      } else {\r\n        i -= ne;\r\n        str = toFixedPoint(str, e, '0');\r\n\r\n        // Append zeros?\r\n        if (e + 1 > len) {\r\n          if (--i > 0) for (str += '.'; i--; str += '0');\r\n        } else {\r\n          i += e - len;\r\n          if (i > 0) {\r\n            if (e + 1 == len) str += '.';\r\n            for (; i--; str += '0');\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return n.s < 0 && c0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // Handle BigNumber.max and BigNumber.min.\r\n  // If any number is NaN, return NaN.\r\n  function maxOrMin(args, n) {\r\n    var k, y,\r\n      i = 1,\r\n      x = new BigNumber(args[0]);\r\n\r\n    for (; i < args.length; i++) {\r\n      y = new BigNumber(args[i]);\r\n      if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n        x = y;\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  /*\r\n   * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n   * Called by minus, plus and times.\r\n   */\r\n  function normalise(n, c, e) {\r\n    var i = 1,\r\n      j = c.length;\r\n\r\n     // Remove trailing zeros.\r\n    for (; !c[--j]; c.pop());\r\n\r\n    // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n    for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n    // Overflow?\r\n    if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n      // Infinity.\r\n      n.c = n.e = null;\r\n\r\n    // Underflow?\r\n    } else if (e < MIN_EXP) {\r\n\r\n      // Zero.\r\n      n.c = [n.e = 0];\r\n    } else {\r\n      n.e = e;\r\n      n.c = c;\r\n    }\r\n\r\n    return n;\r\n  }\r\n\r\n\r\n  // Handle values that fail the validity test in BigNumber.\r\n  parseNumeric = (function () {\r\n    var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n      dotAfter = /^([^.]+)\\.$/,\r\n      dotBefore = /^\\.([^.]+)$/,\r\n      isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n      whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n    return function (x, str, isNum, b) {\r\n      var base,\r\n        s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n      // No exception on ±Infinity or NaN.\r\n      if (isInfinityOrNaN.test(s)) {\r\n        x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n      } else {\r\n        if (!isNum) {\r\n\r\n          // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n          s = s.replace(basePrefix, function (m, p1, p2) {\r\n            base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n            return !b || b == base ? p1 : m;\r\n          });\r\n\r\n          if (b) {\r\n            base = b;\r\n\r\n            // E.g. '1.' to '1', '.1' to '0.1'\r\n            s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n          }\r\n\r\n          if (str != s) return new BigNumber(s, base);\r\n        }\r\n\r\n        // '[BigNumber Error] Not a number: {n}'\r\n        // '[BigNumber Error] Not a base {b} number: {n}'\r\n        if (BigNumber.DEBUG) {\r\n          throw Error\r\n            (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n        }\r\n\r\n        // NaN\r\n        x.s = null;\r\n      }\r\n\r\n      x.c = x.e = null;\r\n    }\r\n  })();\r\n\r\n\r\n  /*\r\n   * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n   * If r is truthy, it is known that there are more digits after the rounding digit.\r\n   */\r\n  function round(x, sd, rm, r) {\r\n    var d, i, j, k, n, ni, rd,\r\n      xc = x.c,\r\n      pows10 = POWS_TEN;\r\n\r\n    // if x is not Infinity or NaN...\r\n    if (xc) {\r\n\r\n      // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n      // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n      // ni is the index of n within x.c.\r\n      // d is the number of digits of n.\r\n      // i is the index of rd within n including leading zeros.\r\n      // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n      out: {\r\n\r\n        // Get the number of digits of the first element of xc.\r\n        for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n        i = sd - d;\r\n\r\n        // If the rounding digit is in the first element of xc...\r\n        if (i < 0) {\r\n          i += LOG_BASE;\r\n          j = sd;\r\n          n = xc[ni = 0];\r\n\r\n          // Get the rounding digit at index j of n.\r\n          rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n        } else {\r\n          ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n          if (ni >= xc.length) {\r\n\r\n            if (r) {\r\n\r\n              // Needed by sqrt.\r\n              for (; xc.length <= ni; xc.push(0));\r\n              n = rd = 0;\r\n              d = 1;\r\n              i %= LOG_BASE;\r\n              j = i - LOG_BASE + 1;\r\n            } else {\r\n              break out;\r\n            }\r\n          } else {\r\n            n = k = xc[ni];\r\n\r\n            // Get the number of digits of n.\r\n            for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n            // Get the index of rd within n.\r\n            i %= LOG_BASE;\r\n\r\n            // Get the index of rd within n, adjusted for leading zeros.\r\n            // The number of leading zeros of n is given by LOG_BASE - d.\r\n            j = i - LOG_BASE + d;\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n          }\r\n        }\r\n\r\n        r = r || sd < 0 ||\r\n\r\n        // Are there any non-zero digits after the rounding digit?\r\n        // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n        // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n         xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n        r = rm < 4\r\n         ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n         : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n          // Check whether the digit to the left of the rounding digit is odd.\r\n          ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n           rm == (x.s < 0 ? 8 : 7));\r\n\r\n        if (sd < 1 || !xc[0]) {\r\n          xc.length = 0;\r\n\r\n          if (r) {\r\n\r\n            // Convert sd to decimal places.\r\n            sd -= x.e + 1;\r\n\r\n            // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n            xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n            x.e = -sd || 0;\r\n          } else {\r\n\r\n            // Zero.\r\n            xc[0] = x.e = 0;\r\n          }\r\n\r\n          return x;\r\n        }\r\n\r\n        // Remove excess digits.\r\n        if (i == 0) {\r\n          xc.length = ni;\r\n          k = 1;\r\n          ni--;\r\n        } else {\r\n          xc.length = ni + 1;\r\n          k = pows10[LOG_BASE - i];\r\n\r\n          // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n          // j > 0 means i > number of leading zeros of n.\r\n          xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n        }\r\n\r\n        // Round up?\r\n        if (r) {\r\n\r\n          for (; ;) {\r\n\r\n            // If the digit to be rounded up is in the first element of xc...\r\n            if (ni == 0) {\r\n\r\n              // i will be the length of xc[0] before k is added.\r\n              for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n              j = xc[0] += k;\r\n              for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n              // if i != k the length has increased.\r\n              if (i != k) {\r\n                x.e++;\r\n                if (xc[0] == BASE) xc[0] = 1;\r\n              }\r\n\r\n              break;\r\n            } else {\r\n              xc[ni] += k;\r\n              if (xc[ni] != BASE) break;\r\n              xc[ni--] = 0;\r\n              k = 1;\r\n            }\r\n          }\r\n        }\r\n\r\n        // Remove trailing zeros.\r\n        for (i = xc.length; xc[--i] === 0; xc.pop());\r\n      }\r\n\r\n      // Overflow? Infinity.\r\n      if (x.e > MAX_EXP) {\r\n        x.c = x.e = null;\r\n\r\n      // Underflow? Zero.\r\n      } else if (x.e < MIN_EXP) {\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n    return x;\r\n  }\r\n\r\n\r\n  function valueOf(n) {\r\n    var str,\r\n      e = n.e;\r\n\r\n    if (e === null) return n.toString();\r\n\r\n    str = coeffToString(n.c);\r\n\r\n    str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n      ? toExponential(str, e)\r\n      : toFixedPoint(str, e, '0');\r\n\r\n    return n.s < 0 ? '-' + str : str;\r\n  }\r\n\r\n\r\n  // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n   */\r\n  P.absoluteValue = P.abs = function () {\r\n    var x = new BigNumber(this);\r\n    if (x.s < 0) x.s = 1;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return\r\n   *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   *   0 if they have the same value,\r\n   *   or null if the value of either is NaN.\r\n   */\r\n  P.comparedTo = function (y, b) {\r\n    return compare(this, new BigNumber(y, b));\r\n  };\r\n\r\n\r\n  /*\r\n   * If dp is undefined or null or true or false, return the number of decimal places of the\r\n   * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   *\r\n   * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.decimalPlaces = P.dp = function (dp, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), dp + x.e + 1, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n    // Subtract the number of trailing zeros of the last number.\r\n    if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n    if (n < 0) n = 0;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n / 0 = I\r\n   *  n / N = N\r\n   *  n / I = 0\r\n   *  0 / n = 0\r\n   *  0 / 0 = N\r\n   *  0 / N = N\r\n   *  0 / I = 0\r\n   *  N / n = N\r\n   *  N / 0 = N\r\n   *  N / N = N\r\n   *  N / I = N\r\n   *  I / n = I\r\n   *  I / 0 = I\r\n   *  I / N = N\r\n   *  I / I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n   * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.dividedBy = P.div = function (y, b) {\r\n    return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n   * BigNumber by the value of BigNumber(y, b).\r\n   */\r\n  P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n    return div(this, new BigNumber(y, b), 0, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n   *\r\n   * If m is present, return the result modulo m.\r\n   * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n   *\r\n   * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n   * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n   *\r\n   * n {number|string|BigNumber} The exponent. An integer.\r\n   * [m] {number|string|BigNumber} The modulus.\r\n   *\r\n   * '[BigNumber Error] Exponent not an integer: {n}'\r\n   */\r\n  P.exponentiatedBy = P.pow = function (n, m) {\r\n    var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n      x = this;\r\n\r\n    n = new BigNumber(n);\r\n\r\n    // Allow NaN and ±Infinity, but not other non-integers.\r\n    if (n.c && !n.isInteger()) {\r\n      throw Error\r\n        (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n    }\r\n\r\n    if (m != null) m = new BigNumber(m);\r\n\r\n    // Exponent of MAX_SAFE_INTEGER is 15.\r\n    nIsBig = n.e > 14;\r\n\r\n    // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n    if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n      // The sign of the result of pow when x is negative depends on the evenness of n.\r\n      // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n      y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n      return m ? y.mod(m) : y;\r\n    }\r\n\r\n    nIsNeg = n.s < 0;\r\n\r\n    if (m) {\r\n\r\n      // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n      if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n      isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n      if (isModExp) x = x.mod(m);\r\n\r\n    // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n    // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n    } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n      // [1, 240000000]\r\n      ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n      // [80000000000000]  [99999750000000]\r\n      : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n      // If x is negative and n is odd, k = -0, else k = 0.\r\n      k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n      // If x >= 1, k = ±Infinity.\r\n      if (x.e > -1) k = 1 / k;\r\n\r\n      // If n is negative return ±0, else return ±Infinity.\r\n      return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n    } else if (POW_PRECISION) {\r\n\r\n      // Truncating each coefficient array to a length of k after each multiplication\r\n      // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n      // i.e. there will be a minimum of 28 guard digits retained.\r\n      k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n    }\r\n\r\n    if (nIsBig) {\r\n      half = new BigNumber(0.5);\r\n      if (nIsNeg) n.s = 1;\r\n      nIsOdd = isOdd(n);\r\n    } else {\r\n      i = Math.abs(+valueOf(n));\r\n      nIsOdd = i % 2;\r\n    }\r\n\r\n    y = new BigNumber(ONE);\r\n\r\n    // Performs 54 loop iterations for n of 9007199254740991.\r\n    for (; ;) {\r\n\r\n      if (nIsOdd) {\r\n        y = y.times(x);\r\n        if (!y.c) break;\r\n\r\n        if (k) {\r\n          if (y.c.length > k) y.c.length = k;\r\n        } else if (isModExp) {\r\n          y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (i) {\r\n        i = mathfloor(i / 2);\r\n        if (i === 0) break;\r\n        nIsOdd = i % 2;\r\n      } else {\r\n        n = n.times(half);\r\n        round(n, n.e + 1, 1);\r\n\r\n        if (n.e > 14) {\r\n          nIsOdd = isOdd(n);\r\n        } else {\r\n          i = +valueOf(n);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        }\r\n      }\r\n\r\n      x = x.times(x);\r\n\r\n      if (k) {\r\n        if (x.c && x.c.length > k) x.c.length = k;\r\n      } else if (isModExp) {\r\n        x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n      }\r\n    }\r\n\r\n    if (isModExp) return y;\r\n    if (nIsNeg) y = ONE.div(y);\r\n\r\n    return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n   * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n   */\r\n  P.integerValue = function (rm) {\r\n    var n = new BigNumber(this);\r\n    if (rm == null) rm = ROUNDING_MODE;\r\n    else intCheck(rm, 0, 8);\r\n    return round(n, n.e + 1, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isEqualTo = P.eq = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n   */\r\n  P.isFinite = function () {\r\n    return !!this.c;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isGreaterThan = P.gt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is greater than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n   */\r\n  P.isInteger = function () {\r\n    return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n   * otherwise return false.\r\n   */\r\n  P.isLessThan = P.lt = function (y, b) {\r\n    return compare(this, new BigNumber(y, b)) < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is less than or equal to the value of\r\n   * BigNumber(y, b), otherwise return false.\r\n   */\r\n  P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n    return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n   */\r\n  P.isNaN = function () {\r\n    return !this.s;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is negative, otherwise return false.\r\n   */\r\n  P.isNegative = function () {\r\n    return this.s < 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is positive, otherwise return false.\r\n   */\r\n  P.isPositive = function () {\r\n    return this.s > 0;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n   */\r\n  P.isZero = function () {\r\n    return !!this.c && this.c[0] == 0;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n - 0 = n\r\n   *  n - N = N\r\n   *  n - I = -I\r\n   *  0 - n = -n\r\n   *  0 - 0 = 0\r\n   *  0 - N = N\r\n   *  0 - I = -I\r\n   *  N - n = N\r\n   *  N - 0 = N\r\n   *  N - N = N\r\n   *  N - I = N\r\n   *  I - n = I\r\n   *  I - 0 = I\r\n   *  I - N = N\r\n   *  I - I = N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.minus = function (y, b) {\r\n    var i, j, t, xLTy,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n    if (a != b) {\r\n      y.s = -b;\r\n      return x.plus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Either Infinity?\r\n      if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n      // Either zero?\r\n      if (!xc[0] || !yc[0]) {\r\n\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n         // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n         ROUNDING_MODE == 3 ? -0 : 0);\r\n      }\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Determine which is the bigger number.\r\n    if (a = xe - ye) {\r\n\r\n      if (xLTy = a < 0) {\r\n        a = -a;\r\n        t = xc;\r\n      } else {\r\n        ye = xe;\r\n        t = yc;\r\n      }\r\n\r\n      t.reverse();\r\n\r\n      // Prepend zeros to equalise exponents.\r\n      for (b = a; b--; t.push(0));\r\n      t.reverse();\r\n    } else {\r\n\r\n      // Exponents equal. Check digit by digit.\r\n      j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n      for (a = b = 0; b < j; b++) {\r\n\r\n        if (xc[b] != yc[b]) {\r\n          xLTy = xc[b] < yc[b];\r\n          break;\r\n        }\r\n      }\r\n    }\r\n\r\n    // x < y? Point xc to the array of the bigger number.\r\n    if (xLTy) {\r\n      t = xc;\r\n      xc = yc;\r\n      yc = t;\r\n      y.s = -y.s;\r\n    }\r\n\r\n    b = (j = yc.length) - (i = xc.length);\r\n\r\n    // Append zeros to xc if shorter.\r\n    // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n    if (b > 0) for (; b--; xc[i++] = 0);\r\n    b = BASE - 1;\r\n\r\n    // Subtract yc from xc.\r\n    for (; j > a;) {\r\n\r\n      if (xc[--j] < yc[j]) {\r\n        for (i = j; i && !xc[--i]; xc[i] = b);\r\n        --xc[i];\r\n        xc[j] += BASE;\r\n      }\r\n\r\n      xc[j] -= yc[j];\r\n    }\r\n\r\n    // Remove leading zeros and adjust exponent accordingly.\r\n    for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n    // Zero?\r\n    if (!xc[0]) {\r\n\r\n      // Following IEEE 754 (2008) 6.3,\r\n      // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n      y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n      y.c = [y.e = 0];\r\n      return y;\r\n    }\r\n\r\n    // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n    // for finite x and y.\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   *   n % 0 =  N\r\n   *   n % N =  N\r\n   *   n % I =  n\r\n   *   0 % n =  0\r\n   *  -0 % n = -0\r\n   *   0 % 0 =  N\r\n   *   0 % N =  N\r\n   *   0 % I =  0\r\n   *   N % n =  N\r\n   *   N % 0 =  N\r\n   *   N % N =  N\r\n   *   N % I =  N\r\n   *   I % n =  N\r\n   *   I % 0 =  N\r\n   *   I % N =  N\r\n   *   I % I =  N\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n   * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n   */\r\n  P.modulo = P.mod = function (y, b) {\r\n    var q, s,\r\n      x = this;\r\n\r\n    y = new BigNumber(y, b);\r\n\r\n    // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n    if (!x.c || !y.s || y.c && !y.c[0]) {\r\n      return new BigNumber(NaN);\r\n\r\n    // Return x if y is Infinity or x is zero.\r\n    } else if (!y.c || x.c && !x.c[0]) {\r\n      return new BigNumber(x);\r\n    }\r\n\r\n    if (MODULO_MODE == 9) {\r\n\r\n      // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n      // r = x - qy    where  0 <= r < abs(y)\r\n      s = y.s;\r\n      y.s = 1;\r\n      q = div(x, y, 0, 3);\r\n      y.s = s;\r\n      q.s *= s;\r\n    } else {\r\n      q = div(x, y, 0, MODULO_MODE);\r\n    }\r\n\r\n    y = x.minus(q.times(y));\r\n\r\n    // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n    if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n    return y;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n * 0 = 0\r\n   *  n * N = N\r\n   *  n * I = I\r\n   *  0 * n = 0\r\n   *  0 * 0 = 0\r\n   *  0 * N = N\r\n   *  0 * I = N\r\n   *  N * n = N\r\n   *  N * 0 = N\r\n   *  N * N = N\r\n   *  N * I = N\r\n   *  I * n = I\r\n   *  I * 0 = N\r\n   *  I * N = N\r\n   *  I * I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n   * of BigNumber(y, b).\r\n   */\r\n  P.multipliedBy = P.times = function (y, b) {\r\n    var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n      base, sqrtBase,\r\n      x = this,\r\n      xc = x.c,\r\n      yc = (y = new BigNumber(y, b)).c;\r\n\r\n    // Either NaN, ±Infinity or ±0?\r\n    if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n      // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n      if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n        y.c = y.e = y.s = null;\r\n      } else {\r\n        y.s *= x.s;\r\n\r\n        // Return ±Infinity if either is ±Infinity.\r\n        if (!xc || !yc) {\r\n          y.c = y.e = null;\r\n\r\n        // Return ±0 if either is ±0.\r\n        } else {\r\n          y.c = [0];\r\n          y.e = 0;\r\n        }\r\n      }\r\n\r\n      return y;\r\n    }\r\n\r\n    e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n    y.s *= x.s;\r\n    xcL = xc.length;\r\n    ycL = yc.length;\r\n\r\n    // Ensure xc points to longer array and xcL to its length.\r\n    if (xcL < ycL) {\r\n      zc = xc;\r\n      xc = yc;\r\n      yc = zc;\r\n      i = xcL;\r\n      xcL = ycL;\r\n      ycL = i;\r\n    }\r\n\r\n    // Initialise the result array with zeros.\r\n    for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n    base = BASE;\r\n    sqrtBase = SQRT_BASE;\r\n\r\n    for (i = ycL; --i >= 0;) {\r\n      c = 0;\r\n      ylo = yc[i] % sqrtBase;\r\n      yhi = yc[i] / sqrtBase | 0;\r\n\r\n      for (k = xcL, j = i + k; j > i;) {\r\n        xlo = xc[--k] % sqrtBase;\r\n        xhi = xc[k] / sqrtBase | 0;\r\n        m = yhi * xlo + xhi * ylo;\r\n        xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n        c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n        zc[j--] = xlo % base;\r\n      }\r\n\r\n      zc[j] = c;\r\n    }\r\n\r\n    if (c) {\r\n      ++e;\r\n    } else {\r\n      zc.splice(0, 1);\r\n    }\r\n\r\n    return normalise(y, zc, e);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n   * i.e. multiplied by -1.\r\n   */\r\n  P.negated = function () {\r\n    var x = new BigNumber(this);\r\n    x.s = -x.s || null;\r\n    return x;\r\n  };\r\n\r\n\r\n  /*\r\n   *  n + 0 = n\r\n   *  n + N = N\r\n   *  n + I = I\r\n   *  0 + n = n\r\n   *  0 + 0 = 0\r\n   *  0 + N = N\r\n   *  0 + I = I\r\n   *  N + n = N\r\n   *  N + 0 = N\r\n   *  N + N = N\r\n   *  N + I = N\r\n   *  I + n = I\r\n   *  I + 0 = I\r\n   *  I + N = N\r\n   *  I + I = I\r\n   *\r\n   * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n   * BigNumber(y, b).\r\n   */\r\n  P.plus = function (y, b) {\r\n    var t,\r\n      x = this,\r\n      a = x.s;\r\n\r\n    y = new BigNumber(y, b);\r\n    b = y.s;\r\n\r\n    // Either NaN?\r\n    if (!a || !b) return new BigNumber(NaN);\r\n\r\n    // Signs differ?\r\n     if (a != b) {\r\n      y.s = -b;\r\n      return x.minus(y);\r\n    }\r\n\r\n    var xe = x.e / LOG_BASE,\r\n      ye = y.e / LOG_BASE,\r\n      xc = x.c,\r\n      yc = y.c;\r\n\r\n    if (!xe || !ye) {\r\n\r\n      // Return ±Infinity if either ±Infinity.\r\n      if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n      // Either zero?\r\n      // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n      if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n    }\r\n\r\n    xe = bitFloor(xe);\r\n    ye = bitFloor(ye);\r\n    xc = xc.slice();\r\n\r\n    // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n    if (a = xe - ye) {\r\n      if (a > 0) {\r\n        ye = xe;\r\n        t = yc;\r\n      } else {\r\n        a = -a;\r\n        t = xc;\r\n      }\r\n\r\n      t.reverse();\r\n      for (; a--; t.push(0));\r\n      t.reverse();\r\n    }\r\n\r\n    a = xc.length;\r\n    b = yc.length;\r\n\r\n    // Point xc to the longer array, and b to the shorter length.\r\n    if (a - b < 0) {\r\n      t = yc;\r\n      yc = xc;\r\n      xc = t;\r\n      b = a;\r\n    }\r\n\r\n    // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n    for (a = 0; b;) {\r\n      a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n      xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n    }\r\n\r\n    if (a) {\r\n      xc = [a].concat(xc);\r\n      ++ye;\r\n    }\r\n\r\n    // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n    // ye = MAX_EXP + 1 possible\r\n    return normalise(y, xc, ye);\r\n  };\r\n\r\n\r\n  /*\r\n   * If sd is undefined or null or true or false, return the number of significant digits of\r\n   * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n   * If sd is true include integer-part trailing zeros in the count.\r\n   *\r\n   * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n   * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n   * ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n   *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.precision = P.sd = function (sd, rm) {\r\n    var c, n, v,\r\n      x = this;\r\n\r\n    if (sd != null && sd !== !!sd) {\r\n      intCheck(sd, 1, MAX);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      return round(new BigNumber(x), sd, rm);\r\n    }\r\n\r\n    if (!(c = x.c)) return null;\r\n    v = c.length - 1;\r\n    n = v * LOG_BASE + 1;\r\n\r\n    if (v = c[v]) {\r\n\r\n      // Subtract the number of trailing zeros of the last element.\r\n      for (; v % 10 == 0; v /= 10, n--);\r\n\r\n      // Add the number of digits of the first element.\r\n      for (v = c[0]; v >= 10; v /= 10, n++);\r\n    }\r\n\r\n    if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n    return n;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n   * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n   *\r\n   * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n   */\r\n  P.shiftedBy = function (k) {\r\n    intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n    return this.times('1e' + k);\r\n  };\r\n\r\n\r\n  /*\r\n   *  sqrt(-n) =  N\r\n   *  sqrt(N) =  N\r\n   *  sqrt(-I) =  N\r\n   *  sqrt(I) =  I\r\n   *  sqrt(0) =  0\r\n   *  sqrt(-0) = -0\r\n   *\r\n   * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n   * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n   */\r\n  P.squareRoot = P.sqrt = function () {\r\n    var m, n, r, rep, t,\r\n      x = this,\r\n      c = x.c,\r\n      s = x.s,\r\n      e = x.e,\r\n      dp = DECIMAL_PLACES + 4,\r\n      half = new BigNumber('0.5');\r\n\r\n    // Negative/NaN/Infinity/zero?\r\n    if (s !== 1 || !c || !c[0]) {\r\n      return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n    }\r\n\r\n    // Initial estimate.\r\n    s = Math.sqrt(+valueOf(x));\r\n\r\n    // Math.sqrt underflow/overflow?\r\n    // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n    if (s == 0 || s == 1 / 0) {\r\n      n = coeffToString(c);\r\n      if ((n.length + e) % 2 == 0) n += '0';\r\n      s = Math.sqrt(+n);\r\n      e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n      if (s == 1 / 0) {\r\n        n = '5e' + e;\r\n      } else {\r\n        n = s.toExponential();\r\n        n = n.slice(0, n.indexOf('e') + 1) + e;\r\n      }\r\n\r\n      r = new BigNumber(n);\r\n    } else {\r\n      r = new BigNumber(s + '');\r\n    }\r\n\r\n    // Check for zero.\r\n    // r could be zero if MIN_EXP is changed after the this value was created.\r\n    // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n    // coeffToString to throw.\r\n    if (r.c[0]) {\r\n      e = r.e;\r\n      s = e + dp;\r\n      if (s < 3) s = 0;\r\n\r\n      // Newton-Raphson iteration.\r\n      for (; ;) {\r\n        t = r;\r\n        r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n        if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n          // The exponent of r may here be one less than the final result exponent,\r\n          // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n          // are indexed correctly.\r\n          if (r.e < e) --s;\r\n          n = n.slice(s - 3, s + 1);\r\n\r\n          // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n          // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n          // iteration.\r\n          if (n == '9999' || !rep && n == '4999') {\r\n\r\n            // On the first iteration only, check to see if rounding up gives the\r\n            // exact result as the nines may infinitely repeat.\r\n            if (!rep) {\r\n              round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n              if (t.times(t).eq(x)) {\r\n                r = t;\r\n                break;\r\n              }\r\n            }\r\n\r\n            dp += 4;\r\n            s += 4;\r\n            rep = 1;\r\n          } else {\r\n\r\n            // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n            // result. If not, then there are further digits and m will be truthy.\r\n            if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n              // Truncate to the first rounding digit.\r\n              round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n              m = !r.times(r).eq(x);\r\n            }\r\n\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n\r\n    return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in exponential notation and\r\n   * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toExponential = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp++;\r\n    }\r\n    return format(this, dp, rm, 1);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n   * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n   *\r\n   * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n   * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   */\r\n  P.toFixed = function (dp, rm) {\r\n    if (dp != null) {\r\n      intCheck(dp, 0, MAX);\r\n      dp = dp + this.e + 1;\r\n    }\r\n    return format(this, dp, rm);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n   * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n   * of the format or FORMAT object (see BigNumber.set).\r\n   *\r\n   * The formatting object may contain some or all of the properties shown below.\r\n   *\r\n   * FORMAT = {\r\n   *   prefix: '',\r\n   *   groupSize: 3,\r\n   *   secondaryGroupSize: 0,\r\n   *   groupSeparator: ',',\r\n   *   decimalSeparator: '.',\r\n   *   fractionGroupSize: 0,\r\n   *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n   *   suffix: ''\r\n   * };\r\n   *\r\n   * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   * [format] {object} Formatting options. See FORMAT pbject above.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n   * '[BigNumber Error] Argument not an object: {format}'\r\n   */\r\n  P.toFormat = function (dp, rm, format) {\r\n    var str,\r\n      x = this;\r\n\r\n    if (format == null) {\r\n      if (dp != null && rm && typeof rm == 'object') {\r\n        format = rm;\r\n        rm = null;\r\n      } else if (dp && typeof dp == 'object') {\r\n        format = dp;\r\n        dp = rm = null;\r\n      } else {\r\n        format = FORMAT;\r\n      }\r\n    } else if (typeof format != 'object') {\r\n      throw Error\r\n        (bignumberError + 'Argument not an object: ' + format);\r\n    }\r\n\r\n    str = x.toFixed(dp, rm);\r\n\r\n    if (x.c) {\r\n      var i,\r\n        arr = str.split('.'),\r\n        g1 = +format.groupSize,\r\n        g2 = +format.secondaryGroupSize,\r\n        groupSeparator = format.groupSeparator || '',\r\n        intPart = arr[0],\r\n        fractionPart = arr[1],\r\n        isNeg = x.s < 0,\r\n        intDigits = isNeg ? intPart.slice(1) : intPart,\r\n        len = intDigits.length;\r\n\r\n      if (g2) {\r\n        i = g1;\r\n        g1 = g2;\r\n        g2 = i;\r\n        len -= i;\r\n      }\r\n\r\n      if (g1 > 0 && len > 0) {\r\n        i = len % g1 || g1;\r\n        intPart = intDigits.substr(0, i);\r\n        for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n        if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n        if (isNeg) intPart = '-' + intPart;\r\n      }\r\n\r\n      str = fractionPart\r\n       ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n        ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n         '$&' + (format.fractionGroupSeparator || ''))\r\n        : fractionPart)\r\n       : intPart;\r\n    }\r\n\r\n    return (format.prefix || '') + str + (format.suffix || '');\r\n  };\r\n\r\n\r\n  /*\r\n   * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n   * fraction with an integer numerator and an integer denominator.\r\n   * The denominator will be a positive non-zero value less than or equal to the specified\r\n   * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n   * the lowest value necessary to represent the number exactly.\r\n   *\r\n   * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n   *\r\n   * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n   */\r\n  P.toFraction = function (md) {\r\n    var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n      x = this,\r\n      xc = x.c;\r\n\r\n    if (md != null) {\r\n      n = new BigNumber(md);\r\n\r\n      // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n      if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n        throw Error\r\n          (bignumberError + 'Argument ' +\r\n            (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n      }\r\n    }\r\n\r\n    if (!xc) return new BigNumber(x);\r\n\r\n    d = new BigNumber(ONE);\r\n    n1 = d0 = new BigNumber(ONE);\r\n    d1 = n0 = new BigNumber(ONE);\r\n    s = coeffToString(xc);\r\n\r\n    // Determine initial denominator.\r\n    // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n    e = d.e = s.length - x.e - 1;\r\n    d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n    md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n    exp = MAX_EXP;\r\n    MAX_EXP = 1 / 0;\r\n    n = new BigNumber(s);\r\n\r\n    // n0 = d1 = 0\r\n    n0.c[0] = 0;\r\n\r\n    for (; ;)  {\r\n      q = div(n, d, 0, 1);\r\n      d2 = d0.plus(q.times(d1));\r\n      if (d2.comparedTo(md) == 1) break;\r\n      d0 = d1;\r\n      d1 = d2;\r\n      n1 = n0.plus(q.times(d2 = n1));\r\n      n0 = d2;\r\n      d = n.minus(q.times(d2 = d));\r\n      n = d2;\r\n    }\r\n\r\n    d2 = div(md.minus(d0), d1, 0, 1);\r\n    n0 = n0.plus(d2.times(n1));\r\n    d0 = d0.plus(d2.times(d1));\r\n    n0.s = n1.s = x.s;\r\n    e = e * 2;\r\n\r\n    // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n    r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n        div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n    MAX_EXP = exp;\r\n\r\n    return r;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return the value of this BigNumber converted to a number primitive.\r\n   */\r\n  P.toNumber = function () {\r\n    return +valueOf(this);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n   * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n   * necessary to represent the integer part of the value in fixed-point notation, then use\r\n   * exponential notation.\r\n   *\r\n   * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n   * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n   *\r\n   * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n   */\r\n  P.toPrecision = function (sd, rm) {\r\n    if (sd != null) intCheck(sd, 1, MAX);\r\n    return format(this, sd, rm, 2);\r\n  };\r\n\r\n\r\n  /*\r\n   * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n   * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n   * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n   * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n   * TO_EXP_NEG, return exponential notation.\r\n   *\r\n   * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n   *\r\n   * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n   */\r\n  P.toString = function (b) {\r\n    var str,\r\n      n = this,\r\n      s = n.s,\r\n      e = n.e;\r\n\r\n    // Infinity or NaN?\r\n    if (e === null) {\r\n      if (s) {\r\n        str = 'Infinity';\r\n        if (s < 0) str = '-' + str;\r\n      } else {\r\n        str = 'NaN';\r\n      }\r\n    } else {\r\n      if (b == null) {\r\n        str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n         ? toExponential(coeffToString(n.c), e)\r\n         : toFixedPoint(coeffToString(n.c), e, '0');\r\n      } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n        n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n        str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n      } else {\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n        str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n      }\r\n\r\n      if (s < 0 && n.c[0]) str = '-' + str;\r\n    }\r\n\r\n    return str;\r\n  };\r\n\r\n\r\n  /*\r\n   * Return as toString, but do not accept a base argument, and include the minus sign for\r\n   * negative zero.\r\n   */\r\n  P.valueOf = P.toJSON = function () {\r\n    return valueOf(this);\r\n  };\r\n\r\n\r\n  P._isBigNumber = true;\r\n\r\n  P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n  // Node.js v10.12.0+\r\n  P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n  if (configObject != null) BigNumber.set(configObject);\r\n\r\n  return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n  var i = n | 0;\r\n  return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n  var s, z,\r\n    i = 1,\r\n    j = a.length,\r\n    r = a[0] + '';\r\n\r\n  for (; i < j;) {\r\n    s = a[i++] + '';\r\n    z = LOG_BASE - s.length;\r\n    for (; z--; s = '0' + s);\r\n    r += s;\r\n  }\r\n\r\n  // Determine trailing zeros.\r\n  for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n  return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n  var a, b,\r\n    xc = x.c,\r\n    yc = y.c,\r\n    i = x.s,\r\n    j = y.s,\r\n    k = x.e,\r\n    l = y.e;\r\n\r\n  // Either NaN?\r\n  if (!i || !j) return null;\r\n\r\n  a = xc && !xc[0];\r\n  b = yc && !yc[0];\r\n\r\n  // Either zero?\r\n  if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n  // Signs differ?\r\n  if (i != j) return i;\r\n\r\n  a = i < 0;\r\n  b = k == l;\r\n\r\n  // Either Infinity?\r\n  if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n  // Compare exponents.\r\n  if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n  j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n  // Compare digit by digit.\r\n  for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n  // Compare lengths.\r\n  return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n  if (n < min || n > max || n !== mathfloor(n)) {\r\n    throw Error\r\n     (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n       ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n       : ' not a primitive number: ') + String(n));\r\n  }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n  var k = n.c.length - 1;\r\n  return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n  return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n   (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n  var len, zs;\r\n\r\n  // Negative exponent?\r\n  if (e < 0) {\r\n\r\n    // Prepend zeros.\r\n    for (zs = z + '.'; ++e; zs += z);\r\n    str = zs + str;\r\n\r\n  // Positive exponent\r\n  } else {\r\n    len = str.length;\r\n\r\n    // Append zeros.\r\n    if (++e > len) {\r\n      for (zs = z, e -= len; --e; zs += z);\r\n      str += zs;\r\n    } else if (e < len) {\r\n      str = str.slice(0, e) + '.' + str.slice(e);\r\n    }\r\n  }\r\n\r\n  return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nvar BigNumber = clone();\r\n\r\n/* harmony default export */ const bignumber = (BigNumber);\r\n\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/GreedySelection/util.js\n\n\n\n\nconst PERCENTAGE_TOLERANCE = 0.05;\nconst distributeAssets = (outputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee) => {\n    const adjustedOutputs = [...outputs];\n    if (adjustedOutputs.length === 0)\n        return adjustedOutputs;\n    const totalAssets = coalesceValueQuantities_coalesceValueQuantities(adjustedOutputs.map((out) => out.value)).assets;\n    if (!totalAssets || totalAssets.size === 0)\n        return adjustedOutputs;\n    for (const utxo of adjustedOutputs)\n        utxo.value.assets = undefined;\n    let i = 0;\n    const availableOutputs = adjustedOutputs;\n    const alreadyFullOutputs = [];\n    while (totalAssets.size > 0) {\n        const splicedAsset = new Map([...totalAssets.entries()].splice(0, 1));\n        const currentUtxoIndex = i % availableOutputs.length;\n        const currentValue = { ...availableOutputs[currentUtxoIndex].value };\n        currentValue.assets = addTokenMaps(currentValue.assets, splicedAsset);\n        if (!isValidValue(currentValue, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee)) {\n            alreadyFullOutputs.push(...availableOutputs.splice(currentUtxoIndex, 1));\n        }\n        else {\n            availableOutputs[currentUtxoIndex].value = currentValue;\n            totalAssets.delete([...splicedAsset.keys()][0]);\n        }\n        if (availableOutputs.length === 0)\n            throw new InputSelectionError(InputSelectionFailure.UtxoFullyDepleted);\n        ++i;\n    }\n    return [...adjustedOutputs, ...alreadyFullOutputs];\n};\nconst getMinUtxoAmount = (amount) => {\n    const granularityFactor = new BigNumber(0.03);\n    let tens = amount.toString().length - 1;\n    let minLovelaceStr = '1';\n    while (tens > 0) {\n        minLovelaceStr += '0';\n        --tens;\n    }\n    return BigInt(new BigNumber(minLovelaceStr).multipliedBy(granularityFactor).toFixed(0, 0));\n};\nconst splitChangeOutput = (output, computeMinimumCoinQuantity, fee) => {\n    const amount = output.value.coins;\n    const minUtxoAdaAmount = getMinUtxoAmount(amount);\n    let remaining = amount;\n    let runningAmount = 0n;\n    const amounts = new Array();\n    const divisor = new BigNumber(2);\n    while (remaining >= minUtxoAdaAmount) {\n        const val = BigInt(new BigNumber(remaining.toString()).dividedBy(divisor).toFixed(0, 0));\n        const updatedRemaining = remaining - val;\n        if (updatedRemaining <= minUtxoAdaAmount ||\n            updatedRemaining <=\n                computeMinimumCoinQuantity({\n                    address: output.address,\n                    value: { assets: output.value.assets, coins: amount - runningAmount }\n                }) +\n                    fee) {\n            amounts.push(amount - runningAmount);\n            break;\n        }\n        runningAmount += val;\n        amounts.push(val);\n        remaining -= val;\n    }\n    return amounts.map((coins) => ({\n        address: output.address,\n        value: { assets: output.value.assets, coins }\n    }));\n};\nconst splitChange = async (getChangeAddresses, totalChangeLovelace, totalChangeAssets, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee) => {\n    const changeAddresses = await getChangeAddresses();\n    const totalWeight = [...changeAddresses.values()].reduce((sum, current) => sum + current, 0);\n    const changeAsPercent = new Map([...changeAddresses.entries()].map((value) => [value[0], value[1] / totalWeight]));\n    const totalPercentage = [...changeAsPercent.values()].reduce((sum, current) => sum + current, 0);\n    if (Math.abs(1 - totalPercentage) > PERCENTAGE_TOLERANCE)\n        throw new InputSelectionError(InputSelectionFailure.UtxoBalanceInsufficient);\n    const changeOutputs = [...changeAsPercent.entries()].map((val) => ({\n        address: val[0],\n        value: { coins: 0n }\n    }));\n    let runningTotal = 0n;\n    const totalCoinAllocation = new BigNumber(totalChangeLovelace.toString());\n    for (const txOut of changeOutputs) {\n        const factor = new BigNumber(changeAsPercent.get(txOut.address));\n        const coinAllocation = BigInt(totalCoinAllocation.multipliedBy(factor).toFixed(0, 0));\n        runningTotal += coinAllocation;\n        txOut.value.coins =\n            runningTotal > totalChangeLovelace ? coinAllocation - (runningTotal - totalChangeLovelace) : coinAllocation;\n    }\n    if (runningTotal < totalChangeLovelace) {\n        const missingAllocation = totalChangeLovelace - runningTotal;\n        changeOutputs[changeOutputs.length - 1].value.coins += missingAllocation;\n    }\n    const splitOutputs = changeOutputs.flatMap((output) => splitChangeOutput(output, computeMinimumCoinQuantity, fee));\n    const sortedOutputs = splitOutputs.sort(sortByCoins).filter((out) => out.value.coins > 0n);\n    if (sortedOutputs && sortedOutputs.length > 0)\n        sortedOutputs[0].value.assets = totalChangeAssets;\n    if (!totalChangeAssets || totalChangeAssets.size === 0)\n        return sortedOutputs;\n    return distributeAssets(sortedOutputs, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit, fee);\n};\nconst sortTxIn = (lhs, rhs) => {\n    const txIdComparison = lhs.txId.localeCompare(rhs.txId);\n    if (txIdComparison !== 0)\n        return txIdComparison;\n    return lhs.index - rhs.index;\n};\nconst sortUtxoByTxIn = (lhs, rhs) => sortTxIn(lhs[0], rhs[0]);\n//# sourceMappingURL=util.js.map\n;// ./node_modules/@cardano-sdk/input-selection/dist/esm/RoundRobinRandomImprove/index.js\n\n\n\n\n\nconst MAX_U64 = 18446744073709551615n;\nconst roundRobinRandomImprove = ({ changeAddressResolver, random = Math.random }) => ({\n    select: async ({ preSelectedUtxo: preSelectedUtxoSet, utxo: utxoSet, outputs: outputSet, constraints: { computeMinimumCost, computeSelectionLimit, computeMinimumCoinQuantity, tokenBundleSizeExceedsLimit }, implicitValue: partialImplicitValue = {} }) => {\n        const changeAddress = stubMaxSizeAddress;\n        const { requiredUtxo, utxo, outputs, uniqueTxAssetIDs, implicitValue } = preProcessArgs(preSelectedUtxoSet, utxoSet, outputSet, changeAddress, partialImplicitValue);\n        assertIsBalanceSufficient(uniqueTxAssetIDs, requiredUtxo, utxo, outputs, implicitValue);\n        const roundRobinSelectionResult = roundRobinSelection({\n            changeAddress,\n            implicitValue,\n            outputs,\n            random,\n            requiredUtxo,\n            uniqueTxAssetIDs,\n            utxo\n        });\n        const result = await computeChangeAndAdjustForFee({\n            computeMinimumCoinQuantity,\n            estimateTxCosts: (utxos, changeValues) => computeMinimumCost({\n                change: changeValues.map((value) => ({\n                    address: changeAddress,\n                    value\n                })),\n                fee: MAX_U64,\n                inputs: new Set(utxos),\n                outputs: outputSet\n            }),\n            implicitValue,\n            outputValues: toValues(outputs),\n            random,\n            tokenBundleSizeExceedsLimit,\n            uniqueTxAssetIDs,\n            utxoSelection: roundRobinSelectionResult\n        });\n        const inputs = new Set(result.inputs);\n        const selection = {\n            change: result.change.map((value) => ({\n                address: changeAddress,\n                value\n            })),\n            fee: result.fee,\n            inputs,\n            outputs: outputSet\n        };\n        selection.change = await changeAddressResolver.resolve(selection);\n        if (result.inputs.length >\n            (await computeSelectionLimit({ change: selection.change, fee: selection.fee, inputs, outputs: outputSet }))) {\n            throw new InputSelectionError(InputSelectionFailure.MaximumInputCountExceeded);\n        }\n        selection.inputs = new Set([...selection.inputs].sort(sortUtxoByTxIn));\n        return {\n            redeemers: result.redeemers,\n            remainingUTxO: new Set(result.remainingUTxO),\n            selection\n        };\n    }\n});\n//# sourceMappingURL=index.js.map\n;// ./node_modules/@meshsdk/transaction/dist/index.js\n// ../../node_modules/bignumber.js/bignumber.mjs\nvar dist_isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i;\nvar dist_mathceil = Math.ceil;\nvar dist_mathfloor = Math.floor;\nvar dist_bignumberError = \"[BigNumber Error] \";\nvar dist_tooManyDigits = dist_bignumberError + \"Number primitive has more than 15 significant digits: \";\nvar dist_BASE = 1e14;\nvar dist_LOG_BASE = 14;\nvar dist_MAX_SAFE_INTEGER = 9007199254740991;\nvar dist_POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13];\nvar dist_SQRT_BASE = 1e7;\nvar dist_MAX = 1e9;\nfunction dist_clone(configObject) {\n  var div, convertBase, parseNumeric, P = BigNumber2.prototype = { constructor: BigNumber2, toString: null, valueOf: null }, ONE = new BigNumber2(1), DECIMAL_PLACES = 20, ROUNDING_MODE = 4, TO_EXP_NEG = -7, TO_EXP_POS = 21, MIN_EXP = -1e7, MAX_EXP = 1e7, CRYPTO = false, MODULO_MODE = 1, POW_PRECISION = 0, FORMAT = {\n    prefix: \"\",\n    groupSize: 3,\n    secondaryGroupSize: 0,\n    groupSeparator: \",\",\n    decimalSeparator: \".\",\n    fractionGroupSize: 0,\n    fractionGroupSeparator: \"\\xA0\",\n    // non-breaking space\n    suffix: \"\"\n  }, ALPHABET = \"0123456789abcdefghijklmnopqrstuvwxyz\", alphabetHasNormalDecimalDigits = true;\n  function BigNumber2(v, b) {\n    var alphabet, c, caseChanged, e, i, isNum, len, str, x = this;\n    if (!(x instanceof BigNumber2)) return new BigNumber2(v, b);\n    if (b == null) {\n      if (v && v._isBigNumber === true) {\n        x.s = v.s;\n        if (!v.c || v.e > MAX_EXP) {\n          x.c = x.e = null;\n        } else if (v.e < MIN_EXP) {\n          x.c = [x.e = 0];\n        } else {\n          x.e = v.e;\n          x.c = v.c.slice();\n        }\n        return;\n      }\n      if ((isNum = typeof v == \"number\") && v * 0 == 0) {\n        x.s = 1 / v < 0 ? (v = -v, -1) : 1;\n        if (v === ~~v) {\n          for (e = 0, i = v; i >= 10; i /= 10, e++) ;\n          if (e > MAX_EXP) {\n            x.c = x.e = null;\n          } else {\n            x.e = e;\n            x.c = [v];\n          }\n          return;\n        }\n        str = String(v);\n      } else {\n        if (!dist_isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\n        x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\n      }\n      if ((e = str.indexOf(\".\")) > -1) str = str.replace(\".\", \"\");\n      if ((i = str.search(/e/i)) > 0) {\n        if (e < 0) e = i;\n        e += +str.slice(i + 1);\n        str = str.substring(0, i);\n      } else if (e < 0) {\n        e = str.length;\n      }\n    } else {\n      dist_intCheck(b, 2, ALPHABET.length, \"Base\");\n      if (b == 10 && alphabetHasNormalDecimalDigits) {\n        x = new BigNumber2(v);\n        return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\n      }\n      str = String(v);\n      if (isNum = typeof v == \"number\") {\n        if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\n        x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\n        if (BigNumber2.DEBUG && str.replace(/^0\\.0*|\\./, \"\").length > 15) {\n          throw Error(dist_tooManyDigits + v);\n        }\n      } else {\n        x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\n      }\n      alphabet = ALPHABET.slice(0, b);\n      e = i = 0;\n      for (len = str.length; i < len; i++) {\n        if (alphabet.indexOf(c = str.charAt(i)) < 0) {\n          if (c == \".\") {\n            if (i > e) {\n              e = len;\n              continue;\n            }\n          } else if (!caseChanged) {\n            if (str == str.toUpperCase() && (str = str.toLowerCase()) || str == str.toLowerCase() && (str = str.toUpperCase())) {\n              caseChanged = true;\n              i = -1;\n              e = 0;\n              continue;\n            }\n          }\n          return parseNumeric(x, String(v), isNum, b);\n        }\n      }\n      isNum = false;\n      str = convertBase(str, b, 10, x.s);\n      if ((e = str.indexOf(\".\")) > -1) str = str.replace(\".\", \"\");\n      else e = str.length;\n    }\n    for (i = 0; str.charCodeAt(i) === 48; i++) ;\n    for (len = str.length; str.charCodeAt(--len) === 48; ) ;\n    if (str = str.slice(i, ++len)) {\n      len -= i;\n      if (isNum && BigNumber2.DEBUG && len > 15 && (v > dist_MAX_SAFE_INTEGER || v !== dist_mathfloor(v))) {\n        throw Error(dist_tooManyDigits + x.s * v);\n      }\n      if ((e = e - i - 1) > MAX_EXP) {\n        x.c = x.e = null;\n      } else if (e < MIN_EXP) {\n        x.c = [x.e = 0];\n      } else {\n        x.e = e;\n        x.c = [];\n        i = (e + 1) % dist_LOG_BASE;\n        if (e < 0) i += dist_LOG_BASE;\n        if (i < len) {\n          if (i) x.c.push(+str.slice(0, i));\n          for (len -= dist_LOG_BASE; i < len; ) {\n            x.c.push(+str.slice(i, i += dist_LOG_BASE));\n          }\n          i = dist_LOG_BASE - (str = str.slice(i)).length;\n        } else {\n          i -= len;\n        }\n        for (; i--; str += \"0\") ;\n        x.c.push(+str);\n      }\n    } else {\n      x.c = [x.e = 0];\n    }\n  }\n  BigNumber2.clone = dist_clone;\n  BigNumber2.ROUND_UP = 0;\n  BigNumber2.ROUND_DOWN = 1;\n  BigNumber2.ROUND_CEIL = 2;\n  BigNumber2.ROUND_FLOOR = 3;\n  BigNumber2.ROUND_HALF_UP = 4;\n  BigNumber2.ROUND_HALF_DOWN = 5;\n  BigNumber2.ROUND_HALF_EVEN = 6;\n  BigNumber2.ROUND_HALF_CEIL = 7;\n  BigNumber2.ROUND_HALF_FLOOR = 8;\n  BigNumber2.EUCLID = 9;\n  BigNumber2.config = BigNumber2.set = function(obj) {\n    var p, v;\n    if (obj != null) {\n      if (typeof obj == \"object\") {\n        if (obj.hasOwnProperty(p = \"DECIMAL_PLACES\")) {\n          v = obj[p];\n          dist_intCheck(v, 0, dist_MAX, p);\n          DECIMAL_PLACES = v;\n        }\n        if (obj.hasOwnProperty(p = \"ROUNDING_MODE\")) {\n          v = obj[p];\n          dist_intCheck(v, 0, 8, p);\n          ROUNDING_MODE = v;\n        }\n        if (obj.hasOwnProperty(p = \"EXPONENTIAL_AT\")) {\n          v = obj[p];\n          if (v && v.pop) {\n            dist_intCheck(v[0], -dist_MAX, 0, p);\n            dist_intCheck(v[1], 0, dist_MAX, p);\n            TO_EXP_NEG = v[0];\n            TO_EXP_POS = v[1];\n          } else {\n            dist_intCheck(v, -dist_MAX, dist_MAX, p);\n            TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\n          }\n        }\n        if (obj.hasOwnProperty(p = \"RANGE\")) {\n          v = obj[p];\n          if (v && v.pop) {\n            dist_intCheck(v[0], -dist_MAX, -1, p);\n            dist_intCheck(v[1], 1, dist_MAX, p);\n            MIN_EXP = v[0];\n            MAX_EXP = v[1];\n          } else {\n            dist_intCheck(v, -dist_MAX, dist_MAX, p);\n            if (v) {\n              MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\n            } else {\n              throw Error(dist_bignumberError + p + \" cannot be zero: \" + v);\n            }\n          }\n        }\n        if (obj.hasOwnProperty(p = \"CRYPTO\")) {\n          v = obj[p];\n          if (v === !!v) {\n            if (v) {\n              if (typeof crypto != \"undefined\" && crypto && (crypto.getRandomValues || crypto.randomBytes)) {\n                CRYPTO = v;\n              } else {\n                CRYPTO = !v;\n                throw Error(dist_bignumberError + \"crypto unavailable\");\n              }\n            } else {\n              CRYPTO = v;\n            }\n          } else {\n            throw Error(dist_bignumberError + p + \" not true or false: \" + v);\n          }\n        }\n        if (obj.hasOwnProperty(p = \"MODULO_MODE\")) {\n          v = obj[p];\n          dist_intCheck(v, 0, 9, p);\n          MODULO_MODE = v;\n        }\n        if (obj.hasOwnProperty(p = \"POW_PRECISION\")) {\n          v = obj[p];\n          dist_intCheck(v, 0, dist_MAX, p);\n          POW_PRECISION = v;\n        }\n        if (obj.hasOwnProperty(p = \"FORMAT\")) {\n          v = obj[p];\n          if (typeof v == \"object\") FORMAT = v;\n          else throw Error(dist_bignumberError + p + \" not an object: \" + v);\n        }\n        if (obj.hasOwnProperty(p = \"ALPHABET\")) {\n          v = obj[p];\n          if (typeof v == \"string\" && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\n            alphabetHasNormalDecimalDigits = v.slice(0, 10) == \"0123456789\";\n            ALPHABET = v;\n          } else {\n            throw Error(dist_bignumberError + p + \" invalid: \" + v);\n          }\n        }\n      } else {\n        throw Error(dist_bignumberError + \"Object expected: \" + obj);\n      }\n    }\n    return {\n      DECIMAL_PLACES,\n      ROUNDING_MODE,\n      EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\n      RANGE: [MIN_EXP, MAX_EXP],\n      CRYPTO,\n      MODULO_MODE,\n      POW_PRECISION,\n      FORMAT,\n      ALPHABET\n    };\n  };\n  BigNumber2.isBigNumber = function(v) {\n    if (!v || v._isBigNumber !== true) return false;\n    if (!BigNumber2.DEBUG) return true;\n    var i, n, c = v.c, e = v.e, s = v.s;\n    out: if ({}.toString.call(c) == \"[object Array]\") {\n      if ((s === 1 || s === -1) && e >= -dist_MAX && e <= dist_MAX && e === dist_mathfloor(e)) {\n        if (c[0] === 0) {\n          if (e === 0 && c.length === 1) return true;\n          break out;\n        }\n        i = (e + 1) % dist_LOG_BASE;\n        if (i < 1) i += dist_LOG_BASE;\n        if (String(c[0]).length == i) {\n          for (i = 0; i < c.length; i++) {\n            n = c[i];\n            if (n < 0 || n >= dist_BASE || n !== dist_mathfloor(n)) break out;\n          }\n          if (n !== 0) return true;\n        }\n      }\n    } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\n      return true;\n    }\n    throw Error(dist_bignumberError + \"Invalid BigNumber: \" + v);\n  };\n  BigNumber2.maximum = BigNumber2.max = function() {\n    return maxOrMin(arguments, -1);\n  };\n  BigNumber2.minimum = BigNumber2.min = function() {\n    return maxOrMin(arguments, 1);\n  };\n  BigNumber2.random = function() {\n    var pow2_53 = 9007199254740992;\n    var random53bitInt = Math.random() * pow2_53 & 2097151 ? function() {\n      return dist_mathfloor(Math.random() * pow2_53);\n    } : function() {\n      return (Math.random() * 1073741824 | 0) * 8388608 + (Math.random() * 8388608 | 0);\n    };\n    return function(dp) {\n      var a, b, e, k, v, i = 0, c = [], rand = new BigNumber2(ONE);\n      if (dp == null) dp = DECIMAL_PLACES;\n      else dist_intCheck(dp, 0, dist_MAX);\n      k = dist_mathceil(dp / dist_LOG_BASE);\n      if (CRYPTO) {\n        if (crypto.getRandomValues) {\n          a = crypto.getRandomValues(new Uint32Array(k *= 2));\n          for (; i < k; ) {\n            v = a[i] * 131072 + (a[i + 1] >>> 11);\n            if (v >= 9e15) {\n              b = crypto.getRandomValues(new Uint32Array(2));\n              a[i] = b[0];\n              a[i + 1] = b[1];\n            } else {\n              c.push(v % 1e14);\n              i += 2;\n            }\n          }\n          i = k / 2;\n        } else if (crypto.randomBytes) {\n          a = crypto.randomBytes(k *= 7);\n          for (; i < k; ) {\n            v = (a[i] & 31) * 281474976710656 + a[i + 1] * 1099511627776 + a[i + 2] * 4294967296 + a[i + 3] * 16777216 + (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\n            if (v >= 9e15) {\n              crypto.randomBytes(7).copy(a, i);\n            } else {\n              c.push(v % 1e14);\n              i += 7;\n            }\n          }\n          i = k / 7;\n        } else {\n          CRYPTO = false;\n          throw Error(dist_bignumberError + \"crypto unavailable\");\n        }\n      }\n      if (!CRYPTO) {\n        for (; i < k; ) {\n          v = random53bitInt();\n          if (v < 9e15) c[i++] = v % 1e14;\n        }\n      }\n      k = c[--i];\n      dp %= dist_LOG_BASE;\n      if (k && dp) {\n        v = dist_POWS_TEN[dist_LOG_BASE - dp];\n        c[i] = dist_mathfloor(k / v) * v;\n      }\n      for (; c[i] === 0; c.pop(), i--) ;\n      if (i < 0) {\n        c = [e = 0];\n      } else {\n        for (e = -1; c[0] === 0; c.splice(0, 1), e -= dist_LOG_BASE) ;\n        for (i = 1, v = c[0]; v >= 10; v /= 10, i++) ;\n        if (i < dist_LOG_BASE) e -= dist_LOG_BASE - i;\n      }\n      rand.e = e;\n      rand.c = c;\n      return rand;\n    };\n  }();\n  BigNumber2.sum = function() {\n    var i = 1, args = arguments, sum = new BigNumber2(args[0]);\n    for (; i < args.length; ) sum = sum.plus(args[i++]);\n    return sum;\n  };\n  convertBase = /* @__PURE__ */ function() {\n    var decimal = \"0123456789\";\n    function toBaseOut(str, baseIn, baseOut, alphabet) {\n      var j, arr = [0], arrL, i = 0, len = str.length;\n      for (; i < len; ) {\n        for (arrL = arr.length; arrL--; arr[arrL] *= baseIn) ;\n        arr[0] += alphabet.indexOf(str.charAt(i++));\n        for (j = 0; j < arr.length; j++) {\n          if (arr[j] > baseOut - 1) {\n            if (arr[j + 1] == null) arr[j + 1] = 0;\n            arr[j + 1] += arr[j] / baseOut | 0;\n            arr[j] %= baseOut;\n          }\n        }\n      }\n      return arr.reverse();\n    }\n    return function(str, baseIn, baseOut, sign, callerIsToString) {\n      var alphabet, d, e, k, r, x, xc, y, i = str.indexOf(\".\"), dp = DECIMAL_PLACES, rm = ROUNDING_MODE;\n      if (i >= 0) {\n        k = POW_PRECISION;\n        POW_PRECISION = 0;\n        str = str.replace(\".\", \"\");\n        y = new BigNumber2(baseIn);\n        x = y.pow(str.length - i);\n        POW_PRECISION = k;\n        y.c = toBaseOut(\n          dist_toFixedPoint(dist_coeffToString(x.c), x.e, \"0\"),\n          10,\n          baseOut,\n          decimal\n        );\n        y.e = y.c.length;\n      }\n      xc = toBaseOut(str, baseIn, baseOut, callerIsToString ? (alphabet = ALPHABET, decimal) : (alphabet = decimal, ALPHABET));\n      e = k = xc.length;\n      for (; xc[--k] == 0; xc.pop()) ;\n      if (!xc[0]) return alphabet.charAt(0);\n      if (i < 0) {\n        --e;\n      } else {\n        x.c = xc;\n        x.e = e;\n        x.s = sign;\n        x = div(x, y, dp, rm, baseOut);\n        xc = x.c;\n        r = x.r;\n        e = x.e;\n      }\n      d = e + dp + 1;\n      i = xc[d];\n      k = baseOut / 2;\n      r = r || d < 0 || xc[d + 1] != null;\n      r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : i > k || i == k && (rm == 4 || r || rm == 6 && xc[d - 1] & 1 || rm == (x.s < 0 ? 8 : 7));\n      if (d < 1 || !xc[0]) {\n        str = r ? dist_toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\n      } else {\n        xc.length = d;\n        if (r) {\n          for (--baseOut; ++xc[--d] > baseOut; ) {\n            xc[d] = 0;\n            if (!d) {\n              ++e;\n              xc = [1].concat(xc);\n            }\n          }\n        }\n        for (k = xc.length; !xc[--k]; ) ;\n        for (i = 0, str = \"\"; i <= k; str += alphabet.charAt(xc[i++])) ;\n        str = dist_toFixedPoint(str, e, alphabet.charAt(0));\n      }\n      return str;\n    };\n  }();\n  div = /* @__PURE__ */ function() {\n    function multiply(x, k, base) {\n      var m, temp, xlo, xhi, carry = 0, i = x.length, klo = k % dist_SQRT_BASE, khi = k / dist_SQRT_BASE | 0;\n      for (x = x.slice(); i--; ) {\n        xlo = x[i] % dist_SQRT_BASE;\n        xhi = x[i] / dist_SQRT_BASE | 0;\n        m = khi * xlo + xhi * klo;\n        temp = klo * xlo + m % dist_SQRT_BASE * dist_SQRT_BASE + carry;\n        carry = (temp / base | 0) + (m / dist_SQRT_BASE | 0) + khi * xhi;\n        x[i] = temp % base;\n      }\n      if (carry) x = [carry].concat(x);\n      return x;\n    }\n    function compare2(a, b, aL, bL) {\n      var i, cmp;\n      if (aL != bL) {\n        cmp = aL > bL ? 1 : -1;\n      } else {\n        for (i = cmp = 0; i < aL; i++) {\n          if (a[i] != b[i]) {\n            cmp = a[i] > b[i] ? 1 : -1;\n            break;\n          }\n        }\n      }\n      return cmp;\n    }\n    function subtract(a, b, aL, base) {\n      var i = 0;\n      for (; aL--; ) {\n        a[aL] -= i;\n        i = a[aL] < b[aL] ? 1 : 0;\n        a[aL] = i * base + a[aL] - b[aL];\n      }\n      for (; !a[0] && a.length > 1; a.splice(0, 1)) ;\n    }\n    return function(x, y, dp, rm, base) {\n      var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0, yL, yz, s = x.s == y.s ? 1 : -1, xc = x.c, yc = y.c;\n      if (!xc || !xc[0] || !yc || !yc[0]) {\n        return new BigNumber2(\n          // Return NaN if either NaN, or both Infinity or 0.\n          !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN : (\n            // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\n            xc && xc[0] == 0 || !yc ? s * 0 : s / 0\n          )\n        );\n      }\n      q = new BigNumber2(s);\n      qc = q.c = [];\n      e = x.e - y.e;\n      s = dp + e + 1;\n      if (!base) {\n        base = dist_BASE;\n        e = dist_bitFloor(x.e / dist_LOG_BASE) - dist_bitFloor(y.e / dist_LOG_BASE);\n        s = s / dist_LOG_BASE | 0;\n      }\n      for (i = 0; yc[i] == (xc[i] || 0); i++) ;\n      if (yc[i] > (xc[i] || 0)) e--;\n      if (s < 0) {\n        qc.push(1);\n        more = true;\n      } else {\n        xL = xc.length;\n        yL = yc.length;\n        i = 0;\n        s += 2;\n        n = dist_mathfloor(base / (yc[0] + 1));\n        if (n > 1) {\n          yc = multiply(yc, n, base);\n          xc = multiply(xc, n, base);\n          yL = yc.length;\n          xL = xc.length;\n        }\n        xi = yL;\n        rem = xc.slice(0, yL);\n        remL = rem.length;\n        for (; remL < yL; rem[remL++] = 0) ;\n        yz = yc.slice();\n        yz = [0].concat(yz);\n        yc0 = yc[0];\n        if (yc[1] >= base / 2) yc0++;\n        do {\n          n = 0;\n          cmp = compare2(yc, rem, yL, remL);\n          if (cmp < 0) {\n            rem0 = rem[0];\n            if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\n            n = dist_mathfloor(rem0 / yc0);\n            if (n > 1) {\n              if (n >= base) n = base - 1;\n              prod = multiply(yc, n, base);\n              prodL = prod.length;\n              remL = rem.length;\n              while (compare2(prod, rem, prodL, remL) == 1) {\n                n--;\n                subtract(prod, yL < prodL ? yz : yc, prodL, base);\n                prodL = prod.length;\n                cmp = 1;\n              }\n            } else {\n              if (n == 0) {\n                cmp = n = 1;\n              }\n              prod = yc.slice();\n              prodL = prod.length;\n            }\n            if (prodL < remL) prod = [0].concat(prod);\n            subtract(rem, prod, remL, base);\n            remL = rem.length;\n            if (cmp == -1) {\n              while (compare2(yc, rem, yL, remL) < 1) {\n                n++;\n                subtract(rem, yL < remL ? yz : yc, remL, base);\n                remL = rem.length;\n              }\n            }\n          } else if (cmp === 0) {\n            n++;\n            rem = [0];\n          }\n          qc[i++] = n;\n          if (rem[0]) {\n            rem[remL++] = xc[xi] || 0;\n          } else {\n            rem = [xc[xi]];\n            remL = 1;\n          }\n        } while ((xi++ < xL || rem[0] != null) && s--);\n        more = rem[0] != null;\n        if (!qc[0]) qc.splice(0, 1);\n      }\n      if (base == dist_BASE) {\n        for (i = 1, s = qc[0]; s >= 10; s /= 10, i++) ;\n        round(q, dp + (q.e = i + e * dist_LOG_BASE - 1) + 1, rm, more);\n      } else {\n        q.e = e;\n        q.r = +more;\n      }\n      return q;\n    };\n  }();\n  function format(n, i, rm, id) {\n    var c0, e, ne, len, str;\n    if (rm == null) rm = ROUNDING_MODE;\n    else dist_intCheck(rm, 0, 8);\n    if (!n.c) return n.toString();\n    c0 = n.c[0];\n    ne = n.e;\n    if (i == null) {\n      str = dist_coeffToString(n.c);\n      str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS) ? dist_toExponential(str, ne) : dist_toFixedPoint(str, ne, \"0\");\n    } else {\n      n = round(new BigNumber2(n), i, rm);\n      e = n.e;\n      str = dist_coeffToString(n.c);\n      len = str.length;\n      if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\n        for (; len < i; str += \"0\", len++) ;\n        str = dist_toExponential(str, e);\n      } else {\n        i -= ne;\n        str = dist_toFixedPoint(str, e, \"0\");\n        if (e + 1 > len) {\n          if (--i > 0) for (str += \".\"; i--; str += \"0\") ;\n        } else {\n          i += e - len;\n          if (i > 0) {\n            if (e + 1 == len) str += \".\";\n            for (; i--; str += \"0\") ;\n          }\n        }\n      }\n    }\n    return n.s < 0 && c0 ? \"-\" + str : str;\n  }\n  function maxOrMin(args, n) {\n    var k, y, i = 1, x = new BigNumber2(args[0]);\n    for (; i < args.length; i++) {\n      y = new BigNumber2(args[i]);\n      if (!y.s || (k = dist_compare(x, y)) === n || k === 0 && x.s === n) {\n        x = y;\n      }\n    }\n    return x;\n  }\n  function normalise(n, c, e) {\n    var i = 1, j = c.length;\n    for (; !c[--j]; c.pop()) ;\n    for (j = c[0]; j >= 10; j /= 10, i++) ;\n    if ((e = i + e * dist_LOG_BASE - 1) > MAX_EXP) {\n      n.c = n.e = null;\n    } else if (e < MIN_EXP) {\n      n.c = [n.e = 0];\n    } else {\n      n.e = e;\n      n.c = c;\n    }\n    return n;\n  }\n  parseNumeric = /* @__PURE__ */ function() {\n    var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i, dotAfter = /^([^.]+)\\.$/, dotBefore = /^\\.([^.]+)$/, isInfinityOrNaN = /^-?(Infinity|NaN)$/, whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\n    return function(x, str, isNum, b) {\n      var base, s = isNum ? str : str.replace(whitespaceOrPlus, \"\");\n      if (isInfinityOrNaN.test(s)) {\n        x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\n      } else {\n        if (!isNum) {\n          s = s.replace(basePrefix, function(m, p1, p2) {\n            base = (p2 = p2.toLowerCase()) == \"x\" ? 16 : p2 == \"b\" ? 2 : 8;\n            return !b || b == base ? p1 : m;\n          });\n          if (b) {\n            base = b;\n            s = s.replace(dotAfter, \"$1\").replace(dotBefore, \"0.$1\");\n          }\n          if (str != s) return new BigNumber2(s, base);\n        }\n        if (BigNumber2.DEBUG) {\n          throw Error(dist_bignumberError + \"Not a\" + (b ? \" base \" + b : \"\") + \" number: \" + str);\n        }\n        x.s = null;\n      }\n      x.c = x.e = null;\n    };\n  }();\n  function round(x, sd, rm, r) {\n    var d, i, j, k, n, ni, rd, xc = x.c, pows10 = dist_POWS_TEN;\n    if (xc) {\n      out: {\n        for (d = 1, k = xc[0]; k >= 10; k /= 10, d++) ;\n        i = sd - d;\n        if (i < 0) {\n          i += dist_LOG_BASE;\n          j = sd;\n          n = xc[ni = 0];\n          rd = dist_mathfloor(n / pows10[d - j - 1] % 10);\n        } else {\n          ni = dist_mathceil((i + 1) / dist_LOG_BASE);\n          if (ni >= xc.length) {\n            if (r) {\n              for (; xc.length <= ni; xc.push(0)) ;\n              n = rd = 0;\n              d = 1;\n              i %= dist_LOG_BASE;\n              j = i - dist_LOG_BASE + 1;\n            } else {\n              break out;\n            }\n          } else {\n            n = k = xc[ni];\n            for (d = 1; k >= 10; k /= 10, d++) ;\n            i %= dist_LOG_BASE;\n            j = i - dist_LOG_BASE + d;\n            rd = j < 0 ? 0 : dist_mathfloor(n / pows10[d - j - 1] % 10);\n          }\n        }\n        r = r || sd < 0 || // Are there any non-zero digits after the rounding digit?\n        // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\n        // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\n        xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\n        r = rm < 4 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2)) : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 && // Check whether the digit to the left of the rounding digit is odd.\n        (i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10 & 1 || rm == (x.s < 0 ? 8 : 7));\n        if (sd < 1 || !xc[0]) {\n          xc.length = 0;\n          if (r) {\n            sd -= x.e + 1;\n            xc[0] = pows10[(dist_LOG_BASE - sd % dist_LOG_BASE) % dist_LOG_BASE];\n            x.e = -sd || 0;\n          } else {\n            xc[0] = x.e = 0;\n          }\n          return x;\n        }\n        if (i == 0) {\n          xc.length = ni;\n          k = 1;\n          ni--;\n        } else {\n          xc.length = ni + 1;\n          k = pows10[dist_LOG_BASE - i];\n          xc[ni] = j > 0 ? dist_mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\n        }\n        if (r) {\n          for (; ; ) {\n            if (ni == 0) {\n              for (i = 1, j = xc[0]; j >= 10; j /= 10, i++) ;\n              j = xc[0] += k;\n              for (k = 1; j >= 10; j /= 10, k++) ;\n              if (i != k) {\n                x.e++;\n                if (xc[0] == dist_BASE) xc[0] = 1;\n              }\n              break;\n            } else {\n              xc[ni] += k;\n              if (xc[ni] != dist_BASE) break;\n              xc[ni--] = 0;\n              k = 1;\n            }\n          }\n        }\n        for (i = xc.length; xc[--i] === 0; xc.pop()) ;\n      }\n      if (x.e > MAX_EXP) {\n        x.c = x.e = null;\n      } else if (x.e < MIN_EXP) {\n        x.c = [x.e = 0];\n      }\n    }\n    return x;\n  }\n  function valueOf(n) {\n    var str, e = n.e;\n    if (e === null) return n.toString();\n    str = dist_coeffToString(n.c);\n    str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? dist_toExponential(str, e) : dist_toFixedPoint(str, e, \"0\");\n    return n.s < 0 ? \"-\" + str : str;\n  }\n  P.absoluteValue = P.abs = function() {\n    var x = new BigNumber2(this);\n    if (x.s < 0) x.s = 1;\n    return x;\n  };\n  P.comparedTo = function(y, b) {\n    return dist_compare(this, new BigNumber2(y, b));\n  };\n  P.decimalPlaces = P.dp = function(dp, rm) {\n    var c, n, v, x = this;\n    if (dp != null) {\n      dist_intCheck(dp, 0, dist_MAX);\n      if (rm == null) rm = ROUNDING_MODE;\n      else dist_intCheck(rm, 0, 8);\n      return round(new BigNumber2(x), dp + x.e + 1, rm);\n    }\n    if (!(c = x.c)) return null;\n    n = ((v = c.length - 1) - dist_bitFloor(this.e / dist_LOG_BASE)) * dist_LOG_BASE;\n    if (v = c[v]) for (; v % 10 == 0; v /= 10, n--) ;\n    if (n < 0) n = 0;\n    return n;\n  };\n  P.dividedBy = P.div = function(y, b) {\n    return div(this, new BigNumber2(y, b), DECIMAL_PLACES, ROUNDING_MODE);\n  };\n  P.dividedToIntegerBy = P.idiv = function(y, b) {\n    return div(this, new BigNumber2(y, b), 0, 1);\n  };\n  P.exponentiatedBy = P.pow = function(n, m) {\n    var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y, x = this;\n    n = new BigNumber2(n);\n    if (n.c && !n.isInteger()) {\n      throw Error(dist_bignumberError + \"Exponent not an integer: \" + valueOf(n));\n    }\n    if (m != null) m = new BigNumber2(m);\n    nIsBig = n.e > 14;\n    if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\n      y = new BigNumber2(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - dist_isOdd(n)) : +valueOf(n)));\n      return m ? y.mod(m) : y;\n    }\n    nIsNeg = n.s < 0;\n    if (m) {\n      if (m.c ? !m.c[0] : !m.s) return new BigNumber2(NaN);\n      isModExp = !nIsNeg && x.isInteger() && m.isInteger();\n      if (isModExp) x = x.mod(m);\n    } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\n      k = x.s < 0 && dist_isOdd(n) ? -0 : 0;\n      if (x.e > -1) k = 1 / k;\n      return new BigNumber2(nIsNeg ? 1 / k : k);\n    } else if (POW_PRECISION) {\n      k = dist_mathceil(POW_PRECISION / dist_LOG_BASE + 2);\n    }\n    if (nIsBig) {\n      half = new BigNumber2(0.5);\n      if (nIsNeg) n.s = 1;\n      nIsOdd = dist_isOdd(n);\n    } else {\n      i = Math.abs(+valueOf(n));\n      nIsOdd = i % 2;\n    }\n    y = new BigNumber2(ONE);\n    for (; ; ) {\n      if (nIsOdd) {\n        y = y.times(x);\n        if (!y.c) break;\n        if (k) {\n          if (y.c.length > k) y.c.length = k;\n        } else if (isModExp) {\n          y = y.mod(m);\n        }\n      }\n      if (i) {\n        i = dist_mathfloor(i / 2);\n        if (i === 0) break;\n        nIsOdd = i % 2;\n      } else {\n        n = n.times(half);\n        round(n, n.e + 1, 1);\n        if (n.e > 14) {\n          nIsOdd = dist_isOdd(n);\n        } else {\n          i = +valueOf(n);\n          if (i === 0) break;\n          nIsOdd = i % 2;\n        }\n      }\n      x = x.times(x);\n      if (k) {\n        if (x.c && x.c.length > k) x.c.length = k;\n      } else if (isModExp) {\n        x = x.mod(m);\n      }\n    }\n    if (isModExp) return y;\n    if (nIsNeg) y = ONE.div(y);\n    return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\n  };\n  P.integerValue = function(rm) {\n    var n = new BigNumber2(this);\n    if (rm == null) rm = ROUNDING_MODE;\n    else dist_intCheck(rm, 0, 8);\n    return round(n, n.e + 1, rm);\n  };\n  P.isEqualTo = P.eq = function(y, b) {\n    return dist_compare(this, new BigNumber2(y, b)) === 0;\n  };\n  P.isFinite = function() {\n    return !!this.c;\n  };\n  P.isGreaterThan = P.gt = function(y, b) {\n    return dist_compare(this, new BigNumber2(y, b)) > 0;\n  };\n  P.isGreaterThanOrEqualTo = P.gte = function(y, b) {\n    return (b = dist_compare(this, new BigNumber2(y, b))) === 1 || b === 0;\n  };\n  P.isInteger = function() {\n    return !!this.c && dist_bitFloor(this.e / dist_LOG_BASE) > this.c.length - 2;\n  };\n  P.isLessThan = P.lt = function(y, b) {\n    return dist_compare(this, new BigNumber2(y, b)) < 0;\n  };\n  P.isLessThanOrEqualTo = P.lte = function(y, b) {\n    return (b = dist_compare(this, new BigNumber2(y, b))) === -1 || b === 0;\n  };\n  P.isNaN = function() {\n    return !this.s;\n  };\n  P.isNegative = function() {\n    return this.s < 0;\n  };\n  P.isPositive = function() {\n    return this.s > 0;\n  };\n  P.isZero = function() {\n    return !!this.c && this.c[0] == 0;\n  };\n  P.minus = function(y, b) {\n    var i, j, t, xLTy, x = this, a = x.s;\n    y = new BigNumber2(y, b);\n    b = y.s;\n    if (!a || !b) return new BigNumber2(NaN);\n    if (a != b) {\n      y.s = -b;\n      return x.plus(y);\n    }\n    var xe = x.e / dist_LOG_BASE, ye = y.e / dist_LOG_BASE, xc = x.c, yc = y.c;\n    if (!xe || !ye) {\n      if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber2(yc ? x : NaN);\n      if (!xc[0] || !yc[0]) {\n        return yc[0] ? (y.s = -b, y) : new BigNumber2(xc[0] ? x : (\n          // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\n          ROUNDING_MODE == 3 ? -0 : 0\n        ));\n      }\n    }\n    xe = dist_bitFloor(xe);\n    ye = dist_bitFloor(ye);\n    xc = xc.slice();\n    if (a = xe - ye) {\n      if (xLTy = a < 0) {\n        a = -a;\n        t = xc;\n      } else {\n        ye = xe;\n        t = yc;\n      }\n      t.reverse();\n      for (b = a; b--; t.push(0)) ;\n      t.reverse();\n    } else {\n      j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\n      for (a = b = 0; b < j; b++) {\n        if (xc[b] != yc[b]) {\n          xLTy = xc[b] < yc[b];\n          break;\n        }\n      }\n    }\n    if (xLTy) {\n      t = xc;\n      xc = yc;\n      yc = t;\n      y.s = -y.s;\n    }\n    b = (j = yc.length) - (i = xc.length);\n    if (b > 0) for (; b--; xc[i++] = 0) ;\n    b = dist_BASE - 1;\n    for (; j > a; ) {\n      if (xc[--j] < yc[j]) {\n        for (i = j; i && !xc[--i]; xc[i] = b) ;\n        --xc[i];\n        xc[j] += dist_BASE;\n      }\n      xc[j] -= yc[j];\n    }\n    for (; xc[0] == 0; xc.splice(0, 1), --ye) ;\n    if (!xc[0]) {\n      y.s = ROUNDING_MODE == 3 ? -1 : 1;\n      y.c = [y.e = 0];\n      return y;\n    }\n    return normalise(y, xc, ye);\n  };\n  P.modulo = P.mod = function(y, b) {\n    var q, s, x = this;\n    y = new BigNumber2(y, b);\n    if (!x.c || !y.s || y.c && !y.c[0]) {\n      return new BigNumber2(NaN);\n    } else if (!y.c || x.c && !x.c[0]) {\n      return new BigNumber2(x);\n    }\n    if (MODULO_MODE == 9) {\n      s = y.s;\n      y.s = 1;\n      q = div(x, y, 0, 3);\n      y.s = s;\n      q.s *= s;\n    } else {\n      q = div(x, y, 0, MODULO_MODE);\n    }\n    y = x.minus(q.times(y));\n    if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\n    return y;\n  };\n  P.multipliedBy = P.times = function(y, b) {\n    var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc, base, sqrtBase, x = this, xc = x.c, yc = (y = new BigNumber2(y, b)).c;\n    if (!xc || !yc || !xc[0] || !yc[0]) {\n      if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\n        y.c = y.e = y.s = null;\n      } else {\n        y.s *= x.s;\n        if (!xc || !yc) {\n          y.c = y.e = null;\n        } else {\n          y.c = [0];\n          y.e = 0;\n        }\n      }\n      return y;\n    }\n    e = dist_bitFloor(x.e / dist_LOG_BASE) + dist_bitFloor(y.e / dist_LOG_BASE);\n    y.s *= x.s;\n    xcL = xc.length;\n    ycL = yc.length;\n    if (xcL < ycL) {\n      zc = xc;\n      xc = yc;\n      yc = zc;\n      i = xcL;\n      xcL = ycL;\n      ycL = i;\n    }\n    for (i = xcL + ycL, zc = []; i--; zc.push(0)) ;\n    base = dist_BASE;\n    sqrtBase = dist_SQRT_BASE;\n    for (i = ycL; --i >= 0; ) {\n      c = 0;\n      ylo = yc[i] % sqrtBase;\n      yhi = yc[i] / sqrtBase | 0;\n      for (k = xcL, j = i + k; j > i; ) {\n        xlo = xc[--k] % sqrtBase;\n        xhi = xc[k] / sqrtBase | 0;\n        m = yhi * xlo + xhi * ylo;\n        xlo = ylo * xlo + m % sqrtBase * sqrtBase + zc[j] + c;\n        c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\n        zc[j--] = xlo % base;\n      }\n      zc[j] = c;\n    }\n    if (c) {\n      ++e;\n    } else {\n      zc.splice(0, 1);\n    }\n    return normalise(y, zc, e);\n  };\n  P.negated = function() {\n    var x = new BigNumber2(this);\n    x.s = -x.s || null;\n    return x;\n  };\n  P.plus = function(y, b) {\n    var t, x = this, a = x.s;\n    y = new BigNumber2(y, b);\n    b = y.s;\n    if (!a || !b) return new BigNumber2(NaN);\n    if (a != b) {\n      y.s = -b;\n      return x.minus(y);\n    }\n    var xe = x.e / dist_LOG_BASE, ye = y.e / dist_LOG_BASE, xc = x.c, yc = y.c;\n    if (!xe || !ye) {\n      if (!xc || !yc) return new BigNumber2(a / 0);\n      if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber2(xc[0] ? x : a * 0);\n    }\n    xe = dist_bitFloor(xe);\n    ye = dist_bitFloor(ye);\n    xc = xc.slice();\n    if (a = xe - ye) {\n      if (a > 0) {\n        ye = xe;\n        t = yc;\n      } else {\n        a = -a;\n        t = xc;\n      }\n      t.reverse();\n      for (; a--; t.push(0)) ;\n      t.reverse();\n    }\n    a = xc.length;\n    b = yc.length;\n    if (a - b < 0) {\n      t = yc;\n      yc = xc;\n      xc = t;\n      b = a;\n    }\n    for (a = 0; b; ) {\n      a = (xc[--b] = xc[b] + yc[b] + a) / dist_BASE | 0;\n      xc[b] = dist_BASE === xc[b] ? 0 : xc[b] % dist_BASE;\n    }\n    if (a) {\n      xc = [a].concat(xc);\n      ++ye;\n    }\n    return normalise(y, xc, ye);\n  };\n  P.precision = P.sd = function(sd, rm) {\n    var c, n, v, x = this;\n    if (sd != null && sd !== !!sd) {\n      dist_intCheck(sd, 1, dist_MAX);\n      if (rm == null) rm = ROUNDING_MODE;\n      else dist_intCheck(rm, 0, 8);\n      return round(new BigNumber2(x), sd, rm);\n    }\n    if (!(c = x.c)) return null;\n    v = c.length - 1;\n    n = v * dist_LOG_BASE + 1;\n    if (v = c[v]) {\n      for (; v % 10 == 0; v /= 10, n--) ;\n      for (v = c[0]; v >= 10; v /= 10, n++) ;\n    }\n    if (sd && x.e + 1 > n) n = x.e + 1;\n    return n;\n  };\n  P.shiftedBy = function(k) {\n    dist_intCheck(k, -dist_MAX_SAFE_INTEGER, dist_MAX_SAFE_INTEGER);\n    return this.times(\"1e\" + k);\n  };\n  P.squareRoot = P.sqrt = function() {\n    var m, n, r, rep, t, x = this, c = x.c, s = x.s, e = x.e, dp = DECIMAL_PLACES + 4, half = new BigNumber2(\"0.5\");\n    if (s !== 1 || !c || !c[0]) {\n      return new BigNumber2(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\n    }\n    s = Math.sqrt(+valueOf(x));\n    if (s == 0 || s == 1 / 0) {\n      n = dist_coeffToString(c);\n      if ((n.length + e) % 2 == 0) n += \"0\";\n      s = Math.sqrt(+n);\n      e = dist_bitFloor((e + 1) / 2) - (e < 0 || e % 2);\n      if (s == 1 / 0) {\n        n = \"5e\" + e;\n      } else {\n        n = s.toExponential();\n        n = n.slice(0, n.indexOf(\"e\") + 1) + e;\n      }\n      r = new BigNumber2(n);\n    } else {\n      r = new BigNumber2(s + \"\");\n    }\n    if (r.c[0]) {\n      e = r.e;\n      s = e + dp;\n      if (s < 3) s = 0;\n      for (; ; ) {\n        t = r;\n        r = half.times(t.plus(div(x, t, dp, 1)));\n        if (dist_coeffToString(t.c).slice(0, s) === (n = dist_coeffToString(r.c)).slice(0, s)) {\n          if (r.e < e) --s;\n          n = n.slice(s - 3, s + 1);\n          if (n == \"9999\" || !rep && n == \"4999\") {\n            if (!rep) {\n              round(t, t.e + DECIMAL_PLACES + 2, 0);\n              if (t.times(t).eq(x)) {\n                r = t;\n                break;\n              }\n            }\n            dp += 4;\n            s += 4;\n            rep = 1;\n          } else {\n            if (!+n || !+n.slice(1) && n.charAt(0) == \"5\") {\n              round(r, r.e + DECIMAL_PLACES + 2, 1);\n              m = !r.times(r).eq(x);\n            }\n            break;\n          }\n        }\n      }\n    }\n    return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\n  };\n  P.toExponential = function(dp, rm) {\n    if (dp != null) {\n      dist_intCheck(dp, 0, dist_MAX);\n      dp++;\n    }\n    return format(this, dp, rm, 1);\n  };\n  P.toFixed = function(dp, rm) {\n    if (dp != null) {\n      dist_intCheck(dp, 0, dist_MAX);\n      dp = dp + this.e + 1;\n    }\n    return format(this, dp, rm);\n  };\n  P.toFormat = function(dp, rm, format2) {\n    var str, x = this;\n    if (format2 == null) {\n      if (dp != null && rm && typeof rm == \"object\") {\n        format2 = rm;\n        rm = null;\n      } else if (dp && typeof dp == \"object\") {\n        format2 = dp;\n        dp = rm = null;\n      } else {\n        format2 = FORMAT;\n      }\n    } else if (typeof format2 != \"object\") {\n      throw Error(dist_bignumberError + \"Argument not an object: \" + format2);\n    }\n    str = x.toFixed(dp, rm);\n    if (x.c) {\n      var i, arr = str.split(\".\"), g1 = +format2.groupSize, g2 = +format2.secondaryGroupSize, groupSeparator = format2.groupSeparator || \"\", intPart = arr[0], fractionPart = arr[1], isNeg = x.s < 0, intDigits = isNeg ? intPart.slice(1) : intPart, len = intDigits.length;\n      if (g2) {\n        i = g1;\n        g1 = g2;\n        g2 = i;\n        len -= i;\n      }\n      if (g1 > 0 && len > 0) {\n        i = len % g1 || g1;\n        intPart = intDigits.substr(0, i);\n        for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\n        if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\n        if (isNeg) intPart = \"-\" + intPart;\n      }\n      str = fractionPart ? intPart + (format2.decimalSeparator || \"\") + ((g2 = +format2.fractionGroupSize) ? fractionPart.replace(\n        new RegExp(\"\\\\d{\" + g2 + \"}\\\\B\", \"g\"),\n        \"$&\" + (format2.fractionGroupSeparator || \"\")\n      ) : fractionPart) : intPart;\n    }\n    return (format2.prefix || \"\") + str + (format2.suffix || \"\");\n  };\n  P.toFraction = function(md) {\n    var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s, x = this, xc = x.c;\n    if (md != null) {\n      n = new BigNumber2(md);\n      if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\n        throw Error(dist_bignumberError + \"Argument \" + (n.isInteger() ? \"out of range: \" : \"not an integer: \") + valueOf(n));\n      }\n    }\n    if (!xc) return new BigNumber2(x);\n    d = new BigNumber2(ONE);\n    n1 = d0 = new BigNumber2(ONE);\n    d1 = n0 = new BigNumber2(ONE);\n    s = dist_coeffToString(xc);\n    e = d.e = s.length - x.e - 1;\n    d.c[0] = dist_POWS_TEN[(exp = e % dist_LOG_BASE) < 0 ? dist_LOG_BASE + exp : exp];\n    md = !md || n.comparedTo(d) > 0 ? e > 0 ? d : n1 : n;\n    exp = MAX_EXP;\n    MAX_EXP = 1 / 0;\n    n = new BigNumber2(s);\n    n0.c[0] = 0;\n    for (; ; ) {\n      q = div(n, d, 0, 1);\n      d2 = d0.plus(q.times(d1));\n      if (d2.comparedTo(md) == 1) break;\n      d0 = d1;\n      d1 = d2;\n      n1 = n0.plus(q.times(d2 = n1));\n      n0 = d2;\n      d = n.minus(q.times(d2 = d));\n      n = d2;\n    }\n    d2 = div(md.minus(d0), d1, 0, 1);\n    n0 = n0.plus(d2.times(n1));\n    d0 = d0.plus(d2.times(d1));\n    n0.s = n1.s = x.s;\n    e = e * 2;\n    r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\n      div(n0, d0, e, ROUNDING_MODE).minus(x).abs()\n    ) < 1 ? [n1, d1] : [n0, d0];\n    MAX_EXP = exp;\n    return r;\n  };\n  P.toNumber = function() {\n    return +valueOf(this);\n  };\n  P.toPrecision = function(sd, rm) {\n    if (sd != null) dist_intCheck(sd, 1, dist_MAX);\n    return format(this, sd, rm, 2);\n  };\n  P.toString = function(b) {\n    var str, n = this, s = n.s, e = n.e;\n    if (e === null) {\n      if (s) {\n        str = \"Infinity\";\n        if (s < 0) str = \"-\" + str;\n      } else {\n        str = \"NaN\";\n      }\n    } else {\n      if (b == null) {\n        str = e <= TO_EXP_NEG || e >= TO_EXP_POS ? dist_toExponential(dist_coeffToString(n.c), e) : dist_toFixedPoint(dist_coeffToString(n.c), e, \"0\");\n      } else if (b === 10 && alphabetHasNormalDecimalDigits) {\n        n = round(new BigNumber2(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\n        str = dist_toFixedPoint(dist_coeffToString(n.c), n.e, \"0\");\n      } else {\n        dist_intCheck(b, 2, ALPHABET.length, \"Base\");\n        str = convertBase(dist_toFixedPoint(dist_coeffToString(n.c), e, \"0\"), 10, b, s, true);\n      }\n      if (s < 0 && n.c[0]) str = \"-\" + str;\n    }\n    return str;\n  };\n  P.valueOf = P.toJSON = function() {\n    return valueOf(this);\n  };\n  P._isBigNumber = true;\n  P[Symbol.toStringTag] = \"BigNumber\";\n  P[Symbol.for(\"nodejs.util.inspect.custom\")] = P.valueOf;\n  if (configObject != null) BigNumber2.set(configObject);\n  return BigNumber2;\n}\nfunction dist_bitFloor(n) {\n  var i = n | 0;\n  return n > 0 || n === i ? i : i - 1;\n}\nfunction dist_coeffToString(a) {\n  var s, z, i = 1, j = a.length, r = a[0] + \"\";\n  for (; i < j; ) {\n    s = a[i++] + \"\";\n    z = dist_LOG_BASE - s.length;\n    for (; z--; s = \"0\" + s) ;\n    r += s;\n  }\n  for (j = r.length; r.charCodeAt(--j) === 48; ) ;\n  return r.slice(0, j + 1 || 1);\n}\nfunction dist_compare(x, y) {\n  var a, b, xc = x.c, yc = y.c, i = x.s, j = y.s, k = x.e, l = y.e;\n  if (!i || !j) return null;\n  a = xc && !xc[0];\n  b = yc && !yc[0];\n  if (a || b) return a ? b ? 0 : -j : i;\n  if (i != j) return i;\n  a = i < 0;\n  b = k == l;\n  if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\n  if (!b) return k > l ^ a ? 1 : -1;\n  j = (k = xc.length) < (l = yc.length) ? k : l;\n  for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\n  return k == l ? 0 : k > l ^ a ? 1 : -1;\n}\nfunction dist_intCheck(n, min, max, name) {\n  if (n < min || n > max || n !== dist_mathfloor(n)) {\n    throw Error(dist_bignumberError + (name || \"Argument\") + (typeof n == \"number\" ? n < min || n > max ? \" out of range: \" : \" not an integer: \" : \" not a primitive number: \") + String(n));\n  }\n}\nfunction dist_isOdd(n) {\n  var k = n.c.length - 1;\n  return dist_bitFloor(n.e / dist_LOG_BASE) == k && n.c[k] % 2 != 0;\n}\nfunction dist_toExponential(str, e) {\n  return (str.length > 1 ? str.charAt(0) + \".\" + str.slice(1) : str) + (e < 0 ? \"e\" : \"e+\") + e;\n}\nfunction dist_toFixedPoint(str, e, z) {\n  var len, zs;\n  if (e < 0) {\n    for (zs = z + \".\"; ++e; zs += z) ;\n    str = zs + str;\n  } else {\n    len = str.length;\n    if (++e > len) {\n      for (zs = z, e -= len; --e; zs += z) ;\n      str += zs;\n    } else if (e < len) {\n      str = str.slice(0, e) + \".\" + str.slice(e);\n    }\n  }\n  return str;\n}\nvar dist_BigNumber = dist_clone();\nvar bignumber_default = dist_BigNumber;\n\n// src/mesh-tx-builder/index.ts\n\n\n\n// src/mesh-tx-builder/coin-selection/cardano-sdk-adapter.ts\n\n\n\n\nvar FAKE_ADDRESS = \"01beffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeefbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeffbeef\";\nvar BuilderCallbacksSdkBridge = class {\n  builderCallback;\n  utxoMap;\n  usedUtxos;\n  constructor(builderCallbacks, utxoMap, usedUtxos) {\n    this.builderCallback = builderCallbacks;\n    this.utxoMap = utxoMap;\n    this.usedUtxos = usedUtxos;\n  }\n  computeMinimumCoinQuantity = (output) => {\n    return this.builderCallback.computeMinimumCoinQuantity(\n      CSDKOutputToMeshOutput(output)\n    );\n  };\n  computeMinimumCost = async (selectionSkeleton) => {\n    const costs = await this.builderCallback.computeMinimumCost({\n      newInputs: this.getNewInputs(selectionSkeleton),\n      newOutputs: /* @__PURE__ */ new Set(),\n      change: selectionSkeleton.change.map(\n        (output) => CSDKOutputToMeshOutput(output)\n      ),\n      fee: selectionSkeleton.fee\n    });\n    return {\n      fee: costs.fee,\n      redeemers: costs.redeemers?.map(meshActionToCSDKRedeemer)\n    };\n  };\n  computeSelectionLimit = async (selectionSkeleton) => {\n    const maxSizeExceed = await this.builderCallback.maxSizeExceed({\n      newInputs: this.getNewInputs(selectionSkeleton),\n      newOutputs: /* @__PURE__ */ new Set(),\n      change: selectionSkeleton.change.map(\n        (output) => CSDKOutputToMeshOutput(output)\n      ),\n      fee: selectionSkeleton.fee\n    });\n    return maxSizeExceed ? selectionSkeleton.inputs.size - 1 : selectionSkeleton.inputs.size + 1;\n  };\n  tokenBundleSizeExceedsLimit = (tokenBundle) => {\n    return this.builderCallback.tokenBundleSizeExceedsLimit(\n      CSDKTokenMapToMeshAssets(tokenBundle)\n    );\n  };\n  getNewInputs = (selectionSkeleton) => {\n    const newInputs = /* @__PURE__ */ new Set();\n    for (const input of selectionSkeleton.inputs) {\n      const utxoId = `${input[0].txId}#${input[0].index}`;\n      if (this.usedUtxos.has(utxoId)) {\n        continue;\n      }\n      const originalUtxo = this.utxoMap.get(utxoId);\n      if (!originalUtxo) {\n        throw new Error(`Missing required UTxO: ${utxoId}`);\n      }\n      newInputs.add(originalUtxo);\n    }\n    return newInputs;\n  };\n};\nvar CardanoSdkInputSelector = class {\n  constraints;\n  constructor(constraints) {\n    this.constraints = constraints;\n  }\n  async select(preselectedUtxos, outputs, implicitValue, utxos, changeAddress) {\n    const utxoMap = /* @__PURE__ */ new Map();\n    for (const utxo of utxos) {\n      utxoMap.set(`${utxo.input.txHash}#${utxo.input.outputIndex}`, utxo);\n    }\n    const aggregatedTxOut = makeAggregatedCSDKOOutput(outputs);\n    const aggregatedOuts = /* @__PURE__ */ new Set();\n    if (aggregatedTxOut) {\n      aggregatedOuts.add(aggregatedTxOut);\n    }\n    const preselectedUtoxsCSDK = new Set(\n      preselectedUtxos.map(meshTxInToCSDKUtxo)\n    );\n    const utxoxCSDK = utxos.map(meshUtxoToCSDKUtxo);\n    const selector = roundRobinRandomImprove({\n      changeAddressResolver: new StaticChangeAddressResolver(changeAddress)\n    });\n    const usedUtxos = /* @__PURE__ */ new Set();\n    for (const utxo of preselectedUtxos) {\n      usedUtxos.add(`${utxo.txIn.txHash}#${utxo.txIn.txIndex}`);\n    }\n    const builderCallbacksBridge = new BuilderCallbacksSdkBridge(\n      this.constraints,\n      utxoMap,\n      usedUtxos\n    );\n    const selectResult = await selector.select({\n      preSelectedUtxo: preselectedUtoxsCSDK,\n      utxo: new Set(utxoxCSDK),\n      outputs: aggregatedOuts,\n      constraints: builderCallbacksBridge,\n      implicitValue: meshImplicitCoinToCSDKImplicitCoins(implicitValue)\n    });\n    const newInputs = /* @__PURE__ */ new Set();\n    for (const input of selectResult.selection.inputs) {\n      const utxoId = `${input[0].txId}#${input[0].index}`;\n      if (!usedUtxos.has(utxoId)) {\n        const originalUtxo = utxoMap.get(utxoId);\n        if (!originalUtxo) {\n          throw new Error(`Missing required UTxO: ${utxoId}`);\n        }\n        newInputs.add(originalUtxo);\n      }\n    }\n    return {\n      newInputs,\n      newOutputs: /* @__PURE__ */ new Set(),\n      change: selectResult.selection.change.map(CSDKOutputToMeshOutput),\n      fee: selectResult.selection.fee,\n      redeemers: selectResult.redeemers?.map(CSDKRedeemerToMeshAction)\n    };\n  }\n};\nvar StaticChangeAddressResolver = class {\n  changeAddress;\n  constructor(changeAddress) {\n    this.changeAddress = changeAddress;\n  }\n  resolve = async (selection) => {\n    return selection.change.map((txOut) => ({\n      ...txOut,\n      address: this.changeAddress\n    }));\n  };\n};\nvar meshTxInToCSDKUtxo = (txIn) => {\n  return [\n    {\n      txId: txIn.txIn.txHash,\n      index: txIn.txIn.txIndex,\n      address: txIn.txIn.address\n    },\n    {\n      address: txIn.txIn.address,\n      value: meshAssetsToCSDKValue(txIn.txIn.amount)\n    }\n  ];\n};\nvar meshUtxoToCSDKUtxo = (utxo) => {\n  return [\n    {\n      txId: utxo.input.txHash,\n      index: utxo.input.outputIndex,\n      address: utxo.output.address\n    },\n    {\n      address: utxo.output.address,\n      value: meshAssetsToCSDKValue(utxo.output.amount),\n      datumHash: meshDataHashToCSDKDataHash(utxo.output.dataHash),\n      datum: meshDatumToCSDKDatum(utxo.output.plutusData),\n      scriptReference: meshScriptReferenceToCSDKScriptReference(\n        utxo.output.scriptRef\n      )\n    }\n  ];\n};\nvar meshScriptReferenceToCSDKScriptReference = (scriptReference) => {\n  if (!scriptReference) {\n    return void 0;\n  }\n  return Script.fromCbor(scriptReference).toCore();\n};\nvar meshDatumToCSDKDatum = (datum) => {\n  if (!datum) {\n    return void 0;\n  }\n  return PlutusData.fromCbor(datum).toCore();\n};\nvar meshDataHashToCSDKDataHash = (hash) => {\n  if (!hash) {\n    return void 0;\n  }\n  return hash;\n};\nvar meshAssetsToCSDKValue = (assets) => {\n  if (!assets) {\n    throw new Error(\n      \"Missing required assets. Be sure that you resolve all required UTxOs\"\n    );\n  }\n  let lovelace = 0n;\n  const sdkAssets = /* @__PURE__ */ new Map();\n  for (const asset of assets) {\n    if (asset.unit === \"lovelace\" || asset.unit === \"\") {\n      lovelace = BigInt(asset.quantity);\n    } else {\n      const assetId = asset.unit;\n      sdkAssets.set(assetId, BigInt(asset.quantity));\n    }\n  }\n  if (sdkAssets.size === 0) {\n    return { coins: lovelace };\n  }\n  return {\n    coins: lovelace,\n    assets: sdkAssets\n  };\n};\nvar meshAssetsToCSDKAssets = (assets) => {\n  if (!assets) {\n    return void 0;\n  }\n  const sdkAssets = /* @__PURE__ */ new Map();\n  for (const asset of assets) {\n    if (asset.unit === \"lovelace\" || asset.unit === \"\") {\n      throw new Error(\"Unexpected lovelace asset in assets\");\n    } else {\n      const assetId = asset.unit;\n      sdkAssets.set(assetId, BigInt(asset.quantity));\n    }\n  }\n  return sdkAssets;\n};\nvar CSDKOutputToMeshOutput = (output) => {\n  const amount = CSDKValueToMeshAssets(output.value);\n  return {\n    address: output.address,\n    amount\n  };\n};\nvar CSDKValueToMeshAssets = (value) => {\n  const assets = [];\n  if (value.coins !== 0n) {\n    assets.push({\n      unit: \"lovelace\",\n      quantity: value.coins.toString()\n    });\n  }\n  if (value.assets) {\n    for (const [assetId, quantity] of value.assets) {\n      assets.push({\n        unit: assetId,\n        quantity: quantity.toString()\n      });\n    }\n  }\n  return assets;\n};\nvar CSDKTokenMapToMeshAssets = (tokenMap) => {\n  if (!tokenMap) {\n    return void 0;\n  }\n  const assets = [];\n  for (const [assetId, quantity] of tokenMap) {\n    assets.push({\n      unit: assetId,\n      quantity: quantity.toString()\n    });\n  }\n  return assets;\n};\nvar makeAggregatedCSDKOOutput = (outputs) => {\n  let totalAssets = /* @__PURE__ */ new Map();\n  for (const output of outputs) {\n    totalAssets = sumAssets(totalAssets, output.amount);\n  }\n  if (totalAssets.size === 0) {\n    return void 0;\n  }\n  return {\n    address: FAKE_ADDRESS,\n    value: assetsMapToCSDKValue(totalAssets)\n  };\n};\nvar assetsMapToCSDKValue = (assets) => {\n  let lovelace = 0n;\n  const sdkAssets = /* @__PURE__ */ new Map();\n  for (const [unit, quantity] of assets) {\n    if (unit === \"lovelace\" || unit === \"\") {\n      lovelace = BigInt(quantity);\n    } else {\n      const assetId = unit;\n      sdkAssets.set(assetId, BigInt(quantity));\n    }\n  }\n  if (sdkAssets.size === 0) {\n    return { coins: lovelace };\n  }\n  return {\n    coins: lovelace,\n    assets: sdkAssets\n  };\n};\nvar sumAssets = (a, b) => {\n  for (const asset of b) {\n    const currentAmount = a.get(asset.unit) ?? 0n;\n    a.set(asset.unit, currentAmount + BigInt(asset.quantity));\n  }\n  return a;\n};\nvar meshImplicitCoinToCSDKImplicitCoins = (implicitCoins) => {\n  if (!implicitCoins) {\n    return void 0;\n  }\n  const mint = meshAssetsToCSDKAssets(implicitCoins.mint);\n  const totalInput = implicitCoins.deposit + implicitCoins.withdrawals;\n  const CSKDImplicitCoin = {\n    withdrawals: implicitCoins.withdrawals,\n    input: totalInput,\n    deposit: implicitCoins.deposit,\n    reclaimDeposit: implicitCoins.reclaimDeposit\n  };\n  return {\n    coin: CSKDImplicitCoin,\n    mint\n  };\n};\nvar meshActionToCSDKRedeemer = (action) => {\n  return {\n    purpose: meshRedeemerTagToCSDKRedeemerTag(action.tag),\n    index: action.index,\n    executionUnits: {\n      steps: action.budget.steps,\n      memory: action.budget.mem\n    },\n    data: 0n\n  };\n};\nvar CSDKRedeemerToMeshAction = (redeemer) => {\n  return {\n    tag: CSDKRedeemerTagToMeshRedeemerTag(redeemer.purpose),\n    index: redeemer.index,\n    budget: {\n      steps: redeemer.executionUnits.steps,\n      mem: redeemer.executionUnits.memory\n    }\n  };\n};\nvar meshRedeemerTagToCSDKRedeemerTag = (tag) => {\n  switch (tag) {\n    case \"SPEND\":\n      return RedeemerPurpose.spend;\n    case \"MINT\":\n      return RedeemerPurpose.mint;\n    case \"CERT\":\n      return RedeemerPurpose.certificate;\n    case \"REWARD\":\n      return RedeemerPurpose.withdrawal;\n    case \"PROPOSE\":\n      return RedeemerPurpose.propose;\n    case \"VOTE\":\n      return RedeemerPurpose.vote;\n  }\n};\nvar CSDKRedeemerTagToMeshRedeemerTag = (tag) => {\n  switch (tag) {\n    case RedeemerPurpose.spend:\n      return \"SPEND\";\n    case RedeemerPurpose.mint:\n      return \"MINT\";\n    case RedeemerPurpose.certificate:\n      return \"CERT\";\n    case RedeemerPurpose.withdrawal:\n      return \"REWARD\";\n    case RedeemerPurpose.propose:\n      return \"PROPOSE\";\n    case RedeemerPurpose.vote:\n      return \"VOTE\";\n  }\n};\n\n// src/mesh-tx-builder/tx-builder-core.ts\n\n\n\n\n// src/utils/metadata.ts\n\nvar metadataObjToMap = (metadata) => {\n  if (typeof metadata === \"bigint\") {\n    return metadata;\n  } else if (typeof metadata === \"string\") {\n    return metadata;\n  } else if (typeof metadata === \"number\") {\n    return metadata;\n  } else if (metadata instanceof Uint8Array) {\n    return metadata;\n  } else if (Array.isArray(metadata)) {\n    return metadata.map(metadataObjToMap);\n  } else if (metadata && typeof metadata === \"object\") {\n    const map = /* @__PURE__ */ new Map();\n    if (metadata instanceof Map) {\n      metadata.forEach((value, key) => {\n        map.set(metadataObjToMap(key), metadataObjToMap(value));\n      });\n    } else {\n      Object.entries(metadata).forEach(([key, value]) => {\n        map.set(metadataObjToMap(key), metadataObjToMap(value));\n      });\n    }\n    return map;\n  } else {\n    throw new Error(\"Metadata map conversion: Unsupported metadata type\");\n  }\n};\nvar mergeContents = (a, b, currentDepth) => {\n  if (currentDepth <= 0) {\n    return b;\n  }\n  if (a instanceof Map && b instanceof Map) {\n    b.forEach((value, key) => {\n      if (a.has(key)) {\n        a.set(\n          key,\n          mergeContents(a.get(key), value, currentDepth - 1)\n        );\n      } else {\n        a.set(key, value);\n      }\n    });\n    return a;\n  } else if (Array.isArray(a) && Array.isArray(b)) {\n    return [...a, ...b];\n  }\n  if ((typeof a === \"number\" || typeof a === \"bigint\" || typeof a === \"string\" || a instanceof Uint8Array) && (typeof b === \"number\" || typeof b === \"bigint\" || typeof b === \"string\" || b instanceof Uint8Array)) {\n    if (typeof a === typeof b) {\n      if (a === b) {\n        return b;\n      }\n      if (a instanceof Uint8Array && b instanceof Uint8Array && areUint8ArraysEqual(a, b)) {\n        return b;\n      }\n    }\n    throw new Error(\n      `Tx metadata merge error: cannot merge ${json_bigint.stringify(a)} with ${json_bigint.stringify(b)}`\n    );\n  }\n  throw new Error(\n    `Tx metadata merge error: cannot merge ${getMetadatumType(a)} type with ${getMetadatumType(b)} type`\n  );\n};\nvar getMetadatumType = (a) => {\n  if (a instanceof Map) return \"map\";\n  if (Array.isArray(a)) return \"array\";\n  return \"primitive\";\n};\nvar areUint8ArraysEqual = (a, b) => {\n  if (a.length !== b.length) {\n    return false;\n  }\n  for (let i = 0; i < a.length; i++) {\n    if (a[i] !== b[i]) {\n      return false;\n    }\n  }\n  return true;\n};\n\n// src/mesh-tx-builder/tx-builder-core.ts\nvar MeshTxBuilderCore = class {\n  txEvaluationMultiplier = 1.1;\n  txOutput;\n  addingPlutusScriptInput = false;\n  plutusSpendingScriptVersion;\n  addingPlutusMint = false;\n  plutusMintingScriptVersion;\n  addingPlutusWithdrawal = false;\n  plutusWithdrawalScriptVersion;\n  addingPlutusVote = false;\n  plutusVoteScriptVersion;\n  _protocolParams = DEFAULT_PROTOCOL_PARAMETERS;\n  mintItem;\n  txInQueueItem;\n  withdrawalItem;\n  voteItem;\n  collateralQueueItem;\n  refScriptTxInQueueItem;\n  meshTxBuilderBody;\n  constructor() {\n    this.meshTxBuilderBody = emptyTxBuilderBody();\n  }\n  /**\n   * Set the input for transaction\n   * @param txHash The transaction hash of the input UTxO\n   * @param txIndex The transaction index of the input UTxO\n   * @param amount The asset amount of index of the input UTxO\n   * @param address The address of the input UTxO\n   * @param scriptSize The size of the ref script at this input (if there isn't one, explicitly put 0 as scriptSize for offline tx building)\n   * @returns The MeshTxBuilder instance\n   */\n  txIn = (txHash, txIndex, amount, address, scriptSize) => {\n    if (this.txInQueueItem) {\n      this.queueInput();\n    }\n    if (!this.addingPlutusScriptInput) {\n      this.txInQueueItem = {\n        type: \"PubKey\",\n        txIn: {\n          txHash,\n          txIndex,\n          amount,\n          address,\n          scriptSize\n        }\n      };\n    } else {\n      this.txInQueueItem = {\n        type: \"Script\",\n        txIn: {\n          txHash,\n          txIndex,\n          amount,\n          address,\n          scriptSize\n        },\n        scriptTxIn: {}\n      };\n    }\n    this.addingPlutusScriptInput = false;\n    return this;\n  };\n  /**\n   * Set the script for transaction input\n   * @param {string} scriptCbor The CborHex of the script\n   * @param version Optional - The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  txInScript = (scriptCbor) => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"PubKey\") {\n      this.txInQueueItem = {\n        type: \"SimpleScript\",\n        txIn: this.txInQueueItem.txIn,\n        simpleScriptTxIn: {\n          scriptSource: {\n            type: \"Provided\",\n            scriptCode: scriptCbor\n          }\n        }\n      };\n    }\n    if (this.txInQueueItem.type === \"Script\") {\n      this.txInQueueItem.scriptTxIn.scriptSource = {\n        type: \"Provided\",\n        script: {\n          code: scriptCbor,\n          version: this.plutusSpendingScriptVersion || \"V2\"\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the input datum for transaction input\n   * @param datum The datum in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The datum type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @returns The MeshTxBuilder instance\n   */\n  txInDatumValue = (datum, type = \"Mesh\") => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"PubKey\")\n      throw Error(\"Datum value attempted to be called a non script input\");\n    if (this.txInQueueItem.type === \"SimpleScript\")\n      throw Error(\n        \"Datum value attempted to be called on a simple script input\"\n      );\n    let content = datum;\n    if (type === \"JSON\") {\n      content = this.castRawDataToJsonString(datum);\n    }\n    if (type === \"Mesh\") {\n      this.txInQueueItem.scriptTxIn.datumSource = {\n        type: \"Provided\",\n        data: {\n          type,\n          content: datum\n        }\n      };\n      return this;\n    }\n    this.txInQueueItem.scriptTxIn.datumSource = {\n      type: \"Provided\",\n      data: {\n        type,\n        content\n      }\n    };\n    return this;\n  };\n  /**\n   * Tell the transaction builder that the input UTxO has inlined datum\n   * @returns The MeshTxBuilder instance\n   */\n  txInInlineDatumPresent = () => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"PubKey\")\n      throw Error(\n        \"Inline datum present attempted to be called a non script input\"\n      );\n    if (this.txInQueueItem.type === \"SimpleScript\")\n      throw Error(\n        \"Inline datum present attempted to be called on a simple script input\"\n      );\n    const { txHash, txIndex } = this.txInQueueItem.txIn;\n    if (txHash && txIndex.toString()) {\n      this.txInQueueItem.scriptTxIn.datumSource = {\n        type: \"Inline\",\n        txHash,\n        txIndex\n      };\n    }\n    return this;\n  };\n  /**\n   * Native script - Set the reference input where it would also be spent in the transaction\n   * @param txHash The transaction hash of the reference UTxO\n   * @param txIndex The transaction index of the reference UTxO\n   * @param spendingScriptHash The script hash of the spending script\n   * @returns The MeshTxBuilder instance\n   */\n  simpleScriptTxInReference = (txHash, txIndex, spendingScriptHash, scriptSize) => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"Script\") {\n      throw Error(\n        \"simpleScriptTxInReference called on a plutus script, use spendingTxInReference instead\"\n      );\n    }\n    if (this.txInQueueItem.type === \"SimpleScript\") {\n      throw Error(\n        \"simpleScriptTxInReference called on a native script input that already has a script defined\"\n      );\n    }\n    if (this.txInQueueItem.type === \"PubKey\") {\n      this.txInQueueItem = {\n        type: \"SimpleScript\",\n        txIn: this.txInQueueItem.txIn,\n        simpleScriptTxIn: {\n          scriptSource: {\n            type: \"Inline\",\n            txHash,\n            txIndex,\n            simpleScriptHash: spendingScriptHash,\n            scriptSize\n          }\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the redeemer for the reference input to be spent in same transaction\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  txInRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"PubKey\")\n      throw Error(\n        \"Spending tx in reference redeemer attempted to be called a non script input\"\n      );\n    if (this.txInQueueItem.type === \"SimpleScript\")\n      throw Error(\n        \"Spending tx in reference redeemer attempted to be called on a simple script input\"\n      );\n    this.txInQueueItem.scriptTxIn.redeemer = this.castBuilderDataToRedeemer(\n      redeemer,\n      type,\n      exUnits\n    );\n    return this;\n  };\n  /**\n   * Set the output for transaction\n   * @param {string} address The recipient of the output\n   * @param {Asset[]} amount The amount of other native assets attached with UTxO\n   * @returns The MeshTxBuilder instance\n   */\n  txOut = (address, amount) => {\n    if (this.txOutput) {\n      this.meshTxBuilderBody.outputs.push(this.txOutput);\n      this.txOutput = void 0;\n    }\n    this.txOutput = {\n      address,\n      amount\n    };\n    return this;\n  };\n  /**\n   * Set the output datum hash for transaction\n   * @param datum The datum in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The datum type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @returns The MeshTxBuilder instance\n   */\n  txOutDatumHashValue = (datum, type = \"Mesh\") => {\n    let content = datum;\n    if (this.txOutput) {\n      if (type === \"Mesh\") {\n        this.txOutput.datum = {\n          type: \"Hash\",\n          data: {\n            type,\n            content\n          }\n        };\n        return this;\n      }\n      if (type === \"JSON\") {\n        content = this.castRawDataToJsonString(datum);\n      }\n      this.txOutput.datum = {\n        type: \"Hash\",\n        data: {\n          type,\n          content\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the output inline datum for transaction\n   * @param datum The datum in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The datum type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @returns The MeshTxBuilder instance\n   */\n  txOutInlineDatumValue = (datum, type = \"Mesh\") => {\n    let content = datum;\n    if (this.txOutput) {\n      if (type === \"Mesh\") {\n        this.txOutput.datum = {\n          type: \"Inline\",\n          data: {\n            type,\n            content\n          }\n        };\n        return this;\n      }\n      if (type === \"JSON\") {\n        content = this.castRawDataToJsonString(datum);\n      }\n      this.txOutput.datum = {\n        type: \"Inline\",\n        data: {\n          type,\n          content\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the output embed datum for transaction\n   * @param datum The datum in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The datum type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @returns The MeshTxBuilder instance\n   */\n  txOutDatumEmbedValue = (datum, type = \"Mesh\") => {\n    let content = datum;\n    if (this.txOutput) {\n      if (type === \"Mesh\") {\n        this.txOutput.datum = {\n          type: \"Embedded\",\n          data: {\n            type,\n            content\n          }\n        };\n        return this;\n      }\n      if (type === \"JSON\") {\n        content = this.castRawDataToJsonString(datum);\n      }\n      this.txOutput.datum = {\n        type: \"Embedded\",\n        data: {\n          type,\n          content\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the reference script to be attached with the output\n   * @param scriptCbor The CBOR hex of the script to be attached to UTxO as reference script\n   * @param version Optional - The Plutus script version. Default to be V3 (Plutus V3)\n   * @returns The MeshTxBuilder instance\n   */\n  txOutReferenceScript = (scriptCbor, version = \"V3\") => {\n    if (this.txOutput) {\n      this.txOutput.referenceScript = { code: scriptCbor, version };\n    }\n    return this;\n  };\n  /**\n   * Set the reference script to be attached with the output\n   * @param languageVersion The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  spendingPlutusScript = (languageVersion) => {\n    this.addingPlutusScriptInput = true;\n    this.plutusSpendingScriptVersion = languageVersion;\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V1 Plutus spending scripts\n   * @returns The MeshTxBuilder instance\n   */\n  spendingPlutusScriptV1 = () => {\n    this.addingPlutusScriptInput = true;\n    this.plutusSpendingScriptVersion = \"V1\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V2 Plutus spending scripts\n   * @returns The MeshTxBuilder instance\n   */\n  spendingPlutusScriptV2 = () => {\n    this.addingPlutusScriptInput = true;\n    this.plutusSpendingScriptVersion = \"V2\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V3 Plutus spending scripts\n   * @returns The MeshTxBuilder instance\n   */\n  spendingPlutusScriptV3 = () => {\n    this.addingPlutusScriptInput = true;\n    this.plutusSpendingScriptVersion = \"V3\";\n    return this;\n  };\n  /**\n   * Set the reference input where it would also be spent in the transaction\n   * @param txHash The transaction hash of the reference UTxO\n   * @param txIndex The transaction index of the reference UTxO\n   * @param scriptSize The script size in bytes of the spending script (can be obtained by script hex length / 2)\n   * @param scriptHash The script hash of the spending script\n   * @returns The MeshTxBuilder instance\n   */\n  spendingTxInReference = (txHash, txIndex, scriptSize, scriptHash) => {\n    if (!this.txInQueueItem) throw Error(\"Undefined input\");\n    if (this.txInQueueItem.type === \"PubKey\")\n      throw Error(\n        \"Spending tx in reference attempted to be called a non script input\"\n      );\n    if (this.txInQueueItem.type === \"SimpleScript\")\n      throw Error(\n        \"Spending tx in reference attempted to be called on a simple script input\"\n      );\n    this.txInQueueItem.scriptTxIn.scriptSource = {\n      type: \"Inline\",\n      txHash,\n      txIndex,\n      scriptHash,\n      version: this.plutusSpendingScriptVersion || \"V2\",\n      scriptSize\n    };\n    return this;\n  };\n  /**\n   * [Alias of txInInlineDatumPresent] Set the instruction that the reference input has inline datum\n   * @returns The MeshTxBuilder instance\n   */\n  // Unsure how this is different from the --tx-in-inline-datum-present flag\n  // It seems to just be different based on if the script is a reference input\n  spendingReferenceTxInInlineDatumPresent = () => {\n    this.txInInlineDatumPresent();\n    return this;\n  };\n  /**\n   * [Alias of txInRedeemerValue] Set the redeemer for the reference input to be spent in same transaction\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  spendingReferenceTxInRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    this.txInRedeemerValue(redeemer, type, exUnits);\n    return this;\n  };\n  /**\n   * Specify a read only reference input. This reference input is not witnessing anything it is simply provided in the plutus script context.\n   * @param txHash The transaction hash of the reference UTxO\n   * @param txIndex The transaction index of the reference UTxO\n   * @returns The MeshTxBuilder instance\n   */\n  readOnlyTxInReference = (txHash, txIndex, scriptSize) => {\n    this.meshTxBuilderBody.referenceInputs.push({\n      txHash,\n      txIndex,\n      scriptSize\n    });\n    return this;\n  };\n  /**\n   * Set the minting script for the current mint\n   * @param languageVersion The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  mintPlutusScript = (languageVersion) => {\n    this.addingPlutusMint = true;\n    this.plutusMintingScriptVersion = languageVersion;\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V1 Plutus minting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  mintPlutusScriptV1 = () => {\n    this.addingPlutusMint = true;\n    this.plutusMintingScriptVersion = \"V1\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V2 Plutus minting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  mintPlutusScriptV2 = () => {\n    this.addingPlutusMint = true;\n    this.plutusMintingScriptVersion = \"V2\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V3 Plutus minting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  mintPlutusScriptV3 = () => {\n    this.addingPlutusMint = true;\n    this.plutusMintingScriptVersion = \"V3\";\n    return this;\n  };\n  /**\n   * Set the minting value of transaction\n   * @param quantity The quantity of asset to be minted\n   * @param policy The policy id of the asset to be minted\n   * @param name The hex of token name of the asset to be minted\n   * @returns The MeshTxBuilder instance\n   */\n  mint = (quantity, policy, name) => {\n    if (this.mintItem) {\n      this.queueMint();\n    }\n    this.mintItem = {\n      type: this.addingPlutusMint ? \"Plutus\" : \"Native\",\n      policyId: policy,\n      assetName: name,\n      amount: quantity\n    };\n    this.addingPlutusMint = false;\n    return this;\n  };\n  /**\n   * Set the minting script of current mint\n   * @param scriptCBOR The CBOR hex of the minting policy script\n   * @param version Optional - The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  mintingScript = (scriptCBOR) => {\n    if (!this.mintItem) throw Error(\"Undefined mint\");\n    if (!this.mintItem.type) throw Error(\"Mint information missing\");\n    if (this.mintItem.type === \"Native\") {\n      this.mintItem.scriptSource = {\n        type: \"Provided\",\n        scriptCode: scriptCBOR\n      };\n    }\n    if (this.mintItem.type === \"Plutus\") {\n      this.mintItem.scriptSource = {\n        type: \"Provided\",\n        script: {\n          code: scriptCBOR,\n          version: this.plutusMintingScriptVersion || \"V2\"\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Use reference script for minting\n   * @param txHash The transaction hash of the UTxO\n   * @param txIndex The transaction index of the UTxO\n   * @param scriptSize The script size in bytes of the script (can be obtained by script hex length / 2)\n   * @param scriptHash The script hash of the script\n   * @returns The MeshTxBuilder instance\n   */\n  mintTxInReference = (txHash, txIndex, scriptSize, scriptHash) => {\n    if (!this.mintItem) throw Error(\"Undefined mint\");\n    if (!this.mintItem.type) throw Error(\"Mint information missing\");\n    if (this.mintItem.type == \"Native\") {\n      throw Error(\n        \"Mint tx in reference can only be used on plutus script tokens\"\n      );\n    }\n    if (!this.mintItem.policyId)\n      throw Error(\"PolicyId information missing from mint asset\");\n    this.mintItem.scriptSource = {\n      type: \"Inline\",\n      txHash,\n      txIndex,\n      version: this.plutusMintingScriptVersion,\n      scriptSize,\n      scriptHash\n    };\n    return this;\n  };\n  /**\n   * Set the redeemer for minting\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  mintReferenceTxInRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    if (!this.mintItem) throw Error(\"Undefined mint\");\n    if (this.mintItem.type == \"Native\") {\n      throw Error(\n        \"Mint tx in reference can only be used on plutus script tokens\"\n      );\n    } else if (this.mintItem.type == \"Plutus\") {\n      if (!this.mintItem.policyId)\n        throw Error(\"PolicyId information missing from mint asset\");\n    }\n    this.mintItem.redeemer = this.castBuilderDataToRedeemer(\n      redeemer,\n      type,\n      exUnits\n    );\n    return this;\n  };\n  /**\n   * Set the redeemer for the reference input to be spent in same transaction\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  mintRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    this.mintReferenceTxInRedeemerValue(redeemer, type, exUnits);\n    return this;\n  };\n  /**\n   * Set the required signer of the transaction\n   * @param pubKeyHash The PubKeyHash of the required signer\n   * @returns The MeshTxBuilder instance\n   */\n  requiredSignerHash = (pubKeyHash) => {\n    this.meshTxBuilderBody.requiredSignatures.push(pubKeyHash);\n    return this;\n  };\n  /**\n   * Set the collateral UTxO for the transaction\n   * @param txHash The transaction hash of the collateral UTxO\n   * @param txIndex The transaction index of the collateral UTxO\n   * @param amount The asset amount of index of the collateral UTxO\n   * @param address The address of the collateral UTxO\n   * @returns The MeshTxBuilder instance\n   */\n  txInCollateral = (txHash, txIndex, amount, address) => {\n    if (this.collateralQueueItem) {\n      this.meshTxBuilderBody.collaterals.push(this.collateralQueueItem);\n    }\n    this.collateralQueueItem = {\n      type: \"PubKey\",\n      txIn: {\n        txHash,\n        txIndex,\n        amount,\n        address\n      }\n    };\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V1 Plutus withdrawal scripts\n   * @param languageVersion The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalPlutusScript = (languageVersion) => {\n    this.addingPlutusWithdrawal = true;\n    this.plutusWithdrawalScriptVersion = languageVersion;\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using a Plutus withdrawal scripts\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalPlutusScriptV1 = () => {\n    this.addingPlutusWithdrawal = true;\n    this.plutusWithdrawalScriptVersion = \"V1\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V2 Plutus withdrawal scripts\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalPlutusScriptV2 = () => {\n    this.addingPlutusWithdrawal = true;\n    this.plutusWithdrawalScriptVersion = \"V2\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V3 Plutus withdrawal scripts\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalPlutusScriptV3 = () => {\n    this.addingPlutusWithdrawal = true;\n    this.plutusWithdrawalScriptVersion = \"V3\";\n    return this;\n  };\n  /**\n   * Withdraw stake rewards in the MeshTxBuilder instance\n   * @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)\n   * @param coin The amount of lovelaces in the withdrawal\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawal = (rewardAddress, coin) => {\n    if (this.withdrawalItem) {\n      this.queueWithdrawal();\n    }\n    if (this.addingPlutusWithdrawal) {\n      const withdrawal2 = {\n        type: \"ScriptWithdrawal\",\n        address: rewardAddress,\n        coin\n      };\n      this.withdrawalItem = withdrawal2;\n      this.addingPlutusWithdrawal = false;\n      return this;\n    }\n    const withdrawal = {\n      type: \"PubKeyWithdrawal\",\n      address: rewardAddress,\n      coin\n    };\n    this.withdrawalItem = withdrawal;\n    return this;\n  };\n  /**\n   * Add a withdrawal script to the MeshTxBuilder instance\n   * @param scriptCbor The script in CBOR format\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalScript = (scriptCbor) => {\n    if (!this.withdrawalItem)\n      throw Error(\"withdrawalScript: Undefined withdrawal\");\n    if (this.withdrawalItem.type === \"PubKeyWithdrawal\") {\n      this.withdrawalItem = {\n        type: \"SimpleScriptWithdrawal\",\n        address: this.withdrawalItem.address,\n        coin: this.withdrawalItem.coin,\n        scriptSource: {\n          type: \"Provided\",\n          scriptCode: scriptCbor\n        }\n      };\n    } else {\n      this.withdrawalItem.scriptSource = {\n        type: \"Provided\",\n        script: {\n          code: scriptCbor,\n          version: this.plutusWithdrawalScriptVersion || \"V2\"\n        }\n      };\n    }\n    return this;\n  };\n  /**\n   * Add a withdrawal reference to the MeshTxBuilder instance\n   * @param txHash The transaction hash of reference UTxO\n   * @param txIndex The transaction index of reference UTxO\n   * @param scriptSize The script size in bytes of the withdrawal script (can be obtained by script hex length / 2)\n   * @param scriptHash The script hash of the withdrawal script\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalTxInReference = (txHash, txIndex, scriptSize, scriptHash) => {\n    if (!this.withdrawalItem)\n      throw Error(\"withdrawalTxInReference: Undefined withdrawal\");\n    if (this.withdrawalItem.type === \"PubKeyWithdrawal\")\n      throw Error(\n        \"withdrawalTxInReference: Adding script reference to pub key withdrawal\"\n      );\n    this.withdrawalItem.scriptSource = {\n      type: \"Inline\",\n      txHash,\n      txIndex,\n      scriptHash,\n      version: this.plutusWithdrawalScriptVersion || \"V2\",\n      scriptSize\n    };\n    return this;\n  };\n  /**\n   * Set the transaction withdrawal redeemer value in the MeshTxBuilder instance\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string. Default to be Mesh type\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  withdrawalRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    if (!this.withdrawalItem)\n      throw Error(\"withdrawalRedeemerValue: Undefined withdrawal\");\n    if (!(this.withdrawalItem.type === \"ScriptWithdrawal\"))\n      throw Error(\n        \"withdrawalRedeemerValue: Adding redeemer to non plutus withdrawal\"\n      );\n    this.withdrawalItem.redeemer = this.castBuilderDataToRedeemer(\n      redeemer,\n      type,\n      exUnits\n    );\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using a Plutus voting scripts\n   * @param languageVersion The Plutus script version\n   * @returns The MeshTxBuilder instance\n   */\n  votePlutusScript = (languageVersion) => {\n    this.addingPlutusVote = true;\n    this.plutusVoteScriptVersion = languageVersion;\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V1 Plutus voting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  votePlutusScriptV1 = () => {\n    this.addingPlutusVote = true;\n    this.plutusVoteScriptVersion = \"V1\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V2 Plutus voting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  votePlutusScriptV2 = () => {\n    this.addingPlutusVote = true;\n    this.plutusVoteScriptVersion = \"V2\";\n    return this;\n  };\n  /**\n   * Set the instruction that it is currently using V3 Plutus voting scripts\n   * @returns The MeshTxBuilder instance\n   */\n  votePlutusScriptV3 = () => {\n    this.addingPlutusVote = true;\n    this.plutusVoteScriptVersion = \"V3\";\n    return this;\n  };\n  /**\n   * Add a vote in the MeshTxBuilder instance\n   * @param voter The voter, can be a ConstitutionalCommitee, a DRep or a StakePool\n   * @param govActionId - The transaction hash and transaction id of the governance action\n   * @param votingProcedure - The voting kind (Yes, No, Abstain) with an optional anchor\n   * @returns The MeshTxBuilder instance\n   */\n  vote = (voter, govActionId, votingProcedure) => {\n    if (this.voteItem) {\n      this.queueVote();\n    }\n    if (this.addingPlutusVote) {\n      const vote = {\n        type: \"ScriptVote\",\n        vote: {\n          voter,\n          govActionId,\n          votingProcedure\n        }\n      };\n      this.voteItem = vote;\n      this.addingPlutusVote = false;\n    } else {\n      const vote = {\n        type: \"BasicVote\",\n        vote: {\n          voter,\n          govActionId,\n          votingProcedure\n        }\n      };\n      this.voteItem = vote;\n    }\n    return this;\n  };\n  /**\n   * Add a voting script to the MeshTxBuilder instance\n   * @param scriptCbor The script in CBOR format\n   * @returns The MeshTxBuilder instance\n   */\n  voteScript = (scriptCbor) => {\n    if (!this.voteItem) throw Error(\"voteScript: Undefined vote\");\n    if (this.voteItem.type === \"BasicVote\") {\n      this.voteItem = {\n        type: \"SimpleScriptVote\",\n        vote: this.voteItem.vote,\n        simpleScriptSource: {\n          type: \"Provided\",\n          scriptCode: scriptCbor\n        }\n      };\n    } else if (this.voteItem.type === \"ScriptVote\") {\n      this.voteItem.scriptSource = {\n        type: \"Provided\",\n        script: {\n          code: scriptCbor,\n          version: this.plutusVoteScriptVersion || \"V2\"\n        }\n      };\n    } else if (this.voteItem.type === \"SimpleScriptVote\") {\n      throw Error(\"voteScript: Script is already defined for current vote\");\n    }\n    return this;\n  };\n  /**\n   * Add a vote reference to the MeshTxBuilder instance\n   * @param txHash The transaction hash of reference UTxO\n   * @param txIndex The transaction index of reference UTxO\n   * @param scriptSize The script size in bytes of the vote script (can be obtained by script hex length / 2)\n   * @param scriptHash The script hash of the vote script\n   * @returns The MeshTxBuilder instance\n   */\n  voteTxInReference = (txHash, txIndex, scriptSize, scriptHash) => {\n    if (!this.voteItem) throw Error(\"voteTxInReference: Undefined vote\");\n    if (this.voteItem.type === \"BasicVote\")\n      throw Error(\"voteTxInReference: Adding script reference to a basic vote\");\n    if (this.voteItem.type === \"ScriptVote\") {\n      this.voteItem.scriptSource = {\n        type: \"Inline\",\n        txHash,\n        txIndex,\n        scriptHash,\n        version: this.plutusWithdrawalScriptVersion || \"V2\",\n        scriptSize\n      };\n    } else if (this.voteItem.type === \"SimpleScriptVote\") {\n      this.voteItem.simpleScriptSource = {\n        type: \"Inline\",\n        txHash,\n        txIndex,\n        scriptSize,\n        simpleScriptHash: scriptHash\n      };\n    }\n    return this;\n  };\n  /**\n   * Set the transaction vote redeemer value in the MeshTxBuilder instance\n   * @param redeemer The redeemer in Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param type The redeemer data type, either Mesh Data type, JSON in raw constructor like format, or CBOR hex string\n   * @param exUnits The execution units budget for the redeemer\n   * @returns The MeshTxBuilder instance\n   */\n  voteRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    if (!this.voteItem) throw Error(\"voteRedeemerValue: Undefined vote\");\n    if (!(this.voteItem.type === \"ScriptVote\"))\n      throw Error(\"voteRedeemerValue: Adding redeemer to non plutus vote\");\n    this.voteItem.redeemer = this.castBuilderDataToRedeemer(\n      redeemer,\n      type,\n      exUnits\n    );\n    return this;\n  };\n  /**\n   * Creates a pool registration certificate, and adds it to the transaction\n   * @param poolParams Parameters for pool registration\n   * @returns The MeshTxBuilder instance\n   */\n  registerPoolCertificate = (poolParams) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"RegisterPool\",\n        poolParams\n      }\n    });\n    return this;\n  };\n  /**\n   * Creates a stake registration certificate, and adds it to the transaction\n   * @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)\n   * @returns The MeshTxBuilder instance\n   */\n  registerStakeCertificate = (rewardAddress) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"RegisterStake\",\n        stakeKeyAddress: rewardAddress\n      }\n    });\n    return this;\n  };\n  /**\n   * Creates a stake delegation certificate, and adds it to the transaction\n   * This will delegate stake from the corresponding stake address to the pool\n   * @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)\n   * @param poolId poolId can be in either bech32 or hex form\n   * @returns The MeshTxBuilder instance\n   */\n  delegateStakeCertificate = (rewardAddress, poolId) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"DelegateStake\",\n        stakeKeyAddress: rewardAddress,\n        poolId\n      }\n    });\n    return this;\n  };\n  /**\n   * Creates a stake deregister certificate, and adds it to the transaction\n   * @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)\n   * @returns The MeshTxBuilder instance\n   */\n  deregisterStakeCertificate = (rewardAddress) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"DeregisterStake\",\n        stakeKeyAddress: rewardAddress\n      }\n    });\n    return this;\n  };\n  /**\n   * Creates a pool retire certificate, and adds it to the transaction\n   * @param poolId poolId can be in either bech32 or hex form\n   * @param epoch The intended epoch to retire the pool\n   * @returns The MeshTxBuilder instance\n   */\n  retirePoolCertificate = (poolId, epoch) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"RetirePool\",\n        poolId,\n        epoch\n      }\n    });\n    return this;\n  };\n  /**\n   * Registers DRep certificate, and adds it to the transaction\n   * @param drepId The bech32 drep id (i.e. starts with `drep1xxxxx`)\n   * @param anchor The DRep anchor, consists of a URL and a hash of the doc\n   * @param coin DRep registration deposit\n   * @returns The MeshTxBuilder instance\n   */\n  drepRegistrationCertificate = (drepId, anchor, coin = DREP_DEPOSIT) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"DRepRegistration\",\n        drepId,\n        coin: Number(coin),\n        anchor\n      }\n    });\n    return this;\n  };\n  /**\n   * Dregister DRep certificate, and adds it to the transaction\n   * @param drepId The bech32 drep id (i.e. starts with `drep1xxxxx`)\n   * @param coin DRep registration deposit\n   * @returns The MeshTxBuilder instance\n   */\n  drepDeregistrationCertificate = (drepId, coin = DREP_DEPOSIT) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"DRepDeregistration\",\n        drepId,\n        coin: Number(coin)\n      }\n    });\n    return this;\n  };\n  /**\n   * Update DRep certificate, and adds it to the transaction\n   * @param drepId The bech32 drep id (i.e. starts with `drep1xxxxx`)\n   * @param anchor The DRep anchor, consists of a URL and a hash of the doc\n   */\n  drepUpdateCertificate = (drepId, anchor) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"DRepUpdate\",\n        drepId,\n        anchor\n      }\n    });\n    return this;\n  };\n  /**\n   * Dregister DRep certificate, and adds it to the transaction\n   * @param drepId The bech32 drep id (i.e. starts with `drep1xxxxx`)\n   * @param rewardAddress The bech32 reward address (i.e. start with `stake_xxxxx`)\n   * @returns The MeshTxBuilder instance\n   */\n  voteDelegationCertificate = (drep, rewardAddress) => {\n    this.meshTxBuilderBody.certificates.push({\n      type: \"BasicCertificate\",\n      certType: {\n        type: \"VoteDelegation\",\n        drep,\n        stakeKeyAddress: rewardAddress\n      }\n    });\n    return this;\n  };\n  /**\n   * Adds a script witness to the certificate\n   * @param scriptCbor The CborHex of the script\n   * @param version Optional - The plutus version of the script, null version implies Native Script\n   */\n  certificateScript = (scriptCbor, version) => {\n    const currentCert = this.meshTxBuilderBody.certificates.pop();\n    if (!currentCert) {\n      throw Error(\n        \"Certificate script attempted to be defined, but no certificate was found\"\n      );\n    }\n    if (!version) {\n      this.meshTxBuilderBody.certificates.push({\n        type: \"SimpleScriptCertificate\",\n        certType: currentCert.certType,\n        simpleScriptSource: {\n          type: \"Provided\",\n          scriptCode: scriptCbor\n        }\n      });\n    } else {\n      this.meshTxBuilderBody.certificates.push({\n        type: \"ScriptCertificate\",\n        certType: currentCert.certType,\n        scriptSource: {\n          type: \"Provided\",\n          script: {\n            code: scriptCbor,\n            version\n          }\n        },\n        redeemer: currentCert.type === \"ScriptCertificate\" ? currentCert.redeemer : void 0\n      });\n    }\n    return this;\n  };\n  /**\n   * Adds a script witness to the certificate\n   * @param txHash The transaction hash of the reference UTxO\n   * @param txIndex The transaction index of the reference UTxO\n   * @param scriptSize The size of the plutus script in bytes referenced (can be obtained by script hex length / 2)\n   * @param scriptHash The script hash of the spending script\n   * @param version The plutus version of the script, null version implies Native Script\n   */\n  certificateTxInReference = (txHash, txIndex, scriptSize, scriptHash, version) => {\n    const currentCert = this.meshTxBuilderBody.certificates.pop();\n    if (!currentCert) {\n      throw Error(\n        \"Certificate script reference attempted to be defined, but no certificate was found\"\n      );\n    }\n    if (!version) {\n      this.meshTxBuilderBody.certificates.push({\n        type: \"SimpleScriptCertificate\",\n        certType: currentCert.certType,\n        simpleScriptSource: {\n          type: \"Inline\",\n          txHash,\n          txIndex,\n          simpleScriptHash: scriptHash\n        }\n      });\n    } else {\n      this.meshTxBuilderBody.certificates.push({\n        type: \"ScriptCertificate\",\n        certType: currentCert.certType,\n        scriptSource: {\n          type: \"Inline\",\n          txHash,\n          txIndex,\n          scriptHash,\n          scriptSize,\n          version\n        },\n        redeemer: currentCert.type === \"ScriptCertificate\" ? currentCert.redeemer : void 0\n      });\n    }\n    return this;\n  };\n  certificateRedeemerValue = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    const currentCert = this.meshTxBuilderBody.certificates.pop();\n    if (!currentCert) {\n      throw Error(\n        \"Certificate redeemer value attempted to be defined, but no certificate was found\"\n      );\n    }\n    if (currentCert.type === \"ScriptCertificate\") {\n      currentCert.redeemer = this.castBuilderDataToRedeemer(\n        redeemer,\n        type,\n        exUnits\n      );\n    } else {\n      throw Error(\n        \"Redeemer value attempted to be defined, but certificate has no script defined, or no script version was defined\"\n      );\n    }\n    this.meshTxBuilderBody.certificates.push(currentCert);\n    return this;\n  };\n  /**\n   * Configure the address to accept change UTxO\n   * @param addr The address to accept change UTxO\n   * @returns The MeshTxBuilder instance\n   */\n  changeAddress = (addr) => {\n    this.meshTxBuilderBody.changeAddress = addr;\n    return this;\n  };\n  /**\n   * Set the transaction valid interval to be valid only after the slot\n   * @param slot The transaction is valid only after this slot\n   * @returns The MeshTxBuilder instance\n   */\n  invalidBefore = (slot) => {\n    this.meshTxBuilderBody.validityRange.invalidBefore = slot;\n    return this;\n  };\n  /**\n   * Set the transaction valid interval to be valid only before the slot\n   * @param slot The transaction is valid only before this slot\n   * @returns The MeshTxBuilder instance\n   */\n  invalidHereafter = (slot) => {\n    this.meshTxBuilderBody.validityRange.invalidHereafter = slot;\n    return this;\n  };\n  /**\n   * Add metadata to the transaction\n   * @param label The label of the metadata, preferably number\n   * @param metadata The metadata in any format\n   * @returns The MeshTxBuilder instance\n   */\n  metadataValue = (label, metadata) => {\n    label = BigInt(label);\n    if (typeof metadata === \"object\" && !(metadata instanceof Map)) {\n      this.meshTxBuilderBody.metadata.set(label, metadataObjToMap(metadata));\n    } else {\n      this.meshTxBuilderBody.metadata.set(label, metadata);\n    }\n    return this;\n  };\n  /**\n   * Sign the transaction with the private key\n   * @param skeyHex The private key in cborHex (with or without 5820 prefix, i.e. the format when generated from cardano-cli)\n   * @returns\n   */\n  signingKey = (skeyHex) => {\n    this.meshTxBuilderBody.signingKey.push(skeyHex);\n    return this;\n  };\n  /**\n   * Selects utxos to fill output value and puts them into inputs\n   * @param extraInputs The inputs already placed into the object will remain, these extra inputs will be used to fill the remaining  value needed\n   */\n  selectUtxosFrom = (extraInputs) => {\n    for (const input of this.meshTxBuilderBody.inputs) {\n      const address = input.txIn.address;\n      if (!address) {\n        throw Error(\"Address is missing from the input\");\n      }\n      const decodedAddress = dist_Address.fromString(address);\n      if (decodedAddress?.getProps().paymentPart?.type !== dist_CredentialType.KeyHash) {\n        throw Error(\"Only KeyHash address is supported for utxo selection\");\n      }\n    }\n    this.meshTxBuilderBody.extraInputs = extraInputs;\n    this.meshTxBuilderBody.selectionConfig = {\n      ...this.meshTxBuilderBody.selectionConfig\n    };\n    return this;\n  };\n  /**\n   * Set the protocol parameters to be used for the transaction other than the default one\n   * @param params (Part of) the protocol parameters to be used for the transaction\n   * @returns The MeshTxBuilder instance\n   */\n  protocolParams = (params) => {\n    const updatedParams = { ...DEFAULT_PROTOCOL_PARAMETERS, ...params };\n    this._protocolParams = updatedParams;\n    return this;\n  };\n  /**\n   * Sets a specific fee for the transaction to use\n   * @param fee The specified fee\n   * @returns The MeshTxBuilder instance\n   */\n  setFee = (fee) => {\n    this.meshTxBuilderBody.fee = fee;\n    return this;\n  };\n  /**\n   * Sets the network to use, this is mainly to know the cost models to be used to calculate script integrity hash\n   * @param network The specific network this transaction is being built for (\"testnet\" | \"preview\" | \"preprod\" | \"mainnet\")\n   * @returns The MeshTxBuilder instance\n   */\n  setNetwork = (network) => {\n    this.meshTxBuilderBody.network = network;\n    return this;\n  };\n  /**\n   * Add a transaction that is used as input, but not yet reflected on the global blockchain\n   * @param txHex The transaction hex of chained transaction\n   * @returns The MeshTxBuilderCore instance\n   */\n  chainTx(txHex) {\n    this.meshTxBuilderBody.chainedTxs.push(txHex);\n    return this;\n  }\n  /**\n   * Add a transaction input to provide information for offline evaluation\n   * @param input The input to be added\n   * @returns The MeshTxBuilderCore instance\n   */\n  inputForEvaluation(input) {\n    const utxoId = `${input.input.txHash}${input.input.outputIndex}`;\n    const currentUtxo = this.meshTxBuilderBody.inputsForEvaluation[utxoId];\n    if (currentUtxo) {\n      const {\n        dataHash: currentDataHash,\n        plutusData: currentPlutusData,\n        scriptRef: currentScriptRef,\n        scriptHash: currentScriptHash\n      } = currentUtxo.output;\n      const updatedUtxo = { ...currentUtxo };\n      if (currentDataHash) updatedUtxo.output.dataHash = currentDataHash;\n      if (currentPlutusData) updatedUtxo.output.plutusData = currentPlutusData;\n      if (currentScriptRef) updatedUtxo.output.scriptRef = currentScriptRef;\n      if (currentScriptHash) updatedUtxo.output.scriptHash = currentScriptHash;\n      this.meshTxBuilderBody.inputsForEvaluation[utxoId] = updatedUtxo;\n    } else {\n      this.meshTxBuilderBody.inputsForEvaluation[utxoId] = input;\n    }\n    return this;\n  }\n  queueAllLastItem = () => {\n    if (this.txOutput) {\n      this.meshTxBuilderBody.outputs.push(this.txOutput);\n      this.txOutput = void 0;\n    }\n    if (this.txInQueueItem) {\n      this.queueInput();\n    }\n    if (this.collateralQueueItem) {\n      this.meshTxBuilderBody.collaterals.push(this.collateralQueueItem);\n      this.collateralQueueItem = void 0;\n    }\n    if (this.mintItem) {\n      this.queueMint();\n    }\n    if (this.withdrawalItem) {\n      this.queueWithdrawal();\n    }\n    if (this.voteItem) {\n      this.queueVote();\n    }\n  };\n  queueInput = () => {\n    if (!this.txInQueueItem) throw Error(\"queueInput: Undefined input\");\n    if (this.txInQueueItem.type === \"Script\") {\n      if (!this.txInQueueItem.scriptTxIn) {\n        throw Error(\n          \"queueInput: Script input does not contain script, datum, or redeemer information\"\n        );\n      } else {\n        if (!this.txInQueueItem.scriptTxIn.datumSource)\n          throw Error(\n            \"queueInput: Script input does not contain datum information\"\n          );\n        if (!this.txInQueueItem.scriptTxIn.redeemer)\n          throw Error(\n            \"queueInput: Script input does not contain redeemer information\"\n          );\n        if (!this.txInQueueItem.scriptTxIn.scriptSource)\n          throw Error(\n            \"queueInput: Script input does not contain script information\"\n          );\n      }\n    }\n    this.meshTxBuilderBody.inputs.push(this.txInQueueItem);\n    this.txInQueueItem = void 0;\n  };\n  queueMint = () => {\n    if (!this.mintItem) throw Error(\"queueMint: Undefined mint\");\n    if (!this.mintItem.scriptSource)\n      throw Error(\"queueMint: Missing mint script information\");\n    const currentMint = this.mintItem;\n    const samePolicyIdMints = this.meshTxBuilderBody.mints.find((mint) => {\n      return mint.policyId === currentMint.policyId;\n    });\n    if (samePolicyIdMints !== void 0) {\n      if (json_bigint.stringify(currentMint.redeemer) !== json_bigint.stringify(samePolicyIdMints.redeemer)) {\n        throw Error(\n          \"queueMint: Redeemer for the same policy id must be the same\"\n        );\n      }\n      if (json_bigint.stringify(currentMint.scriptSource) !== json_bigint.stringify(samePolicyIdMints.scriptSource)) {\n        throw Error(\n          \"queueMint: Script source for the same policy id must be the same\"\n        );\n      }\n      samePolicyIdMints.mintValue.push({\n        assetName: currentMint.assetName,\n        amount: currentMint.amount\n      });\n    } else {\n      this.meshTxBuilderBody.mints.push({\n        type: currentMint.type,\n        policyId: currentMint.policyId,\n        scriptSource: currentMint.scriptSource,\n        redeemer: currentMint.redeemer,\n        mintValue: [\n          {\n            assetName: currentMint.assetName,\n            amount: currentMint.amount\n          }\n        ]\n      });\n    }\n    this.mintItem = void 0;\n  };\n  queueWithdrawal = () => {\n    if (!this.withdrawalItem)\n      throw Error(\"queueWithdrawal: Undefined withdrawal\");\n    if (this.withdrawalItem.type === \"ScriptWithdrawal\") {\n      if (!this.withdrawalItem.scriptSource) {\n        throw Error(\"queueWithdrawal: Missing withdrawal script information\");\n      }\n      if (!this.withdrawalItem.redeemer) {\n        throw Error(\"queueWithdrawal: Missing withdrawal redeemer information\");\n      }\n    } else if (this.withdrawalItem.type === \"SimpleScriptWithdrawal\") {\n      if (!this.withdrawalItem.scriptSource) {\n        throw Error(\"queueWithdrawal: Missing withdrawal script information\");\n      }\n    }\n    this.meshTxBuilderBody.withdrawals.push(this.withdrawalItem);\n    this.withdrawalItem = void 0;\n  };\n  queueVote = () => {\n    if (!this.voteItem) {\n      throw Error(\"queueVote: Undefined vote\");\n    }\n    if (this.voteItem.type === \"ScriptVote\") {\n      if (!this.voteItem.scriptSource) {\n        throw Error(\"queueVote: Missing vote script information\");\n      }\n      if (!this.voteItem.redeemer) {\n        throw Error(\"queueVote: Missing vote redeemer information\");\n      }\n    } else if (this.voteItem.type === \"SimpleScriptVote\") {\n      if (!this.voteItem.simpleScriptSource) {\n        throw Error(\"queueVote: Missing vote script information\");\n      }\n    }\n    this.meshTxBuilderBody.votes.push(this.voteItem);\n    this.voteItem = void 0;\n  };\n  castRawDataToJsonString = (rawData) => {\n    if (typeof rawData === \"object\") {\n      return json_bigint.stringify(rawData);\n    } else {\n      return rawData;\n    }\n  };\n  castBuilderDataToRedeemer = (redeemer, type = \"Mesh\", exUnits = { ...DEFAULT_REDEEMER_BUDGET }) => {\n    let red;\n    let content = redeemer;\n    if (type === \"Mesh\") {\n      red = {\n        data: {\n          type,\n          content\n        },\n        exUnits\n      };\n      return red;\n    }\n    if (type === \"JSON\") {\n      content = this.castRawDataToJsonString(redeemer);\n    }\n    red = {\n      data: {\n        type,\n        content\n      },\n      exUnits\n    };\n    return red;\n  };\n  updateRedeemer = (meshTxBuilderBody, txEvaluation) => {\n    txEvaluation.forEach((redeemerEvaluation) => {\n      switch (redeemerEvaluation.tag) {\n        case \"SPEND\": {\n          const input = meshTxBuilderBody.inputs[redeemerEvaluation.index];\n          if (input.type == \"Script\" && input.scriptTxIn.redeemer) {\n            input.scriptTxIn.redeemer.exUnits.mem = Math.floor(\n              redeemerEvaluation.budget.mem * this.txEvaluationMultiplier\n            );\n            input.scriptTxIn.redeemer.exUnits.steps = Math.floor(\n              redeemerEvaluation.budget.steps * this.txEvaluationMultiplier\n            );\n          }\n          break;\n        }\n        case \"MINT\": {\n          const mint = meshTxBuilderBody.mints[redeemerEvaluation.index];\n          if (mint.type == \"Plutus\" && mint.redeemer) {\n            let newExUnits = {\n              mem: Math.floor(\n                redeemerEvaluation.budget.mem * this.txEvaluationMultiplier\n              ),\n              steps: Math.floor(\n                redeemerEvaluation.budget.steps * this.txEvaluationMultiplier\n              )\n            };\n            for (let i = redeemerEvaluation.index; i < meshTxBuilderBody.mints.length; i++) {\n              if (meshTxBuilderBody.mints[i].policyId === mint.policyId) {\n                meshTxBuilderBody.mints[i].redeemer.exUnits = newExUnits;\n              }\n            }\n          }\n          break;\n        }\n        case \"CERT\":\n          const cert = meshTxBuilderBody.certificates[redeemerEvaluation.index];\n          if (cert.type === \"ScriptCertificate\" && cert.redeemer) {\n            cert.redeemer.exUnits.mem = Math.floor(\n              redeemerEvaluation.budget.mem * this.txEvaluationMultiplier\n            );\n            cert.redeemer.exUnits.steps = Math.floor(\n              redeemerEvaluation.budget.steps * this.txEvaluationMultiplier\n            );\n          }\n          break;\n        case \"REWARD\":\n          const withdrawal = meshTxBuilderBody.withdrawals[redeemerEvaluation.index];\n          if (withdrawal.type === \"ScriptWithdrawal\" && withdrawal.redeemer) {\n            withdrawal.redeemer.exUnits.mem = Math.floor(\n              redeemerEvaluation.budget.mem * this.txEvaluationMultiplier\n            );\n            withdrawal.redeemer.exUnits.steps = Math.floor(\n              redeemerEvaluation.budget.steps * this.txEvaluationMultiplier\n            );\n          }\n          break;\n      }\n    });\n  };\n  addUtxosFromSelection = () => {\n    const requiredAssets = this.meshTxBuilderBody.outputs.reduce(\n      (map, output) => {\n        const outputAmount = output.amount;\n        outputAmount.forEach((asset) => {\n          const { unit, quantity } = asset;\n          const existingQuantity = Number(map.get(unit)) || 0;\n          map.set(unit, String(existingQuantity + Number(quantity)));\n        });\n        return map;\n      },\n      /* @__PURE__ */ new Map()\n    );\n    this.meshTxBuilderBody.inputs.reduce((map, input) => {\n      const inputAmount = input.txIn.amount;\n      inputAmount?.forEach((asset) => {\n        const { unit, quantity } = asset;\n        const existingQuantity = Number(map.get(unit)) || 0;\n        map.set(unit, String(existingQuantity - Number(quantity)));\n      });\n      return map;\n    }, requiredAssets);\n    this.meshTxBuilderBody.mints.reduce((map, mint) => {\n      for (const assetValue of mint.mintValue) {\n        const mintAmount = {\n          unit: mint.policyId + assetValue.assetName,\n          quantity: String(assetValue.amount)\n        };\n        const existingQuantity = Number(map.get(mintAmount.unit)) || 0;\n        map.set(\n          mintAmount.unit,\n          String(existingQuantity - Number(mintAmount.quantity))\n        );\n      }\n      return map;\n    }, requiredAssets);\n    const selectionConfig = this.meshTxBuilderBody.selectionConfig;\n    const utxoSelection = new UtxoSelection(\n      selectionConfig.threshold,\n      selectionConfig.includeTxFees\n    );\n    let selectedInputs = [];\n    switch (selectionConfig.strategy) {\n      case \"keepRelevant\":\n        selectedInputs = utxoSelection.keepRelevant(\n          requiredAssets,\n          this.meshTxBuilderBody.extraInputs\n        );\n      case \"largestFirst\":\n        selectedInputs = utxoSelection.largestFirst(\n          requiredAssets,\n          this.meshTxBuilderBody.extraInputs\n        );\n        break;\n      case \"largestFirstMultiAsset\":\n        selectedInputs = utxoSelection.largestFirstMultiAsset(\n          requiredAssets,\n          this.meshTxBuilderBody.extraInputs\n        );\n        break;\n      default:\n        selectedInputs = utxoSelection.experimental(\n          requiredAssets,\n          this.meshTxBuilderBody.extraInputs\n        );\n        break;\n    }\n    selectedInputs.forEach((input) => {\n      const pubKeyTxIn = {\n        type: \"PubKey\",\n        txIn: {\n          txHash: input.input.txHash,\n          txIndex: input.input.outputIndex,\n          amount: input.output.amount,\n          address: input.output.address\n        }\n      };\n      this.meshTxBuilderBody.inputs.push(pubKeyTxIn);\n      if (input.output.scriptRef) {\n        this.meshTxBuilderBody.referenceInputs.push({\n          txHash: input.input.txHash,\n          txIndex: input.input.outputIndex,\n          scriptSize: input.output.scriptRef.length / 2\n        });\n      }\n      this.inputForEvaluation(input);\n    });\n  };\n  removeDuplicateInputs = () => {\n    const { inputs } = this.meshTxBuilderBody;\n    const getTxInId = (txIn) => `${txIn.txHash}#${txIn.txIndex}`;\n    const currentTxInIds = [];\n    const addedInputs = [];\n    for (let i = 0; i < inputs.length; i += 1) {\n      const currentInput = inputs[i];\n      const currentTxInId = getTxInId(currentInput.txIn);\n      if (currentTxInIds.includes(currentTxInId)) {\n        continue;\n      } else {\n        currentTxInIds.push(currentTxInId);\n        addedInputs.push(currentInput);\n      }\n    }\n    this.meshTxBuilderBody.inputs = addedInputs;\n  };\n  removeDuplicateRefInputs = () => {\n    const { referenceInputs } = this.meshTxBuilderBody;\n    const getTxInId = (txIn) => `${txIn.txHash}#${txIn.txIndex}`;\n    const currentTxInIds = [];\n    const addedInputs = [];\n    for (let i = 0; i < referenceInputs.length; i += 1) {\n      const currentInput = referenceInputs[i];\n      const currentTxInId = getTxInId(currentInput);\n      if (currentTxInIds.includes(currentTxInId)) {\n        continue;\n      } else {\n        currentTxInIds.push(currentTxInId);\n        addedInputs.push(currentInput);\n      }\n    }\n    this.meshTxBuilderBody.referenceInputs = addedInputs;\n  };\n  emptyTxBuilderBody = () => {\n    this.meshTxBuilderBody = emptyTxBuilderBody();\n    return emptyTxBuilderBody;\n  };\n  reset = () => {\n    this.meshTxBuilderBody = emptyTxBuilderBody();\n    this.txEvaluationMultiplier = 1.1;\n    this.txOutput = void 0;\n    this.addingPlutusScriptInput = false;\n    this.plutusSpendingScriptVersion = void 0;\n    this.addingPlutusMint = false;\n    this.plutusMintingScriptVersion = void 0;\n    this.addingPlutusWithdrawal = false;\n    this.addingPlutusVote = false;\n    this.plutusWithdrawalScriptVersion = void 0;\n    this._protocolParams = DEFAULT_PROTOCOL_PARAMETERS;\n    this.mintItem = void 0;\n    this.txInQueueItem = void 0;\n    this.withdrawalItem = void 0;\n    this.voteItem = void 0;\n    this.collateralQueueItem = void 0;\n    this.refScriptTxInQueueItem = void 0;\n  };\n  _cloneCore(createInstance) {\n    this.queueAllLastItem();\n    const newBuilder = createInstance();\n    newBuilder.meshTxBuilderBody = cloneTxBuilderBody(this.meshTxBuilderBody);\n    newBuilder.txEvaluationMultiplier = this.txEvaluationMultiplier;\n    newBuilder.txOutput = this.txOutput ? structuredClone(this.txOutput) : void 0;\n    newBuilder.addingPlutusScriptInput = this.addingPlutusScriptInput;\n    newBuilder.plutusSpendingScriptVersion = this.plutusSpendingScriptVersion;\n    newBuilder.addingPlutusMint = this.addingPlutusMint;\n    newBuilder.plutusMintingScriptVersion = this.plutusMintingScriptVersion;\n    newBuilder.addingPlutusWithdrawal = this.addingPlutusWithdrawal;\n    newBuilder.plutusWithdrawalScriptVersion = this.plutusWithdrawalScriptVersion;\n    newBuilder.addingPlutusVote = this.addingPlutusVote;\n    newBuilder.plutusVoteScriptVersion = this.plutusVoteScriptVersion;\n    newBuilder._protocolParams = structuredClone(this._protocolParams);\n    newBuilder.mintItem = this.mintItem ? structuredClone(this.mintItem) : void 0;\n    newBuilder.txInQueueItem = this.txInQueueItem ? structuredClone(this.txInQueueItem) : void 0;\n    newBuilder.withdrawalItem = this.withdrawalItem ? structuredClone(this.withdrawalItem) : void 0;\n    newBuilder.voteItem = this.voteItem ? structuredClone(this.voteItem) : void 0;\n    newBuilder.collateralQueueItem = this.collateralQueueItem ? structuredClone(this.collateralQueueItem) : void 0;\n    newBuilder.refScriptTxInQueueItem = this.refScriptTxInQueueItem ? structuredClone(this.refScriptTxInQueueItem) : void 0;\n    return newBuilder;\n  }\n};\n\n// src/mesh-tx-builder/utils.ts\nvar utxoToTxIn = (utxo) => {\n  return [\n    utxo.input.txHash,\n    utxo.input.outputIndex,\n    utxo.output.amount,\n    utxo.output.address\n  ];\n};\n\n// src/mesh-tx-builder/index.ts\nvar MeshTxBuilder = class _MeshTxBuilder extends MeshTxBuilderCore {\n  serializer;\n  fetcher;\n  submitter;\n  evaluator;\n  txHex = \"\";\n  verbose;\n  queriedTxHashes = /* @__PURE__ */ new Set();\n  queriedUTxOs = {};\n  utxosWithRefScripts = [];\n  constructor({\n    serializer,\n    fetcher,\n    submitter,\n    evaluator,\n    params,\n    isHydra = false,\n    verbose = false\n  } = {}) {\n    super();\n    if (fetcher) this.fetcher = fetcher;\n    if (submitter) this.submitter = submitter;\n    if (evaluator) this.evaluator = evaluator;\n    if (params) this.protocolParams(params);\n    if (serializer) {\n      this.serializer = serializer;\n    } else {\n      this.serializer = new CardanoSDKSerializer(this._protocolParams);\n    }\n    this.verbose = verbose;\n    if (isHydra)\n      this.protocolParams({\n        minFeeA: 0,\n        minFeeB: 0,\n        priceMem: 0,\n        priceStep: 0,\n        collateralPercent: 0,\n        coinsPerUtxoSize: 0\n      });\n  }\n  serializeMockTx = () => {\n    const builderBody = this.meshTxBuilderBody;\n    const { keyHashes, byronAddresses } = this.collectAllRequiredSignatures();\n    builderBody.expectedNumberKeyWitnesses = keyHashes.size;\n    builderBody.expectedByronAddressWitnesses = Array.from(byronAddresses);\n    return this.serializer.serializeTxBodyWithMockSignatures(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n  };\n  /**\n   * It builds the transaction query the blockchain for missing information\n   * @param customizedTx The optional customized transaction body\n   * @returns The transaction in hex, unbalanced\n   */\n  completeUnbalanced = (customizedTx) => {\n    if (customizedTx) {\n      this.meshTxBuilderBody = customizedTx;\n    } else {\n      this.queueAllLastItem();\n    }\n    this.removeDuplicateInputs();\n    this.removeDuplicateRefInputs();\n    return this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n  };\n  completeSync = (customizedTx) => {\n    if (customizedTx) {\n      this.meshTxBuilderBody = customizedTx;\n    } else {\n      this.queueAllLastItem();\n    }\n    this.removeDuplicateInputs();\n    this.removeDuplicateRefInputs();\n    this.addUtxosFromSelection();\n    return this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n  };\n  /**\n   * It builds the transaction and query the blockchain for missing information\n   * @param customizedTx The optional customized transaction body\n   * @returns The signed transaction in hex ready to submit / signed by client\n   */\n  complete = async (customizedTx) => {\n    if (customizedTx) {\n      this.meshTxBuilderBody = { ...this.meshTxBuilderBody, ...customizedTx };\n    } else {\n      this.queueAllLastItem();\n    }\n    if (this.verbose) {\n      console.log(\n        \"txBodyJson\",\n        JSON.stringify(this.meshTxBuilderBody, (key, val) => {\n          if (key === \"extraInputs\") return void 0;\n          if (key === \"selectionConfig\") return void 0;\n          return val;\n        })\n      );\n    }\n    this.removeDuplicateInputs();\n    this.removeDuplicateRefInputs();\n    for (let collateral of this.meshTxBuilderBody.collaterals) {\n      collateral.txIn.scriptSize = 0;\n    }\n    await this.completeTxParts();\n    const txPrototype = await this.selectUtxos();\n    await this.updateByTxPrototype(txPrototype);\n    this.queueAllLastItem();\n    this.removeDuplicateInputs();\n    this.sortTxParts();\n    const txHex = this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n    this.txHex = txHex;\n    return txHex;\n  };\n  selectUtxos = async () => {\n    const callbacks = {\n      computeMinimumCost: async (selectionSkeleton) => {\n        const clonedBuilder = this.clone();\n        await clonedBuilder.updateByTxPrototype(selectionSkeleton);\n        clonedBuilder.queueAllLastItem();\n        this.sortTxParts();\n        try {\n          await clonedBuilder.evaluateRedeemers();\n        } catch (error) {\n          if (error instanceof Error) {\n            throw new Error(`Evaluate redeemers failed: ${error.message}`);\n          } else if (typeof error === \"string\") {\n            throw new Error(`Evaluate redeemers failed: ${error}`);\n          } else if (typeof error === \"object\") {\n            throw new Error(\n              `Evaluate redeemers failed: ${JSON.stringify(error)}`\n            );\n          } else {\n            throw new Error(`Evaluate redeemers failed: ${String(error)}`);\n          }\n        }\n        const fee = clonedBuilder.calculateFee();\n        const redeemers = clonedBuilder.getRedeemerCosts();\n        return {\n          fee,\n          redeemers\n        };\n      },\n      tokenBundleSizeExceedsLimit: (tokenBundle) => {\n        const maxValueSize = this._protocolParams.maxValSize;\n        if (tokenBundle) {\n          const valueSize = this.serializer.serializeValue(tokenBundle).length / 2;\n          return valueSize > maxValueSize;\n        }\n        return false;\n      },\n      computeMinimumCoinQuantity: (output) => {\n        return this.calculateMinLovelaceForOutput(output);\n      },\n      maxSizeExceed: async (selectionSkeleton) => {\n        const clonedBuilder = this.clone();\n        await clonedBuilder.updateByTxPrototype(selectionSkeleton);\n        clonedBuilder.queueAllLastItem();\n        clonedBuilder.removeDuplicateInputs();\n        const maxTxSize = this._protocolParams.maxTxSize;\n        const txSize = clonedBuilder.getSerializedSize();\n        return txSize > maxTxSize;\n      }\n    };\n    const currentInputs = this.meshTxBuilderBody.inputs;\n    const currentOutputs = this.meshTxBuilderBody.outputs;\n    const changeAddress = this.meshTxBuilderBody.changeAddress;\n    const utxosForSelection = await this.getUtxosForSelection();\n    const implicitValue = {\n      withdrawals: this.getTotalWithdrawal(),\n      deposit: this.getTotalDeposit(),\n      reclaimDeposit: this.getTotalRefund(),\n      mint: this.getTotalMint()\n    };\n    const inputSelector = new CardanoSdkInputSelector(callbacks);\n    return await inputSelector.select(\n      currentInputs,\n      currentOutputs,\n      implicitValue,\n      utxosForSelection,\n      changeAddress\n    );\n  };\n  updateByTxPrototype = async (selectionSkeleton) => {\n    for (let utxo of selectionSkeleton.newInputs) {\n      this.txIn(\n        utxo.input.txHash,\n        utxo.input.outputIndex,\n        utxo.output.amount,\n        utxo.output.address,\n        utxo.output.scriptRef ? utxo.output.scriptRef.length / 2 : 0\n      );\n    }\n    for (let output of selectionSkeleton.newOutputs) {\n      this.txOut(output.address, output.amount);\n    }\n    for (let change of selectionSkeleton.change) {\n      this.txOut(change.address, change.amount);\n    }\n    this.meshTxBuilderBody.fee = this.meshTxBuilderBody.fee === \"0\" ? selectionSkeleton.fee.toString() : this.meshTxBuilderBody.fee;\n    this.updateRedeemer(\n      this.meshTxBuilderBody,\n      selectionSkeleton.redeemers ?? []\n    );\n  };\n  getUtxosForSelection = async () => {\n    const utxos = this.meshTxBuilderBody.extraInputs;\n    const usedUtxos = new Set(\n      this.meshTxBuilderBody.inputs.map(\n        (input) => `${input.txIn.txHash}${input.txIn.txIndex}`\n      )\n    );\n    return utxos.filter(\n      (utxo) => !usedUtxos.has(`${utxo.input.txHash}${utxo.input.outputIndex}`)\n    );\n  };\n  sortTxParts = () => {\n    this.meshTxBuilderBody.inputs.sort((a, b) => {\n      if (a.txIn.txHash < b.txIn.txHash) return -1;\n      if (a.txIn.txHash > b.txIn.txHash) return 1;\n      if (a.txIn.txIndex < b.txIn.txIndex) return -1;\n      if (a.txIn.txIndex > b.txIn.txIndex) return 1;\n      return 0;\n    });\n    this.meshTxBuilderBody.mints.sort((a, b) => {\n      if (a.policyId < b.policyId) return -1;\n      if (a.policyId > b.policyId) return 1;\n      return 0;\n    });\n  };\n  evaluateRedeemers = async () => {\n    let txHex = this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n    if (this.evaluator) {\n      const txEvaluation = await this.evaluator.evaluateTx(\n        txHex,\n        Object.values(this.meshTxBuilderBody.inputsForEvaluation),\n        this.meshTxBuilderBody.chainedTxs\n      ).catch((error) => {\n        if (error instanceof Error) {\n          throw new Error(\n            `Tx evaluation failed: ${error.message} \n For txHex: ${txHex}`\n          );\n        } else if (typeof error === \"string\") {\n          throw new Error(\n            `Tx evaluation failed: ${error} \n For txHex: ${txHex}`\n          );\n        } else if (typeof error === \"object\") {\n          throw new Error(\n            `Tx evaluation failed: ${JSON.stringify(error)} \n For txHex: ${txHex}`\n          );\n        } else {\n          throw new Error(\n            `Tx evaluation failed: ${String(error)} \n For txHex: ${txHex}`\n          );\n        }\n      });\n      this.updateRedeemer(this.meshTxBuilderBody, txEvaluation);\n    }\n  };\n  getRedeemerCosts = () => {\n    const meshTxBuilderBody = this.meshTxBuilderBody;\n    const redeemers = [];\n    for (let i = 0; i < meshTxBuilderBody.inputs.length; i++) {\n      const input = meshTxBuilderBody.inputs[i];\n      if (input.type == \"Script\" && input.scriptTxIn.redeemer) {\n        redeemers.push({\n          tag: \"SPEND\",\n          index: i,\n          budget: input.scriptTxIn.redeemer.exUnits\n        });\n      }\n    }\n    for (let i = 0; i < meshTxBuilderBody.mints.length; i++) {\n      const mint = meshTxBuilderBody.mints[i];\n      if (mint.type == \"Plutus\" && mint.redeemer) {\n        redeemers.push({\n          tag: \"MINT\",\n          index: i,\n          budget: mint.redeemer.exUnits\n        });\n      }\n    }\n    for (let i = 0; i < meshTxBuilderBody.certificates.length; i++) {\n      const cert = meshTxBuilderBody.certificates[i];\n      if (cert.type === \"ScriptCertificate\" && cert.redeemer) {\n        redeemers.push({\n          tag: \"CERT\",\n          index: i,\n          budget: cert.redeemer.exUnits\n        });\n      }\n    }\n    for (let i = 0; i < meshTxBuilderBody.withdrawals.length; i++) {\n      const withdrawal = meshTxBuilderBody.withdrawals[i];\n      if (withdrawal.type === \"ScriptWithdrawal\" && withdrawal.redeemer) {\n        redeemers.push({\n          tag: \"REWARD\",\n          index: i,\n          budget: withdrawal.redeemer.exUnits\n        });\n      }\n    }\n    return redeemers;\n  };\n  /**\n   * It builds the transaction without dependencies\n   * @param customizedTx The optional customized transaction body\n   * @returns The transaction in hex, unbalanced\n   */\n  completeUnbalancedSync = (customizedTx) => {\n    if (customizedTx) {\n      this.meshTxBuilderBody = customizedTx;\n    } else {\n      this.queueAllLastItem();\n    }\n    this.removeDuplicateInputs();\n    this.removeDuplicateRefInputs();\n    return this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n  };\n  /**\n   * Complete the signing process\n   * @returns The signed transaction in hex\n   */\n  completeSigning = () => {\n    const signedTxHex = this.serializer.addSigningKeys(\n      this.txHex,\n      this.meshTxBuilderBody.signingKey\n    );\n    this.txHex = signedTxHex;\n    return signedTxHex;\n  };\n  /**\n   * Submit transactions to the blockchain using the fetcher instance\n   * @param txHex The signed transaction in hex\n   * @returns\n   */\n  submitTx = async (txHex) => {\n    const txHash = await this.submitter?.submitTx(txHex);\n    return txHash;\n  };\n  /**\n   * Get the UTxO information from the blockchain\n   * @param txHash The TxIn object that contains the txHash and txIndex, while missing amount and address information\n   */\n  getUTxOInfo = async (txHash) => {\n    let utxos = [];\n    if (!this.queriedTxHashes.has(txHash)) {\n      this.queriedTxHashes.add(txHash);\n      utxos = await this.fetcher?.fetchUTxOs(txHash) || [];\n      this.queriedUTxOs[txHash] = utxos;\n    }\n  };\n  queryAllTxInfo = (incompleteTxIns, incompleteScriptSources, incompleteSimpleScriptSources) => {\n    const queryUTxOPromises = [];\n    if ((incompleteTxIns.length > 0 || incompleteScriptSources.length > 0 || incompleteSimpleScriptSources.length) && !this.fetcher)\n      throw Error(\n        \"Transaction information is incomplete while no fetcher instance is provided. Provide a `fetcher`.\"\n      );\n    for (let i = 0; i < incompleteTxIns.length; i++) {\n      const currentTxIn = incompleteTxIns[i];\n      if (!this.isInputInfoComplete(currentTxIn)) {\n        queryUTxOPromises.push(this.getUTxOInfo(currentTxIn.txIn.txHash));\n      }\n    }\n    for (let i = 0; i < incompleteScriptSources.length; i++) {\n      const scriptSource = incompleteScriptSources[i];\n      if (scriptSource.type === \"Inline\") {\n        queryUTxOPromises.push(this.getUTxOInfo(scriptSource.txHash));\n      }\n    }\n    return Promise.all(queryUTxOPromises);\n  };\n  completeTxInformation = (input) => {\n    if (!this.isInputInfoComplete(input)) {\n      this.completeInputInfo(input);\n    }\n    if (input.type === \"Script\" && !this.isRefScriptInfoComplete(input.scriptTxIn.scriptSource)) {\n      const scriptSource = input.scriptTxIn.scriptSource;\n      this.completeScriptInfo(scriptSource);\n    }\n  };\n  completeInputInfo = (input) => {\n    const utxos = this.queriedUTxOs[input.txIn.txHash];\n    const utxo = utxos?.find(\n      (utxo2) => utxo2.input.outputIndex === input.txIn.txIndex\n    );\n    const amount = utxo?.output.amount;\n    const address = utxo?.output.address;\n    if (!amount || amount.length === 0)\n      throw Error(\n        `Couldn't find value information for ${input.txIn.txHash}#${input.txIn.txIndex}`\n      );\n    input.txIn.amount = amount;\n    if (!address || address === \"\")\n      throw Error(\n        `Couldn't find address information for ${input.txIn.txHash}#${input.txIn.txIndex}`\n      );\n    input.txIn.address = address;\n    if (utxo?.output.scriptRef) {\n      input.txIn.scriptSize = utxo.output.scriptRef.length / 2;\n    } else {\n      input.txIn.scriptSize = 0;\n    }\n  };\n  completeScriptInfo = (scriptSource) => {\n    if (scriptSource?.type != \"Inline\") return;\n    const refUtxos = this.queriedUTxOs[scriptSource.txHash];\n    const scriptRefUtxo = refUtxos.find(\n      (utxo) => utxo.input.outputIndex === scriptSource.txIndex\n    );\n    if (!scriptRefUtxo)\n      throw Error(\n        `Couldn't find script reference utxo for ${scriptSource.txHash}#${scriptSource.txIndex}`\n      );\n    scriptSource.scriptHash = scriptRefUtxo?.output.scriptHash;\n    scriptSource.scriptSize = (scriptRefUtxo?.output.scriptRef.length / 2).toString();\n  };\n  completeSimpleScriptInfo = (simpleScript) => {\n    if (simpleScript.type !== \"Inline\") return;\n    const refUtxos = this.queriedUTxOs[simpleScript.txHash];\n    const scriptRefUtxo = refUtxos.find(\n      (utxo) => utxo.input.outputIndex === simpleScript.txIndex\n    );\n    if (!scriptRefUtxo)\n      throw Error(\n        `Couldn't find script reference utxo for ${simpleScript.txHash}#${simpleScript.txIndex}`\n      );\n    simpleScript.simpleScriptHash = scriptRefUtxo?.output.scriptHash;\n  };\n  isInputComplete = (txIn) => {\n    if (txIn.type === \"PubKey\") return this.isInputInfoComplete(txIn);\n    if (txIn.type === \"Script\") {\n      const { scriptSource } = txIn.scriptTxIn;\n      return this.isInputInfoComplete(txIn) && this.isRefScriptInfoComplete(scriptSource);\n    }\n    return true;\n  };\n  isInputInfoComplete = (txIn) => {\n    const { amount, address, scriptSize } = txIn.txIn;\n    if (!amount || !address || scriptSize === void 0) return false;\n    return true;\n  };\n  isMintComplete = (mint) => {\n    if (mint.type === \"Plutus\") {\n      const scriptSource = mint.scriptSource;\n      return this.isRefScriptInfoComplete(scriptSource);\n    }\n    if (mint.type === \"Native\") {\n      const scriptSource = mint.scriptSource;\n      if (scriptSource.type === \"Inline\") {\n        if (!scriptSource?.simpleScriptHash) return false;\n      }\n    }\n    return true;\n  };\n  isRefScriptInfoComplete = (scriptSource) => {\n    if (scriptSource?.type === \"Inline\") {\n      if (!scriptSource?.scriptHash || !scriptSource?.scriptSize) return false;\n    }\n    return true;\n  };\n  isSimpleRefScriptInfoComplete = (simpleScriptSource) => {\n    if (simpleScriptSource.type === \"Inline\") {\n      if (!simpleScriptSource.simpleScriptHash || !simpleScriptSource.scriptSize)\n        return false;\n    }\n    return true;\n  };\n  completeSerialization = async (customizedTx) => {\n    if (customizedTx) {\n      this.meshTxBuilderBody = { ...this.meshTxBuilderBody, ...customizedTx };\n    } else {\n      this.queueAllLastItem();\n    }\n    this.removeDuplicateInputs();\n    this.removeDuplicateRefInputs();\n    for (let collateral of this.meshTxBuilderBody.collaterals) {\n      collateral.txIn.scriptSize = 0;\n    }\n    await this.completeTxParts();\n    let txHex = this.serializer.serializeTxBody(\n      this.meshTxBuilderBody,\n      this._protocolParams\n    );\n    if (this.evaluator) {\n      const txEvaluation = await this.evaluator.evaluateTx(\n        txHex,\n        Object.values(this.meshTxBuilderBody.inputsForEvaluation),\n        this.meshTxBuilderBody.chainedTxs\n      ).catch((error) => {\n        throw new Error(\n          `Tx evaluation failed: ${JSON.stringify(error)} \n For txHex: ${txHex}`\n        );\n      });\n      this.updateRedeemer(this.meshTxBuilderBody, txEvaluation);\n      txHex = this.serializer.serializeTxBody(\n        this.meshTxBuilderBody,\n        this._protocolParams\n      );\n    }\n    this.txHex = txHex;\n    return txHex;\n  };\n  completeTxParts = async () => {\n    const { inputs, collaterals, mints, withdrawals, votes, certificates } = this.meshTxBuilderBody;\n    const incompleteTxIns = [...inputs, ...collaterals].filter(\n      (txIn) => !this.isInputComplete(txIn)\n    );\n    let incompleteScriptSources = [];\n    let incompleteSimpleScriptSources = [];\n    inputs.forEach((txIn) => {\n      if (txIn.type === \"Script\" && txIn.scriptTxIn.scriptSource?.type === \"Inline\") {\n        if (!this.isRefScriptInfoComplete(txIn.scriptTxIn.scriptSource)) {\n          incompleteScriptSources.push(txIn.scriptTxIn.scriptSource);\n        }\n      } else if (txIn.type === \"SimpleScript\" && txIn.simpleScriptTxIn?.scriptSource?.type === \"Inline\") {\n        if (!this.isSimpleRefScriptInfoComplete(\n          txIn.simpleScriptTxIn.scriptSource\n        )) {\n          incompleteSimpleScriptSources.push(\n            txIn.simpleScriptTxIn.scriptSource\n          );\n        }\n      }\n    });\n    mints.forEach((mint) => {\n      if (mint.type === \"Plutus\") {\n        const scriptSource = mint.scriptSource;\n        if (!this.isRefScriptInfoComplete(scriptSource)) {\n          incompleteScriptSources.push(scriptSource);\n        }\n      } else if (mint.type === \"Native\") {\n        const scriptSource = mint.scriptSource;\n        if (!this.isSimpleRefScriptInfoComplete(scriptSource)) {\n          incompleteSimpleScriptSources.push(scriptSource);\n        }\n      }\n    });\n    withdrawals.forEach((withdrawal) => {\n      if (withdrawal.type === \"ScriptWithdrawal\") {\n        const scriptSource = withdrawal.scriptSource;\n        if (!this.isRefScriptInfoComplete(scriptSource)) {\n          incompleteScriptSources.push(scriptSource);\n        }\n      } else if (withdrawal.type === \"SimpleScriptWithdrawal\") {\n        const scriptSource = withdrawal.scriptSource;\n        if (!this.isSimpleRefScriptInfoComplete(scriptSource)) {\n          incompleteSimpleScriptSources.push(scriptSource);\n        }\n      }\n    });\n    votes.forEach((vote) => {\n      if (vote.type === \"ScriptVote\") {\n        const scriptSource = vote.scriptSource;\n        if (!this.isRefScriptInfoComplete(scriptSource)) {\n          incompleteScriptSources.push(scriptSource);\n        }\n      } else if (vote.type === \"SimpleScriptVote\") {\n        const scriptSource = vote.simpleScriptSource;\n        if (!this.isSimpleRefScriptInfoComplete(scriptSource)) {\n          incompleteSimpleScriptSources.push(scriptSource);\n        }\n      }\n    });\n    certificates.forEach((certificate) => {\n      if (certificate.type === \"ScriptCertificate\") {\n        const scriptSource = certificate.scriptSource;\n        if (!this.isRefScriptInfoComplete(scriptSource)) {\n          incompleteScriptSources.push(scriptSource);\n        }\n      } else if (certificate.type === \"SimpleScriptCertificate\") {\n        const scriptSource = certificate.simpleScriptSource;\n        if (!this.isSimpleRefScriptInfoComplete(scriptSource)) {\n          incompleteSimpleScriptSources.push(scriptSource);\n        }\n      }\n    });\n    await this.queryAllTxInfo(\n      incompleteTxIns,\n      incompleteScriptSources,\n      incompleteSimpleScriptSources\n    );\n    incompleteTxIns.forEach((txIn) => {\n      this.completeTxInformation(txIn);\n    });\n    incompleteScriptSources.forEach((scriptSource) => {\n      this.completeScriptInfo(scriptSource);\n    });\n    incompleteSimpleScriptSources.forEach((simpleScriptSource) => {\n      this.completeSimpleScriptInfo(simpleScriptSource);\n    });\n    this.meshTxBuilderBody.inputs.forEach((input) => {\n      if (input.txIn.scriptSize && input.txIn.scriptSize > 0) {\n        if (this.meshTxBuilderBody.referenceInputs.find((refTxIn) => {\n          refTxIn.txHash === input.txIn.txHash && refTxIn.txIndex === input.txIn.txIndex;\n        }) === void 0) {\n          this.meshTxBuilderBody.referenceInputs.push({\n            txHash: input.txIn.txHash,\n            txIndex: input.txIn.txIndex,\n            scriptSize: input.txIn.scriptSize\n          });\n        }\n      }\n    });\n    this.addUtxosFromSelection();\n    this.sortTxParts();\n  };\n  collectAllRequiredSignatures = () => {\n    const { paymentCreds, byronAddresses } = this.getInputsRequiredSignatures();\n    const withdrawalCreds = this.getWithdrawalRequiredSignatures();\n    const certCreds = this.getCertificatesRequiredSignatures();\n    const voteCreds = this.getVoteRequiredSignatures();\n    const mintCreds = this.getMintRequiredSignatures();\n    const requiredSignatures = this.meshTxBuilderBody.requiredSignatures;\n    const allCreds = /* @__PURE__ */ new Set([\n      ...paymentCreds,\n      ...withdrawalCreds,\n      ...certCreds,\n      ...voteCreds,\n      ...requiredSignatures,\n      ...mintCreds\n    ]);\n    return { keyHashes: allCreds, byronAddresses };\n  };\n  getInputsRequiredSignatures() {\n    const byronAddresses = /* @__PURE__ */ new Set();\n    const paymentCreds = /* @__PURE__ */ new Set();\n    for (let input of this.meshTxBuilderBody.inputs) {\n      if (input.type === \"PubKey\") {\n        if (input.txIn.address) {\n          const address = dist_Address.fromString(input.txIn.address);\n          if (!address) {\n            continue;\n          }\n          const addressDetails = address.getProps();\n          const paymentCred = addressDetails.paymentPart;\n          if (paymentCred?.type === dist_CredentialType.KeyHash) {\n            paymentCreds.add(paymentCred.hash);\n          }\n          if (addressDetails.type === dist_AddressType.Byron) {\n            byronAddresses.add(input.txIn.address);\n          }\n        }\n      } else if (input.type === \"SimpleScript\") {\n        const nativeScript = this.getInputNativeScript(input);\n        if (nativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(nativeScript);\n          for (let pubKey of pubKeys) {\n            paymentCreds.add(pubKey);\n          }\n        }\n      }\n    }\n    return { paymentCreds, byronAddresses };\n  }\n  getWithdrawalRequiredSignatures() {\n    const withdrawalCreds = /* @__PURE__ */ new Set();\n    for (let withdrawal of this.meshTxBuilderBody.withdrawals) {\n      if (withdrawal.type === \"PubKeyWithdrawal\") {\n        const address = dist_Address.fromBech32(withdrawal.address);\n        const addressDetails = address.getProps();\n        const paymentCred = addressDetails.paymentPart;\n        if (paymentCred?.type === dist_CredentialType.KeyHash) {\n          withdrawalCreds.add(paymentCred.hash);\n        }\n      }\n      if (withdrawal.type === \"SimpleScriptWithdrawal\") {\n        const nativeScript = this.getWithdrawalNativeScript(withdrawal);\n        if (nativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(nativeScript);\n          for (let pubKey of pubKeys) {\n            withdrawalCreds.add(pubKey);\n          }\n        }\n      }\n    }\n    return withdrawalCreds;\n  }\n  getCertificatesRequiredSignatures() {\n    const certCreds = /* @__PURE__ */ new Set();\n    for (let cert of this.meshTxBuilderBody.certificates) {\n      if (cert.type !== \"BasicCertificate\" && cert.type !== \"SimpleScriptCertificate\") {\n        continue;\n      }\n      const certNativeScript = this.getCertificateNativeScript(cert);\n      const certType = cert.certType;\n      if (certType.type === \"RegisterPool\") {\n        certCreds.add(certType.poolParams.operator);\n        for (let owner of certType.poolParams.owners) {\n          certCreds.add(owner);\n        }\n      } else if (certType.type === \"RetirePool\") {\n        certCreds.add(certType.poolId);\n      } else if (certType.type === \"DRepRegistration\") {\n        if (cert.type === \"BasicCertificate\") {\n          const cstDrep = toDRep(certType.drepId);\n          const keyHash = cstDrep.toKeyHash();\n          if (keyHash) {\n            certCreds.add(keyHash);\n          }\n        } else if (certNativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(certNativeScript);\n          for (let pubKey of pubKeys) {\n            certCreds.add(pubKey);\n          }\n        }\n      } else if (certType.type === \"StakeRegistrationAndDelegation\" || certType.type === \"VoteRegistrationAndDelegation\" || certType.type === \"StakeVoteRegistrationAndDelegation\" || certType.type === \"DeregisterStake\") {\n        if (cert.type === \"BasicCertificate\") {\n          const address = dist_Address.fromString(certType.stakeKeyAddress);\n          if (address) {\n            const addressDetails = address.getProps();\n            const paymentCred = addressDetails.paymentPart;\n            if (paymentCred?.type === dist_CredentialType.KeyHash) {\n              certCreds.add(paymentCred.hash);\n            }\n          }\n        } else if (certNativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(certNativeScript);\n          for (let pubKey of pubKeys) {\n            certCreds.add(pubKey);\n          }\n        }\n      } else if (certType.type === \"CommitteeHotAuth\" || certType.type === \"CommitteeColdResign\") {\n        if (cert.type === \"BasicCertificate\") {\n          const address = dist_Address.fromString(\n            certType.committeeColdKeyAddress\n          );\n          if (address) {\n            const addressDetails = address.getProps();\n            const paymentCred = addressDetails.paymentPart;\n            if (paymentCred?.type === dist_CredentialType.KeyHash) {\n              certCreds.add(paymentCred.hash);\n            }\n          }\n        } else if (certNativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(certNativeScript);\n          for (let pubKey of pubKeys) {\n            certCreds.add(pubKey);\n          }\n        }\n      }\n    }\n    return certCreds;\n  }\n  getVoteRequiredSignatures() {\n    const voteCreds = /* @__PURE__ */ new Set();\n    for (let vote of this.meshTxBuilderBody.votes) {\n      if (vote.type !== \"SimpleScriptVote\") {\n        const nativeScript = this.getVoteNativeScript(vote);\n        if (nativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(nativeScript);\n          for (let pubKey of pubKeys) {\n            voteCreds.add(pubKey);\n          }\n        } else if (vote.type === \"BasicVote\") {\n          const voter = vote.vote.voter;\n          if (voter.type === \"DRep\") {\n            const drep = toDRep(voter.drepId);\n            const keyHash = drep.toKeyHash();\n            if (keyHash) {\n              voteCreds.add(keyHash);\n            }\n          } else if (voter.type === \"StakingPool\") {\n            voteCreds.add(voter.keyHash);\n          } else if (voter.type === \"ConstitutionalCommittee\") {\n            const hotCred = voter.hotCred;\n            if (hotCred.type === \"KeyHash\") {\n              voteCreds.add(hotCred.keyHash);\n            }\n          }\n        }\n      }\n    }\n    return voteCreds;\n  }\n  getMintRequiredSignatures = () => {\n    const mintCreds = /* @__PURE__ */ new Set();\n    for (let mint of this.meshTxBuilderBody.mints) {\n      if (mint.type === \"Native\") {\n        const nativeScript = this.getMintNativeScript(mint);\n        if (nativeScript) {\n          let pubKeys = this.getNativeScriptPubKeys(nativeScript);\n          for (let pubKey of pubKeys) {\n            mintCreds.add(pubKey);\n          }\n        }\n      }\n    }\n    return mintCreds;\n  };\n  getTotalWithdrawal = () => {\n    let accum = 0n;\n    for (let withdrawal of this.meshTxBuilderBody.withdrawals) {\n      accum += BigInt(withdrawal.coin);\n    }\n    return accum;\n  };\n  getTotalDeposit = () => {\n    let accum = 0n;\n    for (let cert of this.meshTxBuilderBody.certificates) {\n      const certType = cert.certType;\n      if (certType.type === \"RegisterStake\") {\n        if (cert.certType) {\n          accum += BigInt(this._protocolParams.keyDeposit);\n        }\n      } else if (certType.type === \"RegisterPool\") {\n        accum += BigInt(this._protocolParams.poolDeposit);\n      } else if (certType.type === \"DRepRegistration\") {\n        accum += BigInt(certType.coin);\n      } else if (certType.type === \"StakeRegistrationAndDelegation\") {\n        accum += BigInt(certType.coin);\n      } else if (certType.type === \"VoteRegistrationAndDelegation\") {\n        accum += BigInt(certType.coin);\n      } else if (certType.type === \"StakeVoteRegistrationAndDelegation\") {\n        accum += BigInt(certType.coin);\n      }\n    }\n    return accum;\n  };\n  getTotalRefund = () => {\n    let accum = 0n;\n    for (let cert of this.meshTxBuilderBody.certificates) {\n      const certType = cert.certType;\n      if (certType.type === \"DeregisterStake\") {\n        if (cert.certType) {\n          accum += BigInt(this._protocolParams.keyDeposit);\n        }\n      } else if (certType.type === \"DRepDeregistration\") {\n        accum += BigInt(certType.coin);\n      }\n    }\n    return accum;\n  };\n  getTotalMint = () => {\n    const assets = /* @__PURE__ */ new Map();\n    for (let mint of this.meshTxBuilderBody.mints) {\n      for (let assetValue of mint.mintValue) {\n        const assetId = `${mint.policyId}${assetValue.assetName}`;\n        let amount = assets.get(assetId) ?? 0n;\n        amount += BigInt(assetValue.amount);\n        assets.set(assetId, amount);\n      }\n    }\n    return Array.from(assets).map(([assetId, amount]) => ({\n      unit: assetId,\n      quantity: amount.toString()\n    }));\n  };\n  getNativeScriptPubKeys = (nativeScript) => {\n    const pubKeys = /* @__PURE__ */ new Set();\n    const nativeScriptStack = [];\n    nativeScriptStack.push(nativeScript);\n    while (nativeScriptStack.length > 0) {\n      const script = nativeScriptStack.pop();\n      if (script === void 0) {\n        continue;\n      }\n      const nOfK = script.asScriptNOfK();\n      if (nOfK) {\n        for (let script2 of nOfK.nativeScripts()) {\n          nativeScriptStack.push(script2);\n        }\n      }\n      const scriptAll = script.asScriptAll();\n      if (scriptAll) {\n        for (let script2 of scriptAll.nativeScripts()) {\n          nativeScriptStack.push(script2);\n        }\n      }\n      const scriptAny = script.asScriptAny();\n      if (scriptAny) {\n        for (let script2 of scriptAny.nativeScripts()) {\n          nativeScriptStack.push(script2);\n        }\n      }\n      const scriptPubkey = script.asScriptPubkey();\n      if (scriptPubkey) {\n        pubKeys.add(scriptPubkey.keyHash());\n      }\n    }\n    return pubKeys;\n  };\n  getVoteNativeScript = (cert) => {\n    if (cert.type !== \"SimpleScriptVote\") {\n      return void 0;\n    }\n    const scriptSource = cert.simpleScriptSource;\n    if (scriptSource === void 0) {\n      return void 0;\n    }\n    if (scriptSource.type === \"Inline\") {\n      return this.getInlinedNativeScript(\n        scriptSource.txHash,\n        scriptSource.txIndex\n      );\n    }\n    if (scriptSource.type === \"Provided\") {\n      return dist_NativeScript.fromCbor(\n        scriptSource.scriptCode\n      );\n    }\n  };\n  getCertificateNativeScript = (cert) => {\n    if (cert.type !== \"SimpleScriptCertificate\") {\n      return void 0;\n    }\n    const scriptSource = cert.simpleScriptSource;\n    if (scriptSource === void 0) {\n      return void 0;\n    }\n    if (scriptSource.type === \"Inline\") {\n      return this.getInlinedNativeScript(\n        scriptSource.txHash,\n        scriptSource.txIndex\n      );\n    }\n    if (scriptSource.type === \"Provided\") {\n      return dist_NativeScript.fromCbor(\n        scriptSource.scriptCode\n      );\n    }\n  };\n  getMintNativeScript = (mint) => {\n    if (mint.type !== \"Native\") {\n      return void 0;\n    }\n    const scriptSource = mint.scriptSource;\n    const scriptSourceAlternative = mint.scriptSource;\n    if (scriptSource === void 0) {\n      return void 0;\n    }\n    if (scriptSource.type === \"Inline\") {\n      return this.getInlinedNativeScript(\n        scriptSource.txHash,\n        scriptSource.txIndex\n      );\n    }\n    if (scriptSource.type === \"Provided\") {\n      if (scriptSource.scriptCode != void 0) {\n        return dist_NativeScript.fromCbor(\n          scriptSource.scriptCode\n        );\n      }\n    }\n    if (scriptSourceAlternative.type === \"Provided\") {\n      if (scriptSourceAlternative.script != void 0) {\n        return dist_NativeScript.fromCbor(\n          scriptSourceAlternative.script.code\n        );\n      }\n    }\n  };\n  getWithdrawalNativeScript = (withdrawal) => {\n    if (withdrawal.type !== \"SimpleScriptWithdrawal\") {\n      return void 0;\n    }\n    const scriptSource = withdrawal.scriptSource;\n    if (scriptSource === void 0) {\n      return void 0;\n    }\n    if (scriptSource.type === \"Inline\") {\n      return this.getInlinedNativeScript(\n        scriptSource.txHash,\n        scriptSource.txIndex\n      );\n    }\n    if (scriptSource.type === \"Provided\") {\n      return dist_NativeScript.fromCbor(\n        scriptSource.scriptCode\n      );\n    }\n  };\n  getInputNativeScript(txIn) {\n    if (txIn.type !== \"SimpleScript\") {\n      return void 0;\n    }\n    const scriptSource = txIn.simpleScriptTxIn.scriptSource;\n    if (scriptSource === void 0) {\n      return void 0;\n    }\n    if (scriptSource.type === \"Inline\") {\n      return this.getInlinedNativeScript(\n        scriptSource.txHash,\n        scriptSource.txIndex\n      );\n    }\n    if (scriptSource.type === \"Provided\") {\n      return dist_NativeScript.fromCbor(\n        scriptSource.scriptCode\n      );\n    }\n  }\n  getInlinedNativeScript = (txHash, index) => {\n    const utxos = this.queriedUTxOs[txHash];\n    if (!utxos) {\n      return void 0;\n    }\n    const utxo = utxos.find((utxo2) => utxo2.input.outputIndex === index);\n    if (utxo?.output.scriptRef) {\n      const script = dist_Script.fromCbor(\n        utxo.output.scriptRef\n      );\n      return script.asNative();\n    }\n    return void 0;\n  };\n  makeTxId = (txHash, index) => {\n    return `${txHash}-${index}`;\n  };\n  getTotalReferenceInputsSize = () => {\n    let accum = 0n;\n    const allReferenceInputs = this.getAllReferenceInputsSizes();\n    for (const [_, scriptSize] of allReferenceInputs) {\n      accum += scriptSize;\n    }\n    return accum;\n  };\n  getAllReferenceInputsSizes = () => {\n    const referenceInputs = /* @__PURE__ */ new Map();\n    const bodyReferenceInputs = this.getBodyReferenceInputsSizes();\n    for (const [txId, scriptSize] of bodyReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    const inputsReferenceInputs = this.getInputsReferenceInputsSizes();\n    for (const [txId, scriptSize] of inputsReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    const mintsReferenceInputs = this.getMintsReferenceInputsSizes();\n    for (const [txId, scriptSize] of mintsReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    const withdrawalsReferenceInputs = this.getWithdrawalsReferenceInputsSizes();\n    for (const [txId, scriptSize] of withdrawalsReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    const votesReferenceInputs = this.getVotesReferenceInputsSizes();\n    for (const [txId, scriptSize] of votesReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    const certificatesReferenceInputs = this.getCertificatesReferenceInputsSizes();\n    for (const [txId, scriptSize] of certificatesReferenceInputs) {\n      referenceInputs.set(txId, scriptSize);\n    }\n    return referenceInputs;\n  };\n  getBodyReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const refTxIn of this.meshTxBuilderBody.referenceInputs) {\n      referenceInputs.push([\n        this.makeTxId(refTxIn.txHash, refTxIn.txIndex),\n        BigInt(refTxIn.scriptSize ?? 0)\n      ]);\n    }\n    return referenceInputs;\n  };\n  getInputsReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const input of this.meshTxBuilderBody.inputs) {\n      if (input.type === \"Script\") {\n        const scriptSource = input.scriptTxIn.scriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      } else if (input.type === \"SimpleScript\") {\n        const scriptSource = input.simpleScriptTxIn.scriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      }\n    }\n    return referenceInputs;\n  };\n  getMintsReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const mint of this.meshTxBuilderBody.mints) {\n      if (mint.type === \"Plutus\" || mint.type === \"Native\") {\n        const scriptSource = mint.scriptSource;\n        if (scriptSource?.type == \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      }\n    }\n    return referenceInputs;\n  };\n  getWithdrawalsReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const withdrawal of this.meshTxBuilderBody.withdrawals) {\n      if (withdrawal.type === \"SimpleScriptWithdrawal\" || withdrawal.type === \"ScriptWithdrawal\") {\n        const scriptSource = withdrawal.scriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      }\n    }\n    return referenceInputs;\n  };\n  getVotesReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const vote of this.meshTxBuilderBody.votes) {\n      if (vote.type === \"SimpleScriptVote\") {\n        const scriptSource = vote.simpleScriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      } else if (vote.type === \"ScriptVote\") {\n        const scriptSource = vote.scriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      }\n    }\n    return referenceInputs;\n  };\n  getCertificatesReferenceInputsSizes = () => {\n    const referenceInputs = [];\n    for (const cert of this.meshTxBuilderBody.certificates) {\n      if (cert.type === \"SimpleScriptCertificate\") {\n        const scriptSource = cert.simpleScriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      } else if (cert.type === \"ScriptCertificate\") {\n        const scriptSource = cert.scriptSource;\n        if (scriptSource?.type === \"Inline\") {\n          referenceInputs.push([\n            this.makeTxId(scriptSource.txHash, scriptSource.txIndex),\n            BigInt(scriptSource.scriptSize ?? 0)\n          ]);\n        }\n      }\n    }\n    return referenceInputs;\n  };\n  getTotalExecutionUnits = () => {\n    let memUnits = 0n;\n    let stepUnits = 0n;\n    for (let input of this.meshTxBuilderBody.inputs) {\n      if (input.type === \"Script\" && input.scriptTxIn.redeemer) {\n        memUnits += BigInt(input.scriptTxIn.redeemer.exUnits.mem);\n        stepUnits += BigInt(input.scriptTxIn.redeemer.exUnits.steps);\n      }\n    }\n    for (let mint of this.meshTxBuilderBody.mints) {\n      if (mint.type === \"Plutus\" && mint.redeemer) {\n        memUnits += BigInt(mint.redeemer.exUnits.mem);\n        stepUnits += BigInt(mint.redeemer.exUnits.steps);\n      }\n    }\n    for (let cert of this.meshTxBuilderBody.certificates) {\n      if (cert.type === \"ScriptCertificate\" && cert.redeemer) {\n        memUnits += BigInt(cert.redeemer.exUnits.mem);\n        stepUnits += BigInt(cert.redeemer.exUnits.steps);\n      }\n    }\n    for (let withdrawal of this.meshTxBuilderBody.withdrawals) {\n      if (withdrawal.type === \"ScriptWithdrawal\" && withdrawal.redeemer) {\n        memUnits += BigInt(withdrawal.redeemer.exUnits.mem);\n        stepUnits += BigInt(withdrawal.redeemer.exUnits.steps);\n      }\n    }\n    for (let vote of this.meshTxBuilderBody.votes) {\n      if (vote.type === \"ScriptVote\" && vote.redeemer) {\n        memUnits += BigInt(vote.redeemer.exUnits.mem);\n        stepUnits += BigInt(vote.redeemer.exUnits.steps);\n      }\n    }\n    return {\n      memUnits,\n      stepUnits\n    };\n  };\n  getSerializedSize = () => {\n    return this.serializeMockTx().length / 2;\n  };\n  calculateFee = () => {\n    const txSize = this.getSerializedSize();\n    return this.calculateFeeForSerializedTx(txSize);\n  };\n  calculateFeeForSerializedTx = (txSize) => {\n    const refScriptFee = this.calculateRefScriptFee();\n    const redeemersFee = this.calculateRedeemersFee();\n    const minFeeCoeff = BigInt(this._protocolParams.minFeeA);\n    const minFeeConstant = BigInt(this._protocolParams.minFeeB);\n    const minFee = minFeeCoeff * BigInt(txSize) + minFeeConstant;\n    return minFee + refScriptFee + redeemersFee;\n  };\n  calculateRefScriptFee = () => {\n    const refSize = this.getTotalReferenceInputsSize();\n    const refScriptFee = this._protocolParams.minFeeRefScriptCostPerByte;\n    return minRefScriptFee(refSize, refScriptFee);\n  };\n  calculateRedeemersFee = () => {\n    const { memUnits, stepUnits } = this.getTotalExecutionUnits();\n    const stepPrice = bignumber_default(this._protocolParams.priceStep);\n    const memPrice = bignumber_default(this._protocolParams.priceMem);\n    const stepFee = stepPrice.multipliedBy(bignumber_default(stepUnits.toString()));\n    const memFee = memPrice.multipliedBy(bignumber_default(memUnits.toString()));\n    return BigInt(\n      stepFee.plus(memFee).integerValue(bignumber_default.ROUND_CEIL).toString()\n    );\n  };\n  calculateMinLovelaceForOutput = (output) => {\n    let currentOutput = cloneOutput(output);\n    let lovelace = getLovelace(currentOutput);\n    let minAda = 0n;\n    for (let i = 0; i < 3; i++) {\n      const txOutSize = BigInt(\n        this.serializer.serializeOutput(currentOutput).length / 2\n      );\n      const txOutByteCost = BigInt(this._protocolParams.coinsPerUtxoSize);\n      const totalOutCost = 160n + BigInt(txOutSize) * txOutByteCost;\n      minAda = totalOutCost;\n      if (lovelace < totalOutCost) {\n        lovelace = totalOutCost;\n      } else {\n        break;\n      }\n      currentOutput = setLoveLace(currentOutput, lovelace);\n    }\n    return minAda;\n  };\n  clone() {\n    const newBuilder = super._cloneCore(() => {\n      return new _MeshTxBuilder({\n        serializer: this.serializer,\n        fetcher: this.fetcher,\n        submitter: this.submitter,\n        evaluator: this.evaluator,\n        verbose: this.verbose,\n        params: { ...this._protocolParams }\n      });\n    });\n    newBuilder.txHex = this.txHex;\n    newBuilder.queriedTxHashes = structuredClone(this.queriedTxHashes);\n    newBuilder.queriedUTxOs = structuredClone(this.queriedUTxOs);\n    newBuilder.utxosWithRefScripts = structuredClone(this.utxosWithRefScripts);\n    return newBuilder;\n  }\n};\nfunction minRefScriptFee(totalRefScriptsSize, refScriptCoinsPerByte) {\n  const multiplier = new bignumber_default(12).dividedBy(new bignumber_default(10));\n  const sizeIncrement = new bignumber_default(25600);\n  const baseFee = new bignumber_default(refScriptCoinsPerByte);\n  const totalSize = new bignumber_default(totalRefScriptsSize.toString());\n  return tierRefScriptFee(multiplier, sizeIncrement, baseFee, totalSize);\n}\nfunction tierRefScriptFee(multiplier, sizeIncrement, baseFee, totalSize) {\n  if (multiplier.lte(0) || sizeIncrement.eq(0)) {\n    throw new Error(\"Size increment and multiplier must be positive\");\n  }\n  const fullTiers = totalSize.dividedToIntegerBy(sizeIncrement);\n  const partialTierSize = totalSize.mod(sizeIncrement);\n  const tierPrice = baseFee.multipliedBy(sizeIncrement);\n  let acc = new bignumber_default(0);\n  const one = new bignumber_default(1);\n  if (fullTiers.gt(0)) {\n    const multiplierPow = multiplier.pow(fullTiers.toNumber());\n    const progressionEnumerator = one.minus(multiplierPow);\n    const progressionDenom = one.minus(multiplier);\n    const tierProgressionSum = progressionEnumerator.dividedBy(progressionDenom);\n    acc = acc.plus(tierPrice.multipliedBy(tierProgressionSum));\n  }\n  if (partialTierSize.gt(0)) {\n    const multiplierPow = multiplier.pow(fullTiers.toNumber());\n    const lastTierPrice = baseFee.multipliedBy(multiplierPow);\n    const partialTierFee = lastTierPrice.multipliedBy(partialTierSize);\n    acc = acc.plus(partialTierFee);\n  }\n  return BigInt(acc.integerValue(bignumber_default.ROUND_FLOOR).toString());\n}\nvar cloneOutput = (output) => {\n  return json_bigint.parse(json_bigint.stringify(output));\n};\nvar setLoveLace = (output, lovelace) => {\n  let lovelaceSet = false;\n  for (let asset of output.amount) {\n    if (asset.unit === \"lovelace\") {\n      asset.quantity = lovelace.toString();\n      lovelaceSet = true;\n      break;\n    }\n  }\n  if (!lovelaceSet) {\n    output.amount.push({\n      unit: \"lovelace\",\n      quantity: lovelace.toString()\n    });\n  }\n  return output;\n};\nvar getLovelace = (output) => {\n  for (let asset of output.amount) {\n    if (asset.unit === \"lovelace\") {\n      return BigInt(asset.quantity);\n    }\n  }\n  return 0n;\n};\n\n// src/scripts/forge.script.ts\n\nvar ForgeScript = class {\n  static withOneSignature(address) {\n    const keyHash = deserializeEd25519KeyHash(resolvePaymentKeyHash(address));\n    return buildScriptPubkey(keyHash).toCbor();\n  }\n  // static withAtLeastNSignatures(\n  //   addresses: string[], minimumRequired: number,\n  // ): string {\n  //   const nativeScripts = csl.NativeScripts.new();\n  //   addresses.forEach((address) => {\n  //     const keyHash = deserializeEd25519KeyHash(\n  //       resolvePaymentKeyHash(address),\n  //     );\n  //     nativeScripts.add(buildScriptPubkey(keyHash));\n  //   });\n  //   const scriptNOfK = csl.ScriptNOfK.new(minimumRequired, nativeScripts);\n  //   return csl.NativeScript.new_script_any(scriptNOfK).to_hex();\n  // }\n  // static withAnySignature(addresses: string[]): string {\n  //   const nativeScripts = csl.NativeScripts.new();\n  //   addresses.forEach((address) => {\n  //     const keyHash = deserializeEd25519KeyHash(\n  //       resolvePaymentKeyHash(address),\n  //     );\n  //     nativeScripts.add(buildScriptPubkey(keyHash));\n  //   });\n  //   const scriptAny = csl.ScriptAny.new(nativeScripts);\n  //   return csl.NativeScript.new_script_any(scriptAny).to_hex();\n  // }\n  // static withAllSignatures(addresses: string[]): string {\n  //   const nativeScripts = csl.NativeScripts.new();\n  //   addresses.forEach((address) => {\n  //     const keyHash = deserializeEd25519KeyHash(\n  //       resolvePaymentKeyHash(address),\n  //     );\n  //     nativeScripts.add(buildScriptPubkey(keyHash));\n  //   });\n  //   const scriptAll = csl.ScriptAll.new(nativeScripts);\n  //   return csl.NativeScript.new_script_any(scriptAll).to_hex();\n  // }\n  static fromNativeScript(script) {\n    return toNativeScript(script).toCbor();\n  }\n};\n\n// src/transaction/index.ts\n\n\nvar transaction_dist_Transaction = class {\n  txBuilder;\n  initiator;\n  isCollateralNeeded = false;\n  constructor(options) {\n    this.txBuilder = new MeshTxBuilder(options);\n    this.initiator = options.initiator;\n  }\n  static attachMetadata(cborTx, cborTxMetadata) {\n    const tx = dist_deserializeTx(cborTx);\n    const txAuxData = tx.auxiliaryData() ?? new AuxiliaryData();\n    txAuxData.setMetadata(\n      GeneralTransactionMetadata.fromCbor(\n        esm_primitives_HexBlob(cborTxMetadata)\n      )\n    );\n    if (computeAuxiliaryDataHash(txAuxData.toCore())?.toString() !== tx.body().auxiliaryDataHash()?.toString()) {\n      throw new Error(\n        \"[Transaction] attachMetadata: The metadata hash does not match the auxiliary data hash.\"\n      );\n    }\n    return new dist_Transaction(tx.body(), tx.witnessSet(), txAuxData).toCbor().toString();\n  }\n  static deattachMetadata(cborTx) {\n    const tx = dist_deserializeTx(cborTx);\n    return new dist_Transaction(tx.body(), tx.witnessSet()).toCbor().toString();\n  }\n  static maskMetadata(cborTx) {\n    const tx = dist_deserializeTx(cborTx);\n    const txMetadata = tx.auxiliaryData()?.metadata();\n    if (txMetadata !== void 0) {\n      const mockMetadata = /* @__PURE__ */ new Map();\n      txMetadata.metadata()?.forEach(\n        (metadatum, label) => mockMetadata.set(label, mask(metadatum))\n      );\n      const txAuxData = tx.auxiliaryData();\n      txMetadata.setMetadata(mockMetadata);\n      txAuxData?.setMetadata(txMetadata);\n      return new dist_Transaction(tx.body(), tx.witnessSet(), txAuxData).toCbor().toString();\n    }\n    return cborTx;\n  }\n  static readMetadata(cborTx) {\n    const tx = dist_deserializeTx(cborTx);\n    return tx.auxiliaryData()?.metadata()?.toCbor().toString() ?? \"\";\n  }\n  static writeMetadata(cborTx, cborTxMetadata) {\n    const tx = dist_deserializeTx(cborTx);\n    const txAuxData = tx.auxiliaryData() ?? new AuxiliaryData();\n    txAuxData.setMetadata(\n      GeneralTransactionMetadata.fromCbor(\n        esm_primitives_HexBlob(cborTxMetadata)\n      )\n    );\n    return new dist_Transaction(tx.body(), tx.witnessSet(), txAuxData).toCbor().toString();\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * @param recipient The recipient of the output.\n   * @param assets The assets to send. Provide string for lovelace and Asset[] for tokens and/or lovelace.\n   * @returns The transaction builder.\n   * @see {@link https://meshjs.dev/apis/transaction#sendAssets}\n   */\n  sendAssets(recipient, assets) {\n    if (typeof assets === \"string\") {\n      assets = [\n        {\n          unit: \"lovelace\",\n          quantity: assets\n        }\n      ];\n    }\n    if (typeof recipient === \"string\") {\n      this.txBuilder.txOut(recipient, assets);\n    }\n    if (typeof recipient === \"object\") {\n      this.txBuilder.txOut(recipient.address, assets);\n      if (recipient.datum) {\n        if (recipient.datum.inline) {\n          this.txBuilder.txOutInlineDatumValue(recipient.datum.value);\n        } else {\n          this.txBuilder.txOutDatumHashValue(recipient.datum.value);\n        }\n      }\n    }\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Use sendAssets instead:\n   * ```ts\n   * this.sendAssets(recipient, lovelace);\n   * ```\n   *\n   * Deprecation reason - Unnecessary implementation which might cause confusion.\n   *\n   * @param {Recipient} recipient The recipient of the transaction.\n   * @param {string} lovelace The amount of lovelace to send.\n   * @returns {Transaction} The Transaction object.\n   * @see {@link https://meshjs.dev/apis/transaction#sendAda}\n   */\n  sendLovelace(recipient, lovelace) {\n    return this.sendAssets(recipient, lovelace);\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Please use sendAssets with helper function to obtain token unit instead:\n   * ```ts\n   * const assets = [{ unit: SUPPORTED_TOKENS.GIMBAL, quantity: \"100\" }]\n   * transaction.sendAssets(recipient, assets)\n   * ```\n   *\n   * Deprecation reason - Required maintenance on tokens.\n   *\n   * @param {Recipient} recipient The recipient of the transaction.\n   * @param {Token} ticker The ticker of the token to send.\n   * @param {string} amount The amount of the token to send.\n   * @returns {Transaction} The Transaction object.\n   * @see {@link https://meshjs.dev/apis/transaction#sendToken}\n   */\n  sendToken(recipient, ticker, amount) {\n    const assets = [{ unit: SUPPORTED_TOKENS[ticker], quantity: amount }];\n    return this.sendAssets(recipient, assets);\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * ```ts\n   * const assets = value.output.amount;\n   * this.sendAssets(recipient, assets);\n   * ```\n   * Deprecation reason - Unnecessary implementation which might cause confusion.\n   *\n   * @param {Recipient} recipient The recipient of the output.\n   * @param {UTxO} value The UTxO value of the output.\n   * @returns {Transaction} The Transaction object.\n   */\n  sendValue(recipient, value) {\n    const assets = value.output.amount;\n    return this.sendAssets(recipient, assets);\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * @param {UTxO[]} inputs The inputs to set.\n   * @returns {Transaction} The transaction.\n   */\n  setTxInputs(inputs) {\n    inputs.forEach((input) => {\n      this.txBuilder.txIn(\n        input.input.txHash,\n        input.input.outputIndex,\n        input.output.amount,\n        input.output.address,\n        input.output.scriptRef ? input.output.scriptRef.length / 2 : 0\n      );\n    });\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * @param {UTxO[]} inputs The reference inputs to set.\n   * @returns {Transaction} The transaction.\n   */\n  setTxRefInputs(inputs) {\n    inputs.forEach((input) => {\n      this.txBuilder.readOnlyTxInReference(\n        input.input.txHash,\n        input.input.outputIndex\n      );\n    });\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Sets the native script for the transaction.\n   * @param {NativeScript} script The native script to spend from.\n   * @param {UTxO} utxo The UTxO attached to the script.\n   * @returns {Transaction} The Transaction object.\n   */\n  setNativeScriptInput(script, utxo) {\n    const { scriptCbor } = this.txBuilder.serializer.deserializer.script.deserializeNativeScript(\n      script\n    );\n    this.txBuilder.txIn(\n      utxo.input.txHash,\n      utxo.input.outputIndex,\n      utxo.output.amount,\n      utxo.output.address\n    ).txInScript(scriptCbor);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  // TODO: nuke this probably as the input type is too confusing\n  redeemValue(options) {\n    const { value, script, datum, redeemer } = options;\n    const red = redeemer || {\n      data: { alternative: 0, fields: [\"mesh\"] },\n      budget: DEFAULT_REDEEMER_BUDGET\n    };\n    if (\"code\" in script) {\n      this.isCollateralNeeded = true;\n      this.spendingPlutusScript(script).txIn(\n        value.input.txHash,\n        value.input.outputIndex,\n        value.output.amount,\n        value.output.address,\n        value.output.scriptRef ? value.output.scriptRef.length / 2 : 0\n      ).txInScript(script.code).txInRedeemerValue(red.data, \"Mesh\", red.budget);\n    }\n    if (\"output\" in script) {\n      if (!script.output.scriptRef) {\n        throw new Error(\"redeemValue: No script reference found in UTxO\");\n      }\n      const scriptRef = fromScriptRef(script.output.scriptRef);\n      if (!scriptRef || !(\"code\" in scriptRef)) {\n        throw new Error(\"redeemValue: Script reference not found\");\n      }\n      this.isCollateralNeeded = true;\n      this.spendingPlutusScript(scriptRef).txIn(\n        value.input.txHash,\n        value.input.outputIndex,\n        value.output.amount,\n        value.output.address\n      ).spendingTxInReference(\n        script.input.txHash,\n        script.input.outputIndex,\n        (script.output.scriptRef.length / 2).toString(),\n        script.output.scriptHash\n      ).txInRedeemerValue(red.data, \"Mesh\", red.budget);\n    }\n    if (datum) {\n      this.txBuilder.txInDatumValue(datum);\n    } else {\n      this.txBuilder.txInInlineDatumPresent();\n    }\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  mintAsset(forgeScript, mint, redeemer) {\n    const assetQuantity = mint.assetQuantity;\n    let assetNameHex = stringToHex(mint.assetName);\n    const referenceAssetNameHex = CIP68_100(assetNameHex);\n    if (mint.cip68ScriptAddress) {\n      assetNameHex = CIP68_222(assetNameHex);\n    }\n    let policyId = \"\";\n    switch (typeof forgeScript) {\n      case \"string\":\n        policyId = deserializeNativeScript(forgeScript).hash().toString();\n        this.txBuilder.mint(assetQuantity, policyId, assetNameHex).mintingScript(forgeScript);\n        if (mint.cip68ScriptAddress) {\n          this.txBuilder.mint(assetQuantity, policyId, referenceAssetNameHex).mintingScript(forgeScript);\n        }\n        break;\n      case \"object\":\n        if (!redeemer)\n          throw new Error(\n            \"burnAsset: Redeemer data is required for Plutus minting\"\n          );\n        if (\"code\" in forgeScript) {\n          policyId = deserializePlutusScript(\n            forgeScript.code,\n            forgeScript.version\n          ).hash().toString();\n          this.isCollateralNeeded = true;\n          this.mintPlutusScript(forgeScript).mint(assetQuantity, policyId, assetNameHex).mintingScript(forgeScript.code).mintRedeemerValue(redeemer.data, \"Mesh\", redeemer.budget);\n          if (mint.cip68ScriptAddress) {\n            this.mintPlutusScript(forgeScript).mint(assetQuantity, policyId, referenceAssetNameHex).mintingScript(forgeScript.code).mintRedeemerValue(redeemer.data, \"Mesh\", redeemer.budget);\n          }\n          break;\n        }\n        if (\"output\" in forgeScript) {\n          if (!forgeScript.output.scriptRef) {\n            throw new Error(\"mintAsset: No script reference found in UTxO\");\n          }\n          const script = fromScriptRef(forgeScript.output.scriptRef);\n          if (!script) {\n            throw new Error(\"mintAsset: Script reference not found\");\n          }\n          if (\"code\" in script) {\n            policyId = deserializePlutusScript(script.code, script.version).hash().toString();\n            this.isCollateralNeeded = true;\n            this.mintPlutusScript(script).mint(assetQuantity, policyId, assetNameHex).mintTxInReference(\n              forgeScript.input.txHash,\n              forgeScript.input.outputIndex,\n              (forgeScript.output.scriptRef.length / 2).toString(),\n              forgeScript.output.scriptHash\n            ).mintRedeemerValue(redeemer.data, \"Mesh\", redeemer.budget);\n            if (mint.cip68ScriptAddress) {\n              this.mintPlutusScript(script).mint(assetQuantity, policyId, referenceAssetNameHex).mintTxInReference(\n                forgeScript.input.txHash,\n                forgeScript.input.outputIndex,\n                (forgeScript.output.scriptRef.length / 2).toString(),\n                forgeScript.output.scriptHash\n              ).mintRedeemerValue(redeemer.data, \"Mesh\", redeemer.budget);\n              break;\n            }\n            break;\n          } else {\n            throw new Error(\n              \"mintAsset: Reference script minting not implemented\"\n            );\n          }\n        }\n        break;\n    }\n    if (mint.recipient) {\n      this.sendAssets(mint.recipient, [\n        { unit: policyId + assetNameHex, quantity: mint.assetQuantity }\n      ]);\n    }\n    if (mint.cip68ScriptAddress) {\n      this.sendAssets(\n        {\n          address: mint.cip68ScriptAddress,\n          datum: { inline: true, value: metadataToCip68(mint.metadata) }\n        },\n        [\n          {\n            unit: policyId + referenceAssetNameHex,\n            quantity: mint.assetQuantity\n          }\n        ]\n      );\n    }\n    if (!mint.cip68ScriptAddress && mint.metadata && mint.label) {\n      if (mint.label === \"721\" || mint.label === \"20\") {\n        let currentMetadata = this.txBuilder.meshTxBuilderBody.metadata;\n        if (currentMetadata.get(BigInt(mint.label)) === void 0) {\n          this.setMetadata(Number(mint.label), {\n            [policyId]: { [mint.assetName]: mint.metadata }\n          });\n        } else {\n          let metadataMap = metadataObjToMap({\n            [policyId]: { [mint.assetName]: mint.metadata }\n          });\n          let newMetadata = mergeContents(\n            currentMetadata.get(BigInt(mint.label)),\n            metadataMap,\n            mint.label === \"721\" ? 2 : 0\n          );\n          this.setMetadata(Number(mint.label), newMetadata);\n        }\n      } else {\n        this.setMetadata(Number(mint.label), mint.metadata);\n      }\n    }\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  burnAsset(forgeScript, asset, redeemer) {\n    const assetQuantity = \"-\" + asset.quantity;\n    const mint = {\n      assetName: hexToString(asset.unit.slice(POLICY_ID_LENGTH)),\n      assetQuantity\n    };\n    try {\n      this.mintAsset(forgeScript, mint, redeemer);\n    } catch (error) {\n      throw new Error(\"burnAsset: \" + error);\n    }\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Sets the change address for the transaction.\n   *\n   * @param {string} changeAddress The change address.\n   * @returns {Transaction} The Transaction object.\n   */\n  setChangeAddress(changeAddress) {\n    this.txBuilder.changeAddress(changeAddress);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Sets the collateral for the transaction.\n   *\n   * @param {UTxO[]} collateral - Set the UTxO for collateral.\n   * @returns {Transaction} The Transaction object.\n   */\n  setCollateral(collateral) {\n    collateral.forEach((collateralUtxo) => {\n      this.txBuilder.txInCollateral(\n        collateralUtxo.input.txHash,\n        collateralUtxo.input.outputIndex,\n        collateralUtxo.output.amount,\n        collateralUtxo.output.address\n      );\n    });\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Sets the network to use, this is mainly to know the cost models to be used to calculate script integrity hash\n   * @param network The specific network this transaction is being built for (\"testnet\" | \"preview\" | \"preprod\" | \"mainnet\")\n   * @returns The Transaction object.\n   */\n  setNetwork = (network) => {\n    this.txBuilder.setNetwork(network);\n    return this;\n  };\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   * Sets the required signers for the transaction.\n   *\n   * @param {string[]} addresses The addresses of the required signers.\n   * @returns {Transaction} The Transaction object.\n   */\n  setRequiredSigners(addresses) {\n    addresses.forEach((address) => {\n      const { pubKeyHash } = this.txBuilder.serializer.deserializer.key.deserializeAddress(address);\n      this.txBuilder.requiredSignerHash(pubKeyHash);\n    });\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   *  Set the time to live for the transaction.\n   *\n   * @param {string} slot The slot number to expire the transaction at.\n   * @returns {Transaction} The Transaction object.\n   * @see {@link https://meshjs.dev/apis/transaction#setTimeLimit}\n   */\n  setTimeToExpire(slot) {\n    this.txBuilder.invalidHereafter(Number(slot));\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   *  Sets the start slot for the transaction.\n   *\n   * @param {string} slot The start slot for the transaction.\n   * @returns {Transaction} The Transaction object.\n   * @see {@link https://meshjs.dev/apis/transaction#setTimeLimit}\n   */\n  setTimeToStart(slot) {\n    this.txBuilder.invalidBefore(Number(slot));\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   *\n   *  Add a JSON metadata entry to the transaction.\n   *\n   * @param {number} label The label to use for the metadata entry.\n   * @param {unknown} metadata The value to use for the metadata entry.\n   * @returns {Transaction} The Transaction object.\n   * @see {@link https://meshjs.dev/apis/transaction#setMetadata}\n   */\n  setMetadata(label, metadata) {\n    this.txBuilder.metadataValue(label, metadata);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  withdrawRewards(rewardAddress, lovelace) {\n    this.txBuilder.withdrawal(rewardAddress, lovelace);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  delegateStake(rewardAddress, poolId) {\n    this.txBuilder.delegateStakeCertificate(\n      rewardAddress,\n      this.txBuilder.serializer.deserializer.cert.deserializePoolId(poolId)\n    );\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  deregisterStake(rewardAddress) {\n    this.txBuilder.deregisterStakeCertificate(rewardAddress);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  registerStake(rewardAddress) {\n    this.txBuilder.registerStakeCertificate(rewardAddress);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  registerPool(params) {\n    this.txBuilder.registerPoolCertificate(params);\n    return this;\n  }\n  /**\n   * [Deprecated] - `Transaction` class is on planning for V2.\n   * Use `MeshTxBuilder` instead for tx-building for now.\n   */\n  retirePool(poolId, epochNo) {\n    this.txBuilder.retirePoolCertificate(poolId, epochNo);\n    return this;\n  }\n  async build(balanced = true) {\n    try {\n      await this.addCollateralIfNeeded();\n      await this.addTxInputsAsNeeded();\n      await this.addChangeAddress();\n      if (balanced) {\n        return this.txBuilder.complete();\n      } else {\n        return this.txBuilder.completeUnbalanced();\n      }\n    } catch (error) {\n      throw new Error(\n        `[Transaction] An error occurred during build: ${error}.`\n      );\n    }\n  }\n  mintPlutusScript(script) {\n    switch (script.version) {\n      case \"V1\":\n        this.txBuilder.mintPlutusScriptV1();\n        break;\n      case \"V2\":\n        this.txBuilder.mintPlutusScriptV2();\n        break;\n      case \"V3\":\n        this.txBuilder.mintPlutusScriptV3();\n        break;\n    }\n    return this.txBuilder;\n  }\n  spendingPlutusScript(script) {\n    switch (script.version) {\n      case \"V1\":\n        this.txBuilder.spendingPlutusScriptV1();\n        break;\n      case \"V2\":\n        this.txBuilder.spendingPlutusScriptV2();\n        break;\n      case \"V3\":\n        this.txBuilder.spendingPlutusScriptV3();\n        break;\n    }\n    return this.txBuilder;\n  }\n  async addCollateralIfNeeded() {\n    if (this.isCollateralNeeded) {\n      const collaterals = await this.initiator.getCollateral();\n      if (collaterals.length > 0) {\n        this.setCollateral(collaterals);\n        return;\n      }\n      const utxos = await this.initiator.getUtxos();\n      const pureLovelaceUtxos = utxos.filter(\n        (utxo) => utxo.output.amount.length === 1\n      );\n      pureLovelaceUtxos.sort((a, b) => {\n        return Number(a.output.amount[0]?.quantity) - Number(a.output.amount[0]?.quantity);\n      });\n      for (const utxo of pureLovelaceUtxos) {\n        if (Number(utxo.output.amount[0]?.quantity) >= 5e6) {\n          return [utxo];\n        }\n      }\n      if (pureLovelaceUtxos.length === 0) {\n        throw new Error(\"No pure lovelace utxos found for collateral\");\n      }\n      this.setCollateral([pureLovelaceUtxos[0]]);\n    }\n  }\n  async addTxInputsAsNeeded() {\n    if (this.txBuilder.meshTxBuilderBody.extraInputs.length === 0) {\n      const utxos = await this.initiator.getUtxos();\n      this.txBuilder.selectUtxosFrom(utxos);\n    }\n  }\n  async addChangeAddress() {\n    if (this.txBuilder.meshTxBuilderBody.changeAddress === \"\") {\n      const changeAddress = await this.initiator.getChangeAddress();\n      this.setChangeAddress(changeAddress);\n    }\n  }\n};\nfunction mask(metadatum) {\n  switch (metadatum.getKind()) {\n    case TransactionMetadatumKind.Text:\n      return TransactionMetadatum.newText(\n        \"0\".repeat(metadatum.asText()?.length ?? 0)\n      );\n    case TransactionMetadatumKind.Bytes:\n    case TransactionMetadatumKind.Integer:\n      return metadatum;\n    case TransactionMetadatumKind.List:\n      const list = new MetadatumList();\n      for (let i = 0; i < (metadatum.asList()?.getLength() ?? 0); i++) {\n        list.add(mask(metadatum.asList()?.get(i)));\n      }\n      return TransactionMetadatum.newList(list);\n    case TransactionMetadatumKind.Map:\n      const map = new MetadatumMap();\n      for (let i = 0; i < (metadatum.asMap()?.getLength() ?? 0); i++) {\n        const key = metadatum.asMap()?.getKeys().get(i);\n        const value = metadatum.asMap()?.get(key);\n        map.insert(key, mask(value));\n      }\n      return TransactionMetadatum.newMap(map);\n    default:\n      throw new Error(`Unsupported metadatum kind: ${metadatum.getKind()}`);\n  }\n}\n\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/bufferToBase64URLString.js\n/**\n * Convert the given array buffer into a Base64URL-encoded string. Ideal for converting various\n * credential response ArrayBuffers to string for sending back to the server as JSON.\n *\n * Helper method to compliment `base64URLStringToBuffer`\n */\nfunction bufferToBase64URLString(buffer) {\n    const bytes = new Uint8Array(buffer);\n    let str = '';\n    for (const charCode of bytes) {\n        str += String.fromCharCode(charCode);\n    }\n    const base64String = btoa(str);\n    return base64String.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=/g, '');\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/base64URLStringToBuffer.js\n/**\n * Convert from a Base64URL-encoded string to an Array Buffer. Best used when converting a\n * credential ID from a JSON string to an ArrayBuffer, like in allowCredentials or\n * excludeCredentials\n *\n * Helper method to compliment `bufferToBase64URLString`\n */\nfunction base64URLStringToBuffer(base64URLString) {\n    // Convert from Base64URL to Base64\n    const base64 = base64URLString.replace(/-/g, '+').replace(/_/g, '/');\n    /**\n     * Pad with '=' until it's a multiple of four\n     * (4 - (85 % 4 = 1) = 3) % 4 = 3 padding\n     * (4 - (86 % 4 = 2) = 2) % 4 = 2 padding\n     * (4 - (87 % 4 = 3) = 1) % 4 = 1 padding\n     * (4 - (88 % 4 = 0) = 4) % 4 = 0 padding\n     */\n    const padLength = (4 - (base64.length % 4)) % 4;\n    const padded = base64.padEnd(base64.length + padLength, '=');\n    // Convert to a binary string\n    const binary = atob(padded);\n    // Convert binary string to buffer\n    const buffer = new ArrayBuffer(binary.length);\n    const bytes = new Uint8Array(buffer);\n    for (let i = 0; i < binary.length; i++) {\n        bytes[i] = binary.charCodeAt(i);\n    }\n    return buffer;\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthn.js\n/**\n * Determine if the browser is capable of Webauthn\n */\nfunction browserSupportsWebAuthn() {\n    return _browserSupportsWebAuthnInternals.stubThis(globalThis?.PublicKeyCredential !== undefined &&\n        typeof globalThis.PublicKeyCredential === 'function');\n}\n/**\n * Make it possible to stub the return value during testing\n * @ignore Don't include this in docs output\n */\nconst _browserSupportsWebAuthnInternals = {\n    stubThis: (value) => value,\n};\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/toPublicKeyCredentialDescriptor.js\n\nfunction toPublicKeyCredentialDescriptor(descriptor) {\n    const { id } = descriptor;\n    return {\n        ...descriptor,\n        id: base64URLStringToBuffer(id),\n        /**\n         * `descriptor.transports` is an array of our `AuthenticatorTransportFuture` that includes newer\n         * transports that TypeScript's DOM lib is ignorant of. Convince TS that our list of transports\n         * are fine to pass to WebAuthn since browsers will recognize the new value.\n         */\n        transports: descriptor.transports,\n    };\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/isValidDomain.js\n/**\n * A simple test to determine if a hostname is a properly-formatted domain name\n *\n * A \"valid domain\" is defined here: https://url.spec.whatwg.org/#valid-domain\n *\n * Regex sourced from here:\n * https://www.oreilly.com/library/view/regular-expressions-cookbook/9781449327453/ch08s15.html\n */\nfunction isValidDomain(hostname) {\n    return (\n    // Consider localhost valid as well since it's okay wrt Secure Contexts\n    hostname === 'localhost' ||\n        /^([a-z0-9]+(-[a-z0-9]+)*\\.)+[a-z]{2,}$/i.test(hostname));\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/webAuthnError.js\n/**\n * A custom Error used to return a more nuanced error detailing _why_ one of the eight documented\n * errors in the spec was raised after calling `navigator.credentials.create()` or\n * `navigator.credentials.get()`:\n *\n * - `AbortError`\n * - `ConstraintError`\n * - `InvalidStateError`\n * - `NotAllowedError`\n * - `NotSupportedError`\n * - `SecurityError`\n * - `TypeError`\n * - `UnknownError`\n *\n * Error messages were determined through investigation of the spec to determine under which\n * scenarios a given error would be raised.\n */\nclass WebAuthnError extends Error {\n    constructor({ message, code, cause, name, }) {\n        // @ts-ignore: help Rollup understand that `cause` is okay to set\n        super(message, { cause });\n        Object.defineProperty(this, \"code\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n        this.name = name ?? cause.name;\n        this.code = code;\n    }\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/identifyRegistrationError.js\n\n\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.create()`\n */\nfunction identifyRegistrationError({ error, options, }) {\n    const { publicKey } = options;\n    if (!publicKey) {\n        throw Error('options was missing required publicKey property');\n    }\n    if (error.name === 'AbortError') {\n        if (options.signal instanceof AbortSignal) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n            return new WebAuthnError({\n                message: 'Registration ceremony was sent an abort signal',\n                code: 'ERROR_CEREMONY_ABORTED',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'ConstraintError') {\n        if (publicKey.authenticatorSelection?.requireResidentKey === true) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 4)\n            return new WebAuthnError({\n                message: 'Discoverable credentials were required but no available authenticator supported it',\n                code: 'ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT',\n                cause: error,\n            });\n        }\n        else if (\n        // @ts-ignore: `mediation` doesn't yet exist on CredentialCreationOptions but it's possible as of Sept 2024\n        options.mediation === 'conditional' &&\n            publicKey.authenticatorSelection?.userVerification === 'required') {\n            // https://w3c.github.io/webauthn/#sctn-createCredential (Step 22.4)\n            return new WebAuthnError({\n                message: 'User verification was required during automatic registration but it could not be performed',\n                code: 'ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE',\n                cause: error,\n            });\n        }\n        else if (publicKey.authenticatorSelection?.userVerification === 'required') {\n            // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 5)\n            return new WebAuthnError({\n                message: 'User verification was required but no available authenticator supported it',\n                code: 'ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'InvalidStateError') {\n        // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 20)\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 3)\n        return new WebAuthnError({\n            message: 'The authenticator was previously registered',\n            code: 'ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED',\n            cause: error,\n        });\n    }\n    else if (error.name === 'NotAllowedError') {\n        /**\n         * Pass the error directly through. Platforms are overloading this error beyond what the spec\n         * defines and we don't want to overwrite potentially useful error messages.\n         */\n        return new WebAuthnError({\n            message: error.message,\n            code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n            cause: error,\n        });\n    }\n    else if (error.name === 'NotSupportedError') {\n        const validPubKeyCredParams = publicKey.pubKeyCredParams.filter((param) => param.type === 'public-key');\n        if (validPubKeyCredParams.length === 0) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 10)\n            return new WebAuthnError({\n                message: 'No entry in pubKeyCredParams was of type \"public-key\"',\n                code: 'ERROR_MALFORMED_PUBKEYCREDPARAMS',\n                cause: error,\n            });\n        }\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 2)\n        return new WebAuthnError({\n            message: 'No available authenticator supported any of the specified pubKeyCredParams algorithms',\n            code: 'ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG',\n            cause: error,\n        });\n    }\n    else if (error.name === 'SecurityError') {\n        const effectiveDomain = globalThis.location.hostname;\n        if (!isValidDomain(effectiveDomain)) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 7)\n            return new WebAuthnError({\n                message: `${globalThis.location.hostname} is an invalid domain`,\n                code: 'ERROR_INVALID_DOMAIN',\n                cause: error,\n            });\n        }\n        else if (publicKey.rp.id !== effectiveDomain) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 8)\n            return new WebAuthnError({\n                message: `The RP ID \"${publicKey.rp.id}\" is invalid for this domain`,\n                code: 'ERROR_INVALID_RP_ID',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'TypeError') {\n        if (publicKey.user.id.byteLength < 1 || publicKey.user.id.byteLength > 64) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 5)\n            return new WebAuthnError({\n                message: 'User ID was not between 1 and 64 characters',\n                code: 'ERROR_INVALID_USER_ID_LENGTH',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'UnknownError') {\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 1)\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-make-cred (Step 8)\n        return new WebAuthnError({\n            message: 'The authenticator was unable to process the specified options, or could not create a new credential',\n            code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n            cause: error,\n        });\n    }\n    return error;\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/webAuthnAbortService.js\nclass BaseWebAuthnAbortService {\n    constructor() {\n        Object.defineProperty(this, \"controller\", {\n            enumerable: true,\n            configurable: true,\n            writable: true,\n            value: void 0\n        });\n    }\n    createNewAbortSignal() {\n        // Abort any existing calls to navigator.credentials.create() or navigator.credentials.get()\n        if (this.controller) {\n            const abortError = new Error('Cancelling existing WebAuthn API call for new one');\n            abortError.name = 'AbortError';\n            this.controller.abort(abortError);\n        }\n        const newController = new AbortController();\n        this.controller = newController;\n        return newController.signal;\n    }\n    cancelCeremony() {\n        if (this.controller) {\n            const abortError = new Error('Manually cancelling existing WebAuthn API call');\n            abortError.name = 'AbortError';\n            this.controller.abort(abortError);\n            this.controller = undefined;\n        }\n    }\n}\n/**\n * A service singleton to help ensure that only a single WebAuthn ceremony is active at a time.\n *\n * Users of **@simplewebauthn/browser** shouldn't typically need to use this, but it can help e.g.\n * developers building projects that use client-side routing to better control the behavior of\n * their UX in response to router navigation events.\n */\nconst WebAuthnAbortService = new BaseWebAuthnAbortService();\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/toAuthenticatorAttachment.js\nconst attachments = ['cross-platform', 'platform'];\n/**\n * If possible coerce a `string` value into a known `AuthenticatorAttachment`\n */\nfunction toAuthenticatorAttachment(attachment) {\n    if (!attachment) {\n        return;\n    }\n    if (attachments.indexOf(attachment) < 0) {\n        return;\n    }\n    return attachment;\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/methods/startRegistration.js\n\n\n\n\n\n\n\n/**\n * Begin authenticator \"registration\" via WebAuthn attestation\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateRegistrationOptions()`\n * @param useAutoRegister (Optional) Try to silently create a passkey with the password manager that the user just signed in with. Defaults to `false`.\n */\nasync function startRegistration(options) {\n    // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n    if (!options.optionsJSON && options.challenge) {\n        console.warn('startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n        // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n        options = { optionsJSON: options };\n    }\n    const { optionsJSON, useAutoRegister = false } = options;\n    if (!browserSupportsWebAuthn()) {\n        throw new Error('WebAuthn is not supported in this browser');\n    }\n    // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n    const publicKey = {\n        ...optionsJSON,\n        challenge: base64URLStringToBuffer(optionsJSON.challenge),\n        user: {\n            ...optionsJSON.user,\n            id: base64URLStringToBuffer(optionsJSON.user.id),\n        },\n        excludeCredentials: optionsJSON.excludeCredentials?.map(toPublicKeyCredentialDescriptor),\n    };\n    // Prepare options for `.create()`\n    const createOptions = {};\n    /**\n     * Try to use conditional create to register a passkey for the user with the password manager\n     * the user just used to authenticate with. The user won't be shown any prominent UI by the\n     * browser.\n     */\n    if (useAutoRegister) {\n        // @ts-ignore: `mediation` doesn't yet exist on CredentialCreationOptions but it's possible as of Sept 2024\n        createOptions.mediation = 'conditional';\n    }\n    // Finalize options\n    createOptions.publicKey = publicKey;\n    // Set up the ability to cancel this request if the user attempts another\n    createOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n    // Wait for the user to complete attestation\n    let credential;\n    try {\n        credential = (await navigator.credentials.create(createOptions));\n    }\n    catch (err) {\n        throw identifyRegistrationError({ error: err, options: createOptions });\n    }\n    if (!credential) {\n        throw new Error('Registration was not completed');\n    }\n    const { id, rawId, response, type } = credential;\n    // Continue to play it safe with `getTransports()` for now, even when L3 types say it's required\n    let transports = undefined;\n    if (typeof response.getTransports === 'function') {\n        transports = response.getTransports();\n    }\n    // L3 says this is required, but browser and webview support are still not guaranteed.\n    let responsePublicKeyAlgorithm = undefined;\n    if (typeof response.getPublicKeyAlgorithm === 'function') {\n        try {\n            responsePublicKeyAlgorithm = response.getPublicKeyAlgorithm();\n        }\n        catch (error) {\n            warnOnBrokenImplementation('getPublicKeyAlgorithm()', error);\n        }\n    }\n    let responsePublicKey = undefined;\n    if (typeof response.getPublicKey === 'function') {\n        try {\n            const _publicKey = response.getPublicKey();\n            if (_publicKey !== null) {\n                responsePublicKey = bufferToBase64URLString(_publicKey);\n            }\n        }\n        catch (error) {\n            warnOnBrokenImplementation('getPublicKey()', error);\n        }\n    }\n    // L3 says this is required, but browser and webview support are still not guaranteed.\n    let responseAuthenticatorData;\n    if (typeof response.getAuthenticatorData === 'function') {\n        try {\n            responseAuthenticatorData = bufferToBase64URLString(response.getAuthenticatorData());\n        }\n        catch (error) {\n            warnOnBrokenImplementation('getAuthenticatorData()', error);\n        }\n    }\n    return {\n        id,\n        rawId: bufferToBase64URLString(rawId),\n        response: {\n            attestationObject: bufferToBase64URLString(response.attestationObject),\n            clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n            transports,\n            publicKeyAlgorithm: responsePublicKeyAlgorithm,\n            publicKey: responsePublicKey,\n            authenticatorData: responseAuthenticatorData,\n        },\n        type,\n        clientExtensionResults: credential.getClientExtensionResults(),\n        authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n    };\n}\n/**\n * Visibly warn when we detect an issue related to a passkey provider intercepting WebAuthn API\n * calls\n */\nfunction warnOnBrokenImplementation(methodName, cause) {\n    console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${methodName}. You should report this error to them.\\n`, cause);\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthnAutofill.js\n\n/**\n * Determine if the browser supports conditional UI, so that WebAuthn credentials can\n * be shown to the user in the browser's typical password autofill popup.\n */\nfunction browserSupportsWebAuthnAutofill() {\n    if (!browserSupportsWebAuthn()) {\n        return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n    }\n    /**\n     * I don't like the `as unknown` here but there's a `declare var PublicKeyCredential` in\n     * TS' DOM lib that's making it difficult for me to just go `as PublicKeyCredentialFuture` as I\n     * want. I think I'm fine with this for now since it's _supposed_ to be temporary, until TS types\n     * have a chance to catch up.\n     */\n    const globalPublicKeyCredential = globalThis\n        .PublicKeyCredential;\n    if (globalPublicKeyCredential?.isConditionalMediationAvailable === undefined) {\n        return _browserSupportsWebAuthnAutofillInternals.stubThis(new Promise((resolve) => resolve(false)));\n    }\n    return _browserSupportsWebAuthnAutofillInternals.stubThis(globalPublicKeyCredential.isConditionalMediationAvailable());\n}\n// Make it possible to stub the return value during testing\nconst _browserSupportsWebAuthnAutofillInternals = {\n    stubThis: (value) => value,\n};\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/identifyAuthenticationError.js\n\n\n/**\n * Attempt to intuit _why_ an error was raised after calling `navigator.credentials.get()`\n */\nfunction identifyAuthenticationError({ error, options, }) {\n    const { publicKey } = options;\n    if (!publicKey) {\n        throw Error('options was missing required publicKey property');\n    }\n    if (error.name === 'AbortError') {\n        if (options.signal instanceof AbortSignal) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-createCredential (Step 16)\n            return new WebAuthnError({\n                message: 'Authentication ceremony was sent an abort signal',\n                code: 'ERROR_CEREMONY_ABORTED',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'NotAllowedError') {\n        /**\n         * Pass the error directly through. Platforms are overloading this error beyond what the spec\n         * defines and we don't want to overwrite potentially useful error messages.\n         */\n        return new WebAuthnError({\n            message: error.message,\n            code: 'ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY',\n            cause: error,\n        });\n    }\n    else if (error.name === 'SecurityError') {\n        const effectiveDomain = globalThis.location.hostname;\n        if (!isValidDomain(effectiveDomain)) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 5)\n            return new WebAuthnError({\n                message: `${globalThis.location.hostname} is an invalid domain`,\n                code: 'ERROR_INVALID_DOMAIN',\n                cause: error,\n            });\n        }\n        else if (publicKey.rpId !== effectiveDomain) {\n            // https://www.w3.org/TR/webauthn-2/#sctn-discover-from-external-source (Step 6)\n            return new WebAuthnError({\n                message: `The RP ID \"${publicKey.rpId}\" is invalid for this domain`,\n                code: 'ERROR_INVALID_RP_ID',\n                cause: error,\n            });\n        }\n    }\n    else if (error.name === 'UnknownError') {\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 1)\n        // https://www.w3.org/TR/webauthn-2/#sctn-op-get-assertion (Step 12)\n        return new WebAuthnError({\n            message: 'The authenticator was unable to process the specified options, or could not create a new assertion signature',\n            code: 'ERROR_AUTHENTICATOR_GENERAL_ERROR',\n            cause: error,\n        });\n    }\n    return error;\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/methods/startAuthentication.js\n\n\n\n\n\n\n\n\n/**\n * Begin authenticator \"login\" via WebAuthn assertion\n *\n * @param optionsJSON Output from **@simplewebauthn/server**'s `generateAuthenticationOptions()`\n * @param useBrowserAutofill (Optional) Initialize conditional UI to enable logging in via browser autofill prompts. Defaults to `false`.\n * @param verifyBrowserAutofillInput (Optional) Ensure a suitable `<input>` element is present when `useBrowserAutofill` is `true`. Defaults to `true`.\n */\nasync function startAuthentication(options) {\n    // @ts-ignore: Intentionally check for old call structure to warn about improper API call\n    if (!options.optionsJSON && options.challenge) {\n        console.warn('startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.');\n        // @ts-ignore: Reassign the options, passed in as a positional argument, to the expected variable\n        options = { optionsJSON: options };\n    }\n    const { optionsJSON, useBrowserAutofill = false, verifyBrowserAutofillInput = true, } = options;\n    if (!browserSupportsWebAuthn()) {\n        throw new Error('WebAuthn is not supported in this browser');\n    }\n    // We need to avoid passing empty array to avoid blocking retrieval\n    // of public key\n    let allowCredentials;\n    if (optionsJSON.allowCredentials?.length !== 0) {\n        allowCredentials = optionsJSON.allowCredentials?.map(toPublicKeyCredentialDescriptor);\n    }\n    // We need to convert some values to Uint8Arrays before passing the credentials to the navigator\n    const publicKey = {\n        ...optionsJSON,\n        challenge: base64URLStringToBuffer(optionsJSON.challenge),\n        allowCredentials,\n    };\n    // Prepare options for `.get()`\n    const getOptions = {};\n    /**\n     * Set up the page to prompt the user to select a credential for authentication via the browser's\n     * input autofill mechanism.\n     */\n    if (useBrowserAutofill) {\n        if (!(await browserSupportsWebAuthnAutofill())) {\n            throw Error('Browser does not support WebAuthn autofill');\n        }\n        // Check for an <input> with \"webauthn\" in its `autocomplete` attribute\n        const eligibleInputs = document.querySelectorAll(\"input[autocomplete$='webauthn']\");\n        // WebAuthn autofill requires at least one valid input\n        if (eligibleInputs.length < 1 && verifyBrowserAutofillInput) {\n            throw Error('No <input> with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected');\n        }\n        // `CredentialMediationRequirement` doesn't know about \"conditional\" yet as of\n        // typescript@4.6.3\n        getOptions.mediation = 'conditional';\n        // Conditional UI requires an empty allow list\n        publicKey.allowCredentials = [];\n    }\n    // Finalize options\n    getOptions.publicKey = publicKey;\n    // Set up the ability to cancel this request if the user attempts another\n    getOptions.signal = WebAuthnAbortService.createNewAbortSignal();\n    // Wait for the user to complete assertion\n    let credential;\n    try {\n        credential = (await navigator.credentials.get(getOptions));\n    }\n    catch (err) {\n        throw identifyAuthenticationError({ error: err, options: getOptions });\n    }\n    if (!credential) {\n        throw new Error('Authentication was not completed');\n    }\n    const { id, rawId, response, type } = credential;\n    let userHandle = undefined;\n    if (response.userHandle) {\n        userHandle = bufferToBase64URLString(response.userHandle);\n    }\n    // Convert values to base64 to make it easier to send back to the server\n    return {\n        id,\n        rawId: bufferToBase64URLString(rawId),\n        response: {\n            authenticatorData: bufferToBase64URLString(response.authenticatorData),\n            clientDataJSON: bufferToBase64URLString(response.clientDataJSON),\n            signature: bufferToBase64URLString(response.signature),\n            userHandle,\n        },\n        type,\n        clientExtensionResults: credential.getClientExtensionResults(),\n        authenticatorAttachment: toAuthenticatorAttachment(credential.authenticatorAttachment),\n    };\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/helpers/platformAuthenticatorIsAvailable.js\n\n/**\n * Determine whether the browser can communicate with a built-in authenticator, like\n * Touch ID, Android fingerprint scanner, or Windows Hello.\n *\n * This method will _not_ be able to tell you the name of the platform authenticator.\n */\nfunction platformAuthenticatorIsAvailable() {\n    if (!browserSupportsWebAuthn()) {\n        return new Promise((resolve) => resolve(false));\n    }\n    return PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();\n}\n\n;// ./node_modules/@simplewebauthn/browser/esm/types/index.js\n\n\n;// ./node_modules/@simplewebauthn/browser/esm/index.js\n\n\n\n\n\n\n\n\n\n\n\n;// ./node_modules/@meshsdk/wallet/dist/index.js\n/* provided dependency */ var wallet_dist_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar dist_create = Object.create;\nvar wallet_dist_defProp = Object.defineProperty;\nvar dist_getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar dist_getOwnPropNames = Object.getOwnPropertyNames;\nvar dist_getProtoOf = Object.getPrototypeOf;\nvar dist_hasOwnProp = Object.prototype.hasOwnProperty;\nvar dist_commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[dist_getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar dist_copyProps = (to, from, except, desc) => {\n  if (from && typeof from === \"object\" || typeof from === \"function\") {\n    for (let key of dist_getOwnPropNames(from))\n      if (!dist_hasOwnProp.call(to, key) && key !== except)\n        wallet_dist_defProp(to, key, { get: () => from[key], enumerable: !(desc = dist_getOwnPropDesc(from, key)) || desc.enumerable });\n  }\n  return to;\n};\nvar dist_toESM = (mod, isNodeMode, target) => (target = mod != null ? dist_create(dist_getProtoOf(mod)) : {}, dist_copyProps(\n  // If the importer is in node compatibility mode or this is not an ESM\n  // file that has been converted to a CommonJS file using a Babel-\n  // compatible transform (i.e. \"__esModule\" has not been set), then set\n  // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n  isNodeMode || !mod || !mod.__esModule ? wallet_dist_defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n  mod\n));\n\n// ../../node_modules/base32-encoding/index.js\nvar require_base32_encoding = dist_commonJS({\n  \"../../node_modules/base32-encoding/index.js\"(exports) {\n    \"use strict\";\n    var std = \"23456789abcdefghijkmnpqrstuvwxyz\";\n    exports.stringify = function(buf, alphabet2) {\n      if (alphabet2 == null) alphabet2 = std;\n      return from(base322(buf), (b) => alphabet2[b]).join(\"\");\n    };\n    exports.parse = function(str, alphabet2) {\n      if (alphabet2 == null) alphabet2 = std;\n      return base256(str.split(\"\").map((s) => alphabet2.indexOf(s)));\n    };\n    function from(buf, map) {\n      var a = new Array(buf.length);\n      for (var i = 0; i < a.length; i++) {\n        a[i] = map(buf[i]);\n      }\n      return a;\n    }\n    exports.encode = base322;\n    function base322(buf, arr, offset) {\n      exports.encode.bytes = Math.ceil(buf.length * 8 / 5);\n      if (arr == null) arr = wallet_dist_Buffer.alloc(exports.encode.bytes);\n      if (offset == null) offset = 0;\n      for (var i = 0, j = offset; i + 5 <= buf.length; i += 5, j += 8) {\n        arr[j + 0] = (buf[i + 0] & 248) >>> 3;\n        arr[j + 1] = (buf[i + 0] & 7) << 2 | (buf[i + 1] & 192) >>> 6;\n        arr[j + 2] = (buf[i + 1] & 62) >>> 1;\n        arr[j + 3] = (buf[i + 1] & 1) << 4 | (buf[i + 2] & 240) >>> 4;\n        arr[j + 4] = (buf[i + 2] & 15) << 1 | (buf[i + 3] & 128) >>> 7;\n        arr[j + 5] = (buf[i + 3] & 124) >>> 2;\n        arr[j + 6] = (buf[i + 3] & 3) << 3 | (buf[i + 4] & 224) >>> 5;\n        arr[j + 7] = buf[i + 4] & 31;\n      }\n      switch (buf.length - i) {\n        // No need for 5 since we work in batches of 5 above\n        case 4:\n          arr[j + 4] |= (buf[i + 3] & 128) >>> 7;\n          arr[j + 5] |= (buf[i + 3] & 124) >>> 2;\n          arr[j + 6] |= (buf[i + 3] & 3) << 3;\n        case 3:\n          arr[j + 3] |= (buf[i + 2] & 240) >>> 4;\n          arr[j + 4] |= (buf[i + 2] & 15) << 1;\n        case 2:\n          arr[j + 1] |= (buf[i + 1] & 192) >>> 6;\n          arr[j + 2] |= (buf[i + 1] & 62) >>> 1;\n          arr[j + 3] |= (buf[i + 1] & 1) << 4;\n        case 1:\n          arr[j + 0] |= (buf[i + 0] & 248) >>> 3;\n          arr[j + 1] |= (buf[i + 0] & 7) << 2;\n      }\n      return arr;\n    }\n    exports.decode = base256;\n    function base256(buf, arr, offset) {\n      exports.decode.bytes = Math.floor(buf.length * 5 / 8);\n      if (arr == null) arr = wallet_dist_Buffer.alloc(exports.decode.bytes);\n      if (offset == null) offset = 0;\n      for (var i = 0, j = offset; i + 8 <= buf.length; i += 8, j += 5) {\n        arr[j + 0] = buf[i + 0] << 3 & 255 | buf[i + 1] >>> 2 & 255;\n        arr[j + 1] = buf[i + 1] << 6 & 255 | buf[i + 2] << 1 & 255 | buf[i + 3] >>> 4 & 255;\n        arr[j + 2] = buf[i + 3] << 4 & 255 | buf[i + 4] >>> 1 & 255;\n        arr[j + 3] = buf[i + 4] << 7 & 255 | buf[i + 5] << 2 & 255 | buf[i + 6] >> 3 & 255;\n        arr[j + 4] = buf[i + 6] << 5 & 255 | buf[i + 7] & 255;\n      }\n      switch (buf.length - i) {\n        case 7:\n          arr[j + 3] |= buf[i + 6] >> 3 & 255;\n          arr[j + 4] |= buf[i + 6] << 5 & 255;\n        case 6:\n          arr[j + 3] |= buf[i + 5] << 2 & 255;\n        case 5:\n          arr[j + 2] |= buf[i + 4] >>> 1 & 255;\n          arr[j + 3] |= buf[i + 4] << 7 & 255;\n        case 4:\n          arr[j + 1] |= buf[i + 3] >>> 4 & 255;\n          arr[j + 2] |= buf[i + 3] << 4 & 255;\n        case 3:\n          arr[j + 1] |= buf[i + 2] << 1 & 255;\n        case 2:\n          arr[j + 0] |= buf[i + 1] >>> 2 & 255;\n          arr[j + 1] |= buf[i + 1] << 6 & 255;\n        case 1:\n          arr[j + 0] |= buf[i + 0] << 3 & 255;\n      }\n      return arr;\n    }\n    exports.encodingLength = function(buf) {\n      return Math.ceil(buf.length * 8 / 5);\n    };\n  }\n});\n\n// ../../node_modules/bech32/dist/index.js\nvar require_dist = dist_commonJS({\n  \"../../node_modules/bech32/dist/index.js\"(exports) {\n    \"use strict\";\n    Object.defineProperty(exports, \"__esModule\", { value: true });\n    exports.bech32m = exports.bech32 = void 0;\n    var ALPHABET = \"qpzry9x8gf2tvdw0s3jn54khce6mua7l\";\n    var ALPHABET_MAP = {};\n    for (let z = 0; z < ALPHABET.length; z++) {\n      const x = ALPHABET.charAt(z);\n      ALPHABET_MAP[x] = z;\n    }\n    function polymodStep(pre) {\n      const b = pre >> 25;\n      return (pre & 33554431) << 5 ^ -(b >> 0 & 1) & 996825010 ^ -(b >> 1 & 1) & 642813549 ^ -(b >> 2 & 1) & 513874426 ^ -(b >> 3 & 1) & 1027748829 ^ -(b >> 4 & 1) & 705979059;\n    }\n    function prefixChk(prefix) {\n      let chk = 1;\n      for (let i = 0; i < prefix.length; ++i) {\n        const c = prefix.charCodeAt(i);\n        if (c < 33 || c > 126)\n          return \"Invalid prefix (\" + prefix + \")\";\n        chk = polymodStep(chk) ^ c >> 5;\n      }\n      chk = polymodStep(chk);\n      for (let i = 0; i < prefix.length; ++i) {\n        const v = prefix.charCodeAt(i);\n        chk = polymodStep(chk) ^ v & 31;\n      }\n      return chk;\n    }\n    function convert(data, inBits, outBits, pad) {\n      let value = 0;\n      let bits = 0;\n      const maxV = (1 << outBits) - 1;\n      const result = [];\n      for (let i = 0; i < data.length; ++i) {\n        value = value << inBits | data[i];\n        bits += inBits;\n        while (bits >= outBits) {\n          bits -= outBits;\n          result.push(value >> bits & maxV);\n        }\n      }\n      if (pad) {\n        if (bits > 0) {\n          result.push(value << outBits - bits & maxV);\n        }\n      } else {\n        if (bits >= inBits)\n          return \"Excess padding\";\n        if (value << outBits - bits & maxV)\n          return \"Non-zero padding\";\n      }\n      return result;\n    }\n    function toWords(bytes) {\n      return convert(bytes, 8, 5, true);\n    }\n    function fromWordsUnsafe(words) {\n      const res = convert(words, 5, 8, false);\n      if (Array.isArray(res))\n        return res;\n    }\n    function fromWords(words) {\n      const res = convert(words, 5, 8, false);\n      if (Array.isArray(res))\n        return res;\n      throw new Error(res);\n    }\n    function getLibraryFromEncoding(encoding) {\n      let ENCODING_CONST;\n      if (encoding === \"bech32\") {\n        ENCODING_CONST = 1;\n      } else {\n        ENCODING_CONST = 734539939;\n      }\n      function encode(prefix, words, LIMIT) {\n        LIMIT = LIMIT || 90;\n        if (prefix.length + 7 + words.length > LIMIT)\n          throw new TypeError(\"Exceeds length limit\");\n        prefix = prefix.toLowerCase();\n        let chk = prefixChk(prefix);\n        if (typeof chk === \"string\")\n          throw new Error(chk);\n        let result = prefix + \"1\";\n        for (let i = 0; i < words.length; ++i) {\n          const x = words[i];\n          if (x >> 5 !== 0)\n            throw new Error(\"Non 5-bit word\");\n          chk = polymodStep(chk) ^ x;\n          result += ALPHABET.charAt(x);\n        }\n        for (let i = 0; i < 6; ++i) {\n          chk = polymodStep(chk);\n        }\n        chk ^= ENCODING_CONST;\n        for (let i = 0; i < 6; ++i) {\n          const v = chk >> (5 - i) * 5 & 31;\n          result += ALPHABET.charAt(v);\n        }\n        return result;\n      }\n      function __decode(str, LIMIT) {\n        LIMIT = LIMIT || 90;\n        if (str.length < 8)\n          return str + \" too short\";\n        if (str.length > LIMIT)\n          return \"Exceeds length limit\";\n        const lowered = str.toLowerCase();\n        const uppered = str.toUpperCase();\n        if (str !== lowered && str !== uppered)\n          return \"Mixed-case string \" + str;\n        str = lowered;\n        const split = str.lastIndexOf(\"1\");\n        if (split === -1)\n          return \"No separator character for \" + str;\n        if (split === 0)\n          return \"Missing prefix for \" + str;\n        const prefix = str.slice(0, split);\n        const wordChars = str.slice(split + 1);\n        if (wordChars.length < 6)\n          return \"Data too short\";\n        let chk = prefixChk(prefix);\n        if (typeof chk === \"string\")\n          return chk;\n        const words = [];\n        for (let i = 0; i < wordChars.length; ++i) {\n          const c = wordChars.charAt(i);\n          const v = ALPHABET_MAP[c];\n          if (v === void 0)\n            return \"Unknown character \" + c;\n          chk = polymodStep(chk) ^ v;\n          if (i + 6 >= wordChars.length)\n            continue;\n          words.push(v);\n        }\n        if (chk !== ENCODING_CONST)\n          return \"Invalid checksum for \" + str;\n        return { prefix, words };\n      }\n      function decodeUnsafe(str, LIMIT) {\n        const res = __decode(str, LIMIT);\n        if (typeof res === \"object\")\n          return res;\n      }\n      function decode(str, LIMIT) {\n        const res = __decode(str, LIMIT);\n        if (typeof res === \"object\")\n          return res;\n        throw new Error(res);\n      }\n      return {\n        decodeUnsafe,\n        decode,\n        encode,\n        toWords,\n        fromWordsUnsafe,\n        fromWords\n      };\n    }\n    exports.bech32 = getLibraryFromEncoding(\"bech32\");\n    exports.bech32m = getLibraryFromEncoding(\"bech32m\");\n  }\n});\n\n// src/app/index.ts\n\n\n// ../../node_modules/@scure/base/lib/esm/index.js\nfunction dist_isBytes(a) {\n  return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === \"Uint8Array\";\n}\nfunction dist_isArrayOf(isString, arr) {\n  if (!Array.isArray(arr))\n    return false;\n  if (arr.length === 0)\n    return true;\n  if (isString) {\n    return arr.every((item) => typeof item === \"string\");\n  } else {\n    return arr.every((item) => Number.isSafeInteger(item));\n  }\n}\nfunction dist_afn(input) {\n  if (typeof input !== \"function\")\n    throw new Error(\"function expected\");\n  return true;\n}\nfunction dist_astr(label, input) {\n  if (typeof input !== \"string\")\n    throw new Error(`${label}: string expected`);\n  return true;\n}\nfunction dist_anumber(n) {\n  if (!Number.isSafeInteger(n))\n    throw new Error(`invalid integer: ${n}`);\n}\nfunction dist_aArr(input) {\n  if (!Array.isArray(input))\n    throw new Error(\"array expected\");\n}\nfunction dist_astrArr(label, input) {\n  if (!dist_isArrayOf(true, input))\n    throw new Error(`${label}: array of strings expected`);\n}\nfunction dist_anumArr(label, input) {\n  if (!dist_isArrayOf(false, input))\n    throw new Error(`${label}: array of numbers expected`);\n}\n// @__NO_SIDE_EFFECTS__\nfunction dist_chain(...args) {\n  const id = (a) => a;\n  const wrap = (a, b) => (c) => a(b(c));\n  const encode = args.map((x) => x.encode).reduceRight(wrap, id);\n  const decode = args.map((x) => x.decode).reduce(wrap, id);\n  return { encode, decode };\n}\n// @__NO_SIDE_EFFECTS__\nfunction dist_alphabet(letters) {\n  const lettersA = typeof letters === \"string\" ? letters.split(\"\") : letters;\n  const len = lettersA.length;\n  dist_astrArr(\"alphabet\", lettersA);\n  const indexes = new Map(lettersA.map((l, i) => [l, i]));\n  return {\n    encode: (digits) => {\n      dist_aArr(digits);\n      return digits.map((i) => {\n        if (!Number.isSafeInteger(i) || i < 0 || i >= len)\n          throw new Error(`alphabet.encode: digit index outside alphabet \"${i}\". Allowed: ${letters}`);\n        return lettersA[i];\n      });\n    },\n    decode: (input) => {\n      dist_aArr(input);\n      return input.map((letter) => {\n        dist_astr(\"alphabet.decode\", letter);\n        const i = indexes.get(letter);\n        if (i === void 0)\n          throw new Error(`Unknown letter: \"${letter}\". Allowed: ${letters}`);\n        return i;\n      });\n    }\n  };\n}\n// @__NO_SIDE_EFFECTS__\nfunction dist_join(separator = \"\") {\n  dist_astr(\"join\", separator);\n  return {\n    encode: (from) => {\n      dist_astrArr(\"join.decode\", from);\n      return from.join(separator);\n    },\n    decode: (to) => {\n      dist_astr(\"join.decode\", to);\n      return to.split(separator);\n    }\n  };\n}\nvar dist_gcd = (a, b) => b === 0 ? a : dist_gcd(b, a % b);\nvar dist_radix2carry = /* @__NO_SIDE_EFFECTS__ */ (from, to) => from + (to - dist_gcd(from, to));\nvar dist_powers = /* @__PURE__ */ (() => {\n  let res = [];\n  for (let i = 0; i < 40; i++)\n    res.push(2 ** i);\n  return res;\n})();\nfunction dist_convertRadix2(data, from, to, padding) {\n  dist_aArr(data);\n  if (from <= 0 || from > 32)\n    throw new Error(`convertRadix2: wrong from=${from}`);\n  if (to <= 0 || to > 32)\n    throw new Error(`convertRadix2: wrong to=${to}`);\n  if (/* @__PURE__ */ dist_radix2carry(from, to) > 32) {\n    throw new Error(`convertRadix2: carry overflow from=${from} to=${to} carryBits=${/* @__PURE__ */ dist_radix2carry(from, to)}`);\n  }\n  let carry = 0;\n  let pos = 0;\n  const max = dist_powers[from];\n  const mask = dist_powers[to] - 1;\n  const res = [];\n  for (const n of data) {\n    dist_anumber(n);\n    if (n >= max)\n      throw new Error(`convertRadix2: invalid data word=${n} from=${from}`);\n    carry = carry << from | n;\n    if (pos + from > 32)\n      throw new Error(`convertRadix2: carry overflow pos=${pos} from=${from}`);\n    pos += from;\n    for (; pos >= to; pos -= to)\n      res.push((carry >> pos - to & mask) >>> 0);\n    const pow = dist_powers[pos];\n    if (pow === void 0)\n      throw new Error(\"invalid carry\");\n    carry &= pow - 1;\n  }\n  carry = carry << to - pos & mask;\n  if (!padding && pos >= from)\n    throw new Error(\"Excess padding\");\n  if (!padding && carry > 0)\n    throw new Error(`Non-zero padding: ${carry}`);\n  if (padding && pos > 0)\n    res.push(carry >>> 0);\n  return res;\n}\n// @__NO_SIDE_EFFECTS__\nfunction dist_radix2(bits, revPadding = false) {\n  dist_anumber(bits);\n  if (bits <= 0 || bits > 32)\n    throw new Error(\"radix2: bits should be in (0..32]\");\n  if (/* @__PURE__ */ dist_radix2carry(8, bits) > 32 || /* @__PURE__ */ dist_radix2carry(bits, 8) > 32)\n    throw new Error(\"radix2: carry overflow\");\n  return {\n    encode: (bytes) => {\n      if (!dist_isBytes(bytes))\n        throw new Error(\"radix2.encode input should be Uint8Array\");\n      return dist_convertRadix2(Array.from(bytes), 8, bits, !revPadding);\n    },\n    decode: (digits) => {\n      dist_anumArr(\"radix2.decode\", digits);\n      return Uint8Array.from(dist_convertRadix2(digits, bits, 8, revPadding));\n    }\n  };\n}\nfunction dist_unsafeWrapper(fn) {\n  dist_afn(fn);\n  return function(...args) {\n    try {\n      return fn.apply(null, args);\n    } catch (e) {\n    }\n  };\n}\nvar dist_BECH_ALPHABET = /* @__PURE__ */ dist_chain(/* @__PURE__ */ dist_alphabet(\"qpzry9x8gf2tvdw0s3jn54khce6mua7l\"), /* @__PURE__ */ dist_join(\"\"));\nvar dist_POLYMOD_GENERATORS = [996825010, 642813549, 513874426, 1027748829, 705979059];\nfunction dist_bech32Polymod(pre) {\n  const b = pre >> 25;\n  let chk = (pre & 33554431) << 5;\n  for (let i = 0; i < dist_POLYMOD_GENERATORS.length; i++) {\n    if ((b >> i & 1) === 1)\n      chk ^= dist_POLYMOD_GENERATORS[i];\n  }\n  return chk;\n}\nfunction dist_bechChecksum(prefix, words, encodingConst = 1) {\n  const len = prefix.length;\n  let chk = 1;\n  for (let i = 0; i < len; i++) {\n    const c = prefix.charCodeAt(i);\n    if (c < 33 || c > 126)\n      throw new Error(`Invalid prefix (${prefix})`);\n    chk = dist_bech32Polymod(chk) ^ c >> 5;\n  }\n  chk = dist_bech32Polymod(chk);\n  for (let i = 0; i < len; i++)\n    chk = dist_bech32Polymod(chk) ^ prefix.charCodeAt(i) & 31;\n  for (let v of words)\n    chk = dist_bech32Polymod(chk) ^ v;\n  for (let i = 0; i < 6; i++)\n    chk = dist_bech32Polymod(chk);\n  chk ^= encodingConst;\n  return dist_BECH_ALPHABET.encode(dist_convertRadix2([chk % dist_powers[30]], 30, 5, false));\n}\n// @__NO_SIDE_EFFECTS__\nfunction dist_genBech32(encoding) {\n  const ENCODING_CONST = encoding === \"bech32\" ? 1 : 734539939;\n  const _words = /* @__PURE__ */ dist_radix2(5);\n  const fromWords = _words.decode;\n  const toWords = _words.encode;\n  const fromWordsUnsafe = dist_unsafeWrapper(fromWords);\n  function encode(prefix, words, limit = 90) {\n    dist_astr(\"bech32.encode prefix\", prefix);\n    if (dist_isBytes(words))\n      words = Array.from(words);\n    dist_anumArr(\"bech32.encode\", words);\n    const plen = prefix.length;\n    if (plen === 0)\n      throw new TypeError(`Invalid prefix length ${plen}`);\n    const actualLength = plen + 7 + words.length;\n    if (limit !== false && actualLength > limit)\n      throw new TypeError(`Length ${actualLength} exceeds limit ${limit}`);\n    const lowered = prefix.toLowerCase();\n    const sum = dist_bechChecksum(lowered, words, ENCODING_CONST);\n    return `${lowered}1${dist_BECH_ALPHABET.encode(words)}${sum}`;\n  }\n  function decode(str, limit = 90) {\n    dist_astr(\"bech32.decode input\", str);\n    const slen = str.length;\n    if (slen < 8 || limit !== false && slen > limit)\n      throw new TypeError(`invalid string length: ${slen} (${str}). Expected (8..${limit})`);\n    const lowered = str.toLowerCase();\n    if (str !== lowered && str !== str.toUpperCase())\n      throw new Error(`String must be lowercase or uppercase`);\n    const sepIndex = lowered.lastIndexOf(\"1\");\n    if (sepIndex === 0 || sepIndex === -1)\n      throw new Error(`Letter \"1\" must be present between prefix and data only`);\n    const prefix = lowered.slice(0, sepIndex);\n    const data = lowered.slice(sepIndex + 1);\n    if (data.length < 6)\n      throw new Error(\"Data must be at least 6 characters long\");\n    const words = dist_BECH_ALPHABET.decode(data).slice(0, -6);\n    const sum = dist_bechChecksum(prefix, words, ENCODING_CONST);\n    if (!data.endsWith(sum))\n      throw new Error(`Invalid checksum in ${str}: expected \"${sum}\"`);\n    return { prefix, words };\n  }\n  const decodeUnsafe = dist_unsafeWrapper(decode);\n  function decodeToBytes(str) {\n    const { prefix, words } = decode(str, false);\n    return { prefix, words, bytes: fromWords(words) };\n  }\n  function encodeFromBytes(prefix, bytes) {\n    return encode(prefix, toWords(bytes));\n  }\n  return {\n    encode,\n    decode,\n    encodeFromBytes,\n    decodeToBytes,\n    decodeUnsafe,\n    fromWords,\n    fromWordsUnsafe,\n    toWords\n  };\n}\nvar bech32 = /* @__PURE__ */ dist_genBech32(\"bech32\");\n\n// src/embedded/index.ts\n\n\nvar WalletStaticMethods = class {\n  static privateKeyBech32ToPrivateKeyHex(_bech32) {\n    const bech32DecodedBytes = bech32.decodeToBytes(_bech32).bytes;\n    const bip32PrivateKey = Bip32PrivateKey2.fromBytes(bech32DecodedBytes);\n    return dist_bytesToHex(bip32PrivateKey.bytes());\n  }\n  static mnemonicToPrivateKeyHex(words) {\n    const entropy = (0,src.mnemonicToEntropy)(words.join(\" \"));\n    const bip32PrivateKey = buildBip32PrivateKey(entropy);\n    return dist_bytesToHex(bip32PrivateKey.bytes());\n  }\n  static signingKeyToHexes(paymentKey, stakeKey) {\n    return [\n      paymentKey.startsWith(\"5820\") ? paymentKey.slice(4) : paymentKey,\n      stakeKey.startsWith(\"5820\") ? stakeKey.slice(4) : stakeKey\n    ];\n  }\n  static bip32BytesToPrivateKeyHex(bip32Bytes) {\n    const bip32PrivateKey = Bip32PrivateKey2.fromBytes(bip32Bytes);\n    return dist_bytesToHex(bip32PrivateKey.bytes());\n  }\n  static getAddresses(paymentKey, stakingKey, networkId = 0) {\n    const baseAddress = buildBaseAddress(\n      networkId,\n      Hash28ByteBase162.fromEd25519KeyHashHex(\n        paymentKey.toPublic().hash().hex()\n      ),\n      Hash28ByteBase162.fromEd25519KeyHashHex(\n        stakingKey.toPublic().hash().hex()\n      )\n    ).toAddress();\n    const enterpriseAddress = buildEnterpriseAddress(\n      networkId,\n      Hash28ByteBase162.fromEd25519KeyHashHex(\n        paymentKey.toPublic().hash().hex()\n      )\n    ).toAddress();\n    const rewardAddress = buildRewardAddress(\n      networkId,\n      Hash28ByteBase162.fromEd25519KeyHashHex(\n        stakingKey.toPublic().hash().hex()\n      )\n    ).toAddress();\n    return {\n      baseAddress,\n      enterpriseAddress,\n      rewardAddress\n    };\n  }\n  static getDRepKey(dRepKey, networkId = 0) {\n    const pubDRepKey = dRepKey.toPublic().hex().toString();\n    const dRepIDBech32 = buildDRepID(\n      Ed25519PublicKeyHex2(pubDRepKey),\n      networkId\n    );\n    const dRep = dist_DRep.newKeyHash(dRepKey.toPublic().hash().hex());\n    const dRepIDHash = dRep.toKeyHash();\n    const dRepIDCip105 = hexToBech32(\"drep\", dRepIDHash);\n    return {\n      pubDRepKey,\n      dRepIDBech32,\n      dRepIDHash,\n      dRepIDCip105\n    };\n  }\n  static generateMnemonic(strength = 256) {\n    const mnemonic = (0,src.generateMnemonic)(strength);\n    return mnemonic.split(\" \");\n  }\n  static addWitnessSets(txHex, witnesses) {\n    let tx = dist_deserializeTx(txHex);\n    let witnessSet = tx.witnessSet();\n    let witnessSetVkeys = witnessSet.vkeys();\n    let witnessSetVkeysValues = witnessSetVkeys ? [...witnessSetVkeys.values(), ...witnesses] : witnesses;\n    witnessSet.setVkeys(\n      CborSet.fromCore(\n        witnessSetVkeysValues.map((vkw) => vkw.toCore()),\n        dist_VkeyWitness.fromCore\n      )\n    );\n    return new dist_Transaction(tx.body(), witnessSet, tx.auxiliaryData()).toCbor();\n  }\n};\nvar EmbeddedWallet = class extends WalletStaticMethods {\n  _walletSecret;\n  _networkId;\n  cryptoIsReady = false;\n  constructor(options) {\n    super();\n    this._networkId = options.networkId;\n    switch (options.key.type) {\n      case \"mnemonic\":\n        this._walletSecret = WalletStaticMethods.mnemonicToPrivateKeyHex(\n          options.key.words\n        );\n        break;\n      case \"root\":\n        this._walletSecret = WalletStaticMethods.privateKeyBech32ToPrivateKeyHex(\n          options.key.bech32\n        );\n        break;\n      case \"cli\":\n        this._walletSecret = WalletStaticMethods.signingKeyToHexes(\n          options.key.payment,\n          options.key.stake ?? \"f0\".repeat(32)\n        );\n        break;\n      case \"bip32Bytes\":\n        this._walletSecret = WalletStaticMethods.bip32BytesToPrivateKeyHex(\n          options.key.bip32Bytes\n        );\n        break;\n    }\n  }\n  async init() {\n    await ready();\n    this.cryptoIsReady = true;\n  }\n  getAccount(accountIndex = 0, keyIndex = 0) {\n    if (this._walletSecret == void 0)\n      throw new Error(\"[EmbeddedWallet] No keys initialized\");\n    const { paymentKey, stakeKey, dRepKey } = buildKeys(\n      this._walletSecret,\n      accountIndex,\n      keyIndex\n    );\n    const { baseAddress, enterpriseAddress, rewardAddress } = WalletStaticMethods.getAddresses(paymentKey, stakeKey, this._networkId);\n    let _account = {\n      baseAddress,\n      enterpriseAddress,\n      rewardAddress,\n      baseAddressBech32: baseAddress.toBech32(),\n      enterpriseAddressBech32: enterpriseAddress.toBech32(),\n      rewardAddressBech32: rewardAddress.toBech32(),\n      paymentKey,\n      stakeKey,\n      paymentKeyHex: paymentKey.hex(),\n      stakeKeyHex: stakeKey.hex()\n    };\n    if (dRepKey) {\n      const { pubDRepKey, dRepIDBech32, dRepIDHash, dRepIDCip105 } = WalletStaticMethods.getDRepKey(dRepKey, this._networkId);\n      _account.pubDRepKey = pubDRepKey;\n      _account.dRepIDBech32 = dRepIDBech32;\n      _account.dRepIDHash = dRepIDHash;\n      _account.dRepIDCip105 = dRepIDCip105;\n    }\n    return _account;\n  }\n  /**\n   * Get wallet network ID.\n   *\n   * @returns network ID\n   */\n  getNetworkId() {\n    return this._networkId;\n  }\n  /**\n   * This endpoint utilizes the [CIP-8 - Message Signing](https://cips.cardano.org/cips/cip8/) to sign arbitrary data, to verify the data was signed by the owner of the private key.\n   *\n   * @param address - bech32 address to sign the data with\n   * @param payload - the data to be signed\n   * @param accountIndex account index (default: 0)\n   * @returns a signature\n   */\n  signData(address, payload, accountIndex = 0, keyIndex = 0) {\n    try {\n      const { baseAddress, enterpriseAddress, rewardAddress, paymentKey } = this.getAccount(accountIndex, keyIndex);\n      const foundAddress = [baseAddress, enterpriseAddress, rewardAddress].find(\n        (a) => a.toBech32() === address\n      );\n      if (foundAddress === void 0)\n        throw new Error(\n          `[EmbeddedWallet] Address: ${address} doesn't belong to this account.`\n        );\n      return signData(payload, {\n        address: dist_Address.fromBech32(address),\n        key: paymentKey\n      });\n    } catch (error) {\n      throw new Error(\n        `[EmbeddedWallet] An error occurred during signData: ${error}.`\n      );\n    }\n  }\n  /**\n   * This endpoints sign the provided transaction (unsignedTx) with the private key of the owner.\n   *\n   * @param unsignedTx - a transaction in CBOR\n   * @param accountIndex account index (default: 0)\n   * @param keyIndex key index (default: 0)\n   * @returns VkeyWitness\n   */\n  signTx(unsignedTx, accountIndex = 0, keyIndex = 0) {\n    try {\n      const txHash = deserializeTxHash(resolveTxHash(unsignedTx));\n      const { paymentKey } = this.getAccount(accountIndex, keyIndex);\n      const vKeyWitness = new dist_VkeyWitness(\n        paymentKey.toPublic().hex(),\n        paymentKey.sign(dist_HexBlob(txHash)).hex()\n      );\n      return vKeyWitness;\n    } catch (error) {\n      throw new Error(\n        `[EmbeddedWallet] An error occurred during signTx: ${error}.`\n      );\n    }\n  }\n};\n\n// src/app/index.ts\nvar AppWallet = class {\n  _fetcher;\n  _submitter;\n  _wallet;\n  constructor(options) {\n    this._fetcher = options.fetcher;\n    this._submitter = options.submitter;\n    switch (options.key.type) {\n      case \"mnemonic\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"mnemonic\",\n            words: options.key.words\n          }\n        });\n        break;\n      case \"root\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"root\",\n            bech32: options.key.bech32\n          }\n        });\n        break;\n      case \"cli\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"cli\",\n            payment: options.key.payment,\n            stake: options.key.stake\n          }\n        });\n    }\n  }\n  /**\n   * Initializes the wallet. This is a required call as fetching addresses from the wallet is an async operation.\n   * @returns void\n   */\n  async init() {\n    if (this._wallet) {\n      await this._wallet.init();\n    }\n  }\n  /**\n   * Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs.\n   *\n   * This is used in transaction building.\n   *\n   * @returns a list of UTXOs\n   */\n  async getCollateralUnspentOutput(accountIndex = 0, addressType = \"payment\") {\n    const utxos = await this.getUnspentOutputs(accountIndex, addressType);\n    const pureAdaUtxos = utxos.filter((utxo) => {\n      return utxo.output().amount().multiasset() === void 0;\n    });\n    pureAdaUtxos.sort((a, b) => {\n      return Number(a.output().amount().coin()) - Number(b.output().amount().coin());\n    });\n    for (const utxo of pureAdaUtxos) {\n      if (Number(utxo.output().amount().coin()) >= 5e6) {\n        return [utxo];\n      }\n    }\n    return [];\n  }\n  getEnterpriseAddress(accountIndex = 0, keyIndex = 0) {\n    const account = this._wallet.getAccount(accountIndex, keyIndex);\n    return account.enterpriseAddressBech32;\n  }\n  getPaymentAddress(accountIndex = 0, keyIndex = 0) {\n    const account = this._wallet.getAccount(accountIndex, keyIndex);\n    return account.baseAddressBech32;\n  }\n  getRewardAddress(accountIndex = 0, keyIndex = 0) {\n    const account = this._wallet.getAccount(accountIndex, keyIndex);\n    return account.rewardAddressBech32;\n  }\n  getNetworkId() {\n    return this._wallet.getNetworkId();\n  }\n  getUsedAddress(accountIndex = 0, keyIndex = 0, addressType = \"payment\") {\n    if (addressType === \"enterprise\") {\n      return toAddress(this.getEnterpriseAddress(accountIndex, keyIndex));\n    } else {\n      return toAddress(this.getPaymentAddress(accountIndex, keyIndex));\n    }\n  }\n  async getUnspentOutputs(accountIndex = 0, addressType = \"payment\") {\n    if (!this._fetcher) {\n      throw new Error(\n        \"[AppWallet] Fetcher is required to fetch UTxOs. Please provide a fetcher.\"\n      );\n    }\n    const account = this._wallet.getAccount(accountIndex);\n    const utxos = await this._fetcher.fetchAddressUTxOs(\n      addressType == \"enterprise\" ? account.enterpriseAddressBech32 : account.baseAddressBech32\n    );\n    return utxos.map((utxo) => toTxUnspentOutput(utxo));\n  }\n  async signData(address, payload, accountIndex = 0, keyIndex = 0) {\n    try {\n      return this._wallet.signData(address, payload, accountIndex, keyIndex);\n    } catch (error) {\n      throw new Error(\n        `[AppWallet] An error occurred during signData: ${error}.`\n      );\n    }\n  }\n  async signTx(unsignedTx, partialSign = false, accountIndex = 0, keyIndex = 0) {\n    try {\n      const tx = dist_deserializeTx(unsignedTx);\n      if (!partialSign && tx.witnessSet().vkeys() !== void 0 && tx.witnessSet().vkeys().size() !== 0)\n        throw new Error(\n          \"Signatures already exist in the transaction in a non partial sign call\"\n        );\n      const newSignatures = this._wallet.signTx(\n        unsignedTx,\n        accountIndex,\n        keyIndex\n      );\n      let signedTx = EmbeddedWallet.addWitnessSets(unsignedTx, [newSignatures]);\n      return signedTx;\n    } catch (error) {\n      throw new Error(`[AppWallet] An error occurred during signTx: ${error}.`);\n    }\n  }\n  signTxSync(unsignedTx, partialSign = false, accountIndex = 0, keyIndex = 0) {\n    try {\n      throw new Error(`[AppWallet] signTxSync() is not implemented.`);\n    } catch (error) {\n      throw new Error(`[AppWallet] An error occurred during signTx: ${error}.`);\n    }\n  }\n  async signTxs(unsignedTxs, partialSign) {\n    throw new Error(`[AppWallet] signTxs() is not implemented.`);\n  }\n  submitTx(tx) {\n    if (!this._submitter) {\n      throw new Error(\n        \"[AppWallet] Submitter is required to submit transactions. Please provide a submitter.\"\n      );\n    }\n    return this._submitter.submitTx(tx);\n  }\n  static brew(strength = 256) {\n    return EmbeddedWallet.generateMnemonic(strength);\n  }\n};\n\n// src/browser/browser-wallet.ts\n\n\nvar BrowserWallet = class _BrowserWallet {\n  constructor(_walletInstance, _walletName) {\n    this._walletInstance = _walletInstance;\n    this._walletName = _walletName;\n    this.walletInstance = { ..._walletInstance };\n  }\n  walletInstance;\n  /**\n   * Returns a list of wallets installed on user's device. Each wallet is an object with the following properties:\n   * - A name is provided to display wallet's name on the user interface.\n   * - A version is provided to display wallet's version on the user interface.\n   * - An icon is provided to display wallet's icon on the user interface.\n   *\n   * @returns a list of wallet names\n   */\n  static async getAvailableWallets({\n    injectFn = void 0\n  } = {}) {\n    if (window === void 0) return [];\n    if (injectFn) await injectFn();\n    return _BrowserWallet.getInstalledWallets();\n  }\n  /**\n   * Returns a list of wallets installed on user's device. Each wallet is an object with the following properties:\n   * - A name is provided to display wallet's name on the user interface.\n   * - A version is provided to display wallet's version on the user interface.\n   * - An icon is provided to display wallet's icon on the user interface.\n   *\n   * @returns a list of wallet names\n   */\n  static getInstalledWallets() {\n    if (window === void 0) return [];\n    if (window.cardano === void 0) return [];\n    let wallets = [];\n    for (const key in window.cardano) {\n      try {\n        const _wallet = window.cardano[key];\n        if (_wallet === void 0) continue;\n        if (_wallet.name === void 0) continue;\n        if (_wallet.icon === void 0) continue;\n        if (_wallet.apiVersion === void 0) continue;\n        wallets.push({\n          id: key,\n          name: key == \"nufiSnap\" ? \"MetaMask\" : _wallet.name,\n          icon: _wallet.icon,\n          version: _wallet.apiVersion\n        });\n      } catch (e) {\n      }\n    }\n    return wallets;\n  }\n  /**\n   * This is the entrypoint to start communication with the user's wallet. The wallet should request the user's permission to connect the web page to the user's wallet, and if permission has been granted, the wallet will be returned and exposing the full API for the app to use.\n   *\n   * Query BrowserWallet.getInstalledWallets() to get a list of available wallets, then provide the wallet name for which wallet the user would like to connect with.\n   *\n   * @param walletName - the name of the wallet to enable (e.g. \"eternl\", \"begin\")\n   * @param extensions - optional, a list of CIPs that the wallet should support\n   * @returns WalletInstance\n   */\n  static async enable(walletName, extensions = []) {\n    try {\n      const walletInstance = await _BrowserWallet.resolveInstance(\n        walletName,\n        extensions\n      );\n      if (walletInstance !== void 0)\n        return new _BrowserWallet(walletInstance, walletName);\n      throw new Error(`Couldn't create an instance of wallet: ${walletName}`);\n    } catch (error) {\n      throw new Error(\n        `[BrowserWallet] An error occurred during enable: ${JSON.stringify(\n          error\n        )}.`\n      );\n    }\n  }\n  /**\n   * Returns a list of assets in the wallet. This API will return every assets in the wallet. Each asset is an object with the following properties:\n   * - A unit is provided to display asset's name on the user interface.\n   * - A quantity is provided to display asset's quantity on the user interface.\n   *\n   * @returns a list of assets and their quantities\n   */\n  async getBalance() {\n    const balance = await this._walletInstance.getBalance();\n    return fromValue(deserializeValue(balance));\n  }\n  /**\n   * Returns an address owned by the wallet that should be used as a change address to return leftover assets during transaction creation back to the connected wallet.\n   *\n   * @returns an address\n   */\n  async getChangeAddress() {\n    const changeAddress = await this._walletInstance.getChangeAddress();\n    return addressToBech32(deserializeAddress(changeAddress));\n  }\n  /**\n   * This function shall return a list of one or more UTXOs (unspent transaction outputs) controlled by the wallet that are required to reach AT LEAST the combined ADA value target specified in amount AND the best suitable to be used as collateral inputs for transactions with plutus script inputs (pure ADA-only UTXOs).\n   *\n   * If this cannot be attained, an error message with an explanation of the blocking problem shall be returned. NOTE: wallets are free to return UTXOs that add up to a greater total ADA value than requested in the amount parameter, but wallets must never return any result where UTXOs would sum up to a smaller total ADA value, instead in a case like that an error message must be returned.\n   *\n   * @param limit\n   * @returns a list of UTXOs\n   */\n  async getCollateral() {\n    const deserializedCollateral = await this.getCollateralUnspentOutput();\n    return deserializedCollateral.map((dc) => fromTxUnspentOutput(dc));\n  }\n  /**\n   * Return a list of supported CIPs of the wallet.\n   *\n   * @returns a list of CIPs\n   */\n  async getExtensions() {\n    try {\n      const _extensions = await this._walletInstance.getExtensions();\n      return _extensions.map((e) => e.cip);\n    } catch (e) {\n      return [];\n    }\n  }\n  /**\n   * Returns the network ID of the currently connected account. 0 is testnet and 1 is mainnet but other networks can possibly be returned by wallets. Those other network ID values are not governed by CIP-30. This result will stay the same unless the connected account has changed.\n   *\n   * @returns network ID\n   */\n  getNetworkId() {\n    return this._walletInstance.getNetworkId();\n  }\n  /**\n   * Returns a list of reward addresses owned by the wallet. A reward address is a stake address that is used to receive rewards from staking, generally starts from `stake` prefix.\n   *\n   * @returns a list of reward addresses\n   */\n  async getRewardAddresses() {\n    const rewardAddresses = await this._walletInstance.getRewardAddresses();\n    return rewardAddresses.map((ra) => addressToBech32(deserializeAddress(ra)));\n  }\n  /**\n   * Returns a list of unused addresses controlled by the wallet.\n   *\n   * @returns a list of unused addresses\n   */\n  async getUnusedAddresses() {\n    const unusedAddresses = await this._walletInstance.getUnusedAddresses();\n    return unusedAddresses.map(\n      (una) => addressToBech32(deserializeAddress(una))\n    );\n  }\n  /**\n   * Returns a list of used addresses controlled by the wallet.\n   *\n   * @returns a list of used addresses\n   */\n  async getUsedAddresses() {\n    const usedAddresses = await this._walletInstance.getUsedAddresses();\n    return usedAddresses.map((usa) => addressToBech32(deserializeAddress(usa)));\n  }\n  /**\n   * Return a list of all UTXOs (unspent transaction outputs) controlled by the wallet.\n   *\n   * @returns a list of UTXOs\n   */\n  async getUtxos() {\n    const deserializedUTxOs = await this.getUsedUTxOs();\n    return deserializedUTxOs.map((du) => fromTxUnspentOutput(du));\n  }\n  /**\n   * This endpoint utilizes the [CIP-8 - Message Signing](https://cips.cardano.org/cips/cip8/) to sign arbitrary data, to verify the data was signed by the owner of the private key.\n   *\n   * @param payload - the data to be signed\n   * @param address - optional, if not provided, the first staking address will be used\n   * @returns a signature\n   */\n  async signData(payload, address) {\n    if (address === void 0) {\n      address = (await this.getUsedAddresses())[0];\n      if (address === void 0) {\n        address = await this.getChangeAddress();\n      }\n    }\n    if (address.startsWith(\"drep1\")) {\n      return this._walletInstance.cip95.signData(address, fromUTF8(payload));\n    }\n    const signerAddress = toAddress(address).toBytes().toString();\n    return this._walletInstance.signData(signerAddress, fromUTF8(payload));\n  }\n  /**\n   * Requests user to sign the provided transaction (tx). The wallet should ask the user for permission, and if given, try to sign the supplied body and return a signed transaction. partialSign should be true if the transaction provided requires multiple signatures.\n   *\n   * @param unsignedTx - a transaction in CBOR\n   * @param partialSign - if the transaction is signed partially\n   * @returns a signed transaction in CBOR\n   */\n  async signTx(unsignedTx, partialSign = false) {\n    const witness = await this._walletInstance.signTx(unsignedTx, partialSign);\n    if (witness === \"\") {\n      return unsignedTx;\n    }\n    return _BrowserWallet.addBrowserWitnesses(unsignedTx, witness);\n  }\n  /**\n   * Experimental feature - sign multiple transactions at once (Supported wallet(s): Typhon)\n   *\n   * @param unsignedTxs - array of unsigned transactions in CborHex string\n   * @param partialSign - if the transactions are signed partially\n   * @returns array of signed transactions CborHex string\n   */\n  async signTxs(unsignedTxs, partialSign = false) {\n    let witnessSets = void 0;\n    switch (this._walletName) {\n      case \"Typhon Wallet\":\n        if (this._walletInstance.signTxs) {\n          witnessSets = await this._walletInstance.signTxs(\n            unsignedTxs,\n            partialSign\n          );\n        }\n        break;\n      default:\n        if (this._walletInstance.signTxs) {\n          witnessSets = await this._walletInstance.signTxs(\n            unsignedTxs.map((cbor) => ({\n              cbor,\n              partialSign\n            }))\n          );\n        } else if (this._walletInstance.experimental.signTxs) {\n          witnessSets = await this._walletInstance.experimental.signTxs(\n            unsignedTxs.map((cbor) => ({\n              cbor,\n              partialSign\n            }))\n          );\n        }\n        break;\n    }\n    if (!witnessSets) throw new Error(\"Wallet does not support signTxs\");\n    const signedTxs = [];\n    for (let i = 0; i < witnessSets.length; i++) {\n      const unsignedTx = unsignedTxs[i];\n      const cWitness = witnessSets[i];\n      if (cWitness === \"\") {\n        signedTxs.push(unsignedTx);\n      } else {\n        const signedTx = _BrowserWallet.addBrowserWitnesses(\n          unsignedTx,\n          cWitness\n        );\n        signedTxs.push(signedTx);\n      }\n    }\n    return signedTxs;\n  }\n  /**\n   * Submits the signed transaction to the blockchain network.\n   *\n   * As wallets should already have this ability to submit transaction, we allow apps to request that a transaction be sent through it. If the wallet accepts the transaction and tries to send it, it shall return the transaction ID for the app to track. The wallet can return error messages or failure if there was an error in sending it.\n   *\n   * @param tx\n   * @returns a transaction hash\n   */\n  submitTx(tx) {\n    return this._walletInstance.submitTx(tx);\n  }\n  /**\n   * Get a used address of type Address from the wallet.\n   *\n   * This is used in transaction building.\n   *\n   * @returns an Address object\n   */\n  async getUsedAddress() {\n    const usedAddresses = await this._walletInstance.getUsedAddresses();\n    if (usedAddresses.length === 0) throw new Error(\"No used addresses found\");\n    return deserializeAddress(usedAddresses[0]);\n  }\n  /**\n   * Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs.\n   *\n   * This is used in transaction building.\n   *\n   * @returns a list of UTXOs\n   */\n  async getCollateralUnspentOutput(limit = DEFAULT_PROTOCOL_PARAMETERS.maxCollateralInputs) {\n    let collateral = [];\n    try {\n      collateral = await this._walletInstance.getCollateral() ?? [];\n    } catch (e) {\n      try {\n        collateral = await this._walletInstance.experimental.getCollateral() ?? [];\n      } catch (e2) {\n        console.error(e2);\n      }\n    }\n    return collateral.map((c) => deserializeTxUnspentOutput(c)).slice(0, limit);\n  }\n  /**\n   * Get a list of UTXOs to be used for transaction building.\n   *\n   * This is used in transaction building.\n   *\n   * @returns a list of UTXOs\n   */\n  async getUsedUTxOs() {\n    const utxos = await this._walletInstance.getUtxos() ?? [];\n    return utxos.map((u) => deserializeTxUnspentOutput(u));\n  }\n  /**\n   * A helper function to get the assets in the wallet.\n   *\n   * @returns a list of assets\n   */\n  async getAssets() {\n    const balance = await this.getBalance();\n    return balance.filter((v) => v.unit !== \"lovelace\").map((v) => {\n      const policyId = v.unit.slice(0, POLICY_ID_LENGTH);\n      const assetName = v.unit.slice(POLICY_ID_LENGTH);\n      const fingerprint = resolveFingerprint(policyId, assetName);\n      return {\n        unit: v.unit,\n        policyId,\n        assetName,\n        fingerprint,\n        quantity: v.quantity\n      };\n    });\n  }\n  /**\n   * A helper function to get the lovelace balance in the wallet.\n   *\n   * @returns lovelace balance\n   */\n  async getLovelace() {\n    const balance = await this.getBalance();\n    const nativeAsset = balance.find((v) => v.unit === \"lovelace\");\n    return nativeAsset !== void 0 ? nativeAsset.quantity : \"0\";\n  }\n  /**\n   * A helper function to get the assets of a specific policy ID in the wallet.\n   *\n   * @param policyId\n   * @returns a list of assets\n   */\n  async getPolicyIdAssets(policyId) {\n    const assets = await this.getAssets();\n    return assets.filter((v) => v.policyId === policyId);\n  }\n  /**\n   * A helper function to get the policy IDs of all the assets in the wallet.\n   *\n   * @returns a list of policy IDs\n   */\n  async getPolicyIds() {\n    const balance = await this.getBalance();\n    return Array.from(\n      new Set(balance.map((v) => v.unit.slice(0, POLICY_ID_LENGTH)))\n    ).filter((p) => p !== \"lovelace\");\n  }\n  /**\n   * The connected wallet account provides the account's public DRep Key, derivation as described in CIP-0105.\n   * These are used by the client to identify the user's on-chain CIP-1694 interactions, i.e. if a user has registered to be a DRep.\n   *\n   * @returns DRep object\n   */\n  async getDRep() {\n    const pubDRepKey = await this.getPubDRepKey();\n    try {\n      if (pubDRepKey === void 0) return void 0;\n      const { dRepIDHash } = await _BrowserWallet.dRepKeyToDRepID(pubDRepKey);\n      const dRepIDCip105 = hexToBech32(\"drep\", dRepIDHash);\n      return {\n        publicKey: pubDRepKey,\n        publicKeyHash: dRepIDHash,\n        dRepIDCip105\n      };\n    } catch (e) {\n      console.error(e);\n      return void 0;\n    }\n  }\n  /**\n   * The connected wallet account provides the account's public DRep Key, derivation as described in CIP-0105.\n   * These are used by the client to identify the user's on-chain CIP-1694 interactions, i.e. if a user has registered to be a DRep.\n   *\n   * @returns wallet account's public DRep Key\n   */\n  async getPubDRepKey() {\n    try {\n      if (this._walletInstance.cip95 === void 0) return void 0;\n      const pubDRepKey = await this._walletInstance.cip95.getPubDRepKey();\n      return pubDRepKey;\n    } catch (e) {\n      console.error(e);\n      return void 0;\n    }\n  }\n  async getRegisteredPubStakeKeys() {\n    try {\n      if (this._walletInstance.cip95 === void 0) return void 0;\n      const pubStakeKeys = await this._walletInstance.cip95.getRegisteredPubStakeKeys();\n      const pubStakeKeyHashes = await Promise.all(\n        pubStakeKeys.map(async (pubStakeKey) => {\n          const { dRepIDHash } = await _BrowserWallet.dRepKeyToDRepID(pubStakeKey);\n          return dRepIDHash;\n        })\n      );\n      return {\n        pubStakeKeys,\n        pubStakeKeyHashes\n      };\n    } catch (e) {\n      console.error(e);\n      return void 0;\n    }\n  }\n  async getUnregisteredPubStakeKeys() {\n    try {\n      if (this._walletInstance.cip95 === void 0) return void 0;\n      const pubStakeKeys = await this._walletInstance.cip95.getUnregisteredPubStakeKeys();\n      const pubStakeKeyHashes = await Promise.all(\n        pubStakeKeys.map(async (pubStakeKey) => {\n          const { dRepIDHash } = await _BrowserWallet.dRepKeyToDRepID(pubStakeKey);\n          return dRepIDHash;\n        })\n      );\n      return {\n        pubStakeKeys,\n        pubStakeKeyHashes\n      };\n    } catch (e) {\n      console.error(e);\n      return void 0;\n    }\n  }\n  static async dRepKeyToDRepID(dRepKey) {\n    const dRepKeyHex = Ed25519PublicKeyHex2(dRepKey);\n    const dRepID = Ed25519PublicKey2.fromHex(dRepKeyHex);\n    const dRepIDHash = (await dRepID.hash()).hex();\n    return {\n      dRepKeyHex,\n      dRepID,\n      dRepIDHash\n    };\n  }\n  static resolveInstance(walletName, extensions = []) {\n    if (window.cardano === void 0) return void 0;\n    if (window.cardano[walletName] === void 0) return void 0;\n    const wallet = window.cardano[walletName];\n    if (extensions.length > 0) {\n      return wallet.enable({ extensions });\n    } else {\n      return wallet?.enable();\n    }\n  }\n  static addBrowserWitnesses(unsignedTx, witnesses) {\n    const cWitness = TransactionWitnessSet.fromCbor(\n      esm_primitives_HexBlob(witnesses)\n    ).vkeys()?.values();\n    if (cWitness === void 0) {\n      return unsignedTx;\n    }\n    let tx = dist_deserializeTx(unsignedTx);\n    let witnessSet = tx.witnessSet();\n    let witnessSetVkeys = witnessSet.vkeys();\n    let witnessSetVkeysValues = witnessSetVkeys ? [...witnessSetVkeys.values(), ...cWitness] : [...cWitness];\n    witnessSet.setVkeys(\n      CborSet.fromCore(\n        witnessSetVkeysValues.map((vkw) => vkw.toCore()),\n        dist_VkeyWitness.fromCore\n      )\n    );\n    return new dist_Transaction(tx.body(), witnessSet, tx.auxiliaryData()).toCbor();\n  }\n  static getSupportedExtensions(wallet) {\n    const _supportedExtensions = window?.cardano?.[wallet]?.supportedExtensions;\n    if (_supportedExtensions) return _supportedExtensions;\n    else return [];\n  }\n};\n\n// src/browser/webauthn/cardano/build-wallet-from-passkey.ts\nvar import_base32_encoding = dist_toESM(require_base32_encoding(), 1);\nvar import_bech32 = dist_toESM(require_dist(), 1);\n\nasync function buildWalletFromPasskey(rawId, password, appSalt = \"appSalt\") {\n  const entropy = await createEntropy(rawId, appSalt);\n  return buildKey(wallet_dist_Buffer.from(entropy), password);\n}\nfunction buildKey(entropy, password) {\n  const bip32Key = Bip32PrivateKey.fromBip39Entropy(entropy, password);\n  const bytes = import_base32_encoding.default.encode(bip32Key.bytes());\n  const bech32PrivateKey = import_bech32.bech32.encode(\"xprv\", bytes, 1023);\n  return {\n    bech32PrivateKey\n  };\n}\nasync function createEntropy(rawId, appSalt) {\n  const rawIdBytes = new Uint8Array(new TextEncoder().encode(rawId));\n  const saltBytes = new TextEncoder().encode(appSalt);\n  const entropyBuffer = new Uint8Array([...rawIdBytes, ...saltBytes]);\n  const entropy = await crypto.subtle.digest(\"SHA-256\", entropyBuffer);\n  return entropy;\n}\n\n// src/browser/webauthn/common/error-codes/index.ts\nvar ERRORCODES = {\n  USEREXISTS: 1\n};\n\n// src/browser/webauthn/auth/login.ts\n\nasync function login({\n  serverUrl,\n  username\n}) {\n  const initAuthRes = await fetch(`${serverUrl}/auth-init`, {\n    credentials: \"include\",\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify({\n      username\n    })\n  });\n  const initAuth = await initAuthRes.json();\n  if (!initAuth.success) {\n    return {\n      success: false,\n      error: initAuth.error,\n      errorCode: initAuth.errorCode\n    };\n  }\n  const optionsJSON = initAuth.data.optionsJSON;\n  const authJSON = await startAuthentication({ optionsJSON });\n  const verifyAuthRes = await fetch(`${serverUrl}/auth-verify`, {\n    credentials: \"include\",\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify(authJSON)\n  });\n  const verifyAuth = await verifyAuthRes.json();\n  if (!verifyAuthRes.ok) {\n    return { success: false, error: verifyAuth.error };\n  }\n  if (verifyAuth.data.verified) {\n    return { success: true, authJSON };\n  } else {\n    return { success: false, error: \"Failed to log in\" };\n  }\n}\n\n// src/browser/webauthn/auth/register.ts\n\nasync function register({\n  serverUrl,\n  username\n}) {\n  const initRegisterRes = await fetch(`${serverUrl}/register-init`, {\n    credentials: \"include\",\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify({\n      username\n    })\n  });\n  const initRegister = await initRegisterRes.json();\n  if (!initRegister.success) {\n    return {\n      success: false,\n      error: initRegister.error,\n      errorCode: initRegister.errorCode\n    };\n  }\n  const optionsJSON = initRegister.data.optionsJSON;\n  const registrationJSON = await startRegistration({ optionsJSON });\n  const verifyResponse = await fetch(`${serverUrl}/register-verify`, {\n    credentials: \"include\",\n    method: \"POST\",\n    headers: {\n      \"Content-Type\": \"application/json\"\n    },\n    body: JSON.stringify(registrationJSON)\n  });\n  const verifyData = await verifyResponse.json();\n  if (!verifyResponse.ok) {\n    console.error(verifyData.error);\n    return {\n      success: false,\n      error: verifyData.error,\n      errorCode: verifyData.errorCode\n    };\n  }\n  if (verifyData.data.verified) {\n    console.log(`Successfully registered ${username}`);\n    return { success: true };\n  } else {\n    console.error(`Failed to register`);\n    return { success: false, error: \"Failed to register\", errorCode: 1 };\n  }\n}\n\n// src/browser/webauthn/auth/connect.ts\nasync function connect({\n  username,\n  password,\n  serverUrl\n}) {\n  const responseRegister = await register({ serverUrl, username });\n  if (responseRegister.success || responseRegister.error.errorCode == ERRORCODES.USEREXISTS) {\n    const loginRes = await handleLogin({ serverUrl, username });\n    if (loginRes.success && loginRes.authJSON) {\n      const wallet = await buildWalletFromPasskey(\n        loginRes.authJSON.rawId,\n        password\n      );\n      return { success: true, wallet };\n    }\n  } else {\n    return { success: false, error: responseRegister.error };\n  }\n  return { success: false, error: \"Fail to connect\" };\n}\nasync function handleLogin({\n  serverUrl,\n  username\n}) {\n  const responseLogin = await login({ serverUrl, username });\n  if (responseLogin.success && responseLogin.authJSON) {\n    const authJSON = responseLogin.authJSON;\n    return { success: true, authJSON };\n  } else {\n    return { success: false, error: responseLogin.error };\n  }\n}\n\n// src/mesh/index.ts\n\n\n\nvar MeshWallet = class {\n  _keyType;\n  _wallet;\n  _accountIndex = 0;\n  _keyIndex = 0;\n  _fetcher;\n  _submitter;\n  _networkId;\n  addresses = {};\n  constructor(options) {\n    this._networkId = options.networkId;\n    this._keyType = options.key.type;\n    if (options.fetcher) this._fetcher = options.fetcher;\n    if (options.submitter) this._submitter = options.submitter;\n    if (options.accountIndex) this._accountIndex = options.accountIndex;\n    if (options.keyIndex) this._keyIndex = options.keyIndex;\n    switch (options.key.type) {\n      case \"root\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"root\",\n            bech32: options.key.bech32\n          }\n        });\n        break;\n      case \"cli\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"cli\",\n            payment: options.key.payment,\n            stake: options.key.stake\n          }\n        });\n        break;\n      case \"mnemonic\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"mnemonic\",\n            words: options.key.words\n          }\n        });\n        break;\n      case \"bip32Bytes\":\n        this._wallet = new EmbeddedWallet({\n          networkId: options.networkId,\n          key: {\n            type: \"bip32Bytes\",\n            bip32Bytes: options.key.bip32Bytes\n          }\n        });\n        break;\n      case \"address\":\n        this._wallet = null;\n        this.buildAddressFromBech32Address(options.key.address);\n        break;\n    }\n  }\n  /**\n   * Initializes the wallet. This is a required call as fetching addresses from the wallet is an async operation.\n   * @returns void\n   */\n  async init() {\n    if (this._wallet && !this._wallet.cryptoIsReady) {\n      await this._wallet.init();\n      this.getAddressesFromWallet(this._wallet);\n    }\n  }\n  /**\n   * Returns all derived addresses from the wallet.\n   * @returns a list of addresses\n   */\n  getAddresses() {\n    return this.addresses;\n  }\n  /**\n   * Returns a list of assets in the wallet. This API will return every assets in the wallet. Each asset is an object with the following properties:\n   * - A unit is provided to display asset's name on the user interface.\n   * - A quantity is provided to display asset's quantity on the user interface.\n   *\n   * @returns a list of assets and their quantities\n   */\n  async getBalance() {\n    await this.init();\n    const utxos = await this.getUnspentOutputs();\n    const assets = /* @__PURE__ */ new Map();\n    utxos.map((utxo) => {\n      const _utxo = fromTxUnspentOutput(utxo);\n      _utxo.output.amount.map((asset) => {\n        const assetId = asset.unit;\n        const amount = Number(asset.quantity);\n        if (assets.has(assetId)) {\n          const quantity = assets.get(assetId);\n          assets.set(assetId, quantity + amount);\n        } else {\n          assets.set(assetId, amount);\n        }\n      });\n    });\n    const arrayAssets = Array.from(assets, ([unit, quantity]) => ({\n      unit,\n      quantity: quantity.toString()\n    }));\n    return arrayAssets;\n  }\n  /**\n   * Returns an address owned by the wallet that should be used as a change address to return leftover assets during transaction creation back to the connected wallet.\n   *\n   * @returns an address\n   */\n  async getChangeAddress(addressType = \"payment\") {\n    await this.init();\n    if (this.addresses.baseAddressBech32 && addressType === \"payment\") {\n      return this.addresses.baseAddressBech32;\n    }\n    return this.addresses.enterpriseAddressBech32;\n  }\n  /**\n   * This function shall return a list of one or more UTXOs (unspent transaction outputs) controlled by the wallet that are required to reach AT LEAST the combined ADA value target specified in amount AND the best suitable to be used as collateral inputs for transactions with plutus script inputs (pure ADA-only UTXOs).\n   *\n   * If this cannot be attained, an error message with an explanation of the blocking problem shall be returned. NOTE: wallets are free to return UTXOs that add up to a greater total ADA value than requested in the amount parameter, but wallets must never return any result where UTXOs would sum up to a smaller total ADA value, instead in a case like that an error message must be returned.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns a list of UTXOs\n   */\n  async getCollateral(addressType = \"payment\") {\n    await this.init();\n    const utxos = await this.getCollateralUnspentOutput(addressType);\n    return utxos.map((utxo, i) => {\n      return fromTxUnspentOutput(utxo);\n    });\n  }\n  /**\n   * Return a list of supported CIPs of the wallet.\n   *\n   * @returns a list of CIPs\n   */\n  async getExtensions() {\n    return [];\n  }\n  /**\n   * Get a list of UTXOs to be used as collateral inputs for transactions with plutus script inputs.\n   *\n   * This is used in transaction building.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns a list of UTXOs\n   */\n  async getCollateralUnspentOutput(addressType = \"payment\") {\n    await this.init();\n    const utxos = await this.getUnspentOutputs(addressType);\n    const pureAdaUtxos = utxos.filter((utxo) => {\n      return utxo.output().amount().multiasset() === void 0;\n    });\n    pureAdaUtxos.sort((a, b) => {\n      return Number(a.output().amount().coin()) - Number(b.output().amount().coin());\n    });\n    for (const utxo of pureAdaUtxos) {\n      if (Number(utxo.output().amount().coin()) >= 5e6) {\n        return [utxo];\n      }\n    }\n    return [];\n  }\n  /**\n   * The connected wallet account provides the account's public DRep Key, derivation as described in CIP-0105.\n   * These are used by the client to identify the user's on-chain CIP-1694 interactions, i.e. if a user has registered to be a DRep.\n   *\n   * @returns DRep object\n   */\n  async getDRep() {\n    await this.init();\n    if (this.addresses.pubDRepKey && this.addresses.dRepIDHash && this.addresses.dRepIDCip105)\n      return {\n        publicKey: this.addresses.pubDRepKey,\n        publicKeyHash: this.addresses.dRepIDHash,\n        dRepIDCip105: this.addresses.dRepIDCip105\n      };\n    return void 0;\n  }\n  /**\n   * Returns the network ID of the currently connected account. 0 is testnet and 1 is mainnet but other networks can possibly be returned by wallets. Those other network ID values are not governed by CIP-30. This result will stay the same unless the connected account has changed.\n   *\n   * @returns network ID\n   */\n  async getNetworkId() {\n    return this._networkId;\n  }\n  /**\n   * Returns a list of reward addresses owned by the wallet. A reward address is a stake address that is used to receive rewards from staking, generally starts from `stake` prefix.\n   *\n   * @returns a list of reward addresses\n   */\n  async getRewardAddresses() {\n    return [this.addresses.rewardAddressBech32];\n  }\n  /**\n   * Returns a list of unused addresses controlled by the wallet.\n   *\n   * @returns a list of unused addresses\n   */\n  async getUnusedAddresses() {\n    return [await this.getChangeAddress()];\n  }\n  /**\n   * Returns a list of used addresses controlled by the wallet.\n   *\n   * @returns a list of used addresses\n   */\n  async getUsedAddresses() {\n    return [await this.getChangeAddress()];\n  }\n  /**\n   * Get a list of UTXOs to be used for transaction building.\n   *\n   * This is used in transaction building.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns a list of UTXOs\n   */\n  async getUsedUTxOs(addressType = \"payment\") {\n    return await this.getUnspentOutputs(addressType);\n  }\n  /**\n   * Return a list of all UTXOs (unspent transaction outputs) controlled by the wallet.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns a list of UTXOs\n   */\n  async getUtxos(addressType = \"payment\") {\n    const utxos = await this.getUsedUTxOs(addressType);\n    return utxos.map((c) => fromTxUnspentOutput(c));\n  }\n  /**\n   * This endpoint utilizes the [CIP-8 - Message Signing](https://cips.cardano.org/cips/cip8/) to sign arbitrary data, to verify the data was signed by the owner of the private key.\n   *\n   * @param payload - the payload to sign\n   * @param address - the address to use for signing (optional)\n   * @returns a signature\n   */\n  async signData(payload, address) {\n    await this.init();\n    if (!this._wallet) {\n      throw new Error(\n        \"[MeshWallet] Read only wallet does not support signing data.\"\n      );\n    }\n    if (address === void 0) {\n      address = await this.getChangeAddress();\n    }\n    return this._wallet.signData(\n      address,\n      payload,\n      this._accountIndex,\n      this._keyIndex\n    );\n  }\n  /**\n   * Requests user to sign the provided transaction (tx). The wallet should ask the user for permission, and if given, try to sign the supplied body and return a signed transaction. partialSign should be true if the transaction provided requires multiple signatures.\n   *\n   * @param unsignedTx - a transaction in CBOR\n   * @param partialSign - if the transaction is partially signed (default: false)\n   * @returns a signed transaction in CBOR\n   */\n  async signTx(unsignedTx, partialSign = false) {\n    await this.init();\n    if (!this._wallet) {\n      throw new Error(\n        \"[MeshWallet] Read only wallet does not support signing data.\"\n      );\n    }\n    const tx = dist_deserializeTx(unsignedTx);\n    if (!partialSign && tx.witnessSet().vkeys() !== void 0 && tx.witnessSet().vkeys().size() !== 0)\n      throw new Error(\n        \"Signatures already exist in the transaction in a non partial sign call\"\n      );\n    const newSignatures = this._wallet.signTx(\n      unsignedTx,\n      this._accountIndex,\n      this._keyIndex\n    );\n    let signedTx = EmbeddedWallet.addWitnessSets(unsignedTx, [newSignatures]);\n    return signedTx;\n  }\n  /**\n   * Experimental feature - sign multiple transactions at once.\n   *\n   * @param unsignedTxs - array of unsigned transactions in CborHex string\n   * @param partialSign - if the transactions are signed partially\n   * @returns array of signed transactions CborHex string\n   */\n  async signTxs(unsignedTxs, partialSign = false) {\n    await this.init();\n    if (!this._wallet) {\n      throw new Error(\n        \"[MeshWallet] Read only wallet does not support signing data.\"\n      );\n    }\n    const signedTxs = [];\n    for (const unsignedTx of unsignedTxs) {\n      const signedTx = await this.signTx(unsignedTx, partialSign);\n      signedTxs.push(signedTx);\n    }\n    return signedTxs;\n  }\n  /**\n   * Submits the signed transaction to the blockchain network.\n   *\n   * As wallets should already have this ability to submit transaction, we allow apps to request that a transaction be sent through it. If the wallet accepts the transaction and tries to send it, it shall return the transaction ID for the app to track. The wallet can return error messages or failure if there was an error in sending it.\n   *\n   * @param tx - a signed transaction in CBOR\n   * @returns a transaction hash\n   */\n  async submitTx(tx) {\n    if (!this._submitter) {\n      throw new Error(\n        \"[MeshWallet] Submitter is required to submit transactions. Please provide a submitter.\"\n      );\n    }\n    return this._submitter.submitTx(tx);\n  }\n  /**\n   * Get a used address of type Address from the wallet.\n   *\n   * This is used in transaction building.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns an Address object\n   */\n  getUsedAddress(addressType = \"payment\") {\n    if (this.addresses.baseAddressBech32 && addressType === \"payment\") {\n      return toAddress(this.addresses.baseAddressBech32);\n    } else {\n      return toAddress(this.addresses.enterpriseAddressBech32);\n    }\n  }\n  /**\n   * Get a list of UTXOs to be used for transaction building.\n   *\n   * This is used in transaction building.\n   *\n   * @param addressType - the type of address to fetch UTXOs from (default: payment)\n   * @returns a list of UTXOs\n   */\n  async getUnspentOutputs(addressType = \"payment\") {\n    if (!this._fetcher) {\n      throw new Error(\n        \"[MeshWallet] Fetcher is required to fetch UTxOs. Please provide a fetcher.\"\n      );\n    }\n    const utxos = await this._fetcher.fetchAddressUTxOs(\n      this.addresses.baseAddressBech32 && addressType == \"payment\" ? this.addresses.baseAddressBech32 : this.addresses.enterpriseAddressBech32\n    );\n    return utxos.map((utxo) => toTxUnspentOutput(utxo));\n  }\n  /**\n   * A helper function to get the assets in the wallet.\n   *\n   * @returns a list of assets\n   */\n  async getAssets() {\n    const balance = await this.getBalance();\n    return balance.filter((v) => v.unit !== \"lovelace\").map((v) => {\n      const policyId = v.unit.slice(0, POLICY_ID_LENGTH);\n      const assetName = v.unit.slice(POLICY_ID_LENGTH);\n      const fingerprint = resolveFingerprint(policyId, assetName);\n      return {\n        unit: v.unit,\n        policyId,\n        assetName: toUTF8(assetName),\n        fingerprint,\n        quantity: v.quantity\n      };\n    });\n  }\n  /**\n   * A helper function to get the lovelace balance in the wallet.\n   *\n   * @returns lovelace balance\n   */\n  async getLovelace() {\n    const balance = await this.getBalance();\n    const nativeAsset = balance.find((v) => v.unit === \"lovelace\");\n    return nativeAsset !== void 0 ? nativeAsset.quantity : \"0\";\n  }\n  /**\n   * A helper function to get the assets of a specific policy ID in the wallet.\n   *\n   * @param policyId\n   * @returns a list of assets\n   */\n  async getPolicyIdAssets(policyId) {\n    const assets = await this.getAssets();\n    return assets.filter((v) => v.policyId === policyId);\n  }\n  /**\n   * A helper function to get the policy IDs of all the assets in the wallet.\n   *\n   * @returns a list of policy IDs\n   */\n  async getPolicyIds() {\n    const balance = await this.getBalance();\n    return Array.from(\n      new Set(balance.map((v) => v.unit.slice(0, POLICY_ID_LENGTH)))\n    ).filter((p) => p !== \"lovelace\");\n  }\n  async getRegisteredPubStakeKeys() {\n    console.warn(\"Not implemented yet\");\n    return void 0;\n  }\n  async getUnregisteredPubStakeKeys() {\n    console.warn(\"Not implemented yet\");\n    return void 0;\n  }\n  /**\n   * A helper function to create a collateral input for a transaction.\n   *\n   * @returns a transaction hash\n   */\n  async createCollateral() {\n    const tx = new transaction_dist_Transaction({ initiator: this });\n    tx.sendLovelace(await this.getChangeAddress(), \"5000000\");\n    const unsignedTx = await tx.build();\n    const signedTx = await this.signTx(unsignedTx);\n    const txHash = await this.submitTx(signedTx);\n    return txHash;\n  }\n  getPubDRepKey() {\n    return {\n      pubDRepKey: this.addresses.pubDRepKey,\n      dRepIDBech32: this.addresses.dRepIDBech32,\n      dRepIDHash: this.addresses.dRepIDHash,\n      dRepIDCip105: this.addresses.dRepIDCip105\n    };\n  }\n  /**\n   * Generate mnemonic or private key\n   *\n   * @param privateKey return private key if true\n   * @returns a transaction hash\n   */\n  static brew(privateKey = false, strength = 256) {\n    const mnemonic = EmbeddedWallet.generateMnemonic(strength);\n    if (privateKey) {\n      return resolvePrivateKey(mnemonic);\n    }\n    return mnemonic;\n  }\n  getAddressesFromWallet(wallet) {\n    const account = wallet.getAccount(this._accountIndex, this._keyIndex);\n    this.addresses = {\n      baseAddress: account.baseAddress,\n      enterpriseAddress: account.enterpriseAddress,\n      rewardAddress: account.rewardAddress,\n      baseAddressBech32: account.baseAddressBech32,\n      enterpriseAddressBech32: account.enterpriseAddressBech32,\n      rewardAddressBech32: account.rewardAddressBech32,\n      pubDRepKey: account.pubDRepKey,\n      dRepIDBech32: account.dRepIDBech32,\n      dRepIDHash: account.dRepIDHash,\n      dRepIDCip105: account.dRepIDCip105\n    };\n  }\n  buildAddressFromBech32Address(address) {\n    let pubKeyHash = void 0;\n    let stakeKeyHash = void 0;\n    const baseAddress = dist_Address.fromBech32(address).asBase();\n    if (baseAddress) {\n      pubKeyHash = baseAddress.getPaymentCredential().hash;\n      stakeKeyHash = baseAddress.getStakeCredential().hash;\n    }\n    const enterpriseAddress = dist_Address.fromBech32(address).asEnterprise();\n    if (enterpriseAddress) {\n      pubKeyHash = enterpriseAddress.getPaymentCredential().hash;\n    }\n    const rewardAddress = dist_Address.fromBech32(address).asReward();\n    if (rewardAddress) {\n      stakeKeyHash = rewardAddress.getPaymentCredential().hash;\n    }\n    if (pubKeyHash && stakeKeyHash) {\n      this.addresses.baseAddress = buildBaseAddress(\n        this._networkId,\n        Hash28ByteBase162.fromEd25519KeyHashHex(Ed25519KeyHashHex2(pubKeyHash)),\n        Hash28ByteBase162.fromEd25519KeyHashHex(\n          Ed25519KeyHashHex2(Ed25519KeyHashHex2(stakeKeyHash))\n        )\n      ).toAddress();\n      this.addresses.baseAddressBech32 = this.addresses.baseAddress.toBech32();\n    }\n    if (pubKeyHash) {\n      this.addresses.enterpriseAddress = buildEnterpriseAddress(\n        this._networkId,\n        Hash28ByteBase162.fromEd25519KeyHashHex(Ed25519KeyHashHex2(pubKeyHash))\n      ).toAddress();\n      this.addresses.enterpriseAddressBech32 = this.addresses.enterpriseAddress.toBech32();\n    }\n    if (stakeKeyHash) {\n      this.addresses.rewardAddress = buildRewardAddress(\n        this._networkId,\n        Hash28ByteBase162.fromEd25519KeyHashHex(Ed25519KeyHashHex2(stakeKeyHash))\n      ).toAddress();\n      this.addresses.rewardAddressBech32 = this.addresses.rewardAddress.toBech32();\n    }\n  }\n};\n\n/*! Bundled license information:\n\n@scure/base/lib/esm/index.js:\n  (*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) *)\n*/\n\n;// ./node_modules/@meshsdk/core/dist/index.js\n/* provided dependency */ var core_dist_Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n// src/core.ts\n\nvar applyParamsToScript2 = (rawScript, params, type) => applyParamsToScript(rawScript, params, type);\nvar dist_applyCborEncoding = (rawScript) => {\n  return core_dist_Buffer.from(\n    applyEncoding(core_dist_Buffer.from(rawScript, \"hex\"), \"SingleCBOR\")\n  ).toString(\"hex\");\n};\n\n// src/utils/resolver.ts\nvar dist_resolvePrivateKey = (words) => resolvePrivateKey(words);\nvar dist_resolveTxHash = (txHex) => resolveTxHash(txHex);\nvar dist_resolveDataHash = (rawData, type = \"Mesh\") => resolveDataHash(rawData, type);\nvar dist_resolveNativeScriptHash = (script) => resolveNativeScriptHash(script);\nvar resolveScriptHash = (scriptCode, version) => {\n  if (!version) {\n    return deserializeNativeScript(scriptCode).hash().toString();\n  }\n  return deserializePlutusScript(scriptCode, version).hash().toString();\n};\nvar dist_resolveRewardAddress = (bech32) => resolveRewardAddress(bech32);\nvar dist_resolveStakeKeyHash = (bech32) => resolveStakeKeyHash(bech32);\nvar dist_resolveScriptHashDRepId = (scriptHash) => resolveScriptHashDRepId(scriptHash);\nvar dist_resolvePlutusScriptAddress = (script, networkId) => resolvePlutusScriptAddress(script, networkId);\nvar dist_resolveNativeScriptAddress = (script, networkId) => resolveNativeScriptAddress(script, networkId);\nvar resolveNativeScriptHex = (script) => toNativeScript(script).toCbor().toString();\nvar dist_resolvePaymentKeyHash = (bech32) => deserializeBech32Address(bech32).pubKeyHash;\nvar dist_resolvePlutusScriptHash = (bech32) => deserializeBech32Address(bech32).scriptHash;\nvar dist_resolveScriptRef = (script) => resolveScriptRef(script);\nvar dist_resolvePoolId = (hash) => resolvePoolId(hash);\n\n// src/utils/deserializer.ts\nvar dist_deserializeAddress = (bech32) => deserializeBech32Address(bech32);\nvar deserializeDatum = (datumCbor) => parseDatumCbor(datumCbor);\nvar deserializePoolId = (poolId) => resolveEd25519KeyHash(poolId);\n\n// src/utils/serializer.ts\nvar serializeNativeScript = (script, stakeCredentialHash, networkId = 0, isScriptStakeCredential = false) => {\n  if (networkId !== 0 && networkId !== 1) {\n    throw new Error(\"Invalid network id\");\n  }\n  const serializer = new CardanoSDKSerializer();\n  const { scriptCbor, scriptHash } = serializer.deserializer.script.deserializeNativeScript(script);\n  const deserializedAddress = {\n    scriptHash\n  };\n  if (isScriptStakeCredential) {\n    deserializedAddress.stakeScriptCredentialHash = stakeCredentialHash;\n  } else {\n    deserializedAddress.stakeCredentialHash = stakeCredentialHash;\n  }\n  const address = serializer.serializeAddress(deserializedAddress, networkId);\n  return { address, scriptCbor };\n};\nvar serializePlutusScript = (script, stakeCredentialHash, networkId = 0, isScriptStakeCredential = false) => {\n  const scriptHash = deserializePlutusScript(script.code, script.version).hash().toString();\n  const address = scriptHashToBech32(\n    scriptHash,\n    stakeCredentialHash,\n    networkId,\n    isScriptStakeCredential\n  );\n  return { address };\n};\nvar dist_serializeAddressObj = (address, networkId = 0) => {\n  return serializeAddressObj(address, networkId);\n};\nvar serializePoolId = (hash) => resolvePoolId(hash);\nvar serializeRewardAddress = (hash, isScriptHash = false, networkId = 0) => {\n  return isScriptHash ? scriptHashToRewardAddress(hash, networkId) : keyHashToRewardAddress(hash, networkId);\n};\nvar serializeData = (rawData, type = \"Mesh\") => {\n  const serializer = new CardanoSDKSerializer();\n  const builderData = {\n    type,\n    content: rawData\n  };\n  return serializer.serializeData(builderData);\n};\n\n// src/utils/blueprint/minting.ts\nvar MintingBlueprint = class {\n  version;\n  cbor;\n  hash;\n  constructor(version) {\n    this.version = version;\n    this.cbor = \"\";\n    this.hash = \"\";\n  }\n  /**\n   * Initialize the minting blueprint, with the same parameters to `applyParamsToScript`\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @param params The parameters to apply, in an array.\n   * @param paramsType The type of the parameters, default to be Mesh's Data type. It could also be in JSON and raw CBOR.\n   * @returns The minting blueprint object\n   */\n  paramScript(compiledCode, params, paramsType = \"Mesh\") {\n    const cbor = applyParamsToScript2(compiledCode, params, paramsType);\n    const hash = resolveScriptHash(cbor, this.version);\n    this.hash = hash;\n    this.cbor = cbor;\n    return this;\n  }\n  /**\n   * Initialize the minting blueprint, with no parameters\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @returns The minting blueprint object\n   */\n  noParamScript(compiledCode) {\n    return this.paramScript(compiledCode, []);\n  }\n};\n\n// src/utils/blueprint/spending.ts\nvar SpendingBlueprint = class {\n  version;\n  networkId;\n  cbor;\n  hash;\n  address;\n  stakeHash;\n  isStakeScriptCredential;\n  constructor(version, networkId, stakeHash, isStakeScriptCredential = false) {\n    this.version = version;\n    this.networkId = networkId;\n    this.stakeHash = stakeHash;\n    this.cbor = \"\";\n    this.hash = \"\";\n    this.address = \"\";\n    this.isStakeScriptCredential = isStakeScriptCredential;\n  }\n  /**\n   * Initialize the minting blueprint, with the same parameters to `applyParamsToScript`\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @param params The parameters to apply, in an array.\n   * @param paramsType The type of the parameters, default to be Mesh's Data type. It could also be in JSON and raw CBOR.\n   * @returns\n   */\n  paramScript(compiledCode, params, paramsType = \"Mesh\") {\n    const cbor = applyParamsToScript2(compiledCode, params, paramsType);\n    const hash = resolveScriptHash(cbor, this.version);\n    const plutusScript = {\n      code: cbor,\n      version: this.version\n    };\n    const address = serializePlutusScript(\n      plutusScript,\n      this.stakeHash,\n      this.networkId,\n      this.isStakeScriptCredential\n    ).address;\n    this.hash = hash;\n    this.cbor = cbor;\n    this.address = address;\n    return this;\n  }\n  /**\n   * Initialize the minting blueprint, with no parameters\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @returns The minting blueprint object\n   */\n  noParamScript(compiledCode) {\n    return this.paramScript(compiledCode, []);\n  }\n};\n\n// src/utils/blueprint/withdrawal.ts\nvar WithdrawalBlueprint = class {\n  version;\n  networkId;\n  cbor;\n  hash;\n  address;\n  constructor(version, networkId) {\n    this.version = version;\n    this.networkId = networkId;\n    this.cbor = \"\";\n    this.hash = \"\";\n    this.address = \"\";\n  }\n  /**\n   * Initialize the withdrawal blueprint, with the same parameters to `applyParamsToScript`\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @param params The parameters to apply, in an array.\n   * @param paramsType The type of the parameters, default to be Mesh's Data type. It could also be in JSON and raw CBOR.\n   * @returns The withdrawal blueprint object\n   */\n  paramScript(compiledCode, params, paramsType = \"Mesh\") {\n    const cbor = applyParamsToScript2(compiledCode, params, paramsType);\n    const hash = resolveScriptHash(cbor, this.version);\n    this.address = serializeRewardAddress(hash, true, this.networkId);\n    this.hash = hash;\n    this.cbor = cbor;\n    return this;\n  }\n  /**\n   * Initialize the withdrawal blueprint, with no parameters\n   * @param compiledCode The raw script CborHex from blueprint.\n   * @returns The withdrawal blueprint object\n   */\n  noParamScript(compiledCode) {\n    return this.paramScript(compiledCode, []);\n  }\n};\n\n// src/index.ts\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@meshsdk/core/dist/index.js_+_346_modules?");

/***/ }),

/***/ "./node_modules/@noble/hashes/_assert.js":
/*!***********************************************!*\
  !*** ./node_modules/@noble/hashes/_assert.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n/**\n * Internal assertion helpers.\n * @module\n */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.anumber = anumber;\nexports.abytes = abytes;\nexports.ahash = ahash;\nexports.aexists = aexists;\nexports.aoutput = aoutput;\n/** Asserts something is positive integer. */\nfunction anumber(n) {\n    if (!Number.isSafeInteger(n) || n < 0)\n        throw new Error('positive integer expected, got ' + n);\n}\n/** Is number an Uint8Array? Copied from utils for perf. */\nfunction isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n/** Asserts something is Uint8Array. */\nfunction abytes(b, ...lengths) {\n    if (!isBytes(b))\n        throw new Error('Uint8Array expected');\n    if (lengths.length > 0 && !lengths.includes(b.length))\n        throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n/** Asserts something is hash */\nfunction ahash(h) {\n    if (typeof h !== 'function' || typeof h.create !== 'function')\n        throw new Error('Hash should be wrapped by utils.wrapConstructor');\n    anumber(h.outputLen);\n    anumber(h.blockLen);\n}\n/** Asserts a hash instance has not been destroyed / finished */\nfunction aexists(instance, checkFinished = true) {\n    if (instance.destroyed)\n        throw new Error('Hash instance has been destroyed');\n    if (checkFinished && instance.finished)\n        throw new Error('Hash#digest() has already been called');\n}\n/** Asserts output is properly-sized byte array */\nfunction aoutput(out, instance) {\n    abytes(out);\n    const min = instance.outputLen;\n    if (out.length < min) {\n        throw new Error('digestInto() expects output buffer of length at least ' + min);\n    }\n}\n//# sourceMappingURL=_assert.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/_assert.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/_md.js":
/*!*******************************************!*\
  !*** ./node_modules/@noble/hashes/_md.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.HashMD = void 0;\nexports.setBigUint64 = setBigUint64;\nexports.Chi = Chi;\nexports.Maj = Maj;\n/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nconst _assert_ts_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@noble/hashes/_assert.js\");\nconst utils_ts_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@noble/hashes/utils.js\");\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nfunction setBigUint64(view, byteOffset, value, isLE) {\n    if (typeof view.setBigUint64 === 'function')\n        return view.setBigUint64(byteOffset, value, isLE);\n    const _32n = BigInt(32);\n    const _u32_max = BigInt(0xffffffff);\n    const wh = Number((value >> _32n) & _u32_max);\n    const wl = Number(value & _u32_max);\n    const h = isLE ? 4 : 0;\n    const l = isLE ? 0 : 4;\n    view.setUint32(byteOffset + h, wh, isLE);\n    view.setUint32(byteOffset + l, wl, isLE);\n}\n/** Choice: a ? b : c */\nfunction Chi(a, b, c) {\n    return (a & b) ^ (~a & c);\n}\n/** Majority function, true if any two inputs is true. */\nfunction Maj(a, b, c) {\n    return (a & b) ^ (a & c) ^ (b & c);\n}\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nclass HashMD extends utils_ts_1.Hash {\n    constructor(blockLen, outputLen, padOffset, isLE) {\n        super();\n        this.finished = false;\n        this.length = 0;\n        this.pos = 0;\n        this.destroyed = false;\n        this.blockLen = blockLen;\n        this.outputLen = outputLen;\n        this.padOffset = padOffset;\n        this.isLE = isLE;\n        this.buffer = new Uint8Array(blockLen);\n        this.view = (0, utils_ts_1.createView)(this.buffer);\n    }\n    update(data) {\n        (0, _assert_ts_1.aexists)(this);\n        const { view, buffer, blockLen } = this;\n        data = (0, utils_ts_1.toBytes)(data);\n        const len = data.length;\n        for (let pos = 0; pos < len;) {\n            const take = Math.min(blockLen - this.pos, len - pos);\n            // Fast path: we have at least one block in input, cast it to view and process\n            if (take === blockLen) {\n                const dataView = (0, utils_ts_1.createView)(data);\n                for (; blockLen <= len - pos; pos += blockLen)\n                    this.process(dataView, pos);\n                continue;\n            }\n            buffer.set(data.subarray(pos, pos + take), this.pos);\n            this.pos += take;\n            pos += take;\n            if (this.pos === blockLen) {\n                this.process(view, 0);\n                this.pos = 0;\n            }\n        }\n        this.length += data.length;\n        this.roundClean();\n        return this;\n    }\n    digestInto(out) {\n        (0, _assert_ts_1.aexists)(this);\n        (0, _assert_ts_1.aoutput)(out, this);\n        this.finished = true;\n        // Padding\n        // We can avoid allocation of buffer for padding completely if it\n        // was previously not allocated here. But it won't change performance.\n        const { buffer, view, blockLen, isLE } = this;\n        let { pos } = this;\n        // append the bit '1' to the message\n        buffer[pos++] = 0b10000000;\n        this.buffer.subarray(pos).fill(0);\n        // we have less than padOffset left in buffer, so we cannot put length in\n        // current block, need process it and pad again\n        if (this.padOffset > blockLen - pos) {\n            this.process(view, 0);\n            pos = 0;\n        }\n        // Pad until full block byte with zeros\n        for (let i = pos; i < blockLen; i++)\n            buffer[i] = 0;\n        // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n        // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n        // So we just write lowest 64 bits of that value.\n        setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n        this.process(view, 0);\n        const oview = (0, utils_ts_1.createView)(out);\n        const len = this.outputLen;\n        // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n        if (len % 4)\n            throw new Error('_sha2: outputLen should be aligned to 32bit');\n        const outLen = len / 4;\n        const state = this.get();\n        if (outLen > state.length)\n            throw new Error('_sha2: outputLen bigger than state');\n        for (let i = 0; i < outLen; i++)\n            oview.setUint32(4 * i, state[i], isLE);\n    }\n    digest() {\n        const { buffer, outputLen } = this;\n        this.digestInto(buffer);\n        const res = buffer.slice(0, outputLen);\n        this.destroy();\n        return res;\n    }\n    _cloneInto(to) {\n        to || (to = new this.constructor());\n        to.set(...this.get());\n        const { blockLen, buffer, length, finished, destroyed, pos } = this;\n        to.length = length;\n        to.pos = pos;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        if (length % blockLen)\n            to.buffer.set(buffer);\n        return to;\n    }\n}\nexports.HashMD = HashMD;\n//# sourceMappingURL=_md.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/_md.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/_u64.js":
/*!********************************************!*\
  !*** ./node_modules/@noble/hashes/_u64.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.add5L = exports.add5H = exports.add4H = exports.add4L = exports.add3H = exports.add3L = exports.rotlBL = exports.rotlBH = exports.rotlSL = exports.rotlSH = exports.rotr32L = exports.rotr32H = exports.rotrBL = exports.rotrBH = exports.rotrSL = exports.rotrSH = exports.shrSL = exports.shrSH = exports.toBig = void 0;\nexports.fromBig = fromBig;\nexports.split = split;\nexports.add = add;\n/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\nfunction fromBig(n, le = false) {\n    if (le)\n        return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n    return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n    let Ah = new Uint32Array(lst.length);\n    let Al = new Uint32Array(lst.length);\n    for (let i = 0; i < lst.length; i++) {\n        const { h, l } = fromBig(lst[i], le);\n        [Ah[i], Al[i]] = [h, l];\n    }\n    return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\nexports.toBig = toBig;\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nexports.shrSH = shrSH;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.shrSL = shrSL;\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nexports.rotrSH = rotrSH;\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\nexports.rotrSL = rotrSL;\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nexports.rotrBH = rotrBH;\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\nexports.rotrBL = rotrBL;\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nexports.rotr32H = rotr32H;\nconst rotr32L = (h, _l) => h;\nexports.rotr32L = rotr32L;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nexports.rotlSH = rotlSH;\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\nexports.rotlSL = rotlSL;\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nexports.rotlBH = rotlBH;\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\nexports.rotlBL = rotlBL;\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n    const l = (Al >>> 0) + (Bl >>> 0);\n    return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nexports.add3L = add3L;\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nexports.add3H = add3H;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nexports.add4L = add4L;\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nexports.add4H = add4H;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nexports.add5L = add5L;\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\nexports.add5H = add5H;\n// prettier-ignore\nconst u64 = {\n    fromBig, split, toBig,\n    shrSH, shrSL,\n    rotrSH, rotrSL, rotrBH, rotrBL,\n    rotr32H, rotr32L,\n    rotlSH, rotlSL, rotlBH, rotlBL,\n    add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexports[\"default\"] = u64;\n//# sourceMappingURL=_u64.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/_u64.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/crypto.js":
/*!**********************************************!*\
  !*** ./node_modules/@noble/hashes/crypto.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.crypto = void 0;\nexports.crypto = typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n//# sourceMappingURL=crypto.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/crypto.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/hmac.js":
/*!********************************************!*\
  !*** ./node_modules/@noble/hashes/hmac.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.hmac = exports.HMAC = void 0;\n/**\n * HMAC: RFC2104 message authentication code.\n * @module\n */\nconst _assert_ts_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@noble/hashes/_assert.js\");\nconst utils_ts_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@noble/hashes/utils.js\");\nclass HMAC extends utils_ts_1.Hash {\n    constructor(hash, _key) {\n        super();\n        this.finished = false;\n        this.destroyed = false;\n        (0, _assert_ts_1.ahash)(hash);\n        const key = (0, utils_ts_1.toBytes)(_key);\n        this.iHash = hash.create();\n        if (typeof this.iHash.update !== 'function')\n            throw new Error('Expected instance of class which extends utils.Hash');\n        this.blockLen = this.iHash.blockLen;\n        this.outputLen = this.iHash.outputLen;\n        const blockLen = this.blockLen;\n        const pad = new Uint8Array(blockLen);\n        // blockLen can be bigger than outputLen\n        pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36;\n        this.iHash.update(pad);\n        // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n        this.oHash = hash.create();\n        // Undo internal XOR && apply outer XOR\n        for (let i = 0; i < pad.length; i++)\n            pad[i] ^= 0x36 ^ 0x5c;\n        this.oHash.update(pad);\n        pad.fill(0);\n    }\n    update(buf) {\n        (0, _assert_ts_1.aexists)(this);\n        this.iHash.update(buf);\n        return this;\n    }\n    digestInto(out) {\n        (0, _assert_ts_1.aexists)(this);\n        (0, _assert_ts_1.abytes)(out, this.outputLen);\n        this.finished = true;\n        this.iHash.digestInto(out);\n        this.oHash.update(out);\n        this.oHash.digestInto(out);\n        this.destroy();\n    }\n    digest() {\n        const out = new Uint8Array(this.oHash.outputLen);\n        this.digestInto(out);\n        return out;\n    }\n    _cloneInto(to) {\n        // Create new instance without calling constructor since key already in state and we don't know it.\n        to || (to = Object.create(Object.getPrototypeOf(this), {}));\n        const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n        to = to;\n        to.finished = finished;\n        to.destroyed = destroyed;\n        to.blockLen = blockLen;\n        to.outputLen = outputLen;\n        to.oHash = oHash._cloneInto(to.oHash);\n        to.iHash = iHash._cloneInto(to.iHash);\n        return to;\n    }\n    destroy() {\n        this.destroyed = true;\n        this.oHash.destroy();\n        this.iHash.destroy();\n    }\n}\nexports.HMAC = HMAC;\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n * @example\n * import { hmac } from '@noble/hashes/hmac';\n * import { sha256 } from '@noble/hashes/sha2';\n * const mac1 = hmac(sha256, 'key', 'message');\n */\nconst hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nexports.hmac = hmac;\nexports.hmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/hmac.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/pbkdf2.js":
/*!**********************************************!*\
  !*** ./node_modules/@noble/hashes/pbkdf2.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.pbkdf2 = pbkdf2;\nexports.pbkdf2Async = pbkdf2Async;\n/**\n * PBKDF (RFC 2898). Can be used to create a key from password and salt.\n * @module\n */\nconst _assert_ts_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@noble/hashes/_assert.js\");\nconst hmac_ts_1 = __webpack_require__(/*! ./hmac.js */ \"./node_modules/@noble/hashes/hmac.js\");\nconst utils_ts_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@noble/hashes/utils.js\");\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n    (0, _assert_ts_1.ahash)(hash);\n    const opts = (0, utils_ts_1.checkOpts)({ dkLen: 32, asyncTick: 10 }, _opts);\n    const { c, dkLen, asyncTick } = opts;\n    (0, _assert_ts_1.anumber)(c);\n    (0, _assert_ts_1.anumber)(dkLen);\n    (0, _assert_ts_1.anumber)(asyncTick);\n    if (c < 1)\n        throw new Error('PBKDF2: iterations (c) should be >= 1');\n    const password = (0, utils_ts_1.toBytes)(_password);\n    const salt = (0, utils_ts_1.toBytes)(_salt);\n    // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n    const DK = new Uint8Array(dkLen);\n    // U1 = PRF(Password, Salt + INT_32_BE(i))\n    const PRF = hmac_ts_1.hmac.create(hash, password);\n    const PRFSalt = PRF._cloneInto().update(salt);\n    return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n    PRF.destroy();\n    PRFSalt.destroy();\n    if (prfW)\n        prfW.destroy();\n    u.fill(0);\n    return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n * @example\n * const key = pbkdf2(sha256, 'password', 'salt', { dkLen: 32, c: 2 ** 18 });\n */\nfunction pbkdf2(hash, password, salt, opts) {\n    const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n    let prfW; // Working copy\n    const arr = new Uint8Array(4);\n    const view = (0, utils_ts_1.createView)(arr);\n    const u = new Uint8Array(PRF.outputLen);\n    // DK = T1 + T2 + ⋯ + Tdklen/hlen\n    for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n        // Ti = F(Password, Salt, c, i)\n        const Ti = DK.subarray(pos, pos + PRF.outputLen);\n        view.setInt32(0, ti, false);\n        // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n        // U1 = PRF(Password, Salt + INT_32_BE(i))\n        (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n        Ti.set(u.subarray(0, Ti.length));\n        for (let ui = 1; ui < c; ui++) {\n            // Uc = PRF(Password, Uc−1)\n            PRF._cloneInto(prfW).update(u).digestInto(u);\n            for (let i = 0; i < Ti.length; i++)\n                Ti[i] ^= u[i];\n        }\n    }\n    return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function. Async version.\n * @example\n * await pbkdf2Async(sha256, 'password', 'salt', { dkLen: 32, c: 500_000 });\n */\nasync function pbkdf2Async(hash, password, salt, opts) {\n    const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n    let prfW; // Working copy\n    const arr = new Uint8Array(4);\n    const view = (0, utils_ts_1.createView)(arr);\n    const u = new Uint8Array(PRF.outputLen);\n    // DK = T1 + T2 + ⋯ + Tdklen/hlen\n    for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n        // Ti = F(Password, Salt, c, i)\n        const Ti = DK.subarray(pos, pos + PRF.outputLen);\n        view.setInt32(0, ti, false);\n        // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n        // U1 = PRF(Password, Salt + INT_32_BE(i))\n        (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n        Ti.set(u.subarray(0, Ti.length));\n        await (0, utils_ts_1.asyncLoop)(c - 1, asyncTick, () => {\n            // Uc = PRF(Password, Uc−1)\n            PRF._cloneInto(prfW).update(u).digestInto(u);\n            for (let i = 0; i < Ti.length; i++)\n                Ti[i] ^= u[i];\n        });\n    }\n    return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/pbkdf2.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/sha256.js":
/*!**********************************************!*\
  !*** ./node_modules/@noble/hashes/sha256.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha224 = exports.sha256 = exports.SHA256 = void 0;\n/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nconst _md_ts_1 = __webpack_require__(/*! ./_md.js */ \"./node_modules/@noble/hashes/_md.js\");\nconst utils_ts_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@noble/hashes/utils.js\");\n/** Round constants: first 32 bits of fractional parts of the cube roots of the first 64 primes 2..311). */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ new Uint32Array([\n    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n/** Initial state: first 32 bits of fractional parts of the square roots of the first 8 primes 2..19. */\n// prettier-ignore\nconst SHA256_IV = /* @__PURE__ */ new Uint32Array([\n    0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n/**\n * Temporary buffer, not used to store anything between runs.\n * Named this way because it matches specification.\n */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nclass SHA256 extends _md_ts_1.HashMD {\n    constructor(outputLen = 32) {\n        super(64, outputLen, 8, false);\n        // We cannot use array here since array allows indexing by variable\n        // which means optimizer/compiler cannot use registers.\n        this.A = SHA256_IV[0] | 0;\n        this.B = SHA256_IV[1] | 0;\n        this.C = SHA256_IV[2] | 0;\n        this.D = SHA256_IV[3] | 0;\n        this.E = SHA256_IV[4] | 0;\n        this.F = SHA256_IV[5] | 0;\n        this.G = SHA256_IV[6] | 0;\n        this.H = SHA256_IV[7] | 0;\n    }\n    get() {\n        const { A, B, C, D, E, F, G, H } = this;\n        return [A, B, C, D, E, F, G, H];\n    }\n    // prettier-ignore\n    set(A, B, C, D, E, F, G, H) {\n        this.A = A | 0;\n        this.B = B | 0;\n        this.C = C | 0;\n        this.D = D | 0;\n        this.E = E | 0;\n        this.F = F | 0;\n        this.G = G | 0;\n        this.H = H | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4)\n            SHA256_W[i] = view.getUint32(offset, false);\n        for (let i = 16; i < 64; i++) {\n            const W15 = SHA256_W[i - 15];\n            const W2 = SHA256_W[i - 2];\n            const s0 = (0, utils_ts_1.rotr)(W15, 7) ^ (0, utils_ts_1.rotr)(W15, 18) ^ (W15 >>> 3);\n            const s1 = (0, utils_ts_1.rotr)(W2, 17) ^ (0, utils_ts_1.rotr)(W2, 19) ^ (W2 >>> 10);\n            SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n        }\n        // Compression function main loop, 64 rounds\n        let { A, B, C, D, E, F, G, H } = this;\n        for (let i = 0; i < 64; i++) {\n            const sigma1 = (0, utils_ts_1.rotr)(E, 6) ^ (0, utils_ts_1.rotr)(E, 11) ^ (0, utils_ts_1.rotr)(E, 25);\n            const T1 = (H + sigma1 + (0, _md_ts_1.Chi)(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const sigma0 = (0, utils_ts_1.rotr)(A, 2) ^ (0, utils_ts_1.rotr)(A, 13) ^ (0, utils_ts_1.rotr)(A, 22);\n            const T2 = (sigma0 + (0, _md_ts_1.Maj)(A, B, C)) | 0;\n            H = G;\n            G = F;\n            F = E;\n            E = (D + T1) | 0;\n            D = C;\n            C = B;\n            B = A;\n            A = (T1 + T2) | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        A = (A + this.A) | 0;\n        B = (B + this.B) | 0;\n        C = (C + this.C) | 0;\n        D = (D + this.D) | 0;\n        E = (E + this.E) | 0;\n        F = (F + this.F) | 0;\n        G = (G + this.G) | 0;\n        H = (H + this.H) | 0;\n        this.set(A, B, C, D, E, F, G, H);\n    }\n    roundClean() {\n        SHA256_W.fill(0);\n    }\n    destroy() {\n        this.set(0, 0, 0, 0, 0, 0, 0, 0);\n        this.buffer.fill(0);\n    }\n}\nexports.SHA256 = SHA256;\n/**\n * Constants taken from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf.\n */\nclass SHA224 extends SHA256 {\n    constructor() {\n        super(28);\n        this.A = 0xc1059ed8 | 0;\n        this.B = 0x367cd507 | 0;\n        this.C = 0x3070dd17 | 0;\n        this.D = 0xf70e5939 | 0;\n        this.E = 0xffc00b31 | 0;\n        this.F = 0x68581511 | 0;\n        this.G = 0x64f98fa7 | 0;\n        this.H = 0xbefa4fa4 | 0;\n    }\n}\n/** SHA2-256 hash function */\nexports.sha256 = (0, utils_ts_1.wrapConstructor)(() => new SHA256());\n/** SHA2-224 hash function */\nexports.sha224 = (0, utils_ts_1.wrapConstructor)(() => new SHA224());\n//# sourceMappingURL=sha256.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/sha256.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/sha512.js":
/*!**********************************************!*\
  !*** ./node_modules/@noble/hashes/sha512.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.sha384 = exports.sha512_256 = exports.sha512_224 = exports.sha512 = exports.SHA384 = exports.SHA512_256 = exports.SHA512_224 = exports.SHA512 = void 0;\n/**\n * SHA2-512 a.k.a. sha512 and sha384. It is slower than sha256 in js because u64 operations are slow.\n *\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [the paper on truncated SHA512/256](https://eprint.iacr.org/2010/548.pdf).\n * @module\n */\nconst _md_ts_1 = __webpack_require__(/*! ./_md.js */ \"./node_modules/@noble/hashes/_md.js\");\nconst _u64_ts_1 = __webpack_require__(/*! ./_u64.js */ \"./node_modules/@noble/hashes/_u64.js\");\nconst utils_ts_1 = __webpack_require__(/*! ./utils.js */ \"./node_modules/@noble/hashes/utils.js\");\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = /* @__PURE__ */ (() => _u64_ts_1.default.split([\n    '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n    '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n    '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n    '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n    '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n    '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n    '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n    '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n    '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n    '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n    '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n    '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n    '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n    '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n    '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n    '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n    '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n    '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n    '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n    '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\nclass SHA512 extends _md_ts_1.HashMD {\n    constructor(outputLen = 64) {\n        super(128, outputLen, 16, false);\n        // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n        // Also looks cleaner and easier to verify with spec.\n        // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x6a09e667 | 0;\n        this.Al = 0xf3bcc908 | 0;\n        this.Bh = 0xbb67ae85 | 0;\n        this.Bl = 0x84caa73b | 0;\n        this.Ch = 0x3c6ef372 | 0;\n        this.Cl = 0xfe94f82b | 0;\n        this.Dh = 0xa54ff53a | 0;\n        this.Dl = 0x5f1d36f1 | 0;\n        this.Eh = 0x510e527f | 0;\n        this.El = 0xade682d1 | 0;\n        this.Fh = 0x9b05688c | 0;\n        this.Fl = 0x2b3e6c1f | 0;\n        this.Gh = 0x1f83d9ab | 0;\n        this.Gl = 0xfb41bd6b | 0;\n        this.Hh = 0x5be0cd19 | 0;\n        this.Hl = 0x137e2179 | 0;\n    }\n    // prettier-ignore\n    get() {\n        const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n    }\n    // prettier-ignore\n    set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n        this.Ah = Ah | 0;\n        this.Al = Al | 0;\n        this.Bh = Bh | 0;\n        this.Bl = Bl | 0;\n        this.Ch = Ch | 0;\n        this.Cl = Cl | 0;\n        this.Dh = Dh | 0;\n        this.Dl = Dl | 0;\n        this.Eh = Eh | 0;\n        this.El = El | 0;\n        this.Fh = Fh | 0;\n        this.Fl = Fl | 0;\n        this.Gh = Gh | 0;\n        this.Gl = Gl | 0;\n        this.Hh = Hh | 0;\n        this.Hl = Hl | 0;\n    }\n    process(view, offset) {\n        // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n        for (let i = 0; i < 16; i++, offset += 4) {\n            SHA512_W_H[i] = view.getUint32(offset);\n            SHA512_W_L[i] = view.getUint32((offset += 4));\n        }\n        for (let i = 16; i < 80; i++) {\n            // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n            const W15h = SHA512_W_H[i - 15] | 0;\n            const W15l = SHA512_W_L[i - 15] | 0;\n            const s0h = _u64_ts_1.default.rotrSH(W15h, W15l, 1) ^ _u64_ts_1.default.rotrSH(W15h, W15l, 8) ^ _u64_ts_1.default.shrSH(W15h, W15l, 7);\n            const s0l = _u64_ts_1.default.rotrSL(W15h, W15l, 1) ^ _u64_ts_1.default.rotrSL(W15h, W15l, 8) ^ _u64_ts_1.default.shrSL(W15h, W15l, 7);\n            // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n            const W2h = SHA512_W_H[i - 2] | 0;\n            const W2l = SHA512_W_L[i - 2] | 0;\n            const s1h = _u64_ts_1.default.rotrSH(W2h, W2l, 19) ^ _u64_ts_1.default.rotrBH(W2h, W2l, 61) ^ _u64_ts_1.default.shrSH(W2h, W2l, 6);\n            const s1l = _u64_ts_1.default.rotrSL(W2h, W2l, 19) ^ _u64_ts_1.default.rotrBL(W2h, W2l, 61) ^ _u64_ts_1.default.shrSL(W2h, W2l, 6);\n            // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n            const SUMl = _u64_ts_1.default.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n            const SUMh = _u64_ts_1.default.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n            SHA512_W_H[i] = SUMh | 0;\n            SHA512_W_L[i] = SUMl | 0;\n        }\n        let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n        // Compression function main loop, 80 rounds\n        for (let i = 0; i < 80; i++) {\n            // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n            const sigma1h = _u64_ts_1.default.rotrSH(Eh, El, 14) ^ _u64_ts_1.default.rotrSH(Eh, El, 18) ^ _u64_ts_1.default.rotrBH(Eh, El, 41);\n            const sigma1l = _u64_ts_1.default.rotrSL(Eh, El, 14) ^ _u64_ts_1.default.rotrSL(Eh, El, 18) ^ _u64_ts_1.default.rotrBL(Eh, El, 41);\n            //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n            const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n            const CHIl = (El & Fl) ^ (~El & Gl);\n            // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n            // prettier-ignore\n            const T1ll = _u64_ts_1.default.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n            const T1h = _u64_ts_1.default.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n            const T1l = T1ll | 0;\n            // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n            const sigma0h = _u64_ts_1.default.rotrSH(Ah, Al, 28) ^ _u64_ts_1.default.rotrBH(Ah, Al, 34) ^ _u64_ts_1.default.rotrBH(Ah, Al, 39);\n            const sigma0l = _u64_ts_1.default.rotrSL(Ah, Al, 28) ^ _u64_ts_1.default.rotrBL(Ah, Al, 34) ^ _u64_ts_1.default.rotrBL(Ah, Al, 39);\n            const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n            const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n            Hh = Gh | 0;\n            Hl = Gl | 0;\n            Gh = Fh | 0;\n            Gl = Fl | 0;\n            Fh = Eh | 0;\n            Fl = El | 0;\n            ({ h: Eh, l: El } = _u64_ts_1.default.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n            Dh = Ch | 0;\n            Dl = Cl | 0;\n            Ch = Bh | 0;\n            Cl = Bl | 0;\n            Bh = Ah | 0;\n            Bl = Al | 0;\n            const All = _u64_ts_1.default.add3L(T1l, sigma0l, MAJl);\n            Ah = _u64_ts_1.default.add3H(All, T1h, sigma0h, MAJh);\n            Al = All | 0;\n        }\n        // Add the compressed chunk to the current hash value\n        ({ h: Ah, l: Al } = _u64_ts_1.default.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n        ({ h: Bh, l: Bl } = _u64_ts_1.default.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n        ({ h: Ch, l: Cl } = _u64_ts_1.default.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n        ({ h: Dh, l: Dl } = _u64_ts_1.default.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n        ({ h: Eh, l: El } = _u64_ts_1.default.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n        ({ h: Fh, l: Fl } = _u64_ts_1.default.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n        ({ h: Gh, l: Gl } = _u64_ts_1.default.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n        ({ h: Hh, l: Hl } = _u64_ts_1.default.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n        this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n    }\n    roundClean() {\n        SHA512_W_H.fill(0);\n        SHA512_W_L.fill(0);\n    }\n    destroy() {\n        this.buffer.fill(0);\n        this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n    }\n}\nexports.SHA512 = SHA512;\nclass SHA512_224 extends SHA512 {\n    constructor() {\n        super(28);\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x8c3d37c8 | 0;\n        this.Al = 0x19544da2 | 0;\n        this.Bh = 0x73e19966 | 0;\n        this.Bl = 0x89dcd4d6 | 0;\n        this.Ch = 0x1dfab7ae | 0;\n        this.Cl = 0x32ff9c82 | 0;\n        this.Dh = 0x679dd514 | 0;\n        this.Dl = 0x582f9fcf | 0;\n        this.Eh = 0x0f6d2b69 | 0;\n        this.El = 0x7bd44da8 | 0;\n        this.Fh = 0x77e36f73 | 0;\n        this.Fl = 0x04c48942 | 0;\n        this.Gh = 0x3f9d85a8 | 0;\n        this.Gl = 0x6a1d36c8 | 0;\n        this.Hh = 0x1112e6ad | 0;\n        this.Hl = 0x91d692a1 | 0;\n    }\n}\nexports.SHA512_224 = SHA512_224;\nclass SHA512_256 extends SHA512 {\n    constructor() {\n        super(32);\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0x22312194 | 0;\n        this.Al = 0xfc2bf72c | 0;\n        this.Bh = 0x9f555fa3 | 0;\n        this.Bl = 0xc84c64c2 | 0;\n        this.Ch = 0x2393b86b | 0;\n        this.Cl = 0x6f53b151 | 0;\n        this.Dh = 0x96387719 | 0;\n        this.Dl = 0x5940eabd | 0;\n        this.Eh = 0x96283ee2 | 0;\n        this.El = 0xa88effe3 | 0;\n        this.Fh = 0xbe5e1e25 | 0;\n        this.Fl = 0x53863992 | 0;\n        this.Gh = 0x2b0199fc | 0;\n        this.Gl = 0x2c85b8aa | 0;\n        this.Hh = 0x0eb72ddc | 0;\n        this.Hl = 0x81c52ca2 | 0;\n    }\n}\nexports.SHA512_256 = SHA512_256;\nclass SHA384 extends SHA512 {\n    constructor() {\n        super(48);\n        // h -- high 32 bits, l -- low 32 bits\n        this.Ah = 0xcbbb9d5d | 0;\n        this.Al = 0xc1059ed8 | 0;\n        this.Bh = 0x629a292a | 0;\n        this.Bl = 0x367cd507 | 0;\n        this.Ch = 0x9159015a | 0;\n        this.Cl = 0x3070dd17 | 0;\n        this.Dh = 0x152fecd8 | 0;\n        this.Dl = 0xf70e5939 | 0;\n        this.Eh = 0x67332667 | 0;\n        this.El = 0xffc00b31 | 0;\n        this.Fh = 0x8eb44a87 | 0;\n        this.Fl = 0x68581511 | 0;\n        this.Gh = 0xdb0c2e0d | 0;\n        this.Gl = 0x64f98fa7 | 0;\n        this.Hh = 0x47b5481d | 0;\n        this.Hl = 0xbefa4fa4 | 0;\n    }\n}\nexports.SHA384 = SHA384;\n/** SHA2-512 hash function. */\nexports.sha512 = (0, utils_ts_1.wrapConstructor)(() => new SHA512());\n/** SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks. */\nexports.sha512_224 = (0, utils_ts_1.wrapConstructor)(() => new SHA512_224());\n/** SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks. */\nexports.sha512_256 = (0, utils_ts_1.wrapConstructor)(() => new SHA512_256());\n/** SHA2-384 hash function. */\nexports.sha384 = (0, utils_ts_1.wrapConstructor)(() => new SHA384());\n//# sourceMappingURL=sha512.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/sha512.js?");

/***/ }),

/***/ "./node_modules/@noble/hashes/utils.js":
/*!*********************************************!*\
  !*** ./node_modules/@noble/hashes/utils.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Hash = exports.nextTick = exports.byteSwapIfBE = exports.isLE = void 0;\nexports.isBytes = isBytes;\nexports.u8 = u8;\nexports.u32 = u32;\nexports.createView = createView;\nexports.rotr = rotr;\nexports.rotl = rotl;\nexports.byteSwap = byteSwap;\nexports.byteSwap32 = byteSwap32;\nexports.bytesToHex = bytesToHex;\nexports.hexToBytes = hexToBytes;\nexports.asyncLoop = asyncLoop;\nexports.utf8ToBytes = utf8ToBytes;\nexports.toBytes = toBytes;\nexports.concatBytes = concatBytes;\nexports.checkOpts = checkOpts;\nexports.wrapConstructor = wrapConstructor;\nexports.wrapConstructorWithOpts = wrapConstructorWithOpts;\nexports.wrapXOFConstructorWithOpts = wrapXOFConstructorWithOpts;\nexports.randomBytes = randomBytes;\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nconst crypto_1 = __webpack_require__(/*! @noble/hashes/crypto */ \"./node_modules/@noble/hashes/crypto.js\");\nconst _assert_ts_1 = __webpack_require__(/*! ./_assert.js */ \"./node_modules/@noble/hashes/_assert.js\");\n// export { isBytes } from './_assert.ts';\n// We can't reuse isBytes from _assert, because somehow this causes huge perf issues\nfunction isBytes(a) {\n    return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n// Cast array to different type\nfunction u8(arr) {\n    return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\nfunction u32(arr) {\n    return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n// Cast array to view\nfunction createView(arr) {\n    return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n/** The rotate right (circular right shift) operation for uint32 */\nfunction rotr(word, shift) {\n    return (word << (32 - shift)) | (word >>> shift);\n}\n/** The rotate left (circular left shift) operation for uint32 */\nfunction rotl(word, shift) {\n    return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexports.isLE = (() => new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n// The byte swap operation for uint32\nfunction byteSwap(word) {\n    return (((word << 24) & 0xff000000) |\n        ((word << 8) & 0xff0000) |\n        ((word >>> 8) & 0xff00) |\n        ((word >>> 24) & 0xff));\n}\n/** Conditionally byte swap if on a big-endian platform */\nexports.byteSwapIfBE = exports.isLE\n    ? (n) => n\n    : (n) => byteSwap(n);\n/** In place byte swap for Uint32Array */\nfunction byteSwap32(arr) {\n    for (let i = 0; i < arr.length; i++) {\n        arr[i] = byteSwap(arr[i]);\n    }\n}\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin = \n// @ts-ignore\ntypeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function';\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nfunction bytesToHex(bytes) {\n    (0, _assert_ts_1.abytes)(bytes);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return bytes.toHex();\n    // pre-caching improves the speed 6x\n    let hex = '';\n    for (let i = 0; i < bytes.length; i++) {\n        hex += hexes[bytes[i]];\n    }\n    return hex;\n}\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };\nfunction asciiToBase16(ch) {\n    if (ch >= asciis._0 && ch <= asciis._9)\n        return ch - asciis._0; // '2' => 50-48\n    if (ch >= asciis.A && ch <= asciis.F)\n        return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n    if (ch >= asciis.a && ch <= asciis.f)\n        return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n    return;\n}\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nfunction hexToBytes(hex) {\n    if (typeof hex !== 'string')\n        throw new Error('hex string expected, got ' + typeof hex);\n    // @ts-ignore\n    if (hasHexBuiltin)\n        return Uint8Array.fromHex(hex);\n    const hl = hex.length;\n    const al = hl / 2;\n    if (hl % 2)\n        throw new Error('hex string expected, got unpadded hex of length ' + hl);\n    const array = new Uint8Array(al);\n    for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n        const n1 = asciiToBase16(hex.charCodeAt(hi));\n        const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n        if (n1 === undefined || n2 === undefined) {\n            const char = hex[hi] + hex[hi + 1];\n            throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n        }\n        array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n    }\n    return array;\n}\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nconst nextTick = async () => { };\nexports.nextTick = nextTick;\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nasync function asyncLoop(iters, tick, cb) {\n    let ts = Date.now();\n    for (let i = 0; i < iters; i++) {\n        cb(i);\n        // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n        const diff = Date.now() - ts;\n        if (diff >= 0 && diff < tick)\n            continue;\n        await (0, exports.nextTick)();\n        ts += diff;\n    }\n}\n/**\n * Convert JS string to byte array.\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nfunction utf8ToBytes(str) {\n    if (typeof str !== 'string')\n        throw new Error('utf8ToBytes expected string, got ' + typeof str);\n    return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nfunction toBytes(data) {\n    if (typeof data === 'string')\n        data = utf8ToBytes(data);\n    (0, _assert_ts_1.abytes)(data);\n    return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nfunction concatBytes(...arrays) {\n    let sum = 0;\n    for (let i = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        (0, _assert_ts_1.abytes)(a);\n        sum += a.length;\n    }\n    const res = new Uint8Array(sum);\n    for (let i = 0, pad = 0; i < arrays.length; i++) {\n        const a = arrays[i];\n        res.set(a, pad);\n        pad += a.length;\n    }\n    return res;\n}\n/** For runtime check if class implements interface */\nclass Hash {\n    // Safe version that clones internal state\n    clone() {\n        return this._cloneInto();\n    }\n}\nexports.Hash = Hash;\nfunction checkOpts(defaults, opts) {\n    if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n        throw new Error('Options should be object or undefined');\n    const merged = Object.assign(defaults, opts);\n    return merged;\n}\n/** Wraps hash function, creating an interface on top of it */\nfunction wrapConstructor(hashCons) {\n    const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n    const tmp = hashCons();\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = () => hashCons();\n    return hashC;\n}\nfunction wrapConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\nfunction wrapXOFConstructorWithOpts(hashCons) {\n    const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n    const tmp = hashCons({});\n    hashC.outputLen = tmp.outputLen;\n    hashC.blockLen = tmp.blockLen;\n    hashC.create = (opts) => hashCons(opts);\n    return hashC;\n}\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nfunction randomBytes(bytesLength = 32) {\n    if (crypto_1.crypto && typeof crypto_1.crypto.getRandomValues === 'function') {\n        return crypto_1.crypto.getRandomValues(new Uint8Array(bytesLength));\n    }\n    // Legacy Node.js compatibility\n    if (crypto_1.crypto && typeof crypto_1.crypto.randomBytes === 'function') {\n        return Uint8Array.from(crypto_1.crypto.randomBytes(bytesLength));\n    }\n    throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/@noble/hashes/utils.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1.js":
/*!******************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var asn1 = exports;\n\nasn1.bignum = __webpack_require__(/*! bn.js */ \"./node_modules/asn1.js/node_modules/bn.js/lib/bn.js\");\n\nasn1.define = (__webpack_require__(/*! ./asn1/api */ \"./node_modules/asn1.js/lib/asn1/api.js\").define);\nasn1.base = __webpack_require__(/*! ./asn1/base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\");\nasn1.constants = __webpack_require__(/*! ./asn1/constants */ \"./node_modules/asn1.js/lib/asn1/constants/index.js\");\nasn1.decoders = __webpack_require__(/*! ./asn1/decoders */ \"./node_modules/asn1.js/lib/asn1/decoders/index.js\");\nasn1.encoders = __webpack_require__(/*! ./asn1/encoders */ \"./node_modules/asn1.js/lib/asn1/encoders/index.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/api.js":
/*!**********************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/api.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var asn1 = __webpack_require__(/*! ../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar api = exports;\n\napi.define = function define(name, body) {\n  return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n  this.name = name;\n  this.body = body;\n\n  this.decoders = {};\n  this.encoders = {};\n};\n\nEntity.prototype._createNamed = function createNamed(base) {\n  var named;\n  try {\n    named = (__webpack_require__(/*! vm */ \"./node_modules/vm-browserify/index.js\").runInThisContext)(\n      '(function ' + this.name + '(entity) {\\n' +\n      '  this._initNamed(entity);\\n' +\n      '})'\n    );\n  } catch (e) {\n    named = function (entity) {\n      this._initNamed(entity);\n    };\n  }\n  inherits(named, base);\n  named.prototype._initNamed = function initnamed(entity) {\n    base.call(this, entity);\n  };\n\n  return new named(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n  enc = enc || 'der';\n  // Lazily create decoder\n  if (!this.decoders.hasOwnProperty(enc))\n    this.decoders[enc] = this._createNamed(asn1.decoders[enc]);\n  return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n  return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n  enc = enc || 'der';\n  // Lazily create encoder\n  if (!this.encoders.hasOwnProperty(enc))\n    this.encoders[enc] = this._createNamed(asn1.encoders[enc]);\n  return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n  return this._getEncoder(enc).encode(data, reporter);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/api.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/buffer.js":
/*!******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/buffer.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Reporter = (__webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").Reporter);\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\n\nfunction DecoderBuffer(base, options) {\n  Reporter.call(this, options);\n  if (!Buffer.isBuffer(base)) {\n    this.error('Input not Buffer');\n    return;\n  }\n\n  this.base = base;\n  this.offset = 0;\n  this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.prototype.save = function save() {\n  return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n  // Return skipped data\n  var res = new DecoderBuffer(this.base);\n  res.offset = save.offset;\n  res.length = this.offset;\n\n  this.offset = save.offset;\n  Reporter.prototype.restore.call(this, save.reporter);\n\n  return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n  return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n  if (this.offset + 1 <= this.length)\n    return this.base.readUInt8(this.offset++, true);\n  else\n    return this.error(fail || 'DecoderBuffer overrun');\n}\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n  if (!(this.offset + bytes <= this.length))\n    return this.error(fail || 'DecoderBuffer overrun');\n\n  var res = new DecoderBuffer(this.base);\n\n  // Share reporter state\n  res._reporterState = this._reporterState;\n\n  res.offset = this.offset;\n  res.length = this.offset + bytes;\n  this.offset += bytes;\n  return res;\n}\n\nDecoderBuffer.prototype.raw = function raw(save) {\n  return this.base.slice(save ? save.offset : this.offset, this.length);\n}\n\nfunction EncoderBuffer(value, reporter) {\n  if (Array.isArray(value)) {\n    this.length = 0;\n    this.value = value.map(function(item) {\n      if (!(item instanceof EncoderBuffer))\n        item = new EncoderBuffer(item, reporter);\n      this.length += item.length;\n      return item;\n    }, this);\n  } else if (typeof value === 'number') {\n    if (!(0 <= value && value <= 0xff))\n      return reporter.error('non-byte EncoderBuffer value');\n    this.value = value;\n    this.length = 1;\n  } else if (typeof value === 'string') {\n    this.value = value;\n    this.length = Buffer.byteLength(value);\n  } else if (Buffer.isBuffer(value)) {\n    this.value = value;\n    this.length = value.length;\n  } else {\n    return reporter.error('Unsupported type: ' + typeof value);\n  }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n  if (!out)\n    out = new Buffer(this.length);\n  if (!offset)\n    offset = 0;\n\n  if (this.length === 0)\n    return out;\n\n  if (Array.isArray(this.value)) {\n    this.value.forEach(function(item) {\n      item.join(out, offset);\n      offset += item.length;\n    });\n  } else {\n    if (typeof this.value === 'number')\n      out[offset] = this.value;\n    else if (typeof this.value === 'string')\n      out.write(this.value, offset);\n    else if (Buffer.isBuffer(this.value))\n      this.value.copy(out, offset);\n    offset += this.length;\n  }\n\n  return out;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/base/buffer.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/index.js":
/*!*****************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/index.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var base = exports;\n\nbase.Reporter = (__webpack_require__(/*! ./reporter */ \"./node_modules/asn1.js/lib/asn1/base/reporter.js\").Reporter);\nbase.DecoderBuffer = (__webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").DecoderBuffer);\nbase.EncoderBuffer = (__webpack_require__(/*! ./buffer */ \"./node_modules/asn1.js/lib/asn1/base/buffer.js\").EncoderBuffer);\nbase.Node = __webpack_require__(/*! ./node */ \"./node_modules/asn1.js/lib/asn1/base/node.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/base/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/node.js":
/*!****************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/node.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Reporter = (__webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").Reporter);\nvar EncoderBuffer = (__webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").EncoderBuffer);\nvar DecoderBuffer = (__webpack_require__(/*! ../base */ \"./node_modules/asn1.js/lib/asn1/base/index.js\").DecoderBuffer);\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\n// Supported tags\nvar tags = [\n  'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n  'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n  'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n  'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nvar methods = [\n  'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n  'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nvar overrided = [\n  '_peekTag', '_decodeTag', '_use',\n  '_decodeStr', '_decodeObjid', '_decodeTime',\n  '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n  '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n  '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent) {\n  var state = {};\n  this._baseState = state;\n\n  state.enc = enc;\n\n  state.parent = parent || null;\n  state.children = null;\n\n  // State\n  state.tag = null;\n  state.args = null;\n  state.reverseArgs = null;\n  state.choice = null;\n  state.optional = false;\n  state.any = false;\n  state.obj = false;\n  state.use = null;\n  state.useDecoder = null;\n  state.key = null;\n  state['default'] = null;\n  state.explicit = null;\n  state.implicit = null;\n  state.contains = null;\n\n  // Should create new instance on each method\n  if (!state.parent) {\n    state.children = [];\n    this._wrap();\n  }\n}\nmodule.exports = Node;\n\nvar stateProps = [\n  'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n  'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n  'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n  var state = this._baseState;\n  var cstate = {};\n  stateProps.forEach(function(prop) {\n    cstate[prop] = state[prop];\n  });\n  var res = new this.constructor(cstate.parent);\n  res._baseState = cstate;\n  return res;\n};\n\nNode.prototype._wrap = function wrap() {\n  var state = this._baseState;\n  methods.forEach(function(method) {\n    this[method] = function _wrappedMethod() {\n      var clone = new this.constructor(this);\n      state.children.push(clone);\n      return clone[method].apply(clone, arguments);\n    };\n  }, this);\n};\n\nNode.prototype._init = function init(body) {\n  var state = this._baseState;\n\n  assert(state.parent === null);\n  body.call(this);\n\n  // Filter children\n  state.children = state.children.filter(function(child) {\n    return child._baseState.parent === this;\n  }, this);\n  assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n  var state = this._baseState;\n\n  // Filter children and args\n  var children = args.filter(function(arg) {\n    return arg instanceof this.constructor;\n  }, this);\n  args = args.filter(function(arg) {\n    return !(arg instanceof this.constructor);\n  }, this);\n\n  if (children.length !== 0) {\n    assert(state.children === null);\n    state.children = children;\n\n    // Replace parent to maintain backward link\n    children.forEach(function(child) {\n      child._baseState.parent = this;\n    }, this);\n  }\n  if (args.length !== 0) {\n    assert(state.args === null);\n    state.args = args;\n    state.reverseArgs = args.map(function(arg) {\n      if (typeof arg !== 'object' || arg.constructor !== Object)\n        return arg;\n\n      var res = {};\n      Object.keys(arg).forEach(function(key) {\n        if (key == (key | 0))\n          key |= 0;\n        var value = arg[key];\n        res[value] = key;\n      });\n      return res;\n    });\n  }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n  Node.prototype[method] = function _overrided() {\n    var state = this._baseState;\n    throw new Error(method + ' not implemented for encoding: ' + state.enc);\n  };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n  Node.prototype[tag] = function _tagMethod() {\n    var state = this._baseState;\n    var args = Array.prototype.slice.call(arguments);\n\n    assert(state.tag === null);\n    state.tag = tag;\n\n    this._useArgs(args);\n\n    return this;\n  };\n});\n\nNode.prototype.use = function use(item) {\n  assert(item);\n  var state = this._baseState;\n\n  assert(state.use === null);\n  state.use = item;\n\n  return this;\n};\n\nNode.prototype.optional = function optional() {\n  var state = this._baseState;\n\n  state.optional = true;\n\n  return this;\n};\n\nNode.prototype.def = function def(val) {\n  var state = this._baseState;\n\n  assert(state['default'] === null);\n  state['default'] = val;\n  state.optional = true;\n\n  return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n  var state = this._baseState;\n\n  assert(state.explicit === null && state.implicit === null);\n  state.explicit = num;\n\n  return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n  var state = this._baseState;\n\n  assert(state.explicit === null && state.implicit === null);\n  state.implicit = num;\n\n  return this;\n};\n\nNode.prototype.obj = function obj() {\n  var state = this._baseState;\n  var args = Array.prototype.slice.call(arguments);\n\n  state.obj = true;\n\n  if (args.length !== 0)\n    this._useArgs(args);\n\n  return this;\n};\n\nNode.prototype.key = function key(newKey) {\n  var state = this._baseState;\n\n  assert(state.key === null);\n  state.key = newKey;\n\n  return this;\n};\n\nNode.prototype.any = function any() {\n  var state = this._baseState;\n\n  state.any = true;\n\n  return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n  var state = this._baseState;\n\n  assert(state.choice === null);\n  state.choice = obj;\n  this._useArgs(Object.keys(obj).map(function(key) {\n    return obj[key];\n  }));\n\n  return this;\n};\n\nNode.prototype.contains = function contains(item) {\n  var state = this._baseState;\n\n  assert(state.use === null);\n  state.contains = item;\n\n  return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n  var state = this._baseState;\n\n  // Decode root node\n  if (state.parent === null)\n    return input.wrapResult(state.children[0]._decode(input, options));\n\n  var result = state['default'];\n  var present = true;\n\n  var prevKey = null;\n  if (state.key !== null)\n    prevKey = input.enterKey(state.key);\n\n  // Check if tag is there\n  if (state.optional) {\n    var tag = null;\n    if (state.explicit !== null)\n      tag = state.explicit;\n    else if (state.implicit !== null)\n      tag = state.implicit;\n    else if (state.tag !== null)\n      tag = state.tag;\n\n    if (tag === null && !state.any) {\n      // Trial and Error\n      var save = input.save();\n      try {\n        if (state.choice === null)\n          this._decodeGeneric(state.tag, input, options);\n        else\n          this._decodeChoice(input, options);\n        present = true;\n      } catch (e) {\n        present = false;\n      }\n      input.restore(save);\n    } else {\n      present = this._peekTag(input, tag, state.any);\n\n      if (input.isError(present))\n        return present;\n    }\n  }\n\n  // Push object on stack\n  var prevObj;\n  if (state.obj && present)\n    prevObj = input.enterObject();\n\n  if (present) {\n    // Unwrap explicit values\n    if (state.explicit !== null) {\n      var explicit = this._decodeTag(input, state.explicit);\n      if (input.isError(explicit))\n        return explicit;\n      input = explicit;\n    }\n\n    var start = input.offset;\n\n    // Unwrap implicit and normal values\n    if (state.use === null && state.choice === null) {\n      if (state.any)\n        var save = input.save();\n      var body = this._decodeTag(\n        input,\n        state.implicit !== null ? state.implicit : state.tag,\n        state.any\n      );\n      if (input.isError(body))\n        return body;\n\n      if (state.any)\n        result = input.raw(save);\n      else\n        input = body;\n    }\n\n    if (options && options.track && state.tag !== null)\n      options.track(input.path(), start, input.length, 'tagged');\n\n    if (options && options.track && state.tag !== null)\n      options.track(input.path(), input.offset, input.length, 'content');\n\n    // Select proper method for tag\n    if (state.any)\n      result = result;\n    else if (state.choice === null)\n      result = this._decodeGeneric(state.tag, input, options);\n    else\n      result = this._decodeChoice(input, options);\n\n    if (input.isError(result))\n      return result;\n\n    // Decode children\n    if (!state.any && state.choice === null && state.children !== null) {\n      state.children.forEach(function decodeChildren(child) {\n        // NOTE: We are ignoring errors here, to let parser continue with other\n        // parts of encoded data\n        child._decode(input, options);\n      });\n    }\n\n    // Decode contained/encoded by schema, only in bit or octet strings\n    if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n      var data = new DecoderBuffer(result);\n      result = this._getUse(state.contains, input._reporterState.obj)\n          ._decode(data, options);\n    }\n  }\n\n  // Pop object\n  if (state.obj && present)\n    result = input.leaveObject(prevObj);\n\n  // Set key\n  if (state.key !== null && (result !== null || present === true))\n    input.leaveKey(prevKey, state.key, result);\n  else if (prevKey !== null)\n    input.exitKey(prevKey);\n\n  return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n  var state = this._baseState;\n\n  if (tag === 'seq' || tag === 'set')\n    return null;\n  if (tag === 'seqof' || tag === 'setof')\n    return this._decodeList(input, tag, state.args[0], options);\n  else if (/str$/.test(tag))\n    return this._decodeStr(input, tag, options);\n  else if (tag === 'objid' && state.args)\n    return this._decodeObjid(input, state.args[0], state.args[1], options);\n  else if (tag === 'objid')\n    return this._decodeObjid(input, null, null, options);\n  else if (tag === 'gentime' || tag === 'utctime')\n    return this._decodeTime(input, tag, options);\n  else if (tag === 'null_')\n    return this._decodeNull(input, options);\n  else if (tag === 'bool')\n    return this._decodeBool(input, options);\n  else if (tag === 'objDesc')\n    return this._decodeStr(input, tag, options);\n  else if (tag === 'int' || tag === 'enum')\n    return this._decodeInt(input, state.args && state.args[0], options);\n\n  if (state.use !== null) {\n    return this._getUse(state.use, input._reporterState.obj)\n        ._decode(input, options);\n  } else {\n    return input.error('unknown tag: ' + tag);\n  }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n  var state = this._baseState;\n  // Create altered use decoder if implicit is set\n  state.useDecoder = this._use(entity, obj);\n  assert(state.useDecoder._baseState.parent === null);\n  state.useDecoder = state.useDecoder._baseState.children[0];\n  if (state.implicit !== state.useDecoder._baseState.implicit) {\n    state.useDecoder = state.useDecoder.clone();\n    state.useDecoder._baseState.implicit = state.implicit;\n  }\n  return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n  var state = this._baseState;\n  var result = null;\n  var match = false;\n\n  Object.keys(state.choice).some(function(key) {\n    var save = input.save();\n    var node = state.choice[key];\n    try {\n      var value = node._decode(input, options);\n      if (input.isError(value))\n        return false;\n\n      result = { type: key, value: value };\n      match = true;\n    } catch (e) {\n      input.restore(save);\n      return false;\n    }\n    return true;\n  }, this);\n\n  if (!match)\n    return input.error('Choice not matched');\n\n  return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n  return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n  var state = this._baseState;\n  if (state['default'] !== null && state['default'] === data)\n    return;\n\n  var result = this._encodeValue(data, reporter, parent);\n  if (result === undefined)\n    return;\n\n  if (this._skipDefault(result, reporter, parent))\n    return;\n\n  return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n  var state = this._baseState;\n\n  // Decode root node\n  if (state.parent === null)\n    return state.children[0]._encode(data, reporter || new Reporter());\n\n  var result = null;\n\n  // Set reporter to share it with a child class\n  this.reporter = reporter;\n\n  // Check if data is there\n  if (state.optional && data === undefined) {\n    if (state['default'] !== null)\n      data = state['default']\n    else\n      return;\n  }\n\n  // Encode children first\n  var content = null;\n  var primitive = false;\n  if (state.any) {\n    // Anything that was given is translated to buffer\n    result = this._createEncoderBuffer(data);\n  } else if (state.choice) {\n    result = this._encodeChoice(data, reporter);\n  } else if (state.contains) {\n    content = this._getUse(state.contains, parent)._encode(data, reporter);\n    primitive = true;\n  } else if (state.children) {\n    content = state.children.map(function(child) {\n      if (child._baseState.tag === 'null_')\n        return child._encode(null, reporter, data);\n\n      if (child._baseState.key === null)\n        return reporter.error('Child should have a key');\n      var prevKey = reporter.enterKey(child._baseState.key);\n\n      if (typeof data !== 'object')\n        return reporter.error('Child expected, but input is not object');\n\n      var res = child._encode(data[child._baseState.key], reporter, data);\n      reporter.leaveKey(prevKey);\n\n      return res;\n    }, this).filter(function(child) {\n      return child;\n    });\n    content = this._createEncoderBuffer(content);\n  } else {\n    if (state.tag === 'seqof' || state.tag === 'setof') {\n      // TODO(indutny): this should be thrown on DSL level\n      if (!(state.args && state.args.length === 1))\n        return reporter.error('Too many args for : ' + state.tag);\n\n      if (!Array.isArray(data))\n        return reporter.error('seqof/setof, but data is not Array');\n\n      var child = this.clone();\n      child._baseState.implicit = null;\n      content = this._createEncoderBuffer(data.map(function(item) {\n        var state = this._baseState;\n\n        return this._getUse(state.args[0], data)._encode(item, reporter);\n      }, child));\n    } else if (state.use !== null) {\n      result = this._getUse(state.use, parent)._encode(data, reporter);\n    } else {\n      content = this._encodePrimitive(state.tag, data);\n      primitive = true;\n    }\n  }\n\n  // Encode data itself\n  var result;\n  if (!state.any && state.choice === null) {\n    var tag = state.implicit !== null ? state.implicit : state.tag;\n    var cls = state.implicit === null ? 'universal' : 'context';\n\n    if (tag === null) {\n      if (state.use === null)\n        reporter.error('Tag could be omitted only for .use()');\n    } else {\n      if (state.use === null)\n        result = this._encodeComposite(tag, primitive, cls, content);\n    }\n  }\n\n  // Wrap in explicit\n  if (state.explicit !== null)\n    result = this._encodeComposite(state.explicit, false, 'context', result);\n\n  return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n  var state = this._baseState;\n\n  var node = state.choice[data.type];\n  if (!node) {\n    assert(\n        false,\n        data.type + ' not found in ' +\n            JSON.stringify(Object.keys(state.choice)));\n  }\n  return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n  var state = this._baseState;\n\n  if (/str$/.test(tag))\n    return this._encodeStr(data, tag);\n  else if (tag === 'objid' && state.args)\n    return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n  else if (tag === 'objid')\n    return this._encodeObjid(data, null, null);\n  else if (tag === 'gentime' || tag === 'utctime')\n    return this._encodeTime(data, tag);\n  else if (tag === 'null_')\n    return this._encodeNull();\n  else if (tag === 'int' || tag === 'enum')\n    return this._encodeInt(data, state.args && state.reverseArgs[0]);\n  else if (tag === 'bool')\n    return this._encodeBool(data);\n  else if (tag === 'objDesc')\n    return this._encodeStr(data, tag);\n  else\n    throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n  return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n  return /^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/base/node.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/base/reporter.js":
/*!********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/base/reporter.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction Reporter(options) {\n  this._reporterState = {\n    obj: null,\n    path: [],\n    options: options || {},\n    errors: []\n  };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n  return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n  var state = this._reporterState;\n\n  return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n  var state = this._reporterState;\n\n  state.obj = data.obj;\n  state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n  return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n  var state = this._reporterState;\n\n  state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n  var state = this._reporterState;\n\n  this.exitKey(index);\n  if (state.obj !== null)\n    state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n  return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n  var state = this._reporterState;\n\n  var prev = state.obj;\n  state.obj = {};\n  return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n  var state = this._reporterState;\n\n  var now = state.obj;\n  state.obj = prev;\n  return now;\n};\n\nReporter.prototype.error = function error(msg) {\n  var err;\n  var state = this._reporterState;\n\n  var inherited = msg instanceof ReporterError;\n  if (inherited) {\n    err = msg;\n  } else {\n    err = new ReporterError(state.path.map(function(elem) {\n      return '[' + JSON.stringify(elem) + ']';\n    }).join(''), msg.message || msg, msg.stack);\n  }\n\n  if (!state.options.partial)\n    throw err;\n\n  if (!inherited)\n    state.errors.push(err);\n\n  return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n  var state = this._reporterState;\n  if (!state.options.partial)\n    return result;\n\n  return {\n    result: this.isError(result) ? null : result,\n    errors: state.errors\n  };\n};\n\nfunction ReporterError(path, msg) {\n  this.path = path;\n  this.rethrow(msg);\n};\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n  this.message = msg + ' at: ' + (this.path || '(shallow)');\n  if (Error.captureStackTrace)\n    Error.captureStackTrace(this, ReporterError);\n\n  if (!this.stack) {\n    try {\n      // IE only adds stack when thrown\n      throw new Error(this.message);\n    } catch (e) {\n      this.stack = e.stack;\n    }\n  }\n  return this;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/base/reporter.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/constants/der.js":
/*!********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/constants/der.js ***!
  \********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var constants = __webpack_require__(/*! ../constants */ \"./node_modules/asn1.js/lib/asn1/constants/index.js\");\n\nexports.tagClass = {\n  0: 'universal',\n  1: 'application',\n  2: 'context',\n  3: 'private'\n};\nexports.tagClassByName = constants._reverse(exports.tagClass);\n\nexports.tag = {\n  0x00: 'end',\n  0x01: 'bool',\n  0x02: 'int',\n  0x03: 'bitstr',\n  0x04: 'octstr',\n  0x05: 'null_',\n  0x06: 'objid',\n  0x07: 'objDesc',\n  0x08: 'external',\n  0x09: 'real',\n  0x0a: 'enum',\n  0x0b: 'embed',\n  0x0c: 'utf8str',\n  0x0d: 'relativeOid',\n  0x10: 'seq',\n  0x11: 'set',\n  0x12: 'numstr',\n  0x13: 'printstr',\n  0x14: 't61str',\n  0x15: 'videostr',\n  0x16: 'ia5str',\n  0x17: 'utctime',\n  0x18: 'gentime',\n  0x19: 'graphstr',\n  0x1a: 'iso646str',\n  0x1b: 'genstr',\n  0x1c: 'unistr',\n  0x1d: 'charstr',\n  0x1e: 'bmpstr'\n};\nexports.tagByName = constants._reverse(exports.tag);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/constants/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/constants/index.js":
/*!**********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/constants/index.js ***!
  \**********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n  var res = {};\n\n  Object.keys(map).forEach(function(key) {\n    // Convert key to integer if it is stringified\n    if ((key | 0) == key)\n      key = key | 0;\n\n    var value = map[key];\n    res[value] = key;\n  });\n\n  return res;\n};\n\nconstants.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/constants/der.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/constants/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/der.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/der.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar asn1 = __webpack_require__(/*! ../../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar base = asn1.base;\nvar bignum = asn1.bignum;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DERDecoder(entity) {\n  this.enc = 'der';\n  this.name = entity.name;\n  this.entity = entity;\n\n  // Construct base tree\n  this.tree = new DERNode();\n  this.tree._init(entity.body);\n};\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n  if (!(data instanceof base.DecoderBuffer))\n    data = new base.DecoderBuffer(data, options);\n\n  return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n  base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n  if (buffer.isEmpty())\n    return false;\n\n  var state = buffer.save();\n  var decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n  if (buffer.isError(decodedTag))\n    return decodedTag;\n\n  buffer.restore(state);\n\n  return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n    (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n  var decodedTag = derDecodeTag(buffer,\n                                'Failed to decode tag of \"' + tag + '\"');\n  if (buffer.isError(decodedTag))\n    return decodedTag;\n\n  var len = derDecodeLen(buffer,\n                         decodedTag.primitive,\n                         'Failed to get length of \"' + tag + '\"');\n\n  // Failure\n  if (buffer.isError(len))\n    return len;\n\n  if (!any &&\n      decodedTag.tag !== tag &&\n      decodedTag.tagStr !== tag &&\n      decodedTag.tagStr + 'of' !== tag) {\n    return buffer.error('Failed to match tag: \"' + tag + '\"');\n  }\n\n  if (decodedTag.primitive || len !== null)\n    return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n  // Indefinite length... find END tag\n  var state = buffer.save();\n  var res = this._skipUntilEnd(\n      buffer,\n      'Failed to skip indefinite length body: \"' + this.tag + '\"');\n  if (buffer.isError(res))\n    return res;\n\n  len = buffer.offset - state.offset;\n  buffer.restore(state);\n  return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n  while (true) {\n    var tag = derDecodeTag(buffer, fail);\n    if (buffer.isError(tag))\n      return tag;\n    var len = derDecodeLen(buffer, tag.primitive, fail);\n    if (buffer.isError(len))\n      return len;\n\n    var res;\n    if (tag.primitive || len !== null)\n      res = buffer.skip(len)\n    else\n      res = this._skipUntilEnd(buffer, fail);\n\n    // Failure\n    if (buffer.isError(res))\n      return res;\n\n    if (tag.tagStr === 'end')\n      break;\n  }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n                                                    options) {\n  var result = [];\n  while (!buffer.isEmpty()) {\n    var possibleEnd = this._peekTag(buffer, 'end');\n    if (buffer.isError(possibleEnd))\n      return possibleEnd;\n\n    var res = decoder.decode(buffer, 'der', options);\n    if (buffer.isError(res) && possibleEnd)\n      break;\n    result.push(res);\n  }\n  return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n  if (tag === 'bitstr') {\n    var unused = buffer.readUInt8();\n    if (buffer.isError(unused))\n      return unused;\n    return { unused: unused, data: buffer.raw() };\n  } else if (tag === 'bmpstr') {\n    var raw = buffer.raw();\n    if (raw.length % 2 === 1)\n      return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n    var str = '';\n    for (var i = 0; i < raw.length / 2; i++) {\n      str += String.fromCharCode(raw.readUInt16BE(i * 2));\n    }\n    return str;\n  } else if (tag === 'numstr') {\n    var numstr = buffer.raw().toString('ascii');\n    if (!this._isNumstr(numstr)) {\n      return buffer.error('Decoding of string type: ' +\n                          'numstr unsupported characters');\n    }\n    return numstr;\n  } else if (tag === 'octstr') {\n    return buffer.raw();\n  } else if (tag === 'objDesc') {\n    return buffer.raw();\n  } else if (tag === 'printstr') {\n    var printstr = buffer.raw().toString('ascii');\n    if (!this._isPrintstr(printstr)) {\n      return buffer.error('Decoding of string type: ' +\n                          'printstr unsupported characters');\n    }\n    return printstr;\n  } else if (/str$/.test(tag)) {\n    return buffer.raw().toString();\n  } else {\n    return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n  }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n  var result;\n  var identifiers = [];\n  var ident = 0;\n  while (!buffer.isEmpty()) {\n    var subident = buffer.readUInt8();\n    ident <<= 7;\n    ident |= subident & 0x7f;\n    if ((subident & 0x80) === 0) {\n      identifiers.push(ident);\n      ident = 0;\n    }\n  }\n  if (subident & 0x80)\n    identifiers.push(ident);\n\n  var first = (identifiers[0] / 40) | 0;\n  var second = identifiers[0] % 40;\n\n  if (relative)\n    result = identifiers;\n  else\n    result = [first, second].concat(identifiers.slice(1));\n\n  if (values) {\n    var tmp = values[result.join(' ')];\n    if (tmp === undefined)\n      tmp = values[result.join('.')];\n    if (tmp !== undefined)\n      result = tmp;\n  }\n\n  return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n  var str = buffer.raw().toString();\n  if (tag === 'gentime') {\n    var year = str.slice(0, 4) | 0;\n    var mon = str.slice(4, 6) | 0;\n    var day = str.slice(6, 8) | 0;\n    var hour = str.slice(8, 10) | 0;\n    var min = str.slice(10, 12) | 0;\n    var sec = str.slice(12, 14) | 0;\n  } else if (tag === 'utctime') {\n    var year = str.slice(0, 2) | 0;\n    var mon = str.slice(2, 4) | 0;\n    var day = str.slice(4, 6) | 0;\n    var hour = str.slice(6, 8) | 0;\n    var min = str.slice(8, 10) | 0;\n    var sec = str.slice(10, 12) | 0;\n    if (year < 70)\n      year = 2000 + year;\n    else\n      year = 1900 + year;\n  } else {\n    return buffer.error('Decoding ' + tag + ' time is not supported yet');\n  }\n\n  return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull(buffer) {\n  return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n  var res = buffer.readUInt8();\n  if (buffer.isError(res))\n    return res;\n  else\n    return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n  // Bigint, return as it is (assume big endian)\n  var raw = buffer.raw();\n  var res = new bignum(raw);\n\n  if (values)\n    res = values[res.toString(10)] || res;\n\n  return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n  if (typeof entity === 'function')\n    entity = entity(obj);\n  return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n  var tag = buf.readUInt8(fail);\n  if (buf.isError(tag))\n    return tag;\n\n  var cls = der.tagClass[tag >> 6];\n  var primitive = (tag & 0x20) === 0;\n\n  // Multi-octet tag - load\n  if ((tag & 0x1f) === 0x1f) {\n    var oct = tag;\n    tag = 0;\n    while ((oct & 0x80) === 0x80) {\n      oct = buf.readUInt8(fail);\n      if (buf.isError(oct))\n        return oct;\n\n      tag <<= 7;\n      tag |= oct & 0x7f;\n    }\n  } else {\n    tag &= 0x1f;\n  }\n  var tagStr = der.tag[tag];\n\n  return {\n    cls: cls,\n    primitive: primitive,\n    tag: tag,\n    tagStr: tagStr\n  };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n  var len = buf.readUInt8(fail);\n  if (buf.isError(len))\n    return len;\n\n  // Indefinite form\n  if (!primitive && len === 0x80)\n    return null;\n\n  // Definite form\n  if ((len & 0x80) === 0) {\n    // Short form\n    return len;\n  }\n\n  // Long form\n  var num = len & 0x7f;\n  if (num > 4)\n    return buf.error('length octect is too long');\n\n  len = 0;\n  for (var i = 0; i < num; i++) {\n    len <<= 8;\n    var j = buf.readUInt8(fail);\n    if (buf.isError(j))\n      return j;\n    len |= j;\n  }\n\n  return len;\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/decoders/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/index.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var decoders = exports;\n\ndecoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\ndecoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/decoders/pem.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/decoders/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/decoders/pem.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/decoders/pem.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\n\nvar DERDecoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/decoders/der.js\");\n\nfunction PEMDecoder(entity) {\n  DERDecoder.call(this, entity);\n  this.enc = 'pem';\n};\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n  var lines = data.toString().split(/[\\r\\n]+/g);\n\n  var label = options.label.toUpperCase();\n\n  var re = /^-----(BEGIN|END) ([^-]+)-----$/;\n  var start = -1;\n  var end = -1;\n  for (var i = 0; i < lines.length; i++) {\n    var match = lines[i].match(re);\n    if (match === null)\n      continue;\n\n    if (match[2] !== label)\n      continue;\n\n    if (start === -1) {\n      if (match[1] !== 'BEGIN')\n        break;\n      start = i;\n    } else {\n      if (match[1] !== 'END')\n        break;\n      end = i;\n      break;\n    }\n  }\n  if (start === -1 || end === -1)\n    throw new Error('PEM section not found for: ' + label);\n\n  var base64 = lines.slice(start + 1, end).join('');\n  // Remove excessive symbols\n  base64.replace(/[^a-z0-9\\+\\/=]+/gi, '');\n\n  var input = new Buffer(base64, 'base64');\n  return DERDecoder.prototype.decode.call(this, input, options);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/decoders/pem.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/der.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/der.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\n\nvar asn1 = __webpack_require__(/*! ../../asn1 */ \"./node_modules/asn1.js/lib/asn1.js\");\nvar base = asn1.base;\n\n// Import DER constants\nvar der = asn1.constants.der;\n\nfunction DEREncoder(entity) {\n  this.enc = 'der';\n  this.name = entity.name;\n  this.entity = entity;\n\n  // Construct base tree\n  this.tree = new DERNode();\n  this.tree._init(entity.body);\n};\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n  return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n  base.Node.call(this, 'der', parent);\n}\ninherits(DERNode, base.Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n                                                              primitive,\n                                                              cls,\n                                                              content) {\n  var encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n  // Short form\n  if (content.length < 0x80) {\n    var header = new Buffer(2);\n    header[0] = encodedTag;\n    header[1] = content.length;\n    return this._createEncoderBuffer([ header, content ]);\n  }\n\n  // Long form\n  // Count octets required to store length\n  var lenOctets = 1;\n  for (var i = content.length; i >= 0x100; i >>= 8)\n    lenOctets++;\n\n  var header = new Buffer(1 + 1 + lenOctets);\n  header[0] = encodedTag;\n  header[1] = 0x80 | lenOctets;\n\n  for (var i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n    header[i] = j & 0xff;\n\n  return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n  if (tag === 'bitstr') {\n    return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n  } else if (tag === 'bmpstr') {\n    var buf = new Buffer(str.length * 2);\n    for (var i = 0; i < str.length; i++) {\n      buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n    }\n    return this._createEncoderBuffer(buf);\n  } else if (tag === 'numstr') {\n    if (!this._isNumstr(str)) {\n      return this.reporter.error('Encoding of string type: numstr supports ' +\n                                 'only digits and space');\n    }\n    return this._createEncoderBuffer(str);\n  } else if (tag === 'printstr') {\n    if (!this._isPrintstr(str)) {\n      return this.reporter.error('Encoding of string type: printstr supports ' +\n                                 'only latin upper and lower case letters, ' +\n                                 'digits, space, apostrophe, left and rigth ' +\n                                 'parenthesis, plus sign, comma, hyphen, ' +\n                                 'dot, slash, colon, equal sign, ' +\n                                 'question mark');\n    }\n    return this._createEncoderBuffer(str);\n  } else if (/str$/.test(tag)) {\n    return this._createEncoderBuffer(str);\n  } else if (tag === 'objDesc') {\n    return this._createEncoderBuffer(str);\n  } else {\n    return this.reporter.error('Encoding of string type: ' + tag +\n                               ' unsupported');\n  }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n  if (typeof id === 'string') {\n    if (!values)\n      return this.reporter.error('string objid given, but no values map found');\n    if (!values.hasOwnProperty(id))\n      return this.reporter.error('objid not found in values map');\n    id = values[id].split(/[\\s\\.]+/g);\n    for (var i = 0; i < id.length; i++)\n      id[i] |= 0;\n  } else if (Array.isArray(id)) {\n    id = id.slice();\n    for (var i = 0; i < id.length; i++)\n      id[i] |= 0;\n  }\n\n  if (!Array.isArray(id)) {\n    return this.reporter.error('objid() should be either array or string, ' +\n                               'got: ' + JSON.stringify(id));\n  }\n\n  if (!relative) {\n    if (id[1] >= 40)\n      return this.reporter.error('Second objid identifier OOB');\n    id.splice(0, 2, id[0] * 40 + id[1]);\n  }\n\n  // Count number of octets\n  var size = 0;\n  for (var i = 0; i < id.length; i++) {\n    var ident = id[i];\n    for (size++; ident >= 0x80; ident >>= 7)\n      size++;\n  }\n\n  var objid = new Buffer(size);\n  var offset = objid.length - 1;\n  for (var i = id.length - 1; i >= 0; i--) {\n    var ident = id[i];\n    objid[offset--] = ident & 0x7f;\n    while ((ident >>= 7) > 0)\n      objid[offset--] = 0x80 | (ident & 0x7f);\n  }\n\n  return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n  if (num < 10)\n    return '0' + num;\n  else\n    return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n  var str;\n  var date = new Date(time);\n\n  if (tag === 'gentime') {\n    str = [\n      two(date.getFullYear()),\n      two(date.getUTCMonth() + 1),\n      two(date.getUTCDate()),\n      two(date.getUTCHours()),\n      two(date.getUTCMinutes()),\n      two(date.getUTCSeconds()),\n      'Z'\n    ].join('');\n  } else if (tag === 'utctime') {\n    str = [\n      two(date.getFullYear() % 100),\n      two(date.getUTCMonth() + 1),\n      two(date.getUTCDate()),\n      two(date.getUTCHours()),\n      two(date.getUTCMinutes()),\n      two(date.getUTCSeconds()),\n      'Z'\n    ].join('');\n  } else {\n    this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n  }\n\n  return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n  return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n  if (typeof num === 'string') {\n    if (!values)\n      return this.reporter.error('String int or enum given, but no values map');\n    if (!values.hasOwnProperty(num)) {\n      return this.reporter.error('Values map doesn\\'t contain: ' +\n                                 JSON.stringify(num));\n    }\n    num = values[num];\n  }\n\n  // Bignum, assume big endian\n  if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n    var numArray = num.toArray();\n    if (!num.sign && numArray[0] & 0x80) {\n      numArray.unshift(0);\n    }\n    num = new Buffer(numArray);\n  }\n\n  if (Buffer.isBuffer(num)) {\n    var size = num.length;\n    if (num.length === 0)\n      size++;\n\n    var out = new Buffer(size);\n    num.copy(out);\n    if (num.length === 0)\n      out[0] = 0\n    return this._createEncoderBuffer(out);\n  }\n\n  if (num < 0x80)\n    return this._createEncoderBuffer(num);\n\n  if (num < 0x100)\n    return this._createEncoderBuffer([0, num]);\n\n  var size = 1;\n  for (var i = num; i >= 0x100; i >>= 8)\n    size++;\n\n  var out = new Array(size);\n  for (var i = out.length - 1; i >= 0; i--) {\n    out[i] = num & 0xff;\n    num >>= 8;\n  }\n  if(out[0] & 0x80) {\n    out.unshift(0);\n  }\n\n  return this._createEncoderBuffer(new Buffer(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n  return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n  if (typeof entity === 'function')\n    entity = entity(obj);\n  return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n  var state = this._baseState;\n  var i;\n  if (state['default'] === null)\n    return false;\n\n  var data = dataBuffer.join();\n  if (state.defaultBuffer === undefined)\n    state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n  if (data.length !== state.defaultBuffer.length)\n    return false;\n\n  for (i=0; i < data.length; i++)\n    if (data[i] !== state.defaultBuffer[i])\n      return false;\n\n  return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n  var res;\n\n  if (tag === 'seqof')\n    tag = 'seq';\n  else if (tag === 'setof')\n    tag = 'set';\n\n  if (der.tagByName.hasOwnProperty(tag))\n    res = der.tagByName[tag];\n  else if (typeof tag === 'number' && (tag | 0) === tag)\n    res = tag;\n  else\n    return reporter.error('Unknown tag: ' + tag);\n\n  if (res >= 0x1f)\n    return reporter.error('Multi-octet tag encoding unsupported');\n\n  if (!primitive)\n    res |= 0x20;\n\n  res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n  return res;\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/encoders/der.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/index.js":
/*!*********************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/index.js ***!
  \*********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var encoders = exports;\n\nencoders.der = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\nencoders.pem = __webpack_require__(/*! ./pem */ \"./node_modules/asn1.js/lib/asn1/encoders/pem.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/encoders/index.js?");

/***/ }),

/***/ "./node_modules/asn1.js/lib/asn1/encoders/pem.js":
/*!*******************************************************!*\
  !*** ./node_modules/asn1.js/lib/asn1/encoders/pem.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar DEREncoder = __webpack_require__(/*! ./der */ \"./node_modules/asn1.js/lib/asn1/encoders/der.js\");\n\nfunction PEMEncoder(entity) {\n  DEREncoder.call(this, entity);\n  this.enc = 'pem';\n};\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n  var buf = DEREncoder.prototype.encode.call(this, data);\n\n  var p = buf.toString('base64');\n  var out = [ '-----BEGIN ' + options.label + '-----' ];\n  for (var i = 0; i < p.length; i += 64)\n    out.push(p.slice(i, i + 64));\n  out.push('-----END ' + options.label + '-----');\n  return out.join('\\n');\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/lib/asn1/encoders/pem.js?");

/***/ }),

/***/ "./node_modules/asn1.js/node_modules/bn.js/lib/bn.js":
/*!***********************************************************!*\
  !*** ./node_modules/asn1.js/node_modules/bn.js/lib/bn.js ***!
  \***********************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?d546\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/asn1.js/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/axios/lib/axios.js":
/*!******************************************************!*\
  !*** ./node_modules/axios/lib/axios.js + 48 modules ***!
  \******************************************************/
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n  \"default\": () => (/* binding */ lib_axios)\n});\n\n// NAMESPACE OBJECT: ./node_modules/axios/lib/platform/common/utils.js\nvar common_utils_namespaceObject = {};\n__webpack_require__.r(common_utils_namespaceObject);\n__webpack_require__.d(common_utils_namespaceObject, {\n  hasBrowserEnv: () => (hasBrowserEnv),\n  hasStandardBrowserEnv: () => (hasStandardBrowserEnv),\n  hasStandardBrowserWebWorkerEnv: () => (hasStandardBrowserWebWorkerEnv),\n  navigator: () => (_navigator),\n  origin: () => (origin)\n});\n\n;// ./node_modules/axios/lib/helpers/bind.js\n\n\nfunction bind(fn, thisArg) {\n  return function wrap() {\n    return fn.apply(thisArg, arguments);\n  };\n}\n\n;// ./node_modules/axios/lib/utils.js\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\n\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString: utils_toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n    const str = utils_toString.call(thing);\n    return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n  type = type.toLowerCase();\n  return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n  return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n    && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n  let result;\n  if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n    result = ArrayBuffer.isView(val);\n  } else {\n    result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n  }\n  return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n  if (kindOf(val) !== 'object') {\n    return false;\n  }\n\n  const prototype = getPrototypeOf(val);\n  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n  let kind;\n  return thing && (\n    (typeof FormData === 'function' && thing instanceof FormData) || (\n      isFunction(thing.append) && (\n        (kind = kindOf(thing)) === 'formdata' ||\n        // detect form-data instance\n        (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n      )\n    )\n  )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n  str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n  // Don't bother if no value provided\n  if (obj === null || typeof obj === 'undefined') {\n    return;\n  }\n\n  let i;\n  let l;\n\n  // Force an array if not already something iterable\n  if (typeof obj !== 'object') {\n    /*eslint no-param-reassign:0*/\n    obj = [obj];\n  }\n\n  if (isArray(obj)) {\n    // Iterate over array values\n    for (i = 0, l = obj.length; i < l; i++) {\n      fn.call(null, obj[i], i, obj);\n    }\n  } else {\n    // Iterate over object keys\n    const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n    const len = keys.length;\n    let key;\n\n    for (i = 0; i < len; i++) {\n      key = keys[i];\n      fn.call(null, obj[key], key, obj);\n    }\n  }\n}\n\nfunction findKey(obj, key) {\n  key = key.toLowerCase();\n  const keys = Object.keys(obj);\n  let i = keys.length;\n  let _key;\n  while (i-- > 0) {\n    _key = keys[i];\n    if (key === _key.toLowerCase()) {\n      return _key;\n    }\n  }\n  return null;\n}\n\nconst _global = (() => {\n  /*eslint no-undef:0*/\n  if (typeof globalThis !== \"undefined\") return globalThis;\n  return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n  const {caseless} = isContextDefined(this) && this || {};\n  const result = {};\n  const assignValue = (val, key) => {\n    const targetKey = caseless && findKey(result, key) || key;\n    if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n      result[targetKey] = merge(result[targetKey], val);\n    } else if (isPlainObject(val)) {\n      result[targetKey] = merge({}, val);\n    } else if (isArray(val)) {\n      result[targetKey] = val.slice();\n    } else {\n      result[targetKey] = val;\n    }\n  }\n\n  for (let i = 0, l = arguments.length; i < l; i++) {\n    arguments[i] && forEach(arguments[i], assignValue);\n  }\n  return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n  forEach(b, (val, key) => {\n    if (thisArg && isFunction(val)) {\n      a[key] = bind(val, thisArg);\n    } else {\n      a[key] = val;\n    }\n  }, {allOwnKeys});\n  return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n  if (content.charCodeAt(0) === 0xFEFF) {\n    content = content.slice(1);\n  }\n  return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n  constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n  constructor.prototype.constructor = constructor;\n  Object.defineProperty(constructor, 'super', {\n    value: superConstructor.prototype\n  });\n  props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n  let props;\n  let i;\n  let prop;\n  const merged = {};\n\n  destObj = destObj || {};\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  if (sourceObj == null) return destObj;\n\n  do {\n    props = Object.getOwnPropertyNames(sourceObj);\n    i = props.length;\n    while (i-- > 0) {\n      prop = props[i];\n      if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n        destObj[prop] = sourceObj[prop];\n        merged[prop] = true;\n      }\n    }\n    sourceObj = filter !== false && getPrototypeOf(sourceObj);\n  } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n  return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n  str = String(str);\n  if (position === undefined || position > str.length) {\n    position = str.length;\n  }\n  position -= searchString.length;\n  const lastIndex = str.indexOf(searchString, position);\n  return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n  if (!thing) return null;\n  if (isArray(thing)) return thing;\n  let i = thing.length;\n  if (!isNumber(i)) return null;\n  const arr = new Array(i);\n  while (i-- > 0) {\n    arr[i] = thing[i];\n  }\n  return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n  // eslint-disable-next-line func-names\n  return thing => {\n    return TypedArray && thing instanceof TypedArray;\n  };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n  const generator = obj && obj[Symbol.iterator];\n\n  const iterator = generator.call(obj);\n\n  let result;\n\n  while ((result = iterator.next()) && !result.done) {\n    const pair = result.value;\n    fn.call(obj, pair[0], pair[1]);\n  }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n  let matches;\n  const arr = [];\n\n  while ((matches = regExp.exec(str)) !== null) {\n    arr.push(matches);\n  }\n\n  return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n  return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n    function replacer(m, p1, p2) {\n      return p1.toUpperCase() + p2;\n    }\n  );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst utils_hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n  const descriptors = Object.getOwnPropertyDescriptors(obj);\n  const reducedDescriptors = {};\n\n  forEach(descriptors, (descriptor, name) => {\n    let ret;\n    if ((ret = reducer(descriptor, name, obj)) !== false) {\n      reducedDescriptors[name] = ret || descriptor;\n    }\n  });\n\n  Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n  reduceDescriptors(obj, (descriptor, name) => {\n    // skip restricted props in strict mode\n    if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n      return false;\n    }\n\n    const value = obj[name];\n\n    if (!isFunction(value)) return;\n\n    descriptor.enumerable = false;\n\n    if ('writable' in descriptor) {\n      descriptor.writable = false;\n      return;\n    }\n\n    if (!descriptor.set) {\n      descriptor.set = () => {\n        throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n      };\n    }\n  });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n  const obj = {};\n\n  const define = (arr) => {\n    arr.forEach(value => {\n      obj[value] = true;\n    });\n  }\n\n  isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n  return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n  return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n  return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n  const stack = new Array(10);\n\n  const visit = (source, i) => {\n\n    if (isObject(source)) {\n      if (stack.indexOf(source) >= 0) {\n        return;\n      }\n\n      if(!('toJSON' in source)) {\n        stack[i] = source;\n        const target = isArray(source) ? [] : {};\n\n        forEach(source, (value, key) => {\n          const reducedValue = visit(value, i + 1);\n          !isUndefined(reducedValue) && (target[key] = reducedValue);\n        });\n\n        stack[i] = undefined;\n\n        return target;\n      }\n    }\n\n    return source;\n  }\n\n  return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n  thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n  if (setImmediateSupported) {\n    return setImmediate;\n  }\n\n  return postMessageSupported ? ((token, callbacks) => {\n    _global.addEventListener(\"message\", ({source, data}) => {\n      if (source === _global && data === token) {\n        callbacks.length && callbacks.shift()();\n      }\n    }, false);\n\n    return (cb) => {\n      callbacks.push(cb);\n      _global.postMessage(token, \"*\");\n    }\n  })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n  typeof setImmediate === 'function',\n  isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n  queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n/* harmony default export */ const utils = ({\n  isArray,\n  isArrayBuffer,\n  isBuffer,\n  isFormData,\n  isArrayBufferView,\n  isString,\n  isNumber,\n  isBoolean,\n  isObject,\n  isPlainObject,\n  isReadableStream,\n  isRequest,\n  isResponse,\n  isHeaders,\n  isUndefined,\n  isDate,\n  isFile,\n  isBlob,\n  isRegExp,\n  isFunction,\n  isStream,\n  isURLSearchParams,\n  isTypedArray,\n  isFileList,\n  forEach,\n  merge,\n  extend,\n  trim,\n  stripBOM,\n  inherits,\n  toFlatObject,\n  kindOf,\n  kindOfTest,\n  endsWith,\n  toArray,\n  forEachEntry,\n  matchAll,\n  isHTMLForm,\n  hasOwnProperty: utils_hasOwnProperty,\n  hasOwnProp: utils_hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n  reduceDescriptors,\n  freezeMethods,\n  toObjectSet,\n  toCamelCase,\n  noop,\n  toFiniteNumber,\n  findKey,\n  global: _global,\n  isContextDefined,\n  isSpecCompliantForm,\n  toJSONObject,\n  isAsyncFn,\n  isThenable,\n  setImmediate: _setImmediate,\n  asap\n});\n\n;// ./node_modules/axios/lib/core/AxiosError.js\n\n\n\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n  Error.call(this);\n\n  if (Error.captureStackTrace) {\n    Error.captureStackTrace(this, this.constructor);\n  } else {\n    this.stack = (new Error()).stack;\n  }\n\n  this.message = message;\n  this.name = 'AxiosError';\n  code && (this.code = code);\n  config && (this.config = config);\n  request && (this.request = request);\n  if (response) {\n    this.response = response;\n    this.status = response.status ? response.status : null;\n  }\n}\n\nutils.inherits(AxiosError, Error, {\n  toJSON: function toJSON() {\n    return {\n      // Standard\n      message: this.message,\n      name: this.name,\n      // Microsoft\n      description: this.description,\n      number: this.number,\n      // Mozilla\n      fileName: this.fileName,\n      lineNumber: this.lineNumber,\n      columnNumber: this.columnNumber,\n      stack: this.stack,\n      // Axios\n      config: utils.toJSONObject(this.config),\n      code: this.code,\n      status: this.status\n    };\n  }\n});\n\nconst AxiosError_prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n  'ERR_BAD_OPTION_VALUE',\n  'ERR_BAD_OPTION',\n  'ECONNABORTED',\n  'ETIMEDOUT',\n  'ERR_NETWORK',\n  'ERR_FR_TOO_MANY_REDIRECTS',\n  'ERR_DEPRECATED',\n  'ERR_BAD_RESPONSE',\n  'ERR_BAD_REQUEST',\n  'ERR_CANCELED',\n  'ERR_NOT_SUPPORT',\n  'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n  descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(AxiosError_prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n  const axiosError = Object.create(AxiosError_prototype);\n\n  utils.toFlatObject(error, axiosError, function filter(obj) {\n    return obj !== Error.prototype;\n  }, prop => {\n    return prop !== 'isAxiosError';\n  });\n\n  AxiosError.call(axiosError, error.message, code, config, request, response);\n\n  axiosError.cause = error;\n\n  axiosError.name = error.name;\n\n  customProps && Object.assign(axiosError, customProps);\n\n  return axiosError;\n};\n\n/* harmony default export */ const core_AxiosError = (AxiosError);\n\n;// ./node_modules/axios/lib/helpers/null.js\n// eslint-disable-next-line strict\n/* harmony default export */ const helpers_null = (null);\n\n;// ./node_modules/axios/lib/helpers/toFormData.js\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\n\n\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\n\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n  return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n  return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n  if (!path) return key;\n  return path.concat(key).map(function each(token, i) {\n    // eslint-disable-next-line no-param-reassign\n    token = removeBrackets(token);\n    return !dots && i ? '[' + token + ']' : token;\n  }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n  return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n  return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n  if (!utils.isObject(obj)) {\n    throw new TypeError('target must be an object');\n  }\n\n  // eslint-disable-next-line no-param-reassign\n  formData = formData || new (helpers_null || FormData)();\n\n  // eslint-disable-next-line no-param-reassign\n  options = utils.toFlatObject(options, {\n    metaTokens: true,\n    dots: false,\n    indexes: false\n  }, false, function defined(option, source) {\n    // eslint-disable-next-line no-eq-null,eqeqeq\n    return !utils.isUndefined(source[option]);\n  });\n\n  const metaTokens = options.metaTokens;\n  // eslint-disable-next-line no-use-before-define\n  const visitor = options.visitor || defaultVisitor;\n  const dots = options.dots;\n  const indexes = options.indexes;\n  const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n  const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n  if (!utils.isFunction(visitor)) {\n    throw new TypeError('visitor must be a function');\n  }\n\n  function convertValue(value) {\n    if (value === null) return '';\n\n    if (utils.isDate(value)) {\n      return value.toISOString();\n    }\n\n    if (!useBlob && utils.isBlob(value)) {\n      throw new core_AxiosError('Blob is not supported. Use a Buffer instead.');\n    }\n\n    if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n      return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n    }\n\n    return value;\n  }\n\n  /**\n   * Default visitor.\n   *\n   * @param {*} value\n   * @param {String|Number} key\n   * @param {Array<String|Number>} path\n   * @this {FormData}\n   *\n   * @returns {boolean} return true to visit the each prop of the value recursively\n   */\n  function defaultVisitor(value, key, path) {\n    let arr = value;\n\n    if (value && !path && typeof value === 'object') {\n      if (utils.endsWith(key, '{}')) {\n        // eslint-disable-next-line no-param-reassign\n        key = metaTokens ? key : key.slice(0, -2);\n        // eslint-disable-next-line no-param-reassign\n        value = JSON.stringify(value);\n      } else if (\n        (utils.isArray(value) && isFlatArray(value)) ||\n        ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n        )) {\n        // eslint-disable-next-line no-param-reassign\n        key = removeBrackets(key);\n\n        arr.forEach(function each(el, index) {\n          !(utils.isUndefined(el) || el === null) && formData.append(\n            // eslint-disable-next-line no-nested-ternary\n            indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n            convertValue(el)\n          );\n        });\n        return false;\n      }\n    }\n\n    if (isVisitable(value)) {\n      return true;\n    }\n\n    formData.append(renderKey(path, key, dots), convertValue(value));\n\n    return false;\n  }\n\n  const stack = [];\n\n  const exposedHelpers = Object.assign(predicates, {\n    defaultVisitor,\n    convertValue,\n    isVisitable\n  });\n\n  function build(value, path) {\n    if (utils.isUndefined(value)) return;\n\n    if (stack.indexOf(value) !== -1) {\n      throw Error('Circular reference detected in ' + path.join('.'));\n    }\n\n    stack.push(value);\n\n    utils.forEach(value, function each(el, key) {\n      const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n        formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n      );\n\n      if (result === true) {\n        build(el, path ? path.concat(key) : [key]);\n      }\n    });\n\n    stack.pop();\n  }\n\n  if (!utils.isObject(obj)) {\n    throw new TypeError('data must be an object');\n  }\n\n  build(obj);\n\n  return formData;\n}\n\n/* harmony default export */ const helpers_toFormData = (toFormData);\n\n;// ./node_modules/axios/lib/helpers/AxiosURLSearchParams.js\n\n\n\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n  const charMap = {\n    '!': '%21',\n    \"'\": '%27',\n    '(': '%28',\n    ')': '%29',\n    '~': '%7E',\n    '%20': '+',\n    '%00': '\\x00'\n  };\n  return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n    return charMap[match];\n  });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n  this._pairs = [];\n\n  params && helpers_toFormData(params, this, options);\n}\n\nconst AxiosURLSearchParams_prototype = AxiosURLSearchParams.prototype;\n\nAxiosURLSearchParams_prototype.append = function append(name, value) {\n  this._pairs.push([name, value]);\n};\n\nAxiosURLSearchParams_prototype.toString = function toString(encoder) {\n  const _encode = encoder ? function(value) {\n    return encoder.call(this, value, encode);\n  } : encode;\n\n  return this._pairs.map(function each(pair) {\n    return _encode(pair[0]) + '=' + _encode(pair[1]);\n  }, '').join('&');\n};\n\n/* harmony default export */ const helpers_AxiosURLSearchParams = (AxiosURLSearchParams);\n\n;// ./node_modules/axios/lib/helpers/buildURL.js\n\n\n\n\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction buildURL_encode(val) {\n  return encodeURIComponent(val).\n    replace(/%3A/gi, ':').\n    replace(/%24/g, '$').\n    replace(/%2C/gi, ',').\n    replace(/%20/g, '+').\n    replace(/%5B/gi, '[').\n    replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nfunction buildURL(url, params, options) {\n  /*eslint no-param-reassign:0*/\n  if (!params) {\n    return url;\n  }\n  \n  const _encode = options && options.encode || buildURL_encode;\n\n  if (utils.isFunction(options)) {\n    options = {\n      serialize: options\n    };\n  } \n\n  const serializeFn = options && options.serialize;\n\n  let serializedParams;\n\n  if (serializeFn) {\n    serializedParams = serializeFn(params, options);\n  } else {\n    serializedParams = utils.isURLSearchParams(params) ?\n      params.toString() :\n      new helpers_AxiosURLSearchParams(params, options).toString(_encode);\n  }\n\n  if (serializedParams) {\n    const hashmarkIndex = url.indexOf(\"#\");\n\n    if (hashmarkIndex !== -1) {\n      url = url.slice(0, hashmarkIndex);\n    }\n    url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n  }\n\n  return url;\n}\n\n;// ./node_modules/axios/lib/core/InterceptorManager.js\n\n\n\n\nclass InterceptorManager {\n  constructor() {\n    this.handlers = [];\n  }\n\n  /**\n   * Add a new interceptor to the stack\n   *\n   * @param {Function} fulfilled The function to handle `then` for a `Promise`\n   * @param {Function} rejected The function to handle `reject` for a `Promise`\n   *\n   * @return {Number} An ID used to remove interceptor later\n   */\n  use(fulfilled, rejected, options) {\n    this.handlers.push({\n      fulfilled,\n      rejected,\n      synchronous: options ? options.synchronous : false,\n      runWhen: options ? options.runWhen : null\n    });\n    return this.handlers.length - 1;\n  }\n\n  /**\n   * Remove an interceptor from the stack\n   *\n   * @param {Number} id The ID that was returned by `use`\n   *\n   * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n   */\n  eject(id) {\n    if (this.handlers[id]) {\n      this.handlers[id] = null;\n    }\n  }\n\n  /**\n   * Clear all interceptors from the stack\n   *\n   * @returns {void}\n   */\n  clear() {\n    if (this.handlers) {\n      this.handlers = [];\n    }\n  }\n\n  /**\n   * Iterate over all the registered interceptors\n   *\n   * This method is particularly useful for skipping over any\n   * interceptors that may have become `null` calling `eject`.\n   *\n   * @param {Function} fn The function to call for each interceptor\n   *\n   * @returns {void}\n   */\n  forEach(fn) {\n    utils.forEach(this.handlers, function forEachHandler(h) {\n      if (h !== null) {\n        fn(h);\n      }\n    });\n  }\n}\n\n/* harmony default export */ const core_InterceptorManager = (InterceptorManager);\n\n;// ./node_modules/axios/lib/defaults/transitional.js\n\n\n/* harmony default export */ const defaults_transitional = ({\n  silentJSONParsing: true,\n  forcedJSONParsing: true,\n  clarifyTimeoutError: false\n});\n\n;// ./node_modules/axios/lib/platform/browser/classes/URLSearchParams.js\n\n\n\n/* harmony default export */ const classes_URLSearchParams = (typeof URLSearchParams !== 'undefined' ? URLSearchParams : helpers_AxiosURLSearchParams);\n\n;// ./node_modules/axios/lib/platform/browser/classes/FormData.js\n\n\n/* harmony default export */ const classes_FormData = (typeof FormData !== 'undefined' ? FormData : null);\n\n;// ./node_modules/axios/lib/platform/browser/classes/Blob.js\n\n\n/* harmony default export */ const classes_Blob = (typeof Blob !== 'undefined' ? Blob : null);\n\n;// ./node_modules/axios/lib/platform/browser/index.js\n\n\n\n\n/* harmony default export */ const browser = ({\n  isBrowser: true,\n  classes: {\n    URLSearchParams: classes_URLSearchParams,\n    FormData: classes_FormData,\n    Blob: classes_Blob\n  },\n  protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n});\n\n;// ./node_modules/axios/lib/platform/common/utils.js\nconst hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n *  typeof window -> undefined\n *  typeof document -> undefined\n *\n * react-native:\n *  navigator.product -> 'ReactNative'\n * nativescript\n *  navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n  (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n  return (\n    typeof WorkerGlobalScope !== 'undefined' &&\n    // eslint-disable-next-line no-undef\n    self instanceof WorkerGlobalScope &&\n    typeof self.importScripts === 'function'\n  );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\n\n\n;// ./node_modules/axios/lib/platform/index.js\n\n\n\n/* harmony default export */ const platform = ({\n  ...common_utils_namespaceObject,\n  ...browser\n});\n\n;// ./node_modules/axios/lib/helpers/toURLEncodedForm.js\n\n\n\n\n\n\nfunction toURLEncodedForm(data, options) {\n  return helpers_toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n    visitor: function(value, key, path, helpers) {\n      if (platform.isNode && utils.isBuffer(value)) {\n        this.append(key, value.toString('base64'));\n        return false;\n      }\n\n      return helpers.defaultVisitor.apply(this, arguments);\n    }\n  }, options));\n}\n\n;// ./node_modules/axios/lib/helpers/formDataToJSON.js\n\n\n\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n  // foo[x][y][z]\n  // foo.x.y.z\n  // foo-x-y-z\n  // foo x y z\n  return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n    return match[0] === '[]' ? '' : match[1] || match[0];\n  });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n  const obj = {};\n  const keys = Object.keys(arr);\n  let i;\n  const len = keys.length;\n  let key;\n  for (i = 0; i < len; i++) {\n    key = keys[i];\n    obj[key] = arr[key];\n  }\n  return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n  function buildPath(path, value, target, index) {\n    let name = path[index++];\n\n    if (name === '__proto__') return true;\n\n    const isNumericKey = Number.isFinite(+name);\n    const isLast = index >= path.length;\n    name = !name && utils.isArray(target) ? target.length : name;\n\n    if (isLast) {\n      if (utils.hasOwnProp(target, name)) {\n        target[name] = [target[name], value];\n      } else {\n        target[name] = value;\n      }\n\n      return !isNumericKey;\n    }\n\n    if (!target[name] || !utils.isObject(target[name])) {\n      target[name] = [];\n    }\n\n    const result = buildPath(path, value, target[name], index);\n\n    if (result && utils.isArray(target[name])) {\n      target[name] = arrayToObject(target[name]);\n    }\n\n    return !isNumericKey;\n  }\n\n  if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n    const obj = {};\n\n    utils.forEachEntry(formData, (name, value) => {\n      buildPath(parsePropPath(name), value, obj, 0);\n    });\n\n    return obj;\n  }\n\n  return null;\n}\n\n/* harmony default export */ const helpers_formDataToJSON = (formDataToJSON);\n\n;// ./node_modules/axios/lib/defaults/index.js\n\n\n\n\n\n\n\n\n\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n  if (utils.isString(rawValue)) {\n    try {\n      (parser || JSON.parse)(rawValue);\n      return utils.trim(rawValue);\n    } catch (e) {\n      if (e.name !== 'SyntaxError') {\n        throw e;\n      }\n    }\n  }\n\n  return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n  transitional: defaults_transitional,\n\n  adapter: ['xhr', 'http', 'fetch'],\n\n  transformRequest: [function transformRequest(data, headers) {\n    const contentType = headers.getContentType() || '';\n    const hasJSONContentType = contentType.indexOf('application/json') > -1;\n    const isObjectPayload = utils.isObject(data);\n\n    if (isObjectPayload && utils.isHTMLForm(data)) {\n      data = new FormData(data);\n    }\n\n    const isFormData = utils.isFormData(data);\n\n    if (isFormData) {\n      return hasJSONContentType ? JSON.stringify(helpers_formDataToJSON(data)) : data;\n    }\n\n    if (utils.isArrayBuffer(data) ||\n      utils.isBuffer(data) ||\n      utils.isStream(data) ||\n      utils.isFile(data) ||\n      utils.isBlob(data) ||\n      utils.isReadableStream(data)\n    ) {\n      return data;\n    }\n    if (utils.isArrayBufferView(data)) {\n      return data.buffer;\n    }\n    if (utils.isURLSearchParams(data)) {\n      headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n      return data.toString();\n    }\n\n    let isFileList;\n\n    if (isObjectPayload) {\n      if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n        return toURLEncodedForm(data, this.formSerializer).toString();\n      }\n\n      if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n        const _FormData = this.env && this.env.FormData;\n\n        return helpers_toFormData(\n          isFileList ? {'files[]': data} : data,\n          _FormData && new _FormData(),\n          this.formSerializer\n        );\n      }\n    }\n\n    if (isObjectPayload || hasJSONContentType ) {\n      headers.setContentType('application/json', false);\n      return stringifySafely(data);\n    }\n\n    return data;\n  }],\n\n  transformResponse: [function transformResponse(data) {\n    const transitional = this.transitional || defaults.transitional;\n    const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n    const JSONRequested = this.responseType === 'json';\n\n    if (utils.isResponse(data) || utils.isReadableStream(data)) {\n      return data;\n    }\n\n    if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n      const silentJSONParsing = transitional && transitional.silentJSONParsing;\n      const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n      try {\n        return JSON.parse(data);\n      } catch (e) {\n        if (strictJSONParsing) {\n          if (e.name === 'SyntaxError') {\n            throw core_AxiosError.from(e, core_AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n          }\n          throw e;\n        }\n      }\n    }\n\n    return data;\n  }],\n\n  /**\n   * A timeout in milliseconds to abort a request. If set to 0 (default) a\n   * timeout is not created.\n   */\n  timeout: 0,\n\n  xsrfCookieName: 'XSRF-TOKEN',\n  xsrfHeaderName: 'X-XSRF-TOKEN',\n\n  maxContentLength: -1,\n  maxBodyLength: -1,\n\n  env: {\n    FormData: platform.classes.FormData,\n    Blob: platform.classes.Blob\n  },\n\n  validateStatus: function validateStatus(status) {\n    return status >= 200 && status < 300;\n  },\n\n  headers: {\n    common: {\n      'Accept': 'application/json, text/plain, */*',\n      'Content-Type': undefined\n    }\n  }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n  defaults.headers[method] = {};\n});\n\n/* harmony default export */ const lib_defaults = (defaults);\n\n;// ./node_modules/axios/lib/helpers/parseHeaders.js\n\n\n\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n  'age', 'authorization', 'content-length', 'content-type', 'etag',\n  'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n  'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n  'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\n/* harmony default export */ const parseHeaders = (rawHeaders => {\n  const parsed = {};\n  let key;\n  let val;\n  let i;\n\n  rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n    i = line.indexOf(':');\n    key = line.substring(0, i).trim().toLowerCase();\n    val = line.substring(i + 1).trim();\n\n    if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n      return;\n    }\n\n    if (key === 'set-cookie') {\n      if (parsed[key]) {\n        parsed[key].push(val);\n      } else {\n        parsed[key] = [val];\n      }\n    } else {\n      parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n    }\n  });\n\n  return parsed;\n});\n\n;// ./node_modules/axios/lib/core/AxiosHeaders.js\n\n\n\n\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n  return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n  if (value === false || value == null) {\n    return value;\n  }\n\n  return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n  const tokens = Object.create(null);\n  const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n  let match;\n\n  while ((match = tokensRE.exec(str))) {\n    tokens[match[1]] = match[2];\n  }\n\n  return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n  if (utils.isFunction(filter)) {\n    return filter.call(this, value, header);\n  }\n\n  if (isHeaderNameFilter) {\n    value = header;\n  }\n\n  if (!utils.isString(value)) return;\n\n  if (utils.isString(filter)) {\n    return value.indexOf(filter) !== -1;\n  }\n\n  if (utils.isRegExp(filter)) {\n    return filter.test(value);\n  }\n}\n\nfunction formatHeader(header) {\n  return header.trim()\n    .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n      return char.toUpperCase() + str;\n    });\n}\n\nfunction buildAccessors(obj, header) {\n  const accessorName = utils.toCamelCase(' ' + header);\n\n  ['get', 'set', 'has'].forEach(methodName => {\n    Object.defineProperty(obj, methodName + accessorName, {\n      value: function(arg1, arg2, arg3) {\n        return this[methodName].call(this, header, arg1, arg2, arg3);\n      },\n      configurable: true\n    });\n  });\n}\n\nclass AxiosHeaders {\n  constructor(headers) {\n    headers && this.set(headers);\n  }\n\n  set(header, valueOrRewrite, rewrite) {\n    const self = this;\n\n    function setHeader(_value, _header, _rewrite) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!lHeader) {\n        throw new Error('header name must be a non-empty string');\n      }\n\n      const key = utils.findKey(self, lHeader);\n\n      if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n        self[key || _header] = normalizeValue(_value);\n      }\n    }\n\n    const setHeaders = (headers, _rewrite) =>\n      utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n    if (utils.isPlainObject(header) || header instanceof this.constructor) {\n      setHeaders(header, valueOrRewrite)\n    } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n      setHeaders(parseHeaders(header), valueOrRewrite);\n    } else if (utils.isHeaders(header)) {\n      for (const [key, value] of header.entries()) {\n        setHeader(value, key, rewrite);\n      }\n    } else {\n      header != null && setHeader(valueOrRewrite, header, rewrite);\n    }\n\n    return this;\n  }\n\n  get(header, parser) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      if (key) {\n        const value = this[key];\n\n        if (!parser) {\n          return value;\n        }\n\n        if (parser === true) {\n          return parseTokens(value);\n        }\n\n        if (utils.isFunction(parser)) {\n          return parser.call(this, value, key);\n        }\n\n        if (utils.isRegExp(parser)) {\n          return parser.exec(value);\n        }\n\n        throw new TypeError('parser must be boolean|regexp|function');\n      }\n    }\n  }\n\n  has(header, matcher) {\n    header = normalizeHeader(header);\n\n    if (header) {\n      const key = utils.findKey(this, header);\n\n      return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n    }\n\n    return false;\n  }\n\n  delete(header, matcher) {\n    const self = this;\n    let deleted = false;\n\n    function deleteHeader(_header) {\n      _header = normalizeHeader(_header);\n\n      if (_header) {\n        const key = utils.findKey(self, _header);\n\n        if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n          delete self[key];\n\n          deleted = true;\n        }\n      }\n    }\n\n    if (utils.isArray(header)) {\n      header.forEach(deleteHeader);\n    } else {\n      deleteHeader(header);\n    }\n\n    return deleted;\n  }\n\n  clear(matcher) {\n    const keys = Object.keys(this);\n    let i = keys.length;\n    let deleted = false;\n\n    while (i--) {\n      const key = keys[i];\n      if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n        delete this[key];\n        deleted = true;\n      }\n    }\n\n    return deleted;\n  }\n\n  normalize(format) {\n    const self = this;\n    const headers = {};\n\n    utils.forEach(this, (value, header) => {\n      const key = utils.findKey(headers, header);\n\n      if (key) {\n        self[key] = normalizeValue(value);\n        delete self[header];\n        return;\n      }\n\n      const normalized = format ? formatHeader(header) : String(header).trim();\n\n      if (normalized !== header) {\n        delete self[header];\n      }\n\n      self[normalized] = normalizeValue(value);\n\n      headers[normalized] = true;\n    });\n\n    return this;\n  }\n\n  concat(...targets) {\n    return this.constructor.concat(this, ...targets);\n  }\n\n  toJSON(asStrings) {\n    const obj = Object.create(null);\n\n    utils.forEach(this, (value, header) => {\n      value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n    });\n\n    return obj;\n  }\n\n  [Symbol.iterator]() {\n    return Object.entries(this.toJSON())[Symbol.iterator]();\n  }\n\n  toString() {\n    return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n  }\n\n  get [Symbol.toStringTag]() {\n    return 'AxiosHeaders';\n  }\n\n  static from(thing) {\n    return thing instanceof this ? thing : new this(thing);\n  }\n\n  static concat(first, ...targets) {\n    const computed = new this(first);\n\n    targets.forEach((target) => computed.set(target));\n\n    return computed;\n  }\n\n  static accessor(header) {\n    const internals = this[$internals] = (this[$internals] = {\n      accessors: {}\n    });\n\n    const accessors = internals.accessors;\n    const prototype = this.prototype;\n\n    function defineAccessor(_header) {\n      const lHeader = normalizeHeader(_header);\n\n      if (!accessors[lHeader]) {\n        buildAccessors(prototype, _header);\n        accessors[lHeader] = true;\n      }\n    }\n\n    utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n    return this;\n  }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n  let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n  return {\n    get: () => value,\n    set(headerValue) {\n      this[mapped] = headerValue;\n    }\n  }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\n/* harmony default export */ const core_AxiosHeaders = (AxiosHeaders);\n\n;// ./node_modules/axios/lib/core/transformData.js\n\n\n\n\n\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nfunction transformData(fns, response) {\n  const config = this || lib_defaults;\n  const context = response || config;\n  const headers = core_AxiosHeaders.from(context.headers);\n  let data = context.data;\n\n  utils.forEach(fns, function transform(fn) {\n    data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n  });\n\n  headers.normalize();\n\n  return data;\n}\n\n;// ./node_modules/axios/lib/cancel/isCancel.js\n\n\nfunction isCancel(value) {\n  return !!(value && value.__CANCEL__);\n}\n\n;// ./node_modules/axios/lib/cancel/CanceledError.js\n\n\n\n\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n  // eslint-disable-next-line no-eq-null,eqeqeq\n  core_AxiosError.call(this, message == null ? 'canceled' : message, core_AxiosError.ERR_CANCELED, config, request);\n  this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, core_AxiosError, {\n  __CANCEL__: true\n});\n\n/* harmony default export */ const cancel_CanceledError = (CanceledError);\n\n;// ./node_modules/axios/lib/core/settle.js\n\n\n\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nfunction settle(resolve, reject, response) {\n  const validateStatus = response.config.validateStatus;\n  if (!response.status || !validateStatus || validateStatus(response.status)) {\n    resolve(response);\n  } else {\n    reject(new core_AxiosError(\n      'Request failed with status code ' + response.status,\n      [core_AxiosError.ERR_BAD_REQUEST, core_AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n      response.config,\n      response.request,\n      response\n    ));\n  }\n}\n\n;// ./node_modules/axios/lib/helpers/parseProtocol.js\n\n\nfunction parseProtocol(url) {\n  const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n  return match && match[1] || '';\n}\n\n;// ./node_modules/axios/lib/helpers/speedometer.js\n\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n  samplesCount = samplesCount || 10;\n  const bytes = new Array(samplesCount);\n  const timestamps = new Array(samplesCount);\n  let head = 0;\n  let tail = 0;\n  let firstSampleTS;\n\n  min = min !== undefined ? min : 1000;\n\n  return function push(chunkLength) {\n    const now = Date.now();\n\n    const startedAt = timestamps[tail];\n\n    if (!firstSampleTS) {\n      firstSampleTS = now;\n    }\n\n    bytes[head] = chunkLength;\n    timestamps[head] = now;\n\n    let i = tail;\n    let bytesCount = 0;\n\n    while (i !== head) {\n      bytesCount += bytes[i++];\n      i = i % samplesCount;\n    }\n\n    head = (head + 1) % samplesCount;\n\n    if (head === tail) {\n      tail = (tail + 1) % samplesCount;\n    }\n\n    if (now - firstSampleTS < min) {\n      return;\n    }\n\n    const passed = startedAt && now - startedAt;\n\n    return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n  };\n}\n\n/* harmony default export */ const helpers_speedometer = (speedometer);\n\n;// ./node_modules/axios/lib/helpers/throttle.js\n/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n  let timestamp = 0;\n  let threshold = 1000 / freq;\n  let lastArgs;\n  let timer;\n\n  const invoke = (args, now = Date.now()) => {\n    timestamp = now;\n    lastArgs = null;\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n    fn.apply(null, args);\n  }\n\n  const throttled = (...args) => {\n    const now = Date.now();\n    const passed = now - timestamp;\n    if ( passed >= threshold) {\n      invoke(args, now);\n    } else {\n      lastArgs = args;\n      if (!timer) {\n        timer = setTimeout(() => {\n          timer = null;\n          invoke(lastArgs)\n        }, threshold - passed);\n      }\n    }\n  }\n\n  const flush = () => lastArgs && invoke(lastArgs);\n\n  return [throttled, flush];\n}\n\n/* harmony default export */ const helpers_throttle = (throttle);\n\n;// ./node_modules/axios/lib/helpers/progressEventReducer.js\n\n\n\n\nconst progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n  let bytesNotified = 0;\n  const _speedometer = helpers_speedometer(50, 250);\n\n  return helpers_throttle(e => {\n    const loaded = e.loaded;\n    const total = e.lengthComputable ? e.total : undefined;\n    const progressBytes = loaded - bytesNotified;\n    const rate = _speedometer(progressBytes);\n    const inRange = loaded <= total;\n\n    bytesNotified = loaded;\n\n    const data = {\n      loaded,\n      total,\n      progress: total ? (loaded / total) : undefined,\n      bytes: progressBytes,\n      rate: rate ? rate : undefined,\n      estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n      event: e,\n      lengthComputable: total != null,\n      [isDownloadStream ? 'download' : 'upload']: true\n    };\n\n    listener(data);\n  }, freq);\n}\n\nconst progressEventDecorator = (total, throttled) => {\n  const lengthComputable = total != null;\n\n  return [(loaded) => throttled[0]({\n    lengthComputable,\n    total,\n    loaded\n  }), throttled[1]];\n}\n\nconst asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n\n;// ./node_modules/axios/lib/helpers/isURLSameOrigin.js\n\n\n/* harmony default export */ const isURLSameOrigin = (platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n  url = new URL(url, platform.origin);\n\n  return (\n    origin.protocol === url.protocol &&\n    origin.host === url.host &&\n    (isMSIE || origin.port === url.port)\n  );\n})(\n  new URL(platform.origin),\n  platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true);\n\n;// ./node_modules/axios/lib/helpers/cookies.js\n\n\n\n/* harmony default export */ const cookies = (platform.hasStandardBrowserEnv ?\n\n  // Standard browser envs support document.cookie\n  {\n    write(name, value, expires, path, domain, secure) {\n      const cookie = [name + '=' + encodeURIComponent(value)];\n\n      utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n      utils.isString(path) && cookie.push('path=' + path);\n\n      utils.isString(domain) && cookie.push('domain=' + domain);\n\n      secure === true && cookie.push('secure');\n\n      document.cookie = cookie.join('; ');\n    },\n\n    read(name) {\n      const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n      return (match ? decodeURIComponent(match[3]) : null);\n    },\n\n    remove(name) {\n      this.write(name, '', Date.now() - 86400000);\n    }\n  }\n\n  :\n\n  // Non-standard browser env (web workers, react-native) lack needed support.\n  {\n    write() {},\n    read() {\n      return null;\n    },\n    remove() {}\n  });\n\n\n;// ./node_modules/axios/lib/helpers/isAbsoluteURL.js\n\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nfunction isAbsoluteURL(url) {\n  // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n  // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n  // by any combination of letters, digits, plus, period, or hyphen.\n  return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n\n;// ./node_modules/axios/lib/helpers/combineURLs.js\n\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nfunction combineURLs(baseURL, relativeURL) {\n  return relativeURL\n    ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n    : baseURL;\n}\n\n;// ./node_modules/axios/lib/core/buildFullPath.js\n\n\n\n\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nfunction buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n  let isRelativeUrl = !isAbsoluteURL(requestedURL);\n  if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n    return combineURLs(baseURL, requestedURL);\n  }\n  return requestedURL;\n}\n\n;// ./node_modules/axios/lib/core/mergeConfig.js\n\n\n\n\n\nconst headersToObject = (thing) => thing instanceof core_AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nfunction mergeConfig(config1, config2) {\n  // eslint-disable-next-line no-param-reassign\n  config2 = config2 || {};\n  const config = {};\n\n  function getMergedValue(target, source, prop, caseless) {\n    if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n      return utils.merge.call({caseless}, target, source);\n    } else if (utils.isPlainObject(source)) {\n      return utils.merge({}, source);\n    } else if (utils.isArray(source)) {\n      return source.slice();\n    }\n    return source;\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDeepProperties(a, b, prop , caseless) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(a, b, prop , caseless);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a, prop , caseless);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function valueFromConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function defaultToConfig2(a, b) {\n    if (!utils.isUndefined(b)) {\n      return getMergedValue(undefined, b);\n    } else if (!utils.isUndefined(a)) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  // eslint-disable-next-line consistent-return\n  function mergeDirectKeys(a, b, prop) {\n    if (prop in config2) {\n      return getMergedValue(a, b);\n    } else if (prop in config1) {\n      return getMergedValue(undefined, a);\n    }\n  }\n\n  const mergeMap = {\n    url: valueFromConfig2,\n    method: valueFromConfig2,\n    data: valueFromConfig2,\n    baseURL: defaultToConfig2,\n    transformRequest: defaultToConfig2,\n    transformResponse: defaultToConfig2,\n    paramsSerializer: defaultToConfig2,\n    timeout: defaultToConfig2,\n    timeoutMessage: defaultToConfig2,\n    withCredentials: defaultToConfig2,\n    withXSRFToken: defaultToConfig2,\n    adapter: defaultToConfig2,\n    responseType: defaultToConfig2,\n    xsrfCookieName: defaultToConfig2,\n    xsrfHeaderName: defaultToConfig2,\n    onUploadProgress: defaultToConfig2,\n    onDownloadProgress: defaultToConfig2,\n    decompress: defaultToConfig2,\n    maxContentLength: defaultToConfig2,\n    maxBodyLength: defaultToConfig2,\n    beforeRedirect: defaultToConfig2,\n    transport: defaultToConfig2,\n    httpAgent: defaultToConfig2,\n    httpsAgent: defaultToConfig2,\n    cancelToken: defaultToConfig2,\n    socketPath: defaultToConfig2,\n    responseEncoding: defaultToConfig2,\n    validateStatus: mergeDirectKeys,\n    headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n  };\n\n  utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n    const merge = mergeMap[prop] || mergeDeepProperties;\n    const configValue = merge(config1[prop], config2[prop], prop);\n    (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n  });\n\n  return config;\n}\n\n;// ./node_modules/axios/lib/helpers/resolveConfig.js\n\n\n\n\n\n\n\n\n\n/* harmony default export */ const resolveConfig = ((config) => {\n  const newConfig = mergeConfig({}, config);\n\n  let {data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth} = newConfig;\n\n  newConfig.headers = headers = core_AxiosHeaders.from(headers);\n\n  newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n  // HTTP basic authentication\n  if (auth) {\n    headers.set('Authorization', 'Basic ' +\n      btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n    );\n  }\n\n  let contentType;\n\n  if (utils.isFormData(data)) {\n    if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n      headers.setContentType(undefined); // Let the browser set it\n    } else if ((contentType = headers.getContentType()) !== false) {\n      // fix semicolon duplication issue for ReactNative FormData implementation\n      const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n      headers.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n    }\n  }\n\n  // Add xsrf header\n  // This is only done if running in a standard browser environment.\n  // Specifically not if we're in a web worker, or react-native.\n\n  if (platform.hasStandardBrowserEnv) {\n    withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n    if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n      // Add xsrf header\n      const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n      if (xsrfValue) {\n        headers.set(xsrfHeaderName, xsrfValue);\n      }\n    }\n  }\n\n  return newConfig;\n});\n\n\n;// ./node_modules/axios/lib/adapters/xhr.js\n\n\n\n\n\n\n\n\n\n\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\n/* harmony default export */ const xhr = (isXHRAdapterSupported && function (config) {\n  return new Promise(function dispatchXhrRequest(resolve, reject) {\n    const _config = resolveConfig(config);\n    let requestData = _config.data;\n    const requestHeaders = core_AxiosHeaders.from(_config.headers).normalize();\n    let {responseType, onUploadProgress, onDownloadProgress} = _config;\n    let onCanceled;\n    let uploadThrottled, downloadThrottled;\n    let flushUpload, flushDownload;\n\n    function done() {\n      flushUpload && flushUpload(); // flush events\n      flushDownload && flushDownload(); // flush events\n\n      _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n      _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n    }\n\n    let request = new XMLHttpRequest();\n\n    request.open(_config.method.toUpperCase(), _config.url, true);\n\n    // Set the request timeout in MS\n    request.timeout = _config.timeout;\n\n    function onloadend() {\n      if (!request) {\n        return;\n      }\n      // Prepare the response\n      const responseHeaders = core_AxiosHeaders.from(\n        'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n      );\n      const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n        request.responseText : request.response;\n      const response = {\n        data: responseData,\n        status: request.status,\n        statusText: request.statusText,\n        headers: responseHeaders,\n        config,\n        request\n      };\n\n      settle(function _resolve(value) {\n        resolve(value);\n        done();\n      }, function _reject(err) {\n        reject(err);\n        done();\n      }, response);\n\n      // Clean up request\n      request = null;\n    }\n\n    if ('onloadend' in request) {\n      // Use onloadend if available\n      request.onloadend = onloadend;\n    } else {\n      // Listen for ready state to emulate onloadend\n      request.onreadystatechange = function handleLoad() {\n        if (!request || request.readyState !== 4) {\n          return;\n        }\n\n        // The request errored out and we didn't get a response, this will be\n        // handled by onerror instead\n        // With one exception: request that using file: protocol, most browsers\n        // will return status as 0 even though it's a successful request\n        if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n          return;\n        }\n        // readystate handler is calling before onerror or ontimeout handlers,\n        // so we should call onloadend on the next 'tick'\n        setTimeout(onloadend);\n      };\n    }\n\n    // Handle browser request cancellation (as opposed to a manual cancellation)\n    request.onabort = function handleAbort() {\n      if (!request) {\n        return;\n      }\n\n      reject(new core_AxiosError('Request aborted', core_AxiosError.ECONNABORTED, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle low level network errors\n    request.onerror = function handleError() {\n      // Real errors are hidden from us by the browser\n      // onerror should only fire if it's a network error\n      reject(new core_AxiosError('Network Error', core_AxiosError.ERR_NETWORK, config, request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Handle timeout\n    request.ontimeout = function handleTimeout() {\n      let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n      const transitional = _config.transitional || defaults_transitional;\n      if (_config.timeoutErrorMessage) {\n        timeoutErrorMessage = _config.timeoutErrorMessage;\n      }\n      reject(new core_AxiosError(\n        timeoutErrorMessage,\n        transitional.clarifyTimeoutError ? core_AxiosError.ETIMEDOUT : core_AxiosError.ECONNABORTED,\n        config,\n        request));\n\n      // Clean up request\n      request = null;\n    };\n\n    // Remove Content-Type if data is undefined\n    requestData === undefined && requestHeaders.setContentType(null);\n\n    // Add headers to the request\n    if ('setRequestHeader' in request) {\n      utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n        request.setRequestHeader(key, val);\n      });\n    }\n\n    // Add withCredentials to request if needed\n    if (!utils.isUndefined(_config.withCredentials)) {\n      request.withCredentials = !!_config.withCredentials;\n    }\n\n    // Add responseType to request if needed\n    if (responseType && responseType !== 'json') {\n      request.responseType = _config.responseType;\n    }\n\n    // Handle progress if needed\n    if (onDownloadProgress) {\n      ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n      request.addEventListener('progress', downloadThrottled);\n    }\n\n    // Not all browsers support upload events\n    if (onUploadProgress && request.upload) {\n      ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n      request.upload.addEventListener('progress', uploadThrottled);\n\n      request.upload.addEventListener('loadend', flushUpload);\n    }\n\n    if (_config.cancelToken || _config.signal) {\n      // Handle cancellation\n      // eslint-disable-next-line func-names\n      onCanceled = cancel => {\n        if (!request) {\n          return;\n        }\n        reject(!cancel || cancel.type ? new cancel_CanceledError(null, config, request) : cancel);\n        request.abort();\n        request = null;\n      };\n\n      _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n      if (_config.signal) {\n        _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n      }\n    }\n\n    const protocol = parseProtocol(_config.url);\n\n    if (protocol && platform.protocols.indexOf(protocol) === -1) {\n      reject(new core_AxiosError('Unsupported protocol ' + protocol + ':', core_AxiosError.ERR_BAD_REQUEST, config));\n      return;\n    }\n\n\n    // Send the request\n    request.send(requestData || null);\n  });\n});\n\n;// ./node_modules/axios/lib/helpers/composeSignals.js\n\n\n\n\nconst composeSignals = (signals, timeout) => {\n  const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n  if (timeout || length) {\n    let controller = new AbortController();\n\n    let aborted;\n\n    const onabort = function (reason) {\n      if (!aborted) {\n        aborted = true;\n        unsubscribe();\n        const err = reason instanceof Error ? reason : this.reason;\n        controller.abort(err instanceof core_AxiosError ? err : new cancel_CanceledError(err instanceof Error ? err.message : err));\n      }\n    }\n\n    let timer = timeout && setTimeout(() => {\n      timer = null;\n      onabort(new core_AxiosError(`timeout ${timeout} of ms exceeded`, core_AxiosError.ETIMEDOUT))\n    }, timeout)\n\n    const unsubscribe = () => {\n      if (signals) {\n        timer && clearTimeout(timer);\n        timer = null;\n        signals.forEach(signal => {\n          signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n        });\n        signals = null;\n      }\n    }\n\n    signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n    const {signal} = controller;\n\n    signal.unsubscribe = () => utils.asap(unsubscribe);\n\n    return signal;\n  }\n}\n\n/* harmony default export */ const helpers_composeSignals = (composeSignals);\n\n;// ./node_modules/axios/lib/helpers/trackStream.js\n\nconst streamChunk = function* (chunk, chunkSize) {\n  let len = chunk.byteLength;\n\n  if (!chunkSize || len < chunkSize) {\n    yield chunk;\n    return;\n  }\n\n  let pos = 0;\n  let end;\n\n  while (pos < len) {\n    end = pos + chunkSize;\n    yield chunk.slice(pos, end);\n    pos = end;\n  }\n}\n\nconst readBytes = async function* (iterable, chunkSize) {\n  for await (const chunk of readStream(iterable)) {\n    yield* streamChunk(chunk, chunkSize);\n  }\n}\n\nconst readStream = async function* (stream) {\n  if (stream[Symbol.asyncIterator]) {\n    yield* stream;\n    return;\n  }\n\n  const reader = stream.getReader();\n  try {\n    for (;;) {\n      const {done, value} = await reader.read();\n      if (done) {\n        break;\n      }\n      yield value;\n    }\n  } finally {\n    await reader.cancel();\n  }\n}\n\nconst trackStream = (stream, chunkSize, onProgress, onFinish) => {\n  const iterator = readBytes(stream, chunkSize);\n\n  let bytes = 0;\n  let done;\n  let _onFinish = (e) => {\n    if (!done) {\n      done = true;\n      onFinish && onFinish(e);\n    }\n  }\n\n  return new ReadableStream({\n    async pull(controller) {\n      try {\n        const {done, value} = await iterator.next();\n\n        if (done) {\n         _onFinish();\n          controller.close();\n          return;\n        }\n\n        let len = value.byteLength;\n        if (onProgress) {\n          let loadedBytes = bytes += len;\n          onProgress(loadedBytes);\n        }\n        controller.enqueue(new Uint8Array(value));\n      } catch (err) {\n        _onFinish(err);\n        throw err;\n      }\n    },\n    cancel(reason) {\n      _onFinish(reason);\n      return iterator.return();\n    }\n  }, {\n    highWaterMark: 2\n  })\n}\n\n;// ./node_modules/axios/lib/adapters/fetch.js\n\n\n\n\n\n\n\n\n\n\nconst isFetchSupported = typeof fetch === 'function' && typeof Request === 'function' && typeof Response === 'function';\nconst isReadableStreamSupported = isFetchSupported && typeof ReadableStream === 'function';\n\n// used only inside the fetch adapter\nconst encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n    ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n    async (str) => new Uint8Array(await new Response(str).arrayBuffer())\n);\n\nconst test = (fn, ...args) => {\n  try {\n    return !!fn(...args);\n  } catch (e) {\n    return false\n  }\n}\n\nconst supportsRequestStream = isReadableStreamSupported && test(() => {\n  let duplexAccessed = false;\n\n  const hasContentType = new Request(platform.origin, {\n    body: new ReadableStream(),\n    method: 'POST',\n    get duplex() {\n      duplexAccessed = true;\n      return 'half';\n    },\n  }).headers.has('Content-Type');\n\n  return duplexAccessed && !hasContentType;\n});\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst supportsResponseStream = isReadableStreamSupported &&\n  test(() => utils.isReadableStream(new Response('').body));\n\n\nconst resolvers = {\n  stream: supportsResponseStream && ((res) => res.body)\n};\n\nisFetchSupported && (((res) => {\n  ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n    !resolvers[type] && (resolvers[type] = utils.isFunction(res[type]) ? (res) => res[type]() :\n      (_, config) => {\n        throw new core_AxiosError(`Response type '${type}' is not supported`, core_AxiosError.ERR_NOT_SUPPORT, config);\n      })\n  });\n})(new Response));\n\nconst getBodyLength = async (body) => {\n  if (body == null) {\n    return 0;\n  }\n\n  if(utils.isBlob(body)) {\n    return body.size;\n  }\n\n  if(utils.isSpecCompliantForm(body)) {\n    const _request = new Request(platform.origin, {\n      method: 'POST',\n      body,\n    });\n    return (await _request.arrayBuffer()).byteLength;\n  }\n\n  if(utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n    return body.byteLength;\n  }\n\n  if(utils.isURLSearchParams(body)) {\n    body = body + '';\n  }\n\n  if(utils.isString(body)) {\n    return (await encodeText(body)).byteLength;\n  }\n}\n\nconst resolveBodyLength = async (headers, body) => {\n  const length = utils.toFiniteNumber(headers.getContentLength());\n\n  return length == null ? getBodyLength(body) : length;\n}\n\n/* harmony default export */ const adapters_fetch = (isFetchSupported && (async (config) => {\n  let {\n    url,\n    method,\n    data,\n    signal,\n    cancelToken,\n    timeout,\n    onDownloadProgress,\n    onUploadProgress,\n    responseType,\n    headers,\n    withCredentials = 'same-origin',\n    fetchOptions\n  } = resolveConfig(config);\n\n  responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n  let composedSignal = helpers_composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n  let request;\n\n  const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n      composedSignal.unsubscribe();\n  });\n\n  let requestContentLength;\n\n  try {\n    if (\n      onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n      (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n    ) {\n      let _request = new Request(url, {\n        method: 'POST',\n        body: data,\n        duplex: \"half\"\n      });\n\n      let contentTypeHeader;\n\n      if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n        headers.setContentType(contentTypeHeader)\n      }\n\n      if (_request.body) {\n        const [onProgress, flush] = progressEventDecorator(\n          requestContentLength,\n          progressEventReducer(asyncDecorator(onUploadProgress))\n        );\n\n        data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n      }\n    }\n\n    if (!utils.isString(withCredentials)) {\n      withCredentials = withCredentials ? 'include' : 'omit';\n    }\n\n    // Cloudflare Workers throws when credentials are defined\n    // see https://github.com/cloudflare/workerd/issues/902\n    const isCredentialsSupported = \"credentials\" in Request.prototype;\n    request = new Request(url, {\n      ...fetchOptions,\n      signal: composedSignal,\n      method: method.toUpperCase(),\n      headers: headers.normalize().toJSON(),\n      body: data,\n      duplex: \"half\",\n      credentials: isCredentialsSupported ? withCredentials : undefined\n    });\n\n    let response = await fetch(request);\n\n    const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n    if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n      const options = {};\n\n      ['status', 'statusText', 'headers'].forEach(prop => {\n        options[prop] = response[prop];\n      });\n\n      const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n      const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n        responseContentLength,\n        progressEventReducer(asyncDecorator(onDownloadProgress), true)\n      ) || [];\n\n      response = new Response(\n        trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n          flush && flush();\n          unsubscribe && unsubscribe();\n        }),\n        options\n      );\n    }\n\n    responseType = responseType || 'text';\n\n    let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n    !isStreamResponse && unsubscribe && unsubscribe();\n\n    return await new Promise((resolve, reject) => {\n      settle(resolve, reject, {\n        data: responseData,\n        headers: core_AxiosHeaders.from(response.headers),\n        status: response.status,\n        statusText: response.statusText,\n        config,\n        request\n      })\n    })\n  } catch (err) {\n    unsubscribe && unsubscribe();\n\n    if (err && err.name === 'TypeError' && /fetch/i.test(err.message)) {\n      throw Object.assign(\n        new core_AxiosError('Network Error', core_AxiosError.ERR_NETWORK, config, request),\n        {\n          cause: err.cause || err\n        }\n      )\n    }\n\n    throw core_AxiosError.from(err, err && err.code, config, request);\n  }\n}));\n\n\n\n;// ./node_modules/axios/lib/adapters/adapters.js\n\n\n\n\n\n\nconst knownAdapters = {\n  http: helpers_null,\n  xhr: xhr,\n  fetch: adapters_fetch\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n  if (fn) {\n    try {\n      Object.defineProperty(fn, 'name', {value});\n    } catch (e) {\n      // eslint-disable-next-line no-empty\n    }\n    Object.defineProperty(fn, 'adapterName', {value});\n  }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/* harmony default export */ const adapters = ({\n  getAdapter: (adapters) => {\n    adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n    const {length} = adapters;\n    let nameOrAdapter;\n    let adapter;\n\n    const rejectedReasons = {};\n\n    for (let i = 0; i < length; i++) {\n      nameOrAdapter = adapters[i];\n      let id;\n\n      adapter = nameOrAdapter;\n\n      if (!isResolvedHandle(nameOrAdapter)) {\n        adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n        if (adapter === undefined) {\n          throw new core_AxiosError(`Unknown adapter '${id}'`);\n        }\n      }\n\n      if (adapter) {\n        break;\n      }\n\n      rejectedReasons[id || '#' + i] = adapter;\n    }\n\n    if (!adapter) {\n\n      const reasons = Object.entries(rejectedReasons)\n        .map(([id, state]) => `adapter ${id} ` +\n          (state === false ? 'is not supported by the environment' : 'is not available in the build')\n        );\n\n      let s = length ?\n        (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n        'as no adapter specified';\n\n      throw new core_AxiosError(\n        `There is no suitable adapter to dispatch the request ` + s,\n        'ERR_NOT_SUPPORT'\n      );\n    }\n\n    return adapter;\n  },\n  adapters: knownAdapters\n});\n\n;// ./node_modules/axios/lib/core/dispatchRequest.js\n\n\n\n\n\n\n\n\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n  if (config.cancelToken) {\n    config.cancelToken.throwIfRequested();\n  }\n\n  if (config.signal && config.signal.aborted) {\n    throw new cancel_CanceledError(null, config);\n  }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nfunction dispatchRequest(config) {\n  throwIfCancellationRequested(config);\n\n  config.headers = core_AxiosHeaders.from(config.headers);\n\n  // Transform request data\n  config.data = transformData.call(\n    config,\n    config.transformRequest\n  );\n\n  if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n    config.headers.setContentType('application/x-www-form-urlencoded', false);\n  }\n\n  const adapter = adapters.getAdapter(config.adapter || lib_defaults.adapter);\n\n  return adapter(config).then(function onAdapterResolution(response) {\n    throwIfCancellationRequested(config);\n\n    // Transform response data\n    response.data = transformData.call(\n      config,\n      config.transformResponse,\n      response\n    );\n\n    response.headers = core_AxiosHeaders.from(response.headers);\n\n    return response;\n  }, function onAdapterRejection(reason) {\n    if (!isCancel(reason)) {\n      throwIfCancellationRequested(config);\n\n      // Transform response data\n      if (reason && reason.response) {\n        reason.response.data = transformData.call(\n          config,\n          config.transformResponse,\n          reason.response\n        );\n        reason.response.headers = core_AxiosHeaders.from(reason.response.headers);\n      }\n    }\n\n    return Promise.reject(reason);\n  });\n}\n\n;// ./node_modules/axios/lib/env/data.js\nconst VERSION = \"1.8.4\";\n;// ./node_modules/axios/lib/helpers/validator.js\n\n\n\n\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n  validators[type] = function validator(thing) {\n    return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n  };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n  function formatMessage(opt, desc) {\n    return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n  }\n\n  // eslint-disable-next-line func-names\n  return (value, opt, opts) => {\n    if (validator === false) {\n      throw new core_AxiosError(\n        formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n        core_AxiosError.ERR_DEPRECATED\n      );\n    }\n\n    if (version && !deprecatedWarnings[opt]) {\n      deprecatedWarnings[opt] = true;\n      // eslint-disable-next-line no-console\n      console.warn(\n        formatMessage(\n          opt,\n          ' has been deprecated since v' + version + ' and will be removed in the near future'\n        )\n      );\n    }\n\n    return validator ? validator(value, opt, opts) : true;\n  };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n  return (value, opt) => {\n    // eslint-disable-next-line no-console\n    console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n    return true;\n  }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n  if (typeof options !== 'object') {\n    throw new core_AxiosError('options must be an object', core_AxiosError.ERR_BAD_OPTION_VALUE);\n  }\n  const keys = Object.keys(options);\n  let i = keys.length;\n  while (i-- > 0) {\n    const opt = keys[i];\n    const validator = schema[opt];\n    if (validator) {\n      const value = options[opt];\n      const result = value === undefined || validator(value, opt, options);\n      if (result !== true) {\n        throw new core_AxiosError('option ' + opt + ' must be ' + result, core_AxiosError.ERR_BAD_OPTION_VALUE);\n      }\n      continue;\n    }\n    if (allowUnknown !== true) {\n      throw new core_AxiosError('Unknown option ' + opt, core_AxiosError.ERR_BAD_OPTION);\n    }\n  }\n}\n\n/* harmony default export */ const validator = ({\n  assertOptions,\n  validators\n});\n\n;// ./node_modules/axios/lib/core/Axios.js\n\n\n\n\n\n\n\n\n\n\n\nconst Axios_validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n  constructor(instanceConfig) {\n    this.defaults = instanceConfig;\n    this.interceptors = {\n      request: new core_InterceptorManager(),\n      response: new core_InterceptorManager()\n    };\n  }\n\n  /**\n   * Dispatch a request\n   *\n   * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n   * @param {?Object} config\n   *\n   * @returns {Promise} The Promise to be fulfilled\n   */\n  async request(configOrUrl, config) {\n    try {\n      return await this._request(configOrUrl, config);\n    } catch (err) {\n      if (err instanceof Error) {\n        let dummy = {};\n\n        Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n        // slice off the Error: ... line\n        const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n        try {\n          if (!err.stack) {\n            err.stack = stack;\n            // match without the 2 top stack lines\n          } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n            err.stack += '\\n' + stack\n          }\n        } catch (e) {\n          // ignore the case where \"stack\" is an un-writable property\n        }\n      }\n\n      throw err;\n    }\n  }\n\n  _request(configOrUrl, config) {\n    /*eslint no-param-reassign:0*/\n    // Allow for axios('example/url'[, config]) a la fetch API\n    if (typeof configOrUrl === 'string') {\n      config = config || {};\n      config.url = configOrUrl;\n    } else {\n      config = configOrUrl || {};\n    }\n\n    config = mergeConfig(this.defaults, config);\n\n    const {transitional, paramsSerializer, headers} = config;\n\n    if (transitional !== undefined) {\n      validator.assertOptions(transitional, {\n        silentJSONParsing: Axios_validators.transitional(Axios_validators.boolean),\n        forcedJSONParsing: Axios_validators.transitional(Axios_validators.boolean),\n        clarifyTimeoutError: Axios_validators.transitional(Axios_validators.boolean)\n      }, false);\n    }\n\n    if (paramsSerializer != null) {\n      if (utils.isFunction(paramsSerializer)) {\n        config.paramsSerializer = {\n          serialize: paramsSerializer\n        }\n      } else {\n        validator.assertOptions(paramsSerializer, {\n          encode: Axios_validators.function,\n          serialize: Axios_validators.function\n        }, true);\n      }\n    }\n\n    // Set config.allowAbsoluteUrls\n    if (config.allowAbsoluteUrls !== undefined) {\n      // do nothing\n    } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n      config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n    } else {\n      config.allowAbsoluteUrls = true;\n    }\n\n    validator.assertOptions(config, {\n      baseUrl: Axios_validators.spelling('baseURL'),\n      withXsrfToken: Axios_validators.spelling('withXSRFToken')\n    }, true);\n\n    // Set config.method\n    config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n    // Flatten headers\n    let contextHeaders = headers && utils.merge(\n      headers.common,\n      headers[config.method]\n    );\n\n    headers && utils.forEach(\n      ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n      (method) => {\n        delete headers[method];\n      }\n    );\n\n    config.headers = core_AxiosHeaders.concat(contextHeaders, headers);\n\n    // filter out skipped interceptors\n    const requestInterceptorChain = [];\n    let synchronousRequestInterceptors = true;\n    this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n      if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n        return;\n      }\n\n      synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n      requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    const responseInterceptorChain = [];\n    this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n      responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n    });\n\n    let promise;\n    let i = 0;\n    let len;\n\n    if (!synchronousRequestInterceptors) {\n      const chain = [dispatchRequest.bind(this), undefined];\n      chain.unshift.apply(chain, requestInterceptorChain);\n      chain.push.apply(chain, responseInterceptorChain);\n      len = chain.length;\n\n      promise = Promise.resolve(config);\n\n      while (i < len) {\n        promise = promise.then(chain[i++], chain[i++]);\n      }\n\n      return promise;\n    }\n\n    len = requestInterceptorChain.length;\n\n    let newConfig = config;\n\n    i = 0;\n\n    while (i < len) {\n      const onFulfilled = requestInterceptorChain[i++];\n      const onRejected = requestInterceptorChain[i++];\n      try {\n        newConfig = onFulfilled(newConfig);\n      } catch (error) {\n        onRejected.call(this, error);\n        break;\n      }\n    }\n\n    try {\n      promise = dispatchRequest.call(this, newConfig);\n    } catch (error) {\n      return Promise.reject(error);\n    }\n\n    i = 0;\n    len = responseInterceptorChain.length;\n\n    while (i < len) {\n      promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n    }\n\n    return promise;\n  }\n\n  getUri(config) {\n    config = mergeConfig(this.defaults, config);\n    const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n    return buildURL(fullPath, config.params, config.paramsSerializer);\n  }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n  /*eslint func-names:0*/\n  Axios.prototype[method] = function(url, config) {\n    return this.request(mergeConfig(config || {}, {\n      method,\n      url,\n      data: (config || {}).data\n    }));\n  };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n  /*eslint func-names:0*/\n\n  function generateHTTPMethod(isForm) {\n    return function httpMethod(url, data, config) {\n      return this.request(mergeConfig(config || {}, {\n        method,\n        headers: isForm ? {\n          'Content-Type': 'multipart/form-data'\n        } : {},\n        url,\n        data\n      }));\n    };\n  }\n\n  Axios.prototype[method] = generateHTTPMethod();\n\n  Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\n/* harmony default export */ const core_Axios = (Axios);\n\n;// ./node_modules/axios/lib/cancel/CancelToken.js\n\n\n\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n  constructor(executor) {\n    if (typeof executor !== 'function') {\n      throw new TypeError('executor must be a function.');\n    }\n\n    let resolvePromise;\n\n    this.promise = new Promise(function promiseExecutor(resolve) {\n      resolvePromise = resolve;\n    });\n\n    const token = this;\n\n    // eslint-disable-next-line func-names\n    this.promise.then(cancel => {\n      if (!token._listeners) return;\n\n      let i = token._listeners.length;\n\n      while (i-- > 0) {\n        token._listeners[i](cancel);\n      }\n      token._listeners = null;\n    });\n\n    // eslint-disable-next-line func-names\n    this.promise.then = onfulfilled => {\n      let _resolve;\n      // eslint-disable-next-line func-names\n      const promise = new Promise(resolve => {\n        token.subscribe(resolve);\n        _resolve = resolve;\n      }).then(onfulfilled);\n\n      promise.cancel = function reject() {\n        token.unsubscribe(_resolve);\n      };\n\n      return promise;\n    };\n\n    executor(function cancel(message, config, request) {\n      if (token.reason) {\n        // Cancellation has already been requested\n        return;\n      }\n\n      token.reason = new cancel_CanceledError(message, config, request);\n      resolvePromise(token.reason);\n    });\n  }\n\n  /**\n   * Throws a `CanceledError` if cancellation has been requested.\n   */\n  throwIfRequested() {\n    if (this.reason) {\n      throw this.reason;\n    }\n  }\n\n  /**\n   * Subscribe to the cancel signal\n   */\n\n  subscribe(listener) {\n    if (this.reason) {\n      listener(this.reason);\n      return;\n    }\n\n    if (this._listeners) {\n      this._listeners.push(listener);\n    } else {\n      this._listeners = [listener];\n    }\n  }\n\n  /**\n   * Unsubscribe from the cancel signal\n   */\n\n  unsubscribe(listener) {\n    if (!this._listeners) {\n      return;\n    }\n    const index = this._listeners.indexOf(listener);\n    if (index !== -1) {\n      this._listeners.splice(index, 1);\n    }\n  }\n\n  toAbortSignal() {\n    const controller = new AbortController();\n\n    const abort = (err) => {\n      controller.abort(err);\n    };\n\n    this.subscribe(abort);\n\n    controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n    return controller.signal;\n  }\n\n  /**\n   * Returns an object that contains a new `CancelToken` and a function that, when called,\n   * cancels the `CancelToken`.\n   */\n  static source() {\n    let cancel;\n    const token = new CancelToken(function executor(c) {\n      cancel = c;\n    });\n    return {\n      token,\n      cancel\n    };\n  }\n}\n\n/* harmony default export */ const cancel_CancelToken = (CancelToken);\n\n;// ./node_modules/axios/lib/helpers/spread.js\n\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n *  ```js\n *  function f(x, y, z) {}\n *  var args = [1, 2, 3];\n *  f.apply(null, args);\n *  ```\n *\n * With `spread` this example can be re-written.\n *\n *  ```js\n *  spread(function(x, y, z) {})([1, 2, 3]);\n *  ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nfunction spread(callback) {\n  return function wrap(arr) {\n    return callback.apply(null, arr);\n  };\n}\n\n;// ./node_modules/axios/lib/helpers/isAxiosError.js\n\n\n\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nfunction isAxiosError(payload) {\n  return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n\n;// ./node_modules/axios/lib/helpers/HttpStatusCode.js\nconst HttpStatusCode = {\n  Continue: 100,\n  SwitchingProtocols: 101,\n  Processing: 102,\n  EarlyHints: 103,\n  Ok: 200,\n  Created: 201,\n  Accepted: 202,\n  NonAuthoritativeInformation: 203,\n  NoContent: 204,\n  ResetContent: 205,\n  PartialContent: 206,\n  MultiStatus: 207,\n  AlreadyReported: 208,\n  ImUsed: 226,\n  MultipleChoices: 300,\n  MovedPermanently: 301,\n  Found: 302,\n  SeeOther: 303,\n  NotModified: 304,\n  UseProxy: 305,\n  Unused: 306,\n  TemporaryRedirect: 307,\n  PermanentRedirect: 308,\n  BadRequest: 400,\n  Unauthorized: 401,\n  PaymentRequired: 402,\n  Forbidden: 403,\n  NotFound: 404,\n  MethodNotAllowed: 405,\n  NotAcceptable: 406,\n  ProxyAuthenticationRequired: 407,\n  RequestTimeout: 408,\n  Conflict: 409,\n  Gone: 410,\n  LengthRequired: 411,\n  PreconditionFailed: 412,\n  PayloadTooLarge: 413,\n  UriTooLong: 414,\n  UnsupportedMediaType: 415,\n  RangeNotSatisfiable: 416,\n  ExpectationFailed: 417,\n  ImATeapot: 418,\n  MisdirectedRequest: 421,\n  UnprocessableEntity: 422,\n  Locked: 423,\n  FailedDependency: 424,\n  TooEarly: 425,\n  UpgradeRequired: 426,\n  PreconditionRequired: 428,\n  TooManyRequests: 429,\n  RequestHeaderFieldsTooLarge: 431,\n  UnavailableForLegalReasons: 451,\n  InternalServerError: 500,\n  NotImplemented: 501,\n  BadGateway: 502,\n  ServiceUnavailable: 503,\n  GatewayTimeout: 504,\n  HttpVersionNotSupported: 505,\n  VariantAlsoNegotiates: 506,\n  InsufficientStorage: 507,\n  LoopDetected: 508,\n  NotExtended: 510,\n  NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n  HttpStatusCode[value] = key;\n});\n\n/* harmony default export */ const helpers_HttpStatusCode = (HttpStatusCode);\n\n;// ./node_modules/axios/lib/axios.js\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n  const context = new core_Axios(defaultConfig);\n  const instance = bind(core_Axios.prototype.request, context);\n\n  // Copy axios.prototype to instance\n  utils.extend(instance, core_Axios.prototype, context, {allOwnKeys: true});\n\n  // Copy context to instance\n  utils.extend(instance, context, null, {allOwnKeys: true});\n\n  // Factory for creating new instances\n  instance.create = function create(instanceConfig) {\n    return createInstance(mergeConfig(defaultConfig, instanceConfig));\n  };\n\n  return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(lib_defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = core_Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = cancel_CanceledError;\naxios.CancelToken = cancel_CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = helpers_toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = core_AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n  return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = core_AxiosHeaders;\n\naxios.formToJSON = thing => helpers_formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = helpers_HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\n/* harmony default export */ const lib_axios = (axios);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/axios/lib/axios.js_+_48_modules?");

/***/ }),

/***/ "./node_modules/b4a/browser.js":
/*!*************************************!*\
  !*** ./node_modules/b4a/browser.js ***!
  \*************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("const ascii = __webpack_require__(/*! ./lib/ascii */ \"./node_modules/b4a/lib/ascii.js\")\nconst base64 = __webpack_require__(/*! ./lib/base64 */ \"./node_modules/b4a/lib/base64.js\")\nconst hex = __webpack_require__(/*! ./lib/hex */ \"./node_modules/b4a/lib/hex.js\")\nconst utf8 = __webpack_require__(/*! ./lib/utf8 */ \"./node_modules/b4a/lib/utf8.js\")\nconst utf16le = __webpack_require__(/*! ./lib/utf16le */ \"./node_modules/b4a/lib/utf16le.js\")\n\nconst LE = new Uint8Array(Uint16Array.of(0xff).buffer)[0] === 0xff\n\nfunction codecFor (encoding) {\n  switch (encoding) {\n    case 'ascii':\n      return ascii\n    case 'base64':\n      return base64\n    case 'hex':\n      return hex\n    case 'utf8':\n    case 'utf-8':\n    case undefined:\n    case null:\n      return utf8\n    case 'ucs2':\n    case 'ucs-2':\n    case 'utf16le':\n    case 'utf-16le':\n      return utf16le\n    default:\n      throw new Error(`Unknown encoding: ${encoding}`)\n  }\n}\n\nfunction isBuffer (value) {\n  return value instanceof Uint8Array\n}\n\nfunction isEncoding (encoding) {\n  try {\n    codecFor(encoding)\n    return true\n  } catch {\n    return false\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  const buffer = new Uint8Array(size)\n  if (fill !== undefined) exports.fill(buffer, fill, 0, buffer.byteLength, encoding)\n  return buffer\n}\n\nfunction allocUnsafe (size) {\n  return new Uint8Array(size)\n}\n\nfunction allocUnsafeSlow (size) {\n  return new Uint8Array(size)\n}\n\nfunction byteLength (string, encoding) {\n  return codecFor(encoding).byteLength(string)\n}\n\nfunction compare (a, b) {\n  if (a === b) return 0\n\n  const len = Math.min(a.byteLength, b.byteLength)\n\n  a = new DataView(a.buffer, a.byteOffset, a.byteLength)\n  b = new DataView(b.buffer, b.byteOffset, b.byteLength)\n\n  let i = 0\n\n  for (let n = len - (len % 4); i < n; i += 4) {\n    const x = a.getUint32(i, LE)\n    const y = b.getUint32(i, LE)\n    if (x !== y) break\n  }\n\n  for (; i < len; i++) {\n    const x = a.getUint8(i)\n    const y = b.getUint8(i)\n    if (x < y) return -1\n    if (x > y) return 1\n  }\n\n  return a.byteLength > b.byteLength ? 1 : a.byteLength < b.byteLength ? -1 : 0\n}\n\nfunction concat (buffers, totalLength) {\n  if (totalLength === undefined) {\n    totalLength = buffers.reduce((len, buffer) => len + buffer.byteLength, 0)\n  }\n\n  const result = new Uint8Array(totalLength)\n\n  let offset = 0\n  for (const buffer of buffers) {\n    if (offset + buffer.byteLength > result.byteLength) {\n      const sub = buffer.subarray(0, result.byteLength - offset)\n      result.set(sub, offset)\n      return result\n    }\n    result.set(buffer, offset)\n    offset += buffer.byteLength\n  }\n\n  return result\n}\n\nfunction copy (source, target, targetStart = 0, start = 0, end = source.byteLength) {\n  if (end > 0 && end < start) return 0\n  if (end === start) return 0\n  if (source.byteLength === 0 || target.byteLength === 0) return 0\n\n  if (targetStart < 0) throw new RangeError('targetStart is out of range')\n  if (start < 0 || start >= source.byteLength) throw new RangeError('sourceStart is out of range')\n  if (end < 0) throw new RangeError('sourceEnd is out of range')\n\n  if (targetStart >= target.byteLength) targetStart = target.byteLength\n  if (end > source.byteLength) end = source.byteLength\n  if (target.byteLength - targetStart < end - start) {\n    end = target.length - targetStart + start\n  }\n\n  const len = end - start\n\n  if (source === target) {\n    target.copyWithin(targetStart, start, end)\n  } else {\n    target.set(source.subarray(start, end), targetStart)\n  }\n\n  return len\n}\n\nfunction equals (a, b) {\n  if (a === b) return true\n  if (a.byteLength !== b.byteLength) return false\n\n  const len = a.byteLength\n\n  a = new DataView(a.buffer, a.byteOffset, a.byteLength)\n  b = new DataView(b.buffer, b.byteOffset, b.byteLength)\n\n  let i = 0\n\n  for (let n = len - (len % 4); i < n; i += 4) {\n    if (a.getUint32(i, LE) !== b.getUint32(i, LE)) return false\n  }\n\n  for (; i < len; i++) {\n    if (a.getUint8(i) !== b.getUint8(i)) return false\n  }\n\n  return true\n}\n\nfunction fill (buffer, value, offset, end, encoding) {\n  if (typeof value === 'string') {\n    // fill(buffer, string, encoding)\n    if (typeof offset === 'string') {\n      encoding = offset\n      offset = 0\n      end = buffer.byteLength\n\n    // fill(buffer, string, offset, encoding)\n    } else if (typeof end === 'string') {\n      encoding = end\n      end = buffer.byteLength\n    }\n  } else if (typeof value === 'number') {\n    value = value & 0xff\n  } else if (typeof value === 'boolean') {\n    value = +value\n  }\n\n  if (offset < 0 || buffer.byteLength < offset || buffer.byteLength < end) {\n    throw new RangeError('Out of range index')\n  }\n\n  if (offset === undefined) offset = 0\n  if (end === undefined) end = buffer.byteLength\n\n  if (end <= offset) return buffer\n\n  if (!value) value = 0\n\n  if (typeof value === 'number') {\n    for (let i = offset; i < end; ++i) {\n      buffer[i] = value\n    }\n  } else {\n    value = isBuffer(value) ? value : from(value, encoding)\n\n    const len = value.byteLength\n\n    for (let i = 0; i < end - offset; ++i) {\n      buffer[i + offset] = value[i % len]\n    }\n  }\n\n  return buffer\n}\n\nfunction from (value, encodingOrOffset, length) {\n  // from(string, encoding)\n  if (typeof value === 'string') return fromString(value, encodingOrOffset)\n\n  // from(array)\n  if (Array.isArray(value)) return fromArray(value)\n\n  // from(buffer)\n  if (ArrayBuffer.isView(value)) return fromBuffer(value)\n\n  // from(arrayBuffer[, byteOffset[, length]])\n  return fromArrayBuffer(value, encodingOrOffset, length)\n}\n\nfunction fromString (string, encoding) {\n  const codec = codecFor(encoding)\n  const buffer = new Uint8Array(codec.byteLength(string))\n  codec.write(buffer, string, 0, buffer.byteLength)\n  return buffer\n}\n\nfunction fromArray (array) {\n  const buffer = new Uint8Array(array.length)\n  buffer.set(array)\n  return buffer\n}\n\nfunction fromBuffer (buffer) {\n  const copy = new Uint8Array(buffer.byteLength)\n  copy.set(buffer)\n  return copy\n}\n\nfunction fromArrayBuffer (arrayBuffer, byteOffset, length) {\n  return new Uint8Array(arrayBuffer, byteOffset, length)\n}\n\nfunction includes (buffer, value, byteOffset, encoding) {\n  return indexOf(buffer, value, byteOffset, encoding) !== -1\n}\n\nfunction bidirectionalIndexOf (buffer, value, byteOffset, encoding, first) {\n  if (buffer.byteLength === 0) return -1\n\n  if (typeof byteOffset === 'string') {\n    encoding = byteOffset\n    byteOffset = 0\n  } else if (byteOffset === undefined) {\n    byteOffset = first ? 0 : (buffer.length - 1)\n  } else if (byteOffset < 0) {\n    byteOffset += buffer.byteLength\n  }\n\n  if (byteOffset >= buffer.byteLength) {\n    if (first) return -1\n    else byteOffset = buffer.byteLength - 1\n  } else if (byteOffset < 0) {\n    if (first) byteOffset = 0\n    else return -1\n  }\n\n  if (typeof value === 'string') {\n    value = from(value, encoding)\n  } else if (typeof value === 'number') {\n    value = value & 0xff\n\n    if (first) {\n      return buffer.indexOf(value, byteOffset)\n    } else {\n      return buffer.lastIndexOf(value, byteOffset)\n    }\n  }\n\n  if (value.byteLength === 0) return -1\n\n  if (first) {\n    let foundIndex = -1\n\n    for (let i = byteOffset; i < buffer.byteLength; i++) {\n      if (buffer[i] === value[foundIndex === -1 ? 0 : i - foundIndex]) {\n        if (foundIndex === -1) foundIndex = i\n        if (i - foundIndex + 1 === value.byteLength) return foundIndex\n      } else {\n        if (foundIndex !== -1) i -= i - foundIndex\n        foundIndex = -1\n      }\n    }\n  } else {\n    if (byteOffset + value.byteLength > buffer.byteLength) {\n      byteOffset = buffer.byteLength - value.byteLength\n    }\n\n    for (let i = byteOffset; i >= 0; i--) {\n      let found = true\n\n      for (let j = 0; j < value.byteLength; j++) {\n        if (buffer[i + j] !== value[j]) {\n          found = false\n          break\n        }\n      }\n\n      if (found) return i\n    }\n  }\n\n  return -1\n}\n\nfunction indexOf (buffer, value, byteOffset, encoding) {\n  return bidirectionalIndexOf(buffer, value, byteOffset, encoding, true /* first */)\n}\n\nfunction lastIndexOf (buffer, value, byteOffset, encoding) {\n  return bidirectionalIndexOf(buffer, value, byteOffset, encoding, false /* last */)\n}\n\nfunction swap (buffer, n, m) {\n  const i = buffer[n]\n  buffer[n] = buffer[m]\n  buffer[m] = i\n}\n\nfunction swap16 (buffer) {\n  const len = buffer.byteLength\n\n  if (len % 2 !== 0) throw new RangeError('Buffer size must be a multiple of 16-bits')\n\n  for (let i = 0; i < len; i += 2) swap(buffer, i, i + 1)\n\n  return buffer\n}\n\nfunction swap32 (buffer) {\n  const len = buffer.byteLength\n\n  if (len % 4 !== 0) throw new RangeError('Buffer size must be a multiple of 32-bits')\n\n  for (let i = 0; i < len; i += 4) {\n    swap(buffer, i, i + 3)\n    swap(buffer, i + 1, i + 2)\n  }\n\n  return buffer\n}\n\nfunction swap64 (buffer) {\n  const len = buffer.byteLength\n\n  if (len % 8 !== 0) throw new RangeError('Buffer size must be a multiple of 64-bits')\n\n  for (let i = 0; i < len; i += 8) {\n    swap(buffer, i, i + 7)\n    swap(buffer, i + 1, i + 6)\n    swap(buffer, i + 2, i + 5)\n    swap(buffer, i + 3, i + 4)\n  }\n\n  return buffer\n}\n\nfunction toBuffer (buffer) {\n  return buffer\n}\n\nfunction toString (buffer, encoding, start = 0, end = buffer.byteLength) {\n  const len = buffer.byteLength\n\n  if (start >= len) return ''\n  if (end <= start) return ''\n  if (start < 0) start = 0\n  if (end > len) end = len\n\n  if (start !== 0 || end < len) buffer = buffer.subarray(start, end)\n\n  return codecFor(encoding).toString(buffer)\n}\n\nfunction write (buffer, string, offset, length, encoding) {\n  // write(buffer, string)\n  if (offset === undefined) {\n    encoding = 'utf8'\n\n  // write(buffer, string, encoding)\n  } else if (length === undefined && typeof offset === 'string') {\n    encoding = offset\n    offset = undefined\n\n  // write(buffer, string, offset, encoding)\n  } else if (encoding === undefined && typeof length === 'string') {\n    encoding = length\n    length = undefined\n  }\n\n  return codecFor(encoding).write(buffer, string, offset, length)\n}\n\nfunction writeDoubleLE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setFloat64(offset, value, true)\n\n  return offset + 8\n}\n\nfunction writeFloatLE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setFloat32(offset, value, true)\n\n  return offset + 4\n}\n\nfunction writeUInt32LE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setUint32(offset, value, true)\n\n  return offset + 4\n}\n\nfunction writeInt32LE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setInt32(offset, value, true)\n\n  return offset + 4\n}\n\nfunction readDoubleLE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getFloat64(offset, true)\n}\n\nfunction readFloatLE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getFloat32(offset, true)\n}\n\nfunction readUInt32LE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getUint32(offset, true)\n}\n\nfunction readInt32LE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getInt32(offset, true)\n}\n\nfunction writeDoubleBE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setFloat64(offset, value, false)\n\n  return offset + 8\n}\n\nfunction writeFloatBE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setFloat32(offset, value, false)\n\n  return offset + 4\n}\n\nfunction writeUInt32BE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setUint32(offset, value, false)\n\n  return offset + 4\n}\n\nfunction writeInt32BE (buffer, value, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n  view.setInt32(offset, value, false)\n\n  return offset + 4\n}\n\nfunction readDoubleBE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getFloat64(offset, false)\n}\n\nfunction readFloatBE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getFloat32(offset, false)\n}\n\nfunction readUInt32BE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getUint32(offset, false)\n}\n\nfunction readInt32BE (buffer, offset) {\n  if (offset === undefined) offset = 0\n\n  const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength)\n\n  return view.getInt32(offset, false)\n}\n\nmodule.exports = exports = {\n  isBuffer,\n  isEncoding,\n  alloc,\n  allocUnsafe,\n  allocUnsafeSlow,\n  byteLength,\n  compare,\n  concat,\n  copy,\n  equals,\n  fill,\n  from,\n  includes,\n  indexOf,\n  lastIndexOf,\n  swap16,\n  swap32,\n  swap64,\n  toBuffer,\n  toString,\n  write,\n  writeDoubleLE,\n  writeFloatLE,\n  writeUInt32LE,\n  writeInt32LE,\n  readDoubleLE,\n  readFloatLE,\n  readUInt32LE,\n  readInt32LE,\n  writeDoubleBE,\n  writeFloatBE,\n  writeUInt32BE,\n  writeInt32BE,\n  readDoubleBE,\n  readFloatBE,\n  readUInt32BE,\n  readInt32BE\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/browser.js?");

/***/ }),

/***/ "./node_modules/b4a/lib/ascii.js":
/*!***************************************!*\
  !*** ./node_modules/b4a/lib/ascii.js ***!
  \***************************************/
/***/ ((module) => {

eval("function byteLength (string) {\n  return string.length\n}\n\nfunction toString (buffer) {\n  const len = buffer.byteLength\n\n  let result = ''\n\n  for (let i = 0; i < len; i++) {\n    result += String.fromCharCode(buffer[i])\n  }\n\n  return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n  const len = Math.min(length, buffer.byteLength - offset)\n\n  for (let i = 0; i < len; i++) {\n    buffer[offset + i] = string.charCodeAt(i)\n  }\n\n  return len\n}\n\nmodule.exports = {\n  byteLength,\n  toString,\n  write\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/lib/ascii.js?");

/***/ }),

/***/ "./node_modules/b4a/lib/base64.js":
/*!****************************************!*\
  !*** ./node_modules/b4a/lib/base64.js ***!
  \****************************************/
/***/ ((module) => {

eval("const alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\nconst codes = new Uint8Array(256)\n\nfor (let i = 0; i < alphabet.length; i++) {\n  codes[alphabet.charCodeAt(i)] = i\n}\n\ncodes[/* - */ 0x2d] = 62\ncodes[/* _ */ 0x5f] = 63\n\nfunction byteLength (string) {\n  let len = string.length\n\n  if (string.charCodeAt(len - 1) === 0x3d) len--\n  if (len > 1 && string.charCodeAt(len - 1) === 0x3d) len--\n\n  return (len * 3) >>> 2\n}\n\nfunction toString (buffer) {\n  const len = buffer.byteLength\n\n  let result = ''\n\n  for (let i = 0; i < len; i += 3) {\n    result += (\n      alphabet[buffer[i] >> 2] +\n      alphabet[((buffer[i] & 3) << 4) | (buffer[i + 1] >> 4)] +\n      alphabet[((buffer[i + 1] & 15) << 2) | (buffer[i + 2] >> 6)] +\n      alphabet[buffer[i + 2] & 63]\n    )\n  }\n\n  if (len % 3 === 2) {\n    result = result.substring(0, result.length - 1) + '='\n  } else if (len % 3 === 1) {\n    result = result.substring(0, result.length - 2) + '=='\n  }\n\n  return result\n};\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n  const len = Math.min(length, buffer.byteLength - offset)\n\n  for (let i = 0, j = 0; j < len; i += 4) {\n    const a = codes[string.charCodeAt(i)]\n    const b = codes[string.charCodeAt(i + 1)]\n    const c = codes[string.charCodeAt(i + 2)]\n    const d = codes[string.charCodeAt(i + 3)]\n\n    buffer[j++] = (a << 2) | (b >> 4)\n    buffer[j++] = ((b & 15) << 4) | (c >> 2)\n    buffer[j++] = ((c & 3) << 6) | (d & 63)\n  }\n\n  return len\n};\n\nmodule.exports = {\n  byteLength,\n  toString,\n  write\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/lib/base64.js?");

/***/ }),

/***/ "./node_modules/b4a/lib/hex.js":
/*!*************************************!*\
  !*** ./node_modules/b4a/lib/hex.js ***!
  \*************************************/
/***/ ((module) => {

eval("function byteLength (string) {\n  return string.length >>> 1\n}\n\nfunction toString (buffer) {\n  const len = buffer.byteLength\n\n  buffer = new DataView(buffer.buffer, buffer.byteOffset, len)\n\n  let result = ''\n  let i = 0\n\n  for (let n = len - (len % 4); i < n; i += 4) {\n    result += buffer.getUint32(i).toString(16).padStart(8, '0')\n  }\n\n  for (; i < len; i++) {\n    result += buffer.getUint8(i).toString(16).padStart(2, '0')\n  }\n\n  return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n  const len = Math.min(length, buffer.byteLength - offset)\n\n  for (let i = 0; i < len; i++) {\n    const a = hexValue(string.charCodeAt(i * 2))\n    const b = hexValue(string.charCodeAt(i * 2 + 1))\n\n    if (a === undefined || b === undefined) {\n      return buffer.subarray(0, i)\n    }\n\n    buffer[offset + i] = (a << 4) | b\n  }\n\n  return len\n}\n\nmodule.exports = {\n  byteLength,\n  toString,\n  write\n}\n\nfunction hexValue (char) {\n  if (char >= 0x30 && char <= 0x39) return char - 0x30\n  if (char >= 0x41 && char <= 0x46) return char - 0x41 + 10\n  if (char >= 0x61 && char <= 0x66) return char - 0x61 + 10\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/lib/hex.js?");

/***/ }),

/***/ "./node_modules/b4a/lib/utf16le.js":
/*!*****************************************!*\
  !*** ./node_modules/b4a/lib/utf16le.js ***!
  \*****************************************/
/***/ ((module) => {

eval("function byteLength (string) {\n  return string.length * 2\n}\n\nfunction toString (buffer) {\n  const len = buffer.byteLength\n\n  let result = ''\n\n  for (let i = 0; i < len - 1; i += 2) {\n    result += String.fromCharCode(buffer[i] + (buffer[i + 1] * 256))\n  }\n\n  return result\n}\n\nfunction write (buffer, string, offset = 0, length = byteLength(string)) {\n  const len = Math.min(length, buffer.byteLength - offset)\n\n  let units = len\n\n  for (let i = 0; i < string.length; ++i) {\n    if ((units -= 2) < 0) break\n\n    const c = string.charCodeAt(i)\n    const hi = c >> 8\n    const lo = c % 256\n\n    buffer[offset + i * 2] = lo\n    buffer[offset + i * 2 + 1] = hi\n  }\n\n  return len\n}\n\nmodule.exports = {\n  byteLength,\n  toString,\n  write\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/lib/utf16le.js?");

/***/ }),

/***/ "./node_modules/b4a/lib/utf8.js":
/*!**************************************!*\
  !*** ./node_modules/b4a/lib/utf8.js ***!
  \**************************************/
/***/ ((module) => {

eval("function byteLength (string) {\n  let length = 0\n\n  for (let i = 0, n = string.length; i < n; i++) {\n    const code = string.charCodeAt(i)\n\n    if (code >= 0xd800 && code <= 0xdbff && i + 1 < n) {\n      const code = string.charCodeAt(i + 1)\n\n      if (code >= 0xdc00 && code <= 0xdfff) {\n        length += 4\n        i++\n        continue\n      }\n    }\n\n    if (code <= 0x7f) length += 1\n    else if (code <= 0x7ff) length += 2\n    else length += 3\n  }\n\n  return length\n}\n\nlet toString\n\nif (typeof TextDecoder !== 'undefined') {\n  const decoder = new TextDecoder()\n\n  toString = function toString (buffer) {\n    return decoder.decode(buffer)\n  }\n} else {\n  toString = function toString (buffer) {\n    const len = buffer.byteLength\n\n    let output = ''\n    let i = 0\n\n    while (i < len) {\n      let byte = buffer[i]\n\n      if (byte <= 0x7f) {\n        output += String.fromCharCode(byte)\n        i++\n        continue\n      }\n\n      let bytesNeeded = 0\n      let codePoint = 0\n\n      if (byte <= 0xdf) {\n        bytesNeeded = 1\n        codePoint = byte & 0x1f\n      } else if (byte <= 0xef) {\n        bytesNeeded = 2\n        codePoint = byte & 0x0f\n      } else if (byte <= 0xf4) {\n        bytesNeeded = 3\n        codePoint = byte & 0x07\n      }\n\n      if (len - i - bytesNeeded > 0) {\n        let k = 0\n\n        while (k < bytesNeeded) {\n          byte = buffer[i + k + 1]\n          codePoint = (codePoint << 6) | (byte & 0x3f)\n          k += 1\n        }\n      } else {\n        codePoint = 0xfffd\n        bytesNeeded = len - i\n      }\n\n      output += String.fromCodePoint(codePoint)\n      i += bytesNeeded + 1\n    }\n\n    return output\n  }\n}\n\nlet write\n\nif (typeof TextEncoder !== 'undefined') {\n  const encoder = new TextEncoder()\n\n  write = function write (buffer, string, offset = 0, length = byteLength(string)) {\n    const len = Math.min(length, buffer.byteLength - offset)\n    encoder.encodeInto(string, buffer.subarray(offset, offset + len))\n    return len\n  }\n} else {\n  write = function write (buffer, string, offset = 0, length = byteLength(string)) {\n    const len = Math.min(length, buffer.byteLength - offset)\n\n    buffer = buffer.subarray(offset, offset + len)\n\n    let i = 0\n    let j = 0\n\n    while (i < string.length) {\n      const code = string.codePointAt(i)\n\n      if (code <= 0x7f) {\n        buffer[j++] = code\n        i++\n        continue\n      }\n\n      let count = 0\n      let bits = 0\n\n      if (code <= 0x7ff) {\n        count = 6\n        bits = 0xc0\n      } else if (code <= 0xffff) {\n        count = 12\n        bits = 0xe0\n      } else if (code <= 0x1fffff) {\n        count = 18\n        bits = 0xf0\n      }\n\n      buffer[j++] = bits | (code >> count)\n      count -= 6\n\n      while (count >= 0) {\n        buffer[j++] = 0x80 | ((code >> count) & 0x3f)\n        count -= 6\n      }\n\n      i += code >= 0x10000 ? 2 : 1\n    }\n\n    return len\n  }\n}\n\nmodule.exports = {\n  byteLength,\n  toString,\n  write\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/b4a/lib/utf8.js?");

/***/ }),

/***/ "./node_modules/base32-encoding/index.js":
/*!***********************************************!*\
  !*** ./node_modules/base32-encoding/index.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar std = '23456789abcdefghijkmnpqrstuvwxyz'\n\nexports.stringify = function (buf, alphabet) {\n  if (alphabet == null) alphabet = std\n  return from(base32(buf), b => alphabet[b]).join('')\n}\n\nexports.parse = function (str, alphabet) {\n  if (alphabet == null) alphabet = std\n  return base256(str.split('').map(s => alphabet.indexOf(s)))\n}\n\nfunction from (buf, map) {\n  var a = new Array(buf.length)\n\n  for (var i = 0; i < a.length; i++) {\n    a[i] = map(buf[i])\n  }\n\n  return a\n}\n\nexports.encode = base32\nfunction base32 (buf, arr, offset) {\n  exports.encode.bytes = Math.ceil(buf.length * 8 / 5)\n  if (arr == null) arr = Buffer.alloc(exports.encode.bytes)\n  if (offset == null) offset = 0\n\n  // for every 5\n  for (var i = 0, j = offset; i + 5 <= buf.length; i += 5, j += 8) {\n    arr[j + 0] = ((buf[i + 0] & 0b11111000) >>> 3)\n    arr[j + 1] = ((buf[i + 0] & 0b00000111)  << 2) | ((buf[i + 1] & 0b11000000) >>> 6)\n    arr[j + 2] = ((buf[i + 1] & 0b00111110) >>> 1)\n    arr[j + 3] = ((buf[i + 1] & 0b00000001)  << 4) | ((buf[i + 2] & 0b11110000) >>> 4)\n    arr[j + 4] = ((buf[i + 2] & 0b00001111)  << 1) | ((buf[i + 3] & 0b10000000) >>> 7)\n    arr[j + 5] = ((buf[i + 3] & 0b01111100) >>> 2)\n    arr[j + 6] = ((buf[i + 3] & 0b00000011)  << 3) | ((buf[i + 4] & 0b11100000) >>> 5)\n    arr[j + 7] = ((buf[i + 4] & 0b00011111))\n  }\n\n  // This switch statement is meant to be read from bottom to top\n  switch (buf.length - i) {\n    // No need for 5 since we work in batches of 5 above\n    case 4:\n      arr[j + 4] |= ((buf[i + 3] & 0b10000000) >>> 7)\n      arr[j + 5] |= ((buf[i + 3] & 0b01111100) >>> 2)\n      arr[j + 6] |= ((buf[i + 3] & 0b00000011)  << 3)\n\n    case 3:\n      arr[j + 3] |= ((buf[i + 2] & 0b11110000) >>> 4)\n      arr[j + 4] |= ((buf[i + 2] & 0b00001111)  << 1)\n\n    case 2:\n      arr[j + 1] |= ((buf[i + 1] & 0b11000000) >>> 6)\n      arr[j + 2] |= ((buf[i + 1] & 0b00111110) >>> 1)\n      arr[j + 3] |= ((buf[i + 1] & 0b00000001)  << 4)\n\n    case 1:\n      arr[j + 0] |= ((buf[i + 0] & 0b11111000) >>> 3)\n      arr[j + 1] |= ((buf[i + 0] & 0b00000111)  << 2)\n  }\n\n  return arr\n}\n\nexports.decode = base256\nfunction base256 (buf, arr, offset) {\n  exports.decode.bytes = Math.floor(buf.length * 5 / 8)\n  if (arr == null) arr = Buffer.alloc(exports.decode.bytes)\n  if (offset == null) offset = 0\n\n  for (var i = 0, j = offset; i + 8 <= buf.length; i += 8, j += 5) {\n    arr[j + 0] = (buf[i + 0] << 3) & 255 | (buf[i + 1] >>> 2) & 255\n    arr[j + 1] = (buf[i + 1] << 6) & 255 | (buf[i + 2]  << 1) & 255 | (buf[i + 3] >>> 4) & 255\n    arr[j + 2] = (buf[i + 3] << 4) & 255 | (buf[i + 4] >>> 1) & 255\n    arr[j + 3] = (buf[i + 4] << 7) & 255 | (buf[i + 5]  << 2) & 255 | (buf[i + 6]  >> 3) & 255\n    arr[j + 4] = (buf[i + 6] << 5) & 255 | (buf[i + 7]      ) & 255\n  }\n\n  switch (buf.length - i) {\n    case 7:\n      arr[j + 3] |= (buf[i + 6]  >> 3) & 255\n      arr[j + 4] |= (buf[i + 6]  << 5) & 255\n\n    case 6:\n      arr[j + 3] |= (buf[i + 5]  << 2) & 255\n\n    case 5:\n      arr[j + 2] |= (buf[i + 4] >>> 1) & 255\n      arr[j + 3] |= (buf[i + 4]  << 7) & 255\n\n    case 4:\n      arr[j + 1] |= (buf[i + 3] >>> 4) & 255\n      arr[j + 2] |= (buf[i + 3]  << 4) & 255\n\n    case 3:\n      arr[j + 1] |= (buf[i + 2]  << 1) & 255\n\n    case 2:\n      arr[j + 0] |= (buf[i + 1] >>> 2) & 255\n      arr[j + 1] |= (buf[i + 1]  << 6) & 255\n\n    case 1:\n      arr[j + 0] |= (buf[i + 0]  << 3) & 255\n  }\n\n  return arr\n}\n\nexports.encodingLength = function (buf) {\n  return Math.ceil(buf.length * 8 / 5)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/base32-encoding/index.js?");

/***/ }),

/***/ "./node_modules/base64-js/index.js":
/*!*****************************************!*\
  !*** ./node_modules/base64-js/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/base64-js/index.js?");

/***/ }),

/***/ "./node_modules/bech32/dist/index.js":
/*!*******************************************!*\
  !*** ./node_modules/bech32/dist/index.js ***!
  \*******************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n    const x = ALPHABET.charAt(z);\n    ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n    const 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}\nfunction prefixChk(prefix) {\n    let chk = 1;\n    for (let i = 0; i < prefix.length; ++i) {\n        const c = prefix.charCodeAt(i);\n        if (c < 33 || c > 126)\n            return 'Invalid prefix (' + prefix + ')';\n        chk = polymodStep(chk) ^ (c >> 5);\n    }\n    chk = polymodStep(chk);\n    for (let i = 0; i < prefix.length; ++i) {\n        const v = prefix.charCodeAt(i);\n        chk = polymodStep(chk) ^ (v & 0x1f);\n    }\n    return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n    let value = 0;\n    let bits = 0;\n    const maxV = (1 << outBits) - 1;\n    const result = [];\n    for (let i = 0; i < data.length; ++i) {\n        value = (value << inBits) | data[i];\n        bits += inBits;\n        while (bits >= outBits) {\n            bits -= outBits;\n            result.push((value >> bits) & maxV);\n        }\n    }\n    if (pad) {\n        if (bits > 0) {\n            result.push((value << (outBits - bits)) & maxV);\n        }\n    }\n    else {\n        if (bits >= inBits)\n            return 'Excess padding';\n        if ((value << (outBits - bits)) & maxV)\n            return 'Non-zero padding';\n    }\n    return result;\n}\nfunction toWords(bytes) {\n    return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n    const res = convert(words, 5, 8, false);\n    if (Array.isArray(res))\n        return res;\n}\nfunction fromWords(words) {\n    const res = convert(words, 5, 8, false);\n    if (Array.isArray(res))\n        return res;\n    throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n    let ENCODING_CONST;\n    if (encoding === 'bech32') {\n        ENCODING_CONST = 1;\n    }\n    else {\n        ENCODING_CONST = 0x2bc830a3;\n    }\n    function encode(prefix, words, LIMIT) {\n        LIMIT = LIMIT || 90;\n        if (prefix.length + 7 + words.length > LIMIT)\n            throw new TypeError('Exceeds length limit');\n        prefix = prefix.toLowerCase();\n        // determine chk mod\n        let chk = prefixChk(prefix);\n        if (typeof chk === 'string')\n            throw new Error(chk);\n        let result = prefix + '1';\n        for (let i = 0; i < words.length; ++i) {\n            const x = words[i];\n            if (x >> 5 !== 0)\n                throw new Error('Non 5-bit word');\n            chk = polymodStep(chk) ^ x;\n            result += ALPHABET.charAt(x);\n        }\n        for (let i = 0; i < 6; ++i) {\n            chk = polymodStep(chk);\n        }\n        chk ^= ENCODING_CONST;\n        for (let i = 0; i < 6; ++i) {\n            const v = (chk >> ((5 - i) * 5)) & 0x1f;\n            result += ALPHABET.charAt(v);\n        }\n        return result;\n    }\n    function __decode(str, LIMIT) {\n        LIMIT = LIMIT || 90;\n        if (str.length < 8)\n            return str + ' too short';\n        if (str.length > LIMIT)\n            return 'Exceeds length limit';\n        // don't allow mixed case\n        const lowered = str.toLowerCase();\n        const uppered = str.toUpperCase();\n        if (str !== lowered && str !== uppered)\n            return 'Mixed-case string ' + str;\n        str = lowered;\n        const split = str.lastIndexOf('1');\n        if (split === -1)\n            return 'No separator character for ' + str;\n        if (split === 0)\n            return 'Missing prefix for ' + str;\n        const prefix = str.slice(0, split);\n        const wordChars = str.slice(split + 1);\n        if (wordChars.length < 6)\n            return 'Data too short';\n        let chk = prefixChk(prefix);\n        if (typeof chk === 'string')\n            return chk;\n        const words = [];\n        for (let i = 0; i < wordChars.length; ++i) {\n            const c = wordChars.charAt(i);\n            const v = ALPHABET_MAP[c];\n            if (v === undefined)\n                return 'Unknown character ' + c;\n            chk = polymodStep(chk) ^ v;\n            // not in the checksum?\n            if (i + 6 >= wordChars.length)\n                continue;\n            words.push(v);\n        }\n        if (chk !== ENCODING_CONST)\n            return 'Invalid checksum for ' + str;\n        return { prefix, words };\n    }\n    function decodeUnsafe(str, LIMIT) {\n        const res = __decode(str, LIMIT);\n        if (typeof res === 'object')\n            return res;\n    }\n    function decode(str, LIMIT) {\n        const res = __decode(str, LIMIT);\n        if (typeof res === 'object')\n            return res;\n        throw new Error(res);\n    }\n    return {\n        decodeUnsafe,\n        decode,\n        encode,\n        toWords,\n        fromWordsUnsafe,\n        fromWords,\n    };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bech32/dist/index.js?");

/***/ }),

/***/ "./node_modules/bignumber.js/bignumber.js":
/*!************************************************!*\
  !*** ./node_modules/bignumber.js/bignumber.js ***!
  \************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalObject) {\r\n  'use strict';\r\n\r\n/*\r\n *      bignumber.js v9.3.0\r\n *      A JavaScript library for arbitrary-precision arithmetic.\r\n *      https://github.com/MikeMcl/bignumber.js\r\n *      Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>\r\n *      MIT Licensed.\r\n *\r\n *      BigNumber.prototype methods     |  BigNumber methods\r\n *                                      |\r\n *      absoluteValue            abs    |  clone\r\n *      comparedTo                      |  config               set\r\n *      decimalPlaces            dp     |      DECIMAL_PLACES\r\n *      dividedBy                div    |      ROUNDING_MODE\r\n *      dividedToIntegerBy       idiv   |      EXPONENTIAL_AT\r\n *      exponentiatedBy          pow    |      RANGE\r\n *      integerValue                    |      CRYPTO\r\n *      isEqualTo                eq     |      MODULO_MODE\r\n *      isFinite                        |      POW_PRECISION\r\n *      isGreaterThan            gt     |      FORMAT\r\n *      isGreaterThanOrEqualTo   gte    |      ALPHABET\r\n *      isInteger                       |  isBigNumber\r\n *      isLessThan               lt     |  maximum              max\r\n *      isLessThanOrEqualTo      lte    |  minimum              min\r\n *      isNaN                           |  random\r\n *      isNegative                      |  sum\r\n *      isPositive                      |\r\n *      isZero                          |\r\n *      minus                           |\r\n *      modulo                   mod    |\r\n *      multipliedBy             times  |\r\n *      negated                         |\r\n *      plus                            |\r\n *      precision                sd     |\r\n *      shiftedBy                       |\r\n *      squareRoot               sqrt   |\r\n *      toExponential                   |\r\n *      toFixed                         |\r\n *      toFormat                        |\r\n *      toFraction                      |\r\n *      toJSON                          |\r\n *      toNumber                        |\r\n *      toPrecision                     |\r\n *      toString                        |\r\n *      valueOf                         |\r\n *\r\n */\r\n\r\n\r\n  var BigNumber,\r\n    isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n    mathceil = Math.ceil,\r\n    mathfloor = Math.floor,\r\n\r\n    bignumberError = '[BigNumber Error] ',\r\n    tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n    BASE = 1e14,\r\n    LOG_BASE = 14,\r\n    MAX_SAFE_INTEGER = 0x1fffffffffffff,         // 2^53 - 1\r\n    // MAX_INT32 = 0x7fffffff,                   // 2^31 - 1\r\n    POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n    SQRT_BASE = 1e7,\r\n\r\n    // EDITABLE\r\n    // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n    // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n    MAX = 1E9;                                   // 0 to MAX_INT32\r\n\r\n\r\n  /*\r\n   * Create and return a BigNumber constructor.\r\n   */\r\n  function clone(configObject) {\r\n    var div, convertBase, parseNumeric,\r\n      P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n      ONE = new BigNumber(1),\r\n\r\n\r\n      //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n      // The default values below must be integers within the inclusive ranges stated.\r\n      // The values can also be changed at run-time using BigNumber.set.\r\n\r\n      // The maximum number of decimal places for operations involving division.\r\n      DECIMAL_PLACES = 20,                     // 0 to MAX\r\n\r\n      // The rounding mode used when rounding to the above decimal places, and when using\r\n      // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n      // UP         0 Away from zero.\r\n      // DOWN       1 Towards zero.\r\n      // CEIL       2 Towards +Infinity.\r\n      // FLOOR      3 Towards -Infinity.\r\n      // HALF_UP    4 Towards nearest neighbour. If equidistant, up.\r\n      // HALF_DOWN  5 Towards nearest neighbour. If equidistant, down.\r\n      // HALF_EVEN  6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n      // HALF_CEIL  7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n      // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n      ROUNDING_MODE = 4,                       // 0 to 8\r\n\r\n      // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n      // The exponent value at and beneath which toString returns exponential notation.\r\n      // Number type: -7\r\n      TO_EXP_NEG = -7,                         // 0 to -MAX\r\n\r\n      // The exponent value at and above which toString returns exponential notation.\r\n      // Number type: 21\r\n      TO_EXP_POS = 21,                         // 0 to MAX\r\n\r\n      // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n      // The minimum exponent value, beneath which underflow to zero occurs.\r\n      // Number type: -324  (5e-324)\r\n      MIN_EXP = -1e7,                          // -1 to -MAX\r\n\r\n      // The maximum exponent value, above which overflow to Infinity occurs.\r\n      // Number type:  308  (1.7976931348623157e+308)\r\n      // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n      MAX_EXP = 1e7,                           // 1 to MAX\r\n\r\n      // Whether to use cryptographically-secure random number generation, if available.\r\n      CRYPTO = false,                          // true or false\r\n\r\n      // The modulo mode used when calculating the modulus: a mod n.\r\n      // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n      // The remainder (r) is calculated as: r = a - n * q.\r\n      //\r\n      // UP        0 The remainder is positive if the dividend is negative, else is negative.\r\n      // DOWN      1 The remainder has the same sign as the dividend.\r\n      //             This modulo mode is commonly known as 'truncated division' and is\r\n      //             equivalent to (a % n) in JavaScript.\r\n      // FLOOR     3 The remainder has the same sign as the divisor (Python %).\r\n      // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n      // EUCLID    9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n      //             The remainder is always positive.\r\n      //\r\n      // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n      // modes are commonly used for the modulus operation.\r\n      // Although the other rounding modes can also be used, they may not give useful results.\r\n      MODULO_MODE = 1,                         // 0 to 9\r\n\r\n      // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n      // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n      POW_PRECISION = 0,                       // 0 to MAX\r\n\r\n      // The format specification used by the BigNumber.prototype.toFormat method.\r\n      FORMAT = {\r\n        prefix: '',\r\n        groupSize: 3,\r\n        secondaryGroupSize: 0,\r\n        groupSeparator: ',',\r\n        decimalSeparator: '.',\r\n        fractionGroupSize: 0,\r\n        fractionGroupSeparator: '\\xA0',        // non-breaking space\r\n        suffix: ''\r\n      },\r\n\r\n      // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n      // '-', '.', whitespace, or repeated character.\r\n      // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n      ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n      alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n    //------------------------------------------------------------------------------------------\r\n\r\n\r\n    // CONSTRUCTOR\r\n\r\n\r\n    /*\r\n     * The BigNumber constructor and exported function.\r\n     * Create and return a new instance of a BigNumber object.\r\n     *\r\n     * v {number|string|BigNumber} A numeric value.\r\n     * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n     */\r\n    function BigNumber(v, b) {\r\n      var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n        x = this;\r\n\r\n      // Enable constructor call without `new`.\r\n      if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n      if (b == null) {\r\n\r\n        if (v && v._isBigNumber === true) {\r\n          x.s = v.s;\r\n\r\n          if (!v.c || v.e > MAX_EXP) {\r\n            x.c = x.e = null;\r\n          } else if (v.e < MIN_EXP) {\r\n            x.c = [x.e = 0];\r\n          } else {\r\n            x.e = v.e;\r\n            x.c = v.c.slice();\r\n          }\r\n\r\n          return;\r\n        }\r\n\r\n        if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n          // Use `1 / n` to handle minus zero also.\r\n          x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n          // Fast path for integers, where n < 2147483648 (2**31).\r\n          if (v === ~~v) {\r\n            for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n            if (e > MAX_EXP) {\r\n              x.c = x.e = null;\r\n            } else {\r\n              x.e = e;\r\n              x.c = [v];\r\n            }\r\n\r\n            return;\r\n          }\r\n\r\n          str = String(v);\r\n        } else {\r\n\r\n          if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n          x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n        // Exponential form?\r\n        if ((i = str.search(/e/i)) > 0) {\r\n\r\n          // Determine exponent.\r\n          if (e < 0) e = i;\r\n          e += +str.slice(i + 1);\r\n          str = str.substring(0, i);\r\n        } else if (e < 0) {\r\n\r\n          // Integer.\r\n          e = str.length;\r\n        }\r\n\r\n      } else {\r\n\r\n        // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n        intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n        // Allow exponential notation to be used with base 10 argument, while\r\n        // also rounding to DECIMAL_PLACES as with other bases.\r\n        if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n          x = new BigNumber(v);\r\n          return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n        }\r\n\r\n        str = String(v);\r\n\r\n        if (isNum = typeof v == 'number') {\r\n\r\n          // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n          if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n          x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n          // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n          if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n            throw Error\r\n             (tooManyDigits + v);\r\n          }\r\n        } else {\r\n          x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n        }\r\n\r\n        alphabet = ALPHABET.slice(0, b);\r\n        e = i = 0;\r\n\r\n        // Check that str is a valid base b number.\r\n        // Don't use RegExp, so alphabet can contain special characters.\r\n        for (len = str.length; i < len; i++) {\r\n          if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n            if (c == '.') {\r\n\r\n              // If '.' is not the first character and it has not be found before.\r\n              if (i > e) {\r\n                e = len;\r\n                continue;\r\n              }\r\n            } else if (!caseChanged) {\r\n\r\n              // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n              if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n                  str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n                caseChanged = true;\r\n                i = -1;\r\n                e = 0;\r\n                continue;\r\n              }\r\n            }\r\n\r\n            return parseNumeric(x, String(v), isNum, b);\r\n          }\r\n        }\r\n\r\n        // Prevent later check for length on converted number.\r\n        isNum = false;\r\n        str = convertBase(str, b, 10, x.s);\r\n\r\n        // Decimal point?\r\n        if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n        else e = str.length;\r\n      }\r\n\r\n      // Determine leading zeros.\r\n      for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n      // Determine trailing zeros.\r\n      for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n      if (str = str.slice(i, ++len)) {\r\n        len -= i;\r\n\r\n        // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n        if (isNum && BigNumber.DEBUG &&\r\n          len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n            throw Error\r\n             (tooManyDigits + (x.s * v));\r\n        }\r\n\r\n         // Overflow?\r\n        if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n          // Infinity.\r\n          x.c = x.e = null;\r\n\r\n        // Underflow?\r\n        } else if (e < MIN_EXP) {\r\n\r\n          // Zero.\r\n          x.c = [x.e = 0];\r\n        } else {\r\n          x.e = e;\r\n          x.c = [];\r\n\r\n          // Transform base\r\n\r\n          // e is the base 10 exponent.\r\n          // i is where to slice str to get the first element of the coefficient array.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (e < 0) i += LOG_BASE;  // i < 1\r\n\r\n          if (i < len) {\r\n            if (i) x.c.push(+str.slice(0, i));\r\n\r\n            for (len -= LOG_BASE; i < len;) {\r\n              x.c.push(+str.slice(i, i += LOG_BASE));\r\n            }\r\n\r\n            i = LOG_BASE - (str = str.slice(i)).length;\r\n          } else {\r\n            i -= len;\r\n          }\r\n\r\n          for (; i--; str += '0');\r\n          x.c.push(+str);\r\n        }\r\n      } else {\r\n\r\n        // Zero.\r\n        x.c = [x.e = 0];\r\n      }\r\n    }\r\n\r\n\r\n    // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n    BigNumber.clone = clone;\r\n\r\n    BigNumber.ROUND_UP = 0;\r\n    BigNumber.ROUND_DOWN = 1;\r\n    BigNumber.ROUND_CEIL = 2;\r\n    BigNumber.ROUND_FLOOR = 3;\r\n    BigNumber.ROUND_HALF_UP = 4;\r\n    BigNumber.ROUND_HALF_DOWN = 5;\r\n    BigNumber.ROUND_HALF_EVEN = 6;\r\n    BigNumber.ROUND_HALF_CEIL = 7;\r\n    BigNumber.ROUND_HALF_FLOOR = 8;\r\n    BigNumber.EUCLID = 9;\r\n\r\n\r\n    /*\r\n     * Configure infrequently-changing library-wide settings.\r\n     *\r\n     * Accept an object with the following optional properties (if the value of a property is\r\n     * a number, it must be an integer within the inclusive range stated):\r\n     *\r\n     *   DECIMAL_PLACES   {number}           0 to MAX\r\n     *   ROUNDING_MODE    {number}           0 to 8\r\n     *   EXPONENTIAL_AT   {number|number[]}  -MAX to MAX  or  [-MAX to 0, 0 to MAX]\r\n     *   RANGE            {number|number[]}  -MAX to MAX (not zero)  or  [-MAX to -1, 1 to MAX]\r\n     *   CRYPTO           {boolean}          true or false\r\n     *   MODULO_MODE      {number}           0 to 9\r\n     *   POW_PRECISION       {number}           0 to MAX\r\n     *   ALPHABET         {string}           A string of two or more unique characters which does\r\n     *                                       not contain '.'.\r\n     *   FORMAT           {object}           An object with some of the following properties:\r\n     *     prefix                 {string}\r\n     *     groupSize              {number}\r\n     *     secondaryGroupSize     {number}\r\n     *     groupSeparator         {string}\r\n     *     decimalSeparator       {string}\r\n     *     fractionGroupSize      {number}\r\n     *     fractionGroupSeparator {string}\r\n     *     suffix                 {string}\r\n     *\r\n     * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n     *\r\n     * E.g.\r\n     * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n     *\r\n     * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n     *\r\n     * Return an object with the properties current values.\r\n     */\r\n    BigNumber.config = BigNumber.set = function (obj) {\r\n      var p, v;\r\n\r\n      if (obj != null) {\r\n\r\n        if (typeof obj == 'object') {\r\n\r\n          // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            DECIMAL_PLACES = v;\r\n          }\r\n\r\n          // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n          // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 8, p);\r\n            ROUNDING_MODE = v;\r\n          }\r\n\r\n          // EXPONENTIAL_AT {number|number[]}\r\n          // Integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n          // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, 0, p);\r\n              intCheck(v[1], 0, MAX, p);\r\n              TO_EXP_NEG = v[0];\r\n              TO_EXP_POS = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n            }\r\n          }\r\n\r\n          // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n          // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n          // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n          if (obj.hasOwnProperty(p = 'RANGE')) {\r\n            v = obj[p];\r\n            if (v && v.pop) {\r\n              intCheck(v[0], -MAX, -1, p);\r\n              intCheck(v[1], 1, MAX, p);\r\n              MIN_EXP = v[0];\r\n              MAX_EXP = v[1];\r\n            } else {\r\n              intCheck(v, -MAX, MAX, p);\r\n              if (v) {\r\n                MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n              } else {\r\n                throw Error\r\n                 (bignumberError + p + ' cannot be zero: ' + v);\r\n              }\r\n            }\r\n          }\r\n\r\n          // CRYPTO {boolean} true or false.\r\n          // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n          // '[BigNumber Error] crypto unavailable'\r\n          if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n            v = obj[p];\r\n            if (v === !!v) {\r\n              if (v) {\r\n                if (typeof crypto != 'undefined' && crypto &&\r\n                 (crypto.getRandomValues || crypto.randomBytes)) {\r\n                  CRYPTO = v;\r\n                } else {\r\n                  CRYPTO = !v;\r\n                  throw Error\r\n                   (bignumberError + 'crypto unavailable');\r\n                }\r\n              } else {\r\n                CRYPTO = v;\r\n              }\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' not true or false: ' + v);\r\n            }\r\n          }\r\n\r\n          // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n          // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, 9, p);\r\n            MODULO_MODE = v;\r\n          }\r\n\r\n          // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n          // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n          if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n            v = obj[p];\r\n            intCheck(v, 0, MAX, p);\r\n            POW_PRECISION = v;\r\n          }\r\n\r\n          // FORMAT {object}\r\n          // '[BigNumber Error] FORMAT not an object: {v}'\r\n          if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n            v = obj[p];\r\n            if (typeof v == 'object') FORMAT = v;\r\n            else throw Error\r\n             (bignumberError + p + ' not an object: ' + v);\r\n          }\r\n\r\n          // ALPHABET {string}\r\n          // '[BigNumber Error] ALPHABET invalid: {v}'\r\n          if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n            v = obj[p];\r\n\r\n            // Disallow if less than two characters,\r\n            // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n            if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n              alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n              ALPHABET = v;\r\n            } else {\r\n              throw Error\r\n               (bignumberError + p + ' invalid: ' + v);\r\n            }\r\n          }\r\n\r\n        } else {\r\n\r\n          // '[BigNumber Error] Object expected: {v}'\r\n          throw Error\r\n           (bignumberError + 'Object expected: ' + obj);\r\n        }\r\n      }\r\n\r\n      return {\r\n        DECIMAL_PLACES: DECIMAL_PLACES,\r\n        ROUNDING_MODE: ROUNDING_MODE,\r\n        EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n        RANGE: [MIN_EXP, MAX_EXP],\r\n        CRYPTO: CRYPTO,\r\n        MODULO_MODE: MODULO_MODE,\r\n        POW_PRECISION: POW_PRECISION,\r\n        FORMAT: FORMAT,\r\n        ALPHABET: ALPHABET\r\n      };\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if v is a BigNumber instance, otherwise return false.\r\n     *\r\n     * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n     *\r\n     * v {any}\r\n     *\r\n     * '[BigNumber Error] Invalid BigNumber: {v}'\r\n     */\r\n    BigNumber.isBigNumber = function (v) {\r\n      if (!v || v._isBigNumber !== true) return false;\r\n      if (!BigNumber.DEBUG) return true;\r\n\r\n      var i, n,\r\n        c = v.c,\r\n        e = v.e,\r\n        s = v.s;\r\n\r\n      out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n        if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n          // If the first element is zero, the BigNumber value must be zero.\r\n          if (c[0] === 0) {\r\n            if (e === 0 && c.length === 1) return true;\r\n            break out;\r\n          }\r\n\r\n          // Calculate number of digits that c[0] should have, based on the exponent.\r\n          i = (e + 1) % LOG_BASE;\r\n          if (i < 1) i += LOG_BASE;\r\n\r\n          // Calculate number of digits of c[0].\r\n          //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n          if (String(c[0]).length == i) {\r\n\r\n            for (i = 0; i < c.length; i++) {\r\n              n = c[i];\r\n              if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n            }\r\n\r\n            // Last element cannot be zero, unless it is the only element.\r\n            if (n !== 0) return true;\r\n          }\r\n        }\r\n\r\n      // Infinity/NaN\r\n      } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n        return true;\r\n      }\r\n\r\n      throw Error\r\n        (bignumberError + 'Invalid BigNumber: ' + v);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the maximum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.maximum = BigNumber.max = function () {\r\n      return maxOrMin(arguments, -1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the minimum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.minimum = BigNumber.min = function () {\r\n      return maxOrMin(arguments, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n     * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n     * zeros are produced).\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n     * '[BigNumber Error] crypto unavailable'\r\n     */\r\n    BigNumber.random = (function () {\r\n      var pow2_53 = 0x20000000000000;\r\n\r\n      // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n      // Check if Math.random() produces more than 32 bits of randomness.\r\n      // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n      // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n      var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n       ? function () { return mathfloor(Math.random() * pow2_53); }\r\n       : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n         (Math.random() * 0x800000 | 0); };\r\n\r\n      return function (dp) {\r\n        var a, b, e, k, v,\r\n          i = 0,\r\n          c = [],\r\n          rand = new BigNumber(ONE);\r\n\r\n        if (dp == null) dp = DECIMAL_PLACES;\r\n        else intCheck(dp, 0, MAX);\r\n\r\n        k = mathceil(dp / LOG_BASE);\r\n\r\n        if (CRYPTO) {\r\n\r\n          // Browsers supporting crypto.getRandomValues.\r\n          if (crypto.getRandomValues) {\r\n\r\n            a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n            for (; i < k;) {\r\n\r\n              // 53 bits:\r\n              // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n              // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n              // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n              //                                     11111 11111111 11111111\r\n              // 0x20000 is 2^21.\r\n              v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n              // Rejection sampling:\r\n              // 0 <= v < 9007199254740992\r\n              // Probability that v >= 9e15, is\r\n              // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n              if (v >= 9e15) {\r\n                b = crypto.getRandomValues(new Uint32Array(2));\r\n                a[i] = b[0];\r\n                a[i + 1] = b[1];\r\n              } else {\r\n\r\n                // 0 <= v <= 8999999999999999\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 2;\r\n              }\r\n            }\r\n            i = k / 2;\r\n\r\n          // Node.js supporting crypto.randomBytes.\r\n          } else if (crypto.randomBytes) {\r\n\r\n            // buffer\r\n            a = crypto.randomBytes(k *= 7);\r\n\r\n            for (; i < k;) {\r\n\r\n              // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n              // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n              // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n              // 0 <= v < 9007199254740992\r\n              v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n                 (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n                 (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n              if (v >= 9e15) {\r\n                crypto.randomBytes(7).copy(a, i);\r\n              } else {\r\n\r\n                // 0 <= (v % 1e14) <= 99999999999999\r\n                c.push(v % 1e14);\r\n                i += 7;\r\n              }\r\n            }\r\n            i = k / 7;\r\n          } else {\r\n            CRYPTO = false;\r\n            throw Error\r\n             (bignumberError + 'crypto unavailable');\r\n          }\r\n        }\r\n\r\n        // Use Math.random.\r\n        if (!CRYPTO) {\r\n\r\n          for (; i < k;) {\r\n            v = random53bitInt();\r\n            if (v < 9e15) c[i++] = v % 1e14;\r\n          }\r\n        }\r\n\r\n        k = c[--i];\r\n        dp %= LOG_BASE;\r\n\r\n        // Convert trailing digits to zeros according to dp.\r\n        if (k && dp) {\r\n          v = POWS_TEN[LOG_BASE - dp];\r\n          c[i] = mathfloor(k / v) * v;\r\n        }\r\n\r\n        // Remove trailing elements which are zero.\r\n        for (; c[i] === 0; c.pop(), i--);\r\n\r\n        // Zero?\r\n        if (i < 0) {\r\n          c = [e = 0];\r\n        } else {\r\n\r\n          // Remove leading elements which are zero and adjust exponent accordingly.\r\n          for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n          // Count the digits of the first element of c to determine leading zeros, and...\r\n          for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n          // adjust the exponent accordingly.\r\n          if (i < LOG_BASE) e -= LOG_BASE - i;\r\n        }\r\n\r\n        rand.e = e;\r\n        rand.c = c;\r\n        return rand;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the sum of the arguments.\r\n     *\r\n     * arguments {number|string|BigNumber}\r\n     */\r\n    BigNumber.sum = function () {\r\n      var i = 1,\r\n        args = arguments,\r\n        sum = new BigNumber(args[0]);\r\n      for (; i < args.length;) sum = sum.plus(args[i++]);\r\n      return sum;\r\n    };\r\n\r\n\r\n    // PRIVATE FUNCTIONS\r\n\r\n\r\n    // Called by BigNumber and BigNumber.prototype.toString.\r\n    convertBase = (function () {\r\n      var decimal = '0123456789';\r\n\r\n      /*\r\n       * Convert string of baseIn to an array of numbers of baseOut.\r\n       * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n       * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n       */\r\n      function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n        var j,\r\n          arr = [0],\r\n          arrL,\r\n          i = 0,\r\n          len = str.length;\r\n\r\n        for (; i < len;) {\r\n          for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n          arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n          for (j = 0; j < arr.length; j++) {\r\n\r\n            if (arr[j] > baseOut - 1) {\r\n              if (arr[j + 1] == null) arr[j + 1] = 0;\r\n              arr[j + 1] += arr[j] / baseOut | 0;\r\n              arr[j] %= baseOut;\r\n            }\r\n          }\r\n        }\r\n\r\n        return arr.reverse();\r\n      }\r\n\r\n      // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n      // If the caller is toString, we are converting from base 10 to baseOut.\r\n      // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n      return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n        var alphabet, d, e, k, r, x, xc, y,\r\n          i = str.indexOf('.'),\r\n          dp = DECIMAL_PLACES,\r\n          rm = ROUNDING_MODE;\r\n\r\n        // Non-integer.\r\n        if (i >= 0) {\r\n          k = POW_PRECISION;\r\n\r\n          // Unlimited precision.\r\n          POW_PRECISION = 0;\r\n          str = str.replace('.', '');\r\n          y = new BigNumber(baseIn);\r\n          x = y.pow(str.length - i);\r\n          POW_PRECISION = k;\r\n\r\n          // Convert str as if an integer, then restore the fraction part by dividing the\r\n          // result by its base raised to a power.\r\n\r\n          y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n           10, baseOut, decimal);\r\n          y.e = y.c.length;\r\n        }\r\n\r\n        // Convert the number as integer.\r\n\r\n        xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n         ? (alphabet = ALPHABET, decimal)\r\n         : (alphabet = decimal, ALPHABET));\r\n\r\n        // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n        e = k = xc.length;\r\n\r\n        // Remove trailing zeros.\r\n        for (; xc[--k] == 0; xc.pop());\r\n\r\n        // Zero?\r\n        if (!xc[0]) return alphabet.charAt(0);\r\n\r\n        // Does str represent an integer? If so, no need for the division.\r\n        if (i < 0) {\r\n          --e;\r\n        } else {\r\n          x.c = xc;\r\n          x.e = e;\r\n\r\n          // The sign is needed for correct rounding.\r\n          x.s = sign;\r\n          x = div(x, y, dp, rm, baseOut);\r\n          xc = x.c;\r\n          r = x.r;\r\n          e = x.e;\r\n        }\r\n\r\n        // xc now represents str converted to baseOut.\r\n\r\n        // The index of the rounding digit.\r\n        d = e + dp + 1;\r\n\r\n        // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n        i = xc[d];\r\n\r\n        // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n        k = baseOut / 2;\r\n        r = r || d < 0 || xc[d + 1] != null;\r\n\r\n        r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n              : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n               rm == (x.s < 0 ? 8 : 7));\r\n\r\n        // If the index of the rounding digit is not greater than zero, or xc represents\r\n        // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n        // such as 0.00001.\r\n        if (d < 1 || !xc[0]) {\r\n\r\n          // 1^-dp or 0\r\n          str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n        } else {\r\n\r\n          // Truncate xc to the required number of decimal places.\r\n          xc.length = d;\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            // Rounding up may mean the previous digit has to be rounded up and so on.\r\n            for (--baseOut; ++xc[--d] > baseOut;) {\r\n              xc[d] = 0;\r\n\r\n              if (!d) {\r\n                ++e;\r\n                xc = [1].concat(xc);\r\n              }\r\n            }\r\n          }\r\n\r\n          // Determine trailing zeros.\r\n          for (k = xc.length; !xc[--k];);\r\n\r\n          // E.g. [4, 11, 15] becomes 4bf.\r\n          for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n          // Add leading zeros, decimal point and trailing zeros as required.\r\n          str = toFixedPoint(str, e, alphabet.charAt(0));\r\n        }\r\n\r\n        // The caller will add the sign.\r\n        return str;\r\n      };\r\n    })();\r\n\r\n\r\n    // Perform division in the specified base. Called by div and convertBase.\r\n    div = (function () {\r\n\r\n      // Assume non-zero x and k.\r\n      function multiply(x, k, base) {\r\n        var m, temp, xlo, xhi,\r\n          carry = 0,\r\n          i = x.length,\r\n          klo = k % SQRT_BASE,\r\n          khi = k / SQRT_BASE | 0;\r\n\r\n        for (x = x.slice(); i--;) {\r\n          xlo = x[i] % SQRT_BASE;\r\n          xhi = x[i] / SQRT_BASE | 0;\r\n          m = khi * xlo + xhi * klo;\r\n          temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n          carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n          x[i] = temp % base;\r\n        }\r\n\r\n        if (carry) x = [carry].concat(x);\r\n\r\n        return x;\r\n      }\r\n\r\n      function compare(a, b, aL, bL) {\r\n        var i, cmp;\r\n\r\n        if (aL != bL) {\r\n          cmp = aL > bL ? 1 : -1;\r\n        } else {\r\n\r\n          for (i = cmp = 0; i < aL; i++) {\r\n\r\n            if (a[i] != b[i]) {\r\n              cmp = a[i] > b[i] ? 1 : -1;\r\n              break;\r\n            }\r\n          }\r\n        }\r\n\r\n        return cmp;\r\n      }\r\n\r\n      function subtract(a, b, aL, base) {\r\n        var i = 0;\r\n\r\n        // Subtract b from a.\r\n        for (; aL--;) {\r\n          a[aL] -= i;\r\n          i = a[aL] < b[aL] ? 1 : 0;\r\n          a[aL] = i * base + a[aL] - b[aL];\r\n        }\r\n\r\n        // Remove leading zeros.\r\n        for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n      }\r\n\r\n      // x: dividend, y: divisor.\r\n      return function (x, y, dp, rm, base) {\r\n        var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n          yL, yz,\r\n          s = x.s == y.s ? 1 : -1,\r\n          xc = x.c,\r\n          yc = y.c;\r\n\r\n        // Either NaN, Infinity or 0?\r\n        if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n          return new BigNumber(\r\n\r\n           // Return NaN if either NaN, or both Infinity or 0.\r\n           !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n            // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n            xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n         );\r\n        }\r\n\r\n        q = new BigNumber(s);\r\n        qc = q.c = [];\r\n        e = x.e - y.e;\r\n        s = dp + e + 1;\r\n\r\n        if (!base) {\r\n          base = BASE;\r\n          e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n          s = s / LOG_BASE | 0;\r\n        }\r\n\r\n        // Result exponent may be one less then the current value of e.\r\n        // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n        for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n        if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n        if (s < 0) {\r\n          qc.push(1);\r\n          more = true;\r\n        } else {\r\n          xL = xc.length;\r\n          yL = yc.length;\r\n          i = 0;\r\n          s += 2;\r\n\r\n          // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n          n = mathfloor(base / (yc[0] + 1));\r\n\r\n          // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n          // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n          if (n > 1) {\r\n            yc = multiply(yc, n, base);\r\n            xc = multiply(xc, n, base);\r\n            yL = yc.length;\r\n            xL = xc.length;\r\n          }\r\n\r\n          xi = yL;\r\n          rem = xc.slice(0, yL);\r\n          remL = rem.length;\r\n\r\n          // Add zeros to make remainder as long as divisor.\r\n          for (; remL < yL; rem[remL++] = 0);\r\n          yz = yc.slice();\r\n          yz = [0].concat(yz);\r\n          yc0 = yc[0];\r\n          if (yc[1] >= base / 2) yc0++;\r\n          // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n          // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n          do {\r\n            n = 0;\r\n\r\n            // Compare divisor and remainder.\r\n            cmp = compare(yc, rem, yL, remL);\r\n\r\n            // If divisor < remainder.\r\n            if (cmp < 0) {\r\n\r\n              // Calculate trial digit, n.\r\n\r\n              rem0 = rem[0];\r\n              if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n              // n is how many times the divisor goes into the current remainder.\r\n              n = mathfloor(rem0 / yc0);\r\n\r\n              //  Algorithm:\r\n              //  product = divisor multiplied by trial digit (n).\r\n              //  Compare product and remainder.\r\n              //  If product is greater than remainder:\r\n              //    Subtract divisor from product, decrement trial digit.\r\n              //  Subtract product from remainder.\r\n              //  If product was less than remainder at the last compare:\r\n              //    Compare new remainder and divisor.\r\n              //    If remainder is greater than divisor:\r\n              //      Subtract divisor from remainder, increment trial digit.\r\n\r\n              if (n > 1) {\r\n\r\n                // n may be > base only when base is 3.\r\n                if (n >= base) n = base - 1;\r\n\r\n                // product = divisor * trial digit.\r\n                prod = multiply(yc, n, base);\r\n                prodL = prod.length;\r\n                remL = rem.length;\r\n\r\n                // Compare product and remainder.\r\n                // If product > remainder then trial digit n too high.\r\n                // n is 1 too high about 5% of the time, and is not known to have\r\n                // ever been more than 1 too high.\r\n                while (compare(prod, rem, prodL, remL) == 1) {\r\n                  n--;\r\n\r\n                  // Subtract divisor from product.\r\n                  subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n                  prodL = prod.length;\r\n                  cmp = 1;\r\n                }\r\n              } else {\r\n\r\n                // n is 0 or 1, cmp is -1.\r\n                // If n is 0, there is no need to compare yc and rem again below,\r\n                // so change cmp to 1 to avoid it.\r\n                // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n                if (n == 0) {\r\n\r\n                  // divisor < remainder, so n must be at least 1.\r\n                  cmp = n = 1;\r\n                }\r\n\r\n                // product = divisor\r\n                prod = yc.slice();\r\n                prodL = prod.length;\r\n              }\r\n\r\n              if (prodL < remL) prod = [0].concat(prod);\r\n\r\n              // Subtract product from remainder.\r\n              subtract(rem, prod, remL, base);\r\n              remL = rem.length;\r\n\r\n               // If product was < remainder.\r\n              if (cmp == -1) {\r\n\r\n                // Compare divisor and new remainder.\r\n                // If divisor < new remainder, subtract divisor from remainder.\r\n                // Trial digit n too low.\r\n                // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n                while (compare(yc, rem, yL, remL) < 1) {\r\n                  n++;\r\n\r\n                  // Subtract divisor from remainder.\r\n                  subtract(rem, yL < remL ? yz : yc, remL, base);\r\n                  remL = rem.length;\r\n                }\r\n              }\r\n            } else if (cmp === 0) {\r\n              n++;\r\n              rem = [0];\r\n            } // else cmp === 1 and n will be 0\r\n\r\n            // Add the next digit, n, to the result array.\r\n            qc[i++] = n;\r\n\r\n            // Update the remainder.\r\n            if (rem[0]) {\r\n              rem[remL++] = xc[xi] || 0;\r\n            } else {\r\n              rem = [xc[xi]];\r\n              remL = 1;\r\n            }\r\n          } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n          more = rem[0] != null;\r\n\r\n          // Leading zero?\r\n          if (!qc[0]) qc.splice(0, 1);\r\n        }\r\n\r\n        if (base == BASE) {\r\n\r\n          // To calculate q.e, first get the number of digits of qc[0].\r\n          for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n          round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n        // Caller is convertBase.\r\n        } else {\r\n          q.e = e;\r\n          q.r = +more;\r\n        }\r\n\r\n        return q;\r\n      };\r\n    })();\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n     * notation rounded to the specified decimal places or significant digits.\r\n     *\r\n     * n: a BigNumber.\r\n     * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n     * rm: the rounding mode.\r\n     * id: 1 (toExponential) or 2 (toPrecision).\r\n     */\r\n    function format(n, i, rm, id) {\r\n      var c0, e, ne, len, str;\r\n\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n\r\n      if (!n.c) return n.toString();\r\n\r\n      c0 = n.c[0];\r\n      ne = n.e;\r\n\r\n      if (i == null) {\r\n        str = coeffToString(n.c);\r\n        str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n         ? toExponential(str, ne)\r\n         : toFixedPoint(str, ne, '0');\r\n      } else {\r\n        n = round(new BigNumber(n), i, rm);\r\n\r\n        // n.e may have changed if the value was rounded up.\r\n        e = n.e;\r\n\r\n        str = coeffToString(n.c);\r\n        len = str.length;\r\n\r\n        // toPrecision returns exponential notation if the number of significant digits\r\n        // specified is less than the number of digits necessary to represent the integer\r\n        // part of the value in fixed-point notation.\r\n\r\n        // Exponential notation.\r\n        if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n          // Append zeros?\r\n          for (; len < i; str += '0', len++);\r\n          str = toExponential(str, e);\r\n\r\n        // Fixed-point notation.\r\n        } else {\r\n          i -= ne;\r\n          str = toFixedPoint(str, e, '0');\r\n\r\n          // Append zeros?\r\n          if (e + 1 > len) {\r\n            if (--i > 0) for (str += '.'; i--; str += '0');\r\n          } else {\r\n            i += e - len;\r\n            if (i > 0) {\r\n              if (e + 1 == len) str += '.';\r\n              for (; i--; str += '0');\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return n.s < 0 && c0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // Handle BigNumber.max and BigNumber.min.\r\n    // If any number is NaN, return NaN.\r\n    function maxOrMin(args, n) {\r\n      var k, y,\r\n        i = 1,\r\n        x = new BigNumber(args[0]);\r\n\r\n      for (; i < args.length; i++) {\r\n        y = new BigNumber(args[i]);\r\n        if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n          x = y;\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    /*\r\n     * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n     * Called by minus, plus and times.\r\n     */\r\n    function normalise(n, c, e) {\r\n      var i = 1,\r\n        j = c.length;\r\n\r\n       // Remove trailing zeros.\r\n      for (; !c[--j]; c.pop());\r\n\r\n      // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n      for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n      // Overflow?\r\n      if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n        // Infinity.\r\n        n.c = n.e = null;\r\n\r\n      // Underflow?\r\n      } else if (e < MIN_EXP) {\r\n\r\n        // Zero.\r\n        n.c = [n.e = 0];\r\n      } else {\r\n        n.e = e;\r\n        n.c = c;\r\n      }\r\n\r\n      return n;\r\n    }\r\n\r\n\r\n    // Handle values that fail the validity test in BigNumber.\r\n    parseNumeric = (function () {\r\n      var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n        dotAfter = /^([^.]+)\\.$/,\r\n        dotBefore = /^\\.([^.]+)$/,\r\n        isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n        whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n      return function (x, str, isNum, b) {\r\n        var base,\r\n          s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n        // No exception on ±Infinity or NaN.\r\n        if (isInfinityOrNaN.test(s)) {\r\n          x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n        } else {\r\n          if (!isNum) {\r\n\r\n            // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n            s = s.replace(basePrefix, function (m, p1, p2) {\r\n              base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n              return !b || b == base ? p1 : m;\r\n            });\r\n\r\n            if (b) {\r\n              base = b;\r\n\r\n              // E.g. '1.' to '1', '.1' to '0.1'\r\n              s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n            }\r\n\r\n            if (str != s) return new BigNumber(s, base);\r\n          }\r\n\r\n          // '[BigNumber Error] Not a number: {n}'\r\n          // '[BigNumber Error] Not a base {b} number: {n}'\r\n          if (BigNumber.DEBUG) {\r\n            throw Error\r\n              (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n          }\r\n\r\n          // NaN\r\n          x.s = null;\r\n        }\r\n\r\n        x.c = x.e = null;\r\n      }\r\n    })();\r\n\r\n\r\n    /*\r\n     * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n     * If r is truthy, it is known that there are more digits after the rounding digit.\r\n     */\r\n    function round(x, sd, rm, r) {\r\n      var d, i, j, k, n, ni, rd,\r\n        xc = x.c,\r\n        pows10 = POWS_TEN;\r\n\r\n      // if x is not Infinity or NaN...\r\n      if (xc) {\r\n\r\n        // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n        // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n        // ni is the index of n within x.c.\r\n        // d is the number of digits of n.\r\n        // i is the index of rd within n including leading zeros.\r\n        // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n        out: {\r\n\r\n          // Get the number of digits of the first element of xc.\r\n          for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n          i = sd - d;\r\n\r\n          // If the rounding digit is in the first element of xc...\r\n          if (i < 0) {\r\n            i += LOG_BASE;\r\n            j = sd;\r\n            n = xc[ni = 0];\r\n\r\n            // Get the rounding digit at index j of n.\r\n            rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n          } else {\r\n            ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n            if (ni >= xc.length) {\r\n\r\n              if (r) {\r\n\r\n                // Needed by sqrt.\r\n                for (; xc.length <= ni; xc.push(0));\r\n                n = rd = 0;\r\n                d = 1;\r\n                i %= LOG_BASE;\r\n                j = i - LOG_BASE + 1;\r\n              } else {\r\n                break out;\r\n              }\r\n            } else {\r\n              n = k = xc[ni];\r\n\r\n              // Get the number of digits of n.\r\n              for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n              // Get the index of rd within n.\r\n              i %= LOG_BASE;\r\n\r\n              // Get the index of rd within n, adjusted for leading zeros.\r\n              // The number of leading zeros of n is given by LOG_BASE - d.\r\n              j = i - LOG_BASE + d;\r\n\r\n              // Get the rounding digit at index j of n.\r\n              rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n            }\r\n          }\r\n\r\n          r = r || sd < 0 ||\r\n\r\n          // Are there any non-zero digits after the rounding digit?\r\n          // The expression  n % pows10[d - j - 1]  returns all digits of n to the right\r\n          // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n           xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n          r = rm < 4\r\n           ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n           : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n            // Check whether the digit to the left of the rounding digit is odd.\r\n            ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n             rm == (x.s < 0 ? 8 : 7));\r\n\r\n          if (sd < 1 || !xc[0]) {\r\n            xc.length = 0;\r\n\r\n            if (r) {\r\n\r\n              // Convert sd to decimal places.\r\n              sd -= x.e + 1;\r\n\r\n              // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n              xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n              x.e = -sd || 0;\r\n            } else {\r\n\r\n              // Zero.\r\n              xc[0] = x.e = 0;\r\n            }\r\n\r\n            return x;\r\n          }\r\n\r\n          // Remove excess digits.\r\n          if (i == 0) {\r\n            xc.length = ni;\r\n            k = 1;\r\n            ni--;\r\n          } else {\r\n            xc.length = ni + 1;\r\n            k = pows10[LOG_BASE - i];\r\n\r\n            // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n            // j > 0 means i > number of leading zeros of n.\r\n            xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n          }\r\n\r\n          // Round up?\r\n          if (r) {\r\n\r\n            for (; ;) {\r\n\r\n              // If the digit to be rounded up is in the first element of xc...\r\n              if (ni == 0) {\r\n\r\n                // i will be the length of xc[0] before k is added.\r\n                for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n                j = xc[0] += k;\r\n                for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n                // if i != k the length has increased.\r\n                if (i != k) {\r\n                  x.e++;\r\n                  if (xc[0] == BASE) xc[0] = 1;\r\n                }\r\n\r\n                break;\r\n              } else {\r\n                xc[ni] += k;\r\n                if (xc[ni] != BASE) break;\r\n                xc[ni--] = 0;\r\n                k = 1;\r\n              }\r\n            }\r\n          }\r\n\r\n          // Remove trailing zeros.\r\n          for (i = xc.length; xc[--i] === 0; xc.pop());\r\n        }\r\n\r\n        // Overflow? Infinity.\r\n        if (x.e > MAX_EXP) {\r\n          x.c = x.e = null;\r\n\r\n        // Underflow? Zero.\r\n        } else if (x.e < MIN_EXP) {\r\n          x.c = [x.e = 0];\r\n        }\r\n      }\r\n\r\n      return x;\r\n    }\r\n\r\n\r\n    function valueOf(n) {\r\n      var str,\r\n        e = n.e;\r\n\r\n      if (e === null) return n.toString();\r\n\r\n      str = coeffToString(n.c);\r\n\r\n      str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n        ? toExponential(str, e)\r\n        : toFixedPoint(str, e, '0');\r\n\r\n      return n.s < 0 ? '-' + str : str;\r\n    }\r\n\r\n\r\n    // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n     */\r\n    P.absoluteValue = P.abs = function () {\r\n      var x = new BigNumber(this);\r\n      if (x.s < 0) x.s = 1;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return\r\n     *   1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     *   -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     *   0 if they have the same value,\r\n     *   or null if the value of either is NaN.\r\n     */\r\n    P.comparedTo = function (y, b) {\r\n      return compare(this, new BigNumber(y, b));\r\n    };\r\n\r\n\r\n    /*\r\n     * If dp is undefined or null or true or false, return the number of decimal places of the\r\n     * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     *\r\n     * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.decimalPlaces = P.dp = function (dp, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), dp + x.e + 1, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n      // Subtract the number of trailing zeros of the last number.\r\n      if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n      if (n < 0) n = 0;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n / 0 = I\r\n     *  n / N = N\r\n     *  n / I = 0\r\n     *  0 / n = 0\r\n     *  0 / 0 = N\r\n     *  0 / N = N\r\n     *  0 / I = 0\r\n     *  N / n = N\r\n     *  N / 0 = N\r\n     *  N / N = N\r\n     *  N / I = N\r\n     *  I / n = I\r\n     *  I / 0 = I\r\n     *  I / N = N\r\n     *  I / I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n     * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.dividedBy = P.div = function (y, b) {\r\n      return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n     * BigNumber by the value of BigNumber(y, b).\r\n     */\r\n    P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n      return div(this, new BigNumber(y, b), 0, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n     *\r\n     * If m is present, return the result modulo m.\r\n     * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n     *\r\n     * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n     * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n     *\r\n     * n {number|string|BigNumber} The exponent. An integer.\r\n     * [m] {number|string|BigNumber} The modulus.\r\n     *\r\n     * '[BigNumber Error] Exponent not an integer: {n}'\r\n     */\r\n    P.exponentiatedBy = P.pow = function (n, m) {\r\n      var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n        x = this;\r\n\r\n      n = new BigNumber(n);\r\n\r\n      // Allow NaN and ±Infinity, but not other non-integers.\r\n      if (n.c && !n.isInteger()) {\r\n        throw Error\r\n          (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n      }\r\n\r\n      if (m != null) m = new BigNumber(m);\r\n\r\n      // Exponent of MAX_SAFE_INTEGER is 15.\r\n      nIsBig = n.e > 14;\r\n\r\n      // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n      if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n        // The sign of the result of pow when x is negative depends on the evenness of n.\r\n        // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n        y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n        return m ? y.mod(m) : y;\r\n      }\r\n\r\n      nIsNeg = n.s < 0;\r\n\r\n      if (m) {\r\n\r\n        // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n        if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n        isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n        if (isModExp) x = x.mod(m);\r\n\r\n      // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n      // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n      } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n        // [1, 240000000]\r\n        ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n        // [80000000000000]  [99999750000000]\r\n        : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n        // If x is negative and n is odd, k = -0, else k = 0.\r\n        k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n        // If x >= 1, k = ±Infinity.\r\n        if (x.e > -1) k = 1 / k;\r\n\r\n        // If n is negative return ±0, else return ±Infinity.\r\n        return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n      } else if (POW_PRECISION) {\r\n\r\n        // Truncating each coefficient array to a length of k after each multiplication\r\n        // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n        // i.e. there will be a minimum of 28 guard digits retained.\r\n        k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n      }\r\n\r\n      if (nIsBig) {\r\n        half = new BigNumber(0.5);\r\n        if (nIsNeg) n.s = 1;\r\n        nIsOdd = isOdd(n);\r\n      } else {\r\n        i = Math.abs(+valueOf(n));\r\n        nIsOdd = i % 2;\r\n      }\r\n\r\n      y = new BigNumber(ONE);\r\n\r\n      // Performs 54 loop iterations for n of 9007199254740991.\r\n      for (; ;) {\r\n\r\n        if (nIsOdd) {\r\n          y = y.times(x);\r\n          if (!y.c) break;\r\n\r\n          if (k) {\r\n            if (y.c.length > k) y.c.length = k;\r\n          } else if (isModExp) {\r\n            y = y.mod(m);    //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n          }\r\n        }\r\n\r\n        if (i) {\r\n          i = mathfloor(i / 2);\r\n          if (i === 0) break;\r\n          nIsOdd = i % 2;\r\n        } else {\r\n          n = n.times(half);\r\n          round(n, n.e + 1, 1);\r\n\r\n          if (n.e > 14) {\r\n            nIsOdd = isOdd(n);\r\n          } else {\r\n            i = +valueOf(n);\r\n            if (i === 0) break;\r\n            nIsOdd = i % 2;\r\n          }\r\n        }\r\n\r\n        x = x.times(x);\r\n\r\n        if (k) {\r\n          if (x.c && x.c.length > k) x.c.length = k;\r\n        } else if (isModExp) {\r\n          x = x.mod(m);    //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n        }\r\n      }\r\n\r\n      if (isModExp) return y;\r\n      if (nIsNeg) y = ONE.div(y);\r\n\r\n      return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n     * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n     */\r\n    P.integerValue = function (rm) {\r\n      var n = new BigNumber(this);\r\n      if (rm == null) rm = ROUNDING_MODE;\r\n      else intCheck(rm, 0, 8);\r\n      return round(n, n.e + 1, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isEqualTo = P.eq = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n     */\r\n    P.isFinite = function () {\r\n      return !!this.c;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isGreaterThan = P.gt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is greater than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n     */\r\n    P.isInteger = function () {\r\n      return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n     * otherwise return false.\r\n     */\r\n    P.isLessThan = P.lt = function (y, b) {\r\n      return compare(this, new BigNumber(y, b)) < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is less than or equal to the value of\r\n     * BigNumber(y, b), otherwise return false.\r\n     */\r\n    P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n      return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n     */\r\n    P.isNaN = function () {\r\n      return !this.s;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is negative, otherwise return false.\r\n     */\r\n    P.isNegative = function () {\r\n      return this.s < 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is positive, otherwise return false.\r\n     */\r\n    P.isPositive = function () {\r\n      return this.s > 0;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n     */\r\n    P.isZero = function () {\r\n      return !!this.c && this.c[0] == 0;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n - 0 = n\r\n     *  n - N = N\r\n     *  n - I = -I\r\n     *  0 - n = -n\r\n     *  0 - 0 = 0\r\n     *  0 - N = N\r\n     *  0 - I = -I\r\n     *  N - n = N\r\n     *  N - 0 = N\r\n     *  N - N = N\r\n     *  N - I = N\r\n     *  I - n = I\r\n     *  I - 0 = I\r\n     *  I - N = N\r\n     *  I - I = N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.minus = function (y, b) {\r\n      var i, j, t, xLTy,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n      if (a != b) {\r\n        y.s = -b;\r\n        return x.plus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Either Infinity?\r\n        if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n        // Either zero?\r\n        if (!xc[0] || !yc[0]) {\r\n\r\n          // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n          return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n           // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n           ROUNDING_MODE == 3 ? -0 : 0);\r\n        }\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Determine which is the bigger number.\r\n      if (a = xe - ye) {\r\n\r\n        if (xLTy = a < 0) {\r\n          a = -a;\r\n          t = xc;\r\n        } else {\r\n          ye = xe;\r\n          t = yc;\r\n        }\r\n\r\n        t.reverse();\r\n\r\n        // Prepend zeros to equalise exponents.\r\n        for (b = a; b--; t.push(0));\r\n        t.reverse();\r\n      } else {\r\n\r\n        // Exponents equal. Check digit by digit.\r\n        j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n        for (a = b = 0; b < j; b++) {\r\n\r\n          if (xc[b] != yc[b]) {\r\n            xLTy = xc[b] < yc[b];\r\n            break;\r\n          }\r\n        }\r\n      }\r\n\r\n      // x < y? Point xc to the array of the bigger number.\r\n      if (xLTy) {\r\n        t = xc;\r\n        xc = yc;\r\n        yc = t;\r\n        y.s = -y.s;\r\n      }\r\n\r\n      b = (j = yc.length) - (i = xc.length);\r\n\r\n      // Append zeros to xc if shorter.\r\n      // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n      if (b > 0) for (; b--; xc[i++] = 0);\r\n      b = BASE - 1;\r\n\r\n      // Subtract yc from xc.\r\n      for (; j > a;) {\r\n\r\n        if (xc[--j] < yc[j]) {\r\n          for (i = j; i && !xc[--i]; xc[i] = b);\r\n          --xc[i];\r\n          xc[j] += BASE;\r\n        }\r\n\r\n        xc[j] -= yc[j];\r\n      }\r\n\r\n      // Remove leading zeros and adjust exponent accordingly.\r\n      for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n      // Zero?\r\n      if (!xc[0]) {\r\n\r\n        // Following IEEE 754 (2008) 6.3,\r\n        // n - n = +0  but  n - n = -0  when rounding towards -Infinity.\r\n        y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n        y.c = [y.e = 0];\r\n        return y;\r\n      }\r\n\r\n      // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n      // for finite x and y.\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     *   n % 0 =  N\r\n     *   n % N =  N\r\n     *   n % I =  n\r\n     *   0 % n =  0\r\n     *  -0 % n = -0\r\n     *   0 % 0 =  N\r\n     *   0 % N =  N\r\n     *   0 % I =  0\r\n     *   N % n =  N\r\n     *   N % 0 =  N\r\n     *   N % N =  N\r\n     *   N % I =  N\r\n     *   I % n =  N\r\n     *   I % 0 =  N\r\n     *   I % N =  N\r\n     *   I % I =  N\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n     * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n     */\r\n    P.modulo = P.mod = function (y, b) {\r\n      var q, s,\r\n        x = this;\r\n\r\n      y = new BigNumber(y, b);\r\n\r\n      // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n      if (!x.c || !y.s || y.c && !y.c[0]) {\r\n        return new BigNumber(NaN);\r\n\r\n      // Return x if y is Infinity or x is zero.\r\n      } else if (!y.c || x.c && !x.c[0]) {\r\n        return new BigNumber(x);\r\n      }\r\n\r\n      if (MODULO_MODE == 9) {\r\n\r\n        // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n        // r = x - qy    where  0 <= r < abs(y)\r\n        s = y.s;\r\n        y.s = 1;\r\n        q = div(x, y, 0, 3);\r\n        y.s = s;\r\n        q.s *= s;\r\n      } else {\r\n        q = div(x, y, 0, MODULO_MODE);\r\n      }\r\n\r\n      y = x.minus(q.times(y));\r\n\r\n      // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n      if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n      return y;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n * 0 = 0\r\n     *  n * N = N\r\n     *  n * I = I\r\n     *  0 * n = 0\r\n     *  0 * 0 = 0\r\n     *  0 * N = N\r\n     *  0 * I = N\r\n     *  N * n = N\r\n     *  N * 0 = N\r\n     *  N * N = N\r\n     *  N * I = N\r\n     *  I * n = I\r\n     *  I * 0 = N\r\n     *  I * N = N\r\n     *  I * I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n     * of BigNumber(y, b).\r\n     */\r\n    P.multipliedBy = P.times = function (y, b) {\r\n      var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n        base, sqrtBase,\r\n        x = this,\r\n        xc = x.c,\r\n        yc = (y = new BigNumber(y, b)).c;\r\n\r\n      // Either NaN, ±Infinity or ±0?\r\n      if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n        // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n        if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n          y.c = y.e = y.s = null;\r\n        } else {\r\n          y.s *= x.s;\r\n\r\n          // Return ±Infinity if either is ±Infinity.\r\n          if (!xc || !yc) {\r\n            y.c = y.e = null;\r\n\r\n          // Return ±0 if either is ±0.\r\n          } else {\r\n            y.c = [0];\r\n            y.e = 0;\r\n          }\r\n        }\r\n\r\n        return y;\r\n      }\r\n\r\n      e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n      y.s *= x.s;\r\n      xcL = xc.length;\r\n      ycL = yc.length;\r\n\r\n      // Ensure xc points to longer array and xcL to its length.\r\n      if (xcL < ycL) {\r\n        zc = xc;\r\n        xc = yc;\r\n        yc = zc;\r\n        i = xcL;\r\n        xcL = ycL;\r\n        ycL = i;\r\n      }\r\n\r\n      // Initialise the result array with zeros.\r\n      for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n      base = BASE;\r\n      sqrtBase = SQRT_BASE;\r\n\r\n      for (i = ycL; --i >= 0;) {\r\n        c = 0;\r\n        ylo = yc[i] % sqrtBase;\r\n        yhi = yc[i] / sqrtBase | 0;\r\n\r\n        for (k = xcL, j = i + k; j > i;) {\r\n          xlo = xc[--k] % sqrtBase;\r\n          xhi = xc[k] / sqrtBase | 0;\r\n          m = yhi * xlo + xhi * ylo;\r\n          xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n          c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n          zc[j--] = xlo % base;\r\n        }\r\n\r\n        zc[j] = c;\r\n      }\r\n\r\n      if (c) {\r\n        ++e;\r\n      } else {\r\n        zc.splice(0, 1);\r\n      }\r\n\r\n      return normalise(y, zc, e);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n     * i.e. multiplied by -1.\r\n     */\r\n    P.negated = function () {\r\n      var x = new BigNumber(this);\r\n      x.s = -x.s || null;\r\n      return x;\r\n    };\r\n\r\n\r\n    /*\r\n     *  n + 0 = n\r\n     *  n + N = N\r\n     *  n + I = I\r\n     *  0 + n = n\r\n     *  0 + 0 = 0\r\n     *  0 + N = N\r\n     *  0 + I = I\r\n     *  N + n = N\r\n     *  N + 0 = N\r\n     *  N + N = N\r\n     *  N + I = N\r\n     *  I + n = I\r\n     *  I + 0 = I\r\n     *  I + N = N\r\n     *  I + I = I\r\n     *\r\n     * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n     * BigNumber(y, b).\r\n     */\r\n    P.plus = function (y, b) {\r\n      var t,\r\n        x = this,\r\n        a = x.s;\r\n\r\n      y = new BigNumber(y, b);\r\n      b = y.s;\r\n\r\n      // Either NaN?\r\n      if (!a || !b) return new BigNumber(NaN);\r\n\r\n      // Signs differ?\r\n       if (a != b) {\r\n        y.s = -b;\r\n        return x.minus(y);\r\n      }\r\n\r\n      var xe = x.e / LOG_BASE,\r\n        ye = y.e / LOG_BASE,\r\n        xc = x.c,\r\n        yc = y.c;\r\n\r\n      if (!xe || !ye) {\r\n\r\n        // Return ±Infinity if either ±Infinity.\r\n        if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n        // Either zero?\r\n        // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n        if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n      }\r\n\r\n      xe = bitFloor(xe);\r\n      ye = bitFloor(ye);\r\n      xc = xc.slice();\r\n\r\n      // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n      if (a = xe - ye) {\r\n        if (a > 0) {\r\n          ye = xe;\r\n          t = yc;\r\n        } else {\r\n          a = -a;\r\n          t = xc;\r\n        }\r\n\r\n        t.reverse();\r\n        for (; a--; t.push(0));\r\n        t.reverse();\r\n      }\r\n\r\n      a = xc.length;\r\n      b = yc.length;\r\n\r\n      // Point xc to the longer array, and b to the shorter length.\r\n      if (a - b < 0) {\r\n        t = yc;\r\n        yc = xc;\r\n        xc = t;\r\n        b = a;\r\n      }\r\n\r\n      // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n      for (a = 0; b;) {\r\n        a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n        xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n      }\r\n\r\n      if (a) {\r\n        xc = [a].concat(xc);\r\n        ++ye;\r\n      }\r\n\r\n      // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n      // ye = MAX_EXP + 1 possible\r\n      return normalise(y, xc, ye);\r\n    };\r\n\r\n\r\n    /*\r\n     * If sd is undefined or null or true or false, return the number of significant digits of\r\n     * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n     * If sd is true include integer-part trailing zeros in the count.\r\n     *\r\n     * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n     * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n     * ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n     *                     boolean: whether to count integer-part trailing zeros: true or false.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.precision = P.sd = function (sd, rm) {\r\n      var c, n, v,\r\n        x = this;\r\n\r\n      if (sd != null && sd !== !!sd) {\r\n        intCheck(sd, 1, MAX);\r\n        if (rm == null) rm = ROUNDING_MODE;\r\n        else intCheck(rm, 0, 8);\r\n\r\n        return round(new BigNumber(x), sd, rm);\r\n      }\r\n\r\n      if (!(c = x.c)) return null;\r\n      v = c.length - 1;\r\n      n = v * LOG_BASE + 1;\r\n\r\n      if (v = c[v]) {\r\n\r\n        // Subtract the number of trailing zeros of the last element.\r\n        for (; v % 10 == 0; v /= 10, n--);\r\n\r\n        // Add the number of digits of the first element.\r\n        for (v = c[0]; v >= 10; v /= 10, n++);\r\n      }\r\n\r\n      if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n      return n;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n     * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n     *\r\n     * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n     */\r\n    P.shiftedBy = function (k) {\r\n      intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n      return this.times('1e' + k);\r\n    };\r\n\r\n\r\n    /*\r\n     *  sqrt(-n) =  N\r\n     *  sqrt(N) =  N\r\n     *  sqrt(-I) =  N\r\n     *  sqrt(I) =  I\r\n     *  sqrt(0) =  0\r\n     *  sqrt(-0) = -0\r\n     *\r\n     * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n     * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n     */\r\n    P.squareRoot = P.sqrt = function () {\r\n      var m, n, r, rep, t,\r\n        x = this,\r\n        c = x.c,\r\n        s = x.s,\r\n        e = x.e,\r\n        dp = DECIMAL_PLACES + 4,\r\n        half = new BigNumber('0.5');\r\n\r\n      // Negative/NaN/Infinity/zero?\r\n      if (s !== 1 || !c || !c[0]) {\r\n        return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n      }\r\n\r\n      // Initial estimate.\r\n      s = Math.sqrt(+valueOf(x));\r\n\r\n      // Math.sqrt underflow/overflow?\r\n      // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n      if (s == 0 || s == 1 / 0) {\r\n        n = coeffToString(c);\r\n        if ((n.length + e) % 2 == 0) n += '0';\r\n        s = Math.sqrt(+n);\r\n        e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n        if (s == 1 / 0) {\r\n          n = '5e' + e;\r\n        } else {\r\n          n = s.toExponential();\r\n          n = n.slice(0, n.indexOf('e') + 1) + e;\r\n        }\r\n\r\n        r = new BigNumber(n);\r\n      } else {\r\n        r = new BigNumber(s + '');\r\n      }\r\n\r\n      // Check for zero.\r\n      // r could be zero if MIN_EXP is changed after the this value was created.\r\n      // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n      // coeffToString to throw.\r\n      if (r.c[0]) {\r\n        e = r.e;\r\n        s = e + dp;\r\n        if (s < 3) s = 0;\r\n\r\n        // Newton-Raphson iteration.\r\n        for (; ;) {\r\n          t = r;\r\n          r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n          if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n            // The exponent of r may here be one less than the final result exponent,\r\n            // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n            // are indexed correctly.\r\n            if (r.e < e) --s;\r\n            n = n.slice(s - 3, s + 1);\r\n\r\n            // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n            // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n            // iteration.\r\n            if (n == '9999' || !rep && n == '4999') {\r\n\r\n              // On the first iteration only, check to see if rounding up gives the\r\n              // exact result as the nines may infinitely repeat.\r\n              if (!rep) {\r\n                round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n                if (t.times(t).eq(x)) {\r\n                  r = t;\r\n                  break;\r\n                }\r\n              }\r\n\r\n              dp += 4;\r\n              s += 4;\r\n              rep = 1;\r\n            } else {\r\n\r\n              // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n              // result. If not, then there are further digits and m will be truthy.\r\n              if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n                // Truncate to the first rounding digit.\r\n                round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n                m = !r.times(r).eq(x);\r\n              }\r\n\r\n              break;\r\n            }\r\n          }\r\n        }\r\n      }\r\n\r\n      return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in exponential notation and\r\n     * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toExponential = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp++;\r\n      }\r\n      return format(this, dp, rm, 1);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n     * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n     *\r\n     * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n     * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     */\r\n    P.toFixed = function (dp, rm) {\r\n      if (dp != null) {\r\n        intCheck(dp, 0, MAX);\r\n        dp = dp + this.e + 1;\r\n      }\r\n      return format(this, dp, rm);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n     * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n     * of the format or FORMAT object (see BigNumber.set).\r\n     *\r\n     * The formatting object may contain some or all of the properties shown below.\r\n     *\r\n     * FORMAT = {\r\n     *   prefix: '',\r\n     *   groupSize: 3,\r\n     *   secondaryGroupSize: 0,\r\n     *   groupSeparator: ',',\r\n     *   decimalSeparator: '.',\r\n     *   fractionGroupSize: 0,\r\n     *   fractionGroupSeparator: '\\xA0',      // non-breaking space\r\n     *   suffix: ''\r\n     * };\r\n     *\r\n     * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     * [format] {object} Formatting options. See FORMAT pbject above.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n     * '[BigNumber Error] Argument not an object: {format}'\r\n     */\r\n    P.toFormat = function (dp, rm, format) {\r\n      var str,\r\n        x = this;\r\n\r\n      if (format == null) {\r\n        if (dp != null && rm && typeof rm == 'object') {\r\n          format = rm;\r\n          rm = null;\r\n        } else if (dp && typeof dp == 'object') {\r\n          format = dp;\r\n          dp = rm = null;\r\n        } else {\r\n          format = FORMAT;\r\n        }\r\n      } else if (typeof format != 'object') {\r\n        throw Error\r\n          (bignumberError + 'Argument not an object: ' + format);\r\n      }\r\n\r\n      str = x.toFixed(dp, rm);\r\n\r\n      if (x.c) {\r\n        var i,\r\n          arr = str.split('.'),\r\n          g1 = +format.groupSize,\r\n          g2 = +format.secondaryGroupSize,\r\n          groupSeparator = format.groupSeparator || '',\r\n          intPart = arr[0],\r\n          fractionPart = arr[1],\r\n          isNeg = x.s < 0,\r\n          intDigits = isNeg ? intPart.slice(1) : intPart,\r\n          len = intDigits.length;\r\n\r\n        if (g2) {\r\n          i = g1;\r\n          g1 = g2;\r\n          g2 = i;\r\n          len -= i;\r\n        }\r\n\r\n        if (g1 > 0 && len > 0) {\r\n          i = len % g1 || g1;\r\n          intPart = intDigits.substr(0, i);\r\n          for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n          if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n          if (isNeg) intPart = '-' + intPart;\r\n        }\r\n\r\n        str = fractionPart\r\n         ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n          ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n           '$&' + (format.fractionGroupSeparator || ''))\r\n          : fractionPart)\r\n         : intPart;\r\n      }\r\n\r\n      return (format.prefix || '') + str + (format.suffix || '');\r\n    };\r\n\r\n\r\n    /*\r\n     * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n     * fraction with an integer numerator and an integer denominator.\r\n     * The denominator will be a positive non-zero value less than or equal to the specified\r\n     * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n     * the lowest value necessary to represent the number exactly.\r\n     *\r\n     * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n     *\r\n     * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n     */\r\n    P.toFraction = function (md) {\r\n      var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n        x = this,\r\n        xc = x.c;\r\n\r\n      if (md != null) {\r\n        n = new BigNumber(md);\r\n\r\n        // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n        if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n          throw Error\r\n            (bignumberError + 'Argument ' +\r\n              (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n        }\r\n      }\r\n\r\n      if (!xc) return new BigNumber(x);\r\n\r\n      d = new BigNumber(ONE);\r\n      n1 = d0 = new BigNumber(ONE);\r\n      d1 = n0 = new BigNumber(ONE);\r\n      s = coeffToString(xc);\r\n\r\n      // Determine initial denominator.\r\n      // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n      e = d.e = s.length - x.e - 1;\r\n      d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n      md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n      exp = MAX_EXP;\r\n      MAX_EXP = 1 / 0;\r\n      n = new BigNumber(s);\r\n\r\n      // n0 = d1 = 0\r\n      n0.c[0] = 0;\r\n\r\n      for (; ;)  {\r\n        q = div(n, d, 0, 1);\r\n        d2 = d0.plus(q.times(d1));\r\n        if (d2.comparedTo(md) == 1) break;\r\n        d0 = d1;\r\n        d1 = d2;\r\n        n1 = n0.plus(q.times(d2 = n1));\r\n        n0 = d2;\r\n        d = n.minus(q.times(d2 = d));\r\n        n = d2;\r\n      }\r\n\r\n      d2 = div(md.minus(d0), d1, 0, 1);\r\n      n0 = n0.plus(d2.times(n1));\r\n      d0 = d0.plus(d2.times(d1));\r\n      n0.s = n1.s = x.s;\r\n      e = e * 2;\r\n\r\n      // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n      r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n          div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n      MAX_EXP = exp;\r\n\r\n      return r;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return the value of this BigNumber converted to a number primitive.\r\n     */\r\n    P.toNumber = function () {\r\n      return +valueOf(this);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n     * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n     * necessary to represent the integer part of the value in fixed-point notation, then use\r\n     * exponential notation.\r\n     *\r\n     * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n     * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n     *\r\n     * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n     */\r\n    P.toPrecision = function (sd, rm) {\r\n      if (sd != null) intCheck(sd, 1, MAX);\r\n      return format(this, sd, rm, 2);\r\n    };\r\n\r\n\r\n    /*\r\n     * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n     * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n     * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n     * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n     * TO_EXP_NEG, return exponential notation.\r\n     *\r\n     * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n     *\r\n     * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n     */\r\n    P.toString = function (b) {\r\n      var str,\r\n        n = this,\r\n        s = n.s,\r\n        e = n.e;\r\n\r\n      // Infinity or NaN?\r\n      if (e === null) {\r\n        if (s) {\r\n          str = 'Infinity';\r\n          if (s < 0) str = '-' + str;\r\n        } else {\r\n          str = 'NaN';\r\n        }\r\n      } else {\r\n        if (b == null) {\r\n          str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n           ? toExponential(coeffToString(n.c), e)\r\n           : toFixedPoint(coeffToString(n.c), e, '0');\r\n        } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n          n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n          str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n        } else {\r\n          intCheck(b, 2, ALPHABET.length, 'Base');\r\n          str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n        }\r\n\r\n        if (s < 0 && n.c[0]) str = '-' + str;\r\n      }\r\n\r\n      return str;\r\n    };\r\n\r\n\r\n    /*\r\n     * Return as toString, but do not accept a base argument, and include the minus sign for\r\n     * negative zero.\r\n     */\r\n    P.valueOf = P.toJSON = function () {\r\n      return valueOf(this);\r\n    };\r\n\r\n\r\n    P._isBigNumber = true;\r\n\r\n    if (configObject != null) BigNumber.set(configObject);\r\n\r\n    return BigNumber;\r\n  }\r\n\r\n\r\n  // PRIVATE HELPER FUNCTIONS\r\n\r\n  // These functions don't need access to variables,\r\n  // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\n  function bitFloor(n) {\r\n    var i = n | 0;\r\n    return n > 0 || n === i ? i : i - 1;\r\n  }\r\n\r\n\r\n  // Return a coefficient array as a string of base 10 digits.\r\n  function coeffToString(a) {\r\n    var s, z,\r\n      i = 1,\r\n      j = a.length,\r\n      r = a[0] + '';\r\n\r\n    for (; i < j;) {\r\n      s = a[i++] + '';\r\n      z = LOG_BASE - s.length;\r\n      for (; z--; s = '0' + s);\r\n      r += s;\r\n    }\r\n\r\n    // Determine trailing zeros.\r\n    for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n    return r.slice(0, j + 1 || 1);\r\n  }\r\n\r\n\r\n  // Compare the value of BigNumbers x and y.\r\n  function compare(x, y) {\r\n    var a, b,\r\n      xc = x.c,\r\n      yc = y.c,\r\n      i = x.s,\r\n      j = y.s,\r\n      k = x.e,\r\n      l = y.e;\r\n\r\n    // Either NaN?\r\n    if (!i || !j) return null;\r\n\r\n    a = xc && !xc[0];\r\n    b = yc && !yc[0];\r\n\r\n    // Either zero?\r\n    if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n    // Signs differ?\r\n    if (i != j) return i;\r\n\r\n    a = i < 0;\r\n    b = k == l;\r\n\r\n    // Either Infinity?\r\n    if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n    // Compare exponents.\r\n    if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n    j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n    // Compare digit by digit.\r\n    for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n    // Compare lengths.\r\n    return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n  }\r\n\r\n\r\n  /*\r\n   * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n   */\r\n  function intCheck(n, min, max, name) {\r\n    if (n < min || n > max || n !== mathfloor(n)) {\r\n      throw Error\r\n       (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n         ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n         : ' not a primitive number: ') + String(n));\r\n    }\r\n  }\r\n\r\n\r\n  // Assumes finite n.\r\n  function isOdd(n) {\r\n    var k = n.c.length - 1;\r\n    return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n  }\r\n\r\n\r\n  function toExponential(str, e) {\r\n    return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n     (e < 0 ? 'e' : 'e+') + e;\r\n  }\r\n\r\n\r\n  function toFixedPoint(str, e, z) {\r\n    var len, zs;\r\n\r\n    // Negative exponent?\r\n    if (e < 0) {\r\n\r\n      // Prepend zeros.\r\n      for (zs = z + '.'; ++e; zs += z);\r\n      str = zs + str;\r\n\r\n    // Positive exponent\r\n    } else {\r\n      len = str.length;\r\n\r\n      // Append zeros.\r\n      if (++e > len) {\r\n        for (zs = z, e -= len; --e; zs += z);\r\n        str += zs;\r\n      } else if (e < len) {\r\n        str = str.slice(0, e) + '.' + str.slice(e);\r\n      }\r\n    }\r\n\r\n    return str;\r\n  }\r\n\r\n\r\n  // EXPORT\r\n\r\n\r\n  BigNumber = clone();\r\n  BigNumber['default'] = BigNumber.BigNumber = BigNumber;\r\n\r\n  // AMD.\r\n  if (true) {\r\n    !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return BigNumber; }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\r\n\r\n  // Node.js and other environments that support module.exports.\r\n  } else {}\r\n})(this);\r\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bignumber.js/bignumber.js?");

/***/ }),

/***/ "./node_modules/bip39/src/_wordlists.js":
/*!**********************************************!*\
  !*** ./node_modules/bip39/src/_wordlists.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n// browserify by default only pulls in files that are hard coded in requires\n// In order of last to first in this file, the default wordlist will be chosen\n// based on what is present. (Bundles may remove wordlists they don't need)\nconst wordlists = {};\nexports.wordlists = wordlists;\nlet _default;\nexports._default = _default;\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/czech.json */ \"./node_modules/bip39/src/wordlists/czech.json\");\n    wordlists.czech = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/chinese_simplified.json */ \"./node_modules/bip39/src/wordlists/chinese_simplified.json\");\n    wordlists.chinese_simplified = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/chinese_traditional.json */ \"./node_modules/bip39/src/wordlists/chinese_traditional.json\");\n    wordlists.chinese_traditional = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/korean.json */ \"./node_modules/bip39/src/wordlists/korean.json\");\n    wordlists.korean = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/french.json */ \"./node_modules/bip39/src/wordlists/french.json\");\n    wordlists.french = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/italian.json */ \"./node_modules/bip39/src/wordlists/italian.json\");\n    wordlists.italian = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/spanish.json */ \"./node_modules/bip39/src/wordlists/spanish.json\");\n    wordlists.spanish = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/japanese.json */ \"./node_modules/bip39/src/wordlists/japanese.json\");\n    wordlists.japanese = _default;\n    wordlists.JA = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/portuguese.json */ \"./node_modules/bip39/src/wordlists/portuguese.json\");\n    wordlists.portuguese = _default;\n}\ncatch (err) { }\ntry {\n    exports._default = _default = __webpack_require__(/*! ./wordlists/english.json */ \"./node_modules/bip39/src/wordlists/english.json\");\n    wordlists.english = _default;\n    wordlists.EN = _default;\n}\ncatch (err) { }\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/_wordlists.js?");

/***/ }),

/***/ "./node_modules/bip39/src/index.js":
/*!*****************************************!*\
  !*** ./node_modules/bip39/src/index.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst sha256_1 = __webpack_require__(/*! @noble/hashes/sha256 */ \"./node_modules/@noble/hashes/sha256.js\");\nconst sha512_1 = __webpack_require__(/*! @noble/hashes/sha512 */ \"./node_modules/@noble/hashes/sha512.js\");\nconst pbkdf2_1 = __webpack_require__(/*! @noble/hashes/pbkdf2 */ \"./node_modules/@noble/hashes/pbkdf2.js\");\nconst utils_1 = __webpack_require__(/*! @noble/hashes/utils */ \"./node_modules/@noble/hashes/utils.js\");\nconst _wordlists_1 = __webpack_require__(/*! ./_wordlists */ \"./node_modules/bip39/src/_wordlists.js\");\nlet DEFAULT_WORDLIST = _wordlists_1._default;\nconst INVALID_MNEMONIC = 'Invalid mnemonic';\nconst INVALID_ENTROPY = 'Invalid entropy';\nconst INVALID_CHECKSUM = 'Invalid mnemonic checksum';\nconst WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\\n' +\n    'Please pass a 2048 word array explicitly.';\nfunction normalize(str) {\n    return (str || '').normalize('NFKD');\n}\nfunction lpad(str, padString, length) {\n    while (str.length < length) {\n        str = padString + str;\n    }\n    return str;\n}\nfunction binaryToByte(bin) {\n    return parseInt(bin, 2);\n}\nfunction bytesToBinary(bytes) {\n    return bytes.map((x) => lpad(x.toString(2), '0', 8)).join('');\n}\nfunction deriveChecksumBits(entropyBuffer) {\n    const ENT = entropyBuffer.length * 8;\n    const CS = ENT / 32;\n    const hash = sha256_1.sha256(Uint8Array.from(entropyBuffer));\n    return bytesToBinary(Array.from(hash)).slice(0, CS);\n}\nfunction salt(password) {\n    return 'mnemonic' + (password || '');\n}\nfunction mnemonicToSeedSync(mnemonic, password) {\n    const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8'));\n    const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8'));\n    const res = pbkdf2_1.pbkdf2(sha512_1.sha512, mnemonicBuffer, saltBuffer, {\n        c: 2048,\n        dkLen: 64,\n    });\n    return Buffer.from(res);\n}\nexports.mnemonicToSeedSync = mnemonicToSeedSync;\nfunction mnemonicToSeed(mnemonic, password) {\n    const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8'));\n    const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8'));\n    return pbkdf2_1.pbkdf2Async(sha512_1.sha512, mnemonicBuffer, saltBuffer, {\n        c: 2048,\n        dkLen: 64,\n    }).then((res) => Buffer.from(res));\n}\nexports.mnemonicToSeed = mnemonicToSeed;\nfunction mnemonicToEntropy(mnemonic, wordlist) {\n    wordlist = wordlist || DEFAULT_WORDLIST;\n    if (!wordlist) {\n        throw new Error(WORDLIST_REQUIRED);\n    }\n    const words = normalize(mnemonic).split(' ');\n    if (words.length % 3 !== 0) {\n        throw new Error(INVALID_MNEMONIC);\n    }\n    // convert word indices to 11 bit binary strings\n    const bits = words\n        .map((word) => {\n        const index = wordlist.indexOf(word);\n        if (index === -1) {\n            throw new Error(INVALID_MNEMONIC);\n        }\n        return lpad(index.toString(2), '0', 11);\n    })\n        .join('');\n    // split the binary string into ENT/CS\n    const dividerIndex = Math.floor(bits.length / 33) * 32;\n    const entropyBits = bits.slice(0, dividerIndex);\n    const checksumBits = bits.slice(dividerIndex);\n    // calculate the checksum and compare\n    const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte);\n    if (entropyBytes.length < 16) {\n        throw new Error(INVALID_ENTROPY);\n    }\n    if (entropyBytes.length > 32) {\n        throw new Error(INVALID_ENTROPY);\n    }\n    if (entropyBytes.length % 4 !== 0) {\n        throw new Error(INVALID_ENTROPY);\n    }\n    const entropy = Buffer.from(entropyBytes);\n    const newChecksum = deriveChecksumBits(entropy);\n    if (newChecksum !== checksumBits) {\n        throw new Error(INVALID_CHECKSUM);\n    }\n    return entropy.toString('hex');\n}\nexports.mnemonicToEntropy = mnemonicToEntropy;\nfunction entropyToMnemonic(entropy, wordlist) {\n    if (!Buffer.isBuffer(entropy)) {\n        entropy = Buffer.from(entropy, 'hex');\n    }\n    wordlist = wordlist || DEFAULT_WORDLIST;\n    if (!wordlist) {\n        throw new Error(WORDLIST_REQUIRED);\n    }\n    // 128 <= ENT <= 256\n    if (entropy.length < 16) {\n        throw new TypeError(INVALID_ENTROPY);\n    }\n    if (entropy.length > 32) {\n        throw new TypeError(INVALID_ENTROPY);\n    }\n    if (entropy.length % 4 !== 0) {\n        throw new TypeError(INVALID_ENTROPY);\n    }\n    const entropyBits = bytesToBinary(Array.from(entropy));\n    const checksumBits = deriveChecksumBits(entropy);\n    const bits = entropyBits + checksumBits;\n    const chunks = bits.match(/(.{1,11})/g);\n    const words = chunks.map((binary) => {\n        const index = binaryToByte(binary);\n        return wordlist[index];\n    });\n    return wordlist[0] === '\\u3042\\u3044\\u3053\\u304f\\u3057\\u3093' // Japanese wordlist\n        ? words.join('\\u3000')\n        : words.join(' ');\n}\nexports.entropyToMnemonic = entropyToMnemonic;\nfunction generateMnemonic(strength, rng, wordlist) {\n    strength = strength || 128;\n    if (strength % 32 !== 0) {\n        throw new TypeError(INVALID_ENTROPY);\n    }\n    rng = rng || ((size) => Buffer.from(utils_1.randomBytes(size)));\n    return entropyToMnemonic(rng(strength / 8), wordlist);\n}\nexports.generateMnemonic = generateMnemonic;\nfunction validateMnemonic(mnemonic, wordlist) {\n    try {\n        mnemonicToEntropy(mnemonic, wordlist);\n    }\n    catch (e) {\n        return false;\n    }\n    return true;\n}\nexports.validateMnemonic = validateMnemonic;\nfunction setDefaultWordlist(language) {\n    const result = _wordlists_1.wordlists[language];\n    if (result) {\n        DEFAULT_WORDLIST = result;\n    }\n    else {\n        throw new Error('Could not find wordlist for language \"' + language + '\"');\n    }\n}\nexports.setDefaultWordlist = setDefaultWordlist;\nfunction getDefaultWordlist() {\n    if (!DEFAULT_WORDLIST) {\n        throw new Error('No Default Wordlist set');\n    }\n    return Object.keys(_wordlists_1.wordlists).filter((lang) => {\n        if (lang === 'JA' || lang === 'EN') {\n            return false;\n        }\n        return _wordlists_1.wordlists[lang].every((word, index) => word === DEFAULT_WORDLIST[index]);\n    })[0];\n}\nexports.getDefaultWordlist = getDefaultWordlist;\nvar _wordlists_2 = __webpack_require__(/*! ./_wordlists */ \"./node_modules/bip39/src/_wordlists.js\");\nexports.wordlists = _wordlists_2.wordlists;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/index.js?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/chinese_simplified.json":
/*!******************************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/chinese_simplified.json ***!
  \******************************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"的\",\"一\",\"是\",\"在\",\"不\",\"了\",\"有\",\"和\",\"人\",\"这\",\"中\",\"大\",\"为\",\"上\",\"个\",\"国\",\"我\",\"以\",\"要\",\"他\",\"时\",\"来\",\"用\",\"们\",\"生\",\"到\",\"作\",\"地\",\"于\",\"出\",\"就\",\"分\",\"对\",\"成\",\"会\",\"可\",\"主\",\"发\",\"年\",\"动\",\"同\",\"工\",\"也\",\"能\",\"下\",\"过\",\"子\",\"说\",\"产\",\"种\",\"面\",\"而\",\"方\",\"后\",\"多\",\"定\",\"行\",\"学\",\"法\",\"所\",\"民\",\"得\",\"经\",\"十\",\"三\",\"之\",\"进\",\"着\",\"等\",\"部\",\"度\",\"家\",\"电\",\"力\",\"里\",\"如\",\"水\",\"化\",\"高\",\"自\",\"二\",\"理\",\"起\",\"小\",\"物\",\"现\",\"实\",\"加\",\"量\",\"都\",\"两\",\"体\",\"制\",\"机\",\"当\",\"使\",\"点\",\"从\",\"业\",\"本\",\"去\",\"把\",\"性\",\"好\",\"应\",\"开\",\"它\",\"合\",\"还\",\"因\",\"由\",\"其\",\"些\",\"然\",\"前\",\"外\",\"天\",\"政\",\"四\",\"日\",\"那\",\"社\",\"义\",\"事\",\"平\",\"形\",\"相\",\"全\",\"表\",\"间\",\"样\",\"与\",\"关\",\"各\",\"重\",\"新\",\"线\",\"内\",\"数\",\"正\",\"心\",\"反\",\"你\",\"明\",\"看\",\"原\",\"又\",\"么\",\"利\",\"比\",\"或\",\"但\",\"质\",\"气\",\"第\",\"向\",\"道\",\"命\",\"此\",\"变\",\"条\",\"只\",\"没\",\"结\",\"解\",\"问\",\"意\",\"建\",\"月\",\"公\",\"无\",\"系\",\"军\",\"很\",\"情\",\"者\",\"最\",\"立\",\"代\",\"想\",\"已\",\"通\",\"并\",\"提\",\"直\",\"题\",\"党\",\"程\",\"展\",\"五\",\"果\",\"料\",\"象\",\"员\",\"革\",\"位\",\"入\",\"常\",\"文\",\"总\",\"次\",\"品\",\"式\",\"活\",\"设\",\"及\",\"管\",\"特\",\"件\",\"长\",\"求\",\"老\",\"头\",\"基\",\"资\",\"边\",\"流\",\"路\",\"级\",\"少\",\"图\",\"山\",\"统\",\"接\",\"知\",\"较\",\"将\",\"组\",\"见\",\"计\",\"别\",\"她\",\"手\",\"角\",\"期\",\"根\",\"论\",\"运\",\"农\",\"指\",\"几\",\"九\",\"区\",\"强\",\"放\",\"决\",\"西\",\"被\",\"干\",\"做\",\"必\",\"战\",\"先\",\"回\",\"则\",\"任\",\"取\",\"据\",\"处\",\"队\",\"南\",\"给\",\"色\",\"光\",\"门\",\"即\",\"保\",\"治\",\"北\",\"造\",\"百\",\"规\",\"热\",\"领\",\"七\",\"海\",\"口\",\"东\",\"导\",\"器\",\"压\",\"志\",\"世\",\"金\",\"增\",\"争\",\"济\",\"阶\",\"油\",\"思\",\"术\",\"极\",\"交\",\"受\",\"联\",\"什\",\"认\",\"六\",\"共\",\"权\",\"收\",\"证\",\"改\",\"清\",\"美\",\"再\",\"采\",\"转\",\"更\",\"单\",\"风\",\"切\",\"打\",\"白\",\"教\",\"速\",\"花\",\"带\",\"安\",\"场\",\"身\",\"车\",\"例\",\"真\",\"务\",\"具\",\"万\",\"每\",\"目\",\"至\",\"达\",\"走\",\"积\",\"示\",\"议\",\"声\",\"报\",\"斗\",\"完\",\"类\",\"八\",\"离\",\"华\",\"名\",\"确\",\"才\",\"科\",\"张\",\"信\",\"马\",\"节\",\"话\",\"米\",\"整\",\"空\",\"元\",\"况\",\"今\",\"集\",\"温\",\"传\",\"土\",\"许\",\"步\",\"群\",\"广\",\"石\",\"记\",\"需\",\"段\",\"研\",\"界\",\"拉\",\"林\",\"律\",\"叫\",\"且\",\"究\",\"观\",\"越\",\"织\",\"装\",\"影\",\"算\",\"低\",\"持\",\"音\",\"众\",\"书\",\"布\",\"复\",\"容\",\"儿\",\"须\",\"际\",\"商\",\"非\",\"验\",\"连\",\"断\",\"深\",\"难\",\"近\",\"矿\",\"千\",\"周\",\"委\",\"素\",\"技\",\"备\",\"半\",\"办\",\"青\",\"省\",\"列\",\"习\",\"响\",\"约\",\"支\",\"般\",\"史\",\"感\",\"劳\",\"便\",\"团\",\"往\",\"酸\",\"历\",\"市\",\"克\",\"何\",\"除\",\"消\",\"构\",\"府\",\"称\",\"太\",\"准\",\"精\",\"值\",\"号\",\"率\",\"族\",\"维\",\"划\",\"选\",\"标\",\"写\",\"存\",\"候\",\"毛\",\"亲\",\"快\",\"效\",\"斯\",\"院\",\"查\",\"江\",\"型\",\"眼\",\"王\",\"按\",\"格\",\"养\",\"易\",\"置\",\"派\",\"层\",\"片\",\"始\",\"却\",\"专\",\"状\",\"育\",\"厂\",\"京\",\"识\",\"适\",\"属\",\"圆\",\"包\",\"火\",\"住\",\"调\",\"满\",\"县\",\"局\",\"照\",\"参\",\"红\",\"细\",\"引\",\"听\",\"该\",\"铁\",\"价\",\"严\",\"首\",\"底\",\"液\",\"官\",\"德\",\"随\",\"病\",\"苏\",\"失\",\"尔\",\"死\",\"讲\",\"配\",\"女\",\"黄\",\"推\",\"显\",\"谈\",\"罪\",\"神\",\"艺\",\"呢\",\"席\",\"含\",\"企\",\"望\",\"密\",\"批\",\"营\",\"项\",\"防\",\"举\",\"球\",\"英\",\"氧\",\"势\",\"告\",\"李\",\"台\",\"落\",\"木\",\"帮\",\"轮\",\"破\",\"亚\",\"师\",\"围\",\"注\",\"远\",\"字\",\"材\",\"排\",\"供\",\"河\",\"态\",\"封\",\"另\",\"施\",\"减\",\"树\",\"溶\",\"怎\",\"止\",\"案\",\"言\",\"士\",\"均\",\"武\",\"固\",\"叶\",\"鱼\",\"波\",\"视\",\"仅\",\"费\",\"紧\",\"爱\",\"左\",\"章\",\"早\",\"朝\",\"害\",\"续\",\"轻\",\"服\",\"试\",\"食\",\"充\",\"兵\",\"源\",\"判\",\"护\",\"司\",\"足\",\"某\",\"练\",\"差\",\"致\",\"板\",\"田\",\"降\",\"黑\",\"犯\",\"负\",\"击\",\"范\",\"继\",\"兴\",\"似\",\"余\",\"坚\",\"曲\",\"输\",\"修\",\"故\",\"城\",\"夫\",\"够\",\"送\",\"笔\",\"船\",\"占\",\"右\",\"财\",\"吃\",\"富\",\"春\",\"职\",\"觉\",\"汉\",\"画\",\"功\",\"巴\",\"跟\",\"虽\",\"杂\",\"飞\",\"检\",\"吸\",\"助\",\"升\",\"阳\",\"互\",\"初\",\"创\",\"抗\",\"考\",\"投\",\"坏\",\"策\",\"古\",\"径\",\"换\",\"未\",\"跑\",\"留\",\"钢\",\"曾\",\"端\",\"责\",\"站\",\"简\",\"述\",\"钱\",\"副\",\"尽\",\"帝\",\"射\",\"草\",\"冲\",\"承\",\"独\",\"令\",\"限\",\"阿\",\"宣\",\"环\",\"双\",\"请\",\"超\",\"微\",\"让\",\"控\",\"州\",\"良\",\"轴\",\"找\",\"否\",\"纪\",\"益\",\"依\",\"优\",\"顶\",\"础\",\"载\",\"倒\",\"房\",\"突\",\"坐\",\"粉\",\"敌\",\"略\",\"客\",\"袁\",\"冷\",\"胜\",\"绝\",\"析\",\"块\",\"剂\",\"测\",\"丝\",\"协\",\"诉\",\"念\",\"陈\",\"仍\",\"罗\",\"盐\",\"友\",\"洋\",\"错\",\"苦\",\"夜\",\"刑\",\"移\",\"频\",\"逐\",\"靠\",\"混\",\"母\",\"短\",\"皮\",\"终\",\"聚\",\"汽\",\"村\",\"云\",\"哪\",\"既\",\"距\",\"卫\",\"停\",\"烈\",\"央\",\"察\",\"烧\",\"迅\",\"境\",\"若\",\"印\",\"洲\",\"刻\",\"括\",\"激\",\"孔\",\"搞\",\"甚\",\"室\",\"待\",\"核\",\"校\",\"散\",\"侵\",\"吧\",\"甲\",\"游\",\"久\",\"菜\",\"味\",\"旧\",\"模\",\"湖\",\"货\",\"损\",\"预\",\"阻\",\"毫\",\"普\",\"稳\",\"乙\",\"妈\",\"植\",\"息\",\"扩\",\"银\",\"语\",\"挥\",\"酒\",\"守\",\"拿\",\"序\",\"纸\",\"医\",\"缺\",\"雨\",\"吗\",\"针\",\"刘\",\"啊\",\"急\",\"唱\",\"误\",\"训\",\"愿\",\"审\",\"附\",\"获\",\"茶\",\"鲜\",\"粮\",\"斤\",\"孩\",\"脱\",\"硫\",\"肥\",\"善\",\"龙\",\"演\",\"父\",\"渐\",\"血\",\"欢\",\"械\",\"掌\",\"歌\",\"沙\",\"刚\",\"攻\",\"谓\",\"盾\",\"讨\",\"晚\",\"粒\",\"乱\",\"燃\",\"矛\",\"乎\",\"杀\",\"药\",\"宁\",\"鲁\",\"贵\",\"钟\",\"煤\",\"读\",\"班\",\"伯\",\"香\",\"介\",\"迫\",\"句\",\"丰\",\"培\",\"握\",\"兰\",\"担\",\"弦\",\"蛋\",\"沉\",\"假\",\"穿\",\"执\",\"答\",\"乐\",\"谁\",\"顺\",\"烟\",\"缩\",\"征\",\"脸\",\"喜\",\"松\",\"脚\",\"困\",\"异\",\"免\",\"背\",\"星\",\"福\",\"买\",\"染\",\"井\",\"概\",\"慢\",\"怕\",\"磁\",\"倍\",\"祖\",\"皇\",\"促\",\"静\",\"补\",\"评\",\"翻\",\"肉\",\"践\",\"尼\",\"衣\",\"宽\",\"扬\",\"棉\",\"希\",\"伤\",\"操\",\"垂\",\"秋\",\"宜\",\"氢\",\"套\",\"督\",\"振\",\"架\",\"亮\",\"末\",\"宪\",\"庆\",\"编\",\"牛\",\"触\",\"映\",\"雷\",\"销\",\"诗\",\"座\",\"居\",\"抓\",\"裂\",\"胞\",\"呼\",\"娘\",\"景\",\"威\",\"绿\",\"晶\",\"厚\",\"盟\",\"衡\",\"鸡\",\"孙\",\"延\",\"危\",\"胶\",\"屋\",\"乡\",\"临\",\"陆\",\"顾\",\"掉\",\"呀\",\"灯\",\"岁\",\"措\",\"束\",\"耐\",\"剧\",\"玉\",\"赵\",\"跳\",\"哥\",\"季\",\"课\",\"凯\",\"胡\",\"额\",\"款\",\"绍\",\"卷\",\"齐\",\"伟\",\"蒸\",\"殖\",\"永\",\"宗\",\"苗\",\"川\",\"炉\",\"岩\",\"弱\",\"零\",\"杨\",\"奏\",\"沿\",\"露\",\"杆\",\"探\",\"滑\",\"镇\",\"饭\",\"浓\",\"航\",\"怀\",\"赶\",\"库\",\"夺\",\"伊\",\"灵\",\"税\",\"途\",\"灭\",\"赛\",\"归\",\"召\",\"鼓\",\"播\",\"盘\",\"裁\",\"险\",\"康\",\"唯\",\"录\",\"菌\",\"纯\",\"借\",\"糖\",\"盖\",\"横\",\"符\",\"私\",\"努\",\"堂\",\"域\",\"枪\",\"润\",\"幅\",\"哈\",\"竟\",\"熟\",\"虫\",\"泽\",\"脑\",\"壤\",\"碳\",\"欧\",\"遍\",\"侧\",\"寨\",\"敢\",\"彻\",\"虑\",\"斜\",\"薄\",\"庭\",\"纳\",\"弹\",\"饲\",\"伸\",\"折\",\"麦\",\"湿\",\"暗\",\"荷\",\"瓦\",\"塞\",\"床\",\"筑\",\"恶\",\"户\",\"访\",\"塔\",\"奇\",\"透\",\"梁\",\"刀\",\"旋\",\"迹\",\"卡\",\"氯\",\"遇\",\"份\",\"毒\",\"泥\",\"退\",\"洗\",\"摆\",\"灰\",\"彩\",\"卖\",\"耗\",\"夏\",\"择\",\"忙\",\"铜\",\"献\",\"硬\",\"予\",\"繁\",\"圈\",\"雪\",\"函\",\"亦\",\"抽\",\"篇\",\"阵\",\"阴\",\"丁\",\"尺\",\"追\",\"堆\",\"雄\",\"迎\",\"泛\",\"爸\",\"楼\",\"避\",\"谋\",\"吨\",\"野\",\"猪\",\"旗\",\"累\",\"偏\",\"典\",\"馆\",\"索\",\"秦\",\"脂\",\"潮\",\"爷\",\"豆\",\"忽\",\"托\",\"惊\",\"塑\",\"遗\",\"愈\",\"朱\",\"替\",\"纤\",\"粗\",\"倾\",\"尚\",\"痛\",\"楚\",\"谢\",\"奋\",\"购\",\"磨\",\"君\",\"池\",\"旁\",\"碎\",\"骨\",\"监\",\"捕\",\"弟\",\"暴\",\"割\",\"贯\",\"殊\",\"释\",\"词\",\"亡\",\"壁\",\"顿\",\"宝\",\"午\",\"尘\",\"闻\",\"揭\",\"炮\",\"残\",\"冬\",\"桥\",\"妇\",\"警\",\"综\",\"招\",\"吴\",\"付\",\"浮\",\"遭\",\"徐\",\"您\",\"摇\",\"谷\",\"赞\",\"箱\",\"隔\",\"订\",\"男\",\"吹\",\"园\",\"纷\",\"唐\",\"败\",\"宋\",\"玻\",\"巨\",\"耕\",\"坦\",\"荣\",\"闭\",\"湾\",\"键\",\"凡\",\"驻\",\"锅\",\"救\",\"恩\",\"剥\",\"凝\",\"碱\",\"齿\",\"截\",\"炼\",\"麻\",\"纺\",\"禁\",\"废\",\"盛\",\"版\",\"缓\",\"净\",\"睛\",\"昌\",\"婚\",\"涉\",\"筒\",\"嘴\",\"插\",\"岸\",\"朗\",\"庄\",\"街\",\"藏\",\"姑\",\"贸\",\"腐\",\"奴\",\"啦\",\"惯\",\"乘\",\"伙\",\"恢\",\"匀\",\"纱\",\"扎\",\"辩\",\"耳\",\"彪\",\"臣\",\"亿\",\"璃\",\"抵\",\"脉\",\"秀\",\"萨\",\"俄\",\"网\",\"舞\",\"店\",\"喷\",\"纵\",\"寸\",\"汗\",\"挂\",\"洪\",\"贺\",\"闪\",\"柬\",\"爆\",\"烯\",\"津\",\"稻\",\"墙\",\"软\",\"勇\",\"像\",\"滚\",\"厘\",\"蒙\",\"芳\",\"肯\",\"坡\",\"柱\",\"荡\",\"腿\",\"仪\",\"旅\",\"尾\",\"轧\",\"冰\",\"贡\",\"登\",\"黎\",\"削\",\"钻\",\"勒\",\"逃\",\"障\",\"氨\",\"郭\",\"峰\",\"币\",\"港\",\"伏\",\"轨\",\"亩\",\"毕\",\"擦\",\"莫\",\"刺\",\"浪\",\"秘\",\"援\",\"株\",\"健\",\"售\",\"股\",\"岛\",\"甘\",\"泡\",\"睡\",\"童\",\"铸\",\"汤\",\"阀\",\"休\",\"汇\",\"舍\",\"牧\",\"绕\",\"炸\",\"哲\",\"磷\",\"绩\",\"朋\",\"淡\",\"尖\",\"启\",\"陷\",\"柴\",\"呈\",\"徒\",\"颜\",\"泪\",\"稍\",\"忘\",\"泵\",\"蓝\",\"拖\",\"洞\",\"授\",\"镜\",\"辛\",\"壮\",\"锋\",\"贫\",\"虚\",\"弯\",\"摩\",\"泰\",\"幼\",\"廷\",\"尊\",\"窗\",\"纲\",\"弄\",\"隶\",\"疑\",\"氏\",\"宫\",\"姐\",\"震\",\"瑞\",\"怪\",\"尤\",\"琴\",\"循\",\"描\",\"膜\",\"违\",\"夹\",\"腰\",\"缘\",\"珠\",\"穷\",\"森\",\"枝\",\"竹\",\"沟\",\"催\",\"绳\",\"忆\",\"邦\",\"剩\",\"幸\",\"浆\",\"栏\",\"拥\",\"牙\",\"贮\",\"礼\",\"滤\",\"钠\",\"纹\",\"罢\",\"拍\",\"咱\",\"喊\",\"袖\",\"埃\",\"勤\",\"罚\",\"焦\",\"潜\",\"伍\",\"墨\",\"欲\",\"缝\",\"姓\",\"刊\",\"饱\",\"仿\",\"奖\",\"铝\",\"鬼\",\"丽\",\"跨\",\"默\",\"挖\",\"链\",\"扫\",\"喝\",\"袋\",\"炭\",\"污\",\"幕\",\"诸\",\"弧\",\"励\",\"梅\",\"奶\",\"洁\",\"灾\",\"舟\",\"鉴\",\"苯\",\"讼\",\"抱\",\"毁\",\"懂\",\"寒\",\"智\",\"埔\",\"寄\",\"届\",\"跃\",\"渡\",\"挑\",\"丹\",\"艰\",\"贝\",\"碰\",\"拔\",\"爹\",\"戴\",\"码\",\"梦\",\"芽\",\"熔\",\"赤\",\"渔\",\"哭\",\"敬\",\"颗\",\"奔\",\"铅\",\"仲\",\"虎\",\"稀\",\"妹\",\"乏\",\"珍\",\"申\",\"桌\",\"遵\",\"允\",\"隆\",\"螺\",\"仓\",\"魏\",\"锐\",\"晓\",\"氮\",\"兼\",\"隐\",\"碍\",\"赫\",\"拨\",\"忠\",\"肃\",\"缸\",\"牵\",\"抢\",\"博\",\"巧\",\"壳\",\"兄\",\"杜\",\"讯\",\"诚\",\"碧\",\"祥\",\"柯\",\"页\",\"巡\",\"矩\",\"悲\",\"灌\",\"龄\",\"伦\",\"票\",\"寻\",\"桂\",\"铺\",\"圣\",\"恐\",\"恰\",\"郑\",\"趣\",\"抬\",\"荒\",\"腾\",\"贴\",\"柔\",\"滴\",\"猛\",\"阔\",\"辆\",\"妻\",\"填\",\"撤\",\"储\",\"签\",\"闹\",\"扰\",\"紫\",\"砂\",\"递\",\"戏\",\"吊\",\"陶\",\"伐\",\"喂\",\"疗\",\"瓶\",\"婆\",\"抚\",\"臂\",\"摸\",\"忍\",\"虾\",\"蜡\",\"邻\",\"胸\",\"巩\",\"挤\",\"偶\",\"弃\",\"槽\",\"劲\",\"乳\",\"邓\",\"吉\",\"仁\",\"烂\",\"砖\",\"租\",\"乌\",\"舰\",\"伴\",\"瓜\",\"浅\",\"丙\",\"暂\",\"燥\",\"橡\",\"柳\",\"迷\",\"暖\",\"牌\",\"秧\",\"胆\",\"详\",\"簧\",\"踏\",\"瓷\",\"谱\",\"呆\",\"宾\",\"糊\",\"洛\",\"辉\",\"愤\",\"竞\",\"隙\",\"怒\",\"粘\",\"乃\",\"绪\",\"肩\",\"籍\",\"敏\",\"涂\",\"熙\",\"皆\",\"侦\",\"悬\",\"掘\",\"享\",\"纠\",\"醒\",\"狂\",\"锁\",\"淀\",\"恨\",\"牲\",\"霸\",\"爬\",\"赏\",\"逆\",\"玩\",\"陵\",\"祝\",\"秒\",\"浙\",\"貌\",\"役\",\"彼\",\"悉\",\"鸭\",\"趋\",\"凤\",\"晨\",\"畜\",\"辈\",\"秩\",\"卵\",\"署\",\"梯\",\"炎\",\"滩\",\"棋\",\"驱\",\"筛\",\"峡\",\"冒\",\"啥\",\"寿\",\"译\",\"浸\",\"泉\",\"帽\",\"迟\",\"硅\",\"疆\",\"贷\",\"漏\",\"稿\",\"冠\",\"嫩\",\"胁\",\"芯\",\"牢\",\"叛\",\"蚀\",\"奥\",\"鸣\",\"岭\",\"羊\",\"凭\",\"串\",\"塘\",\"绘\",\"酵\",\"融\",\"盆\",\"锡\",\"庙\",\"筹\",\"冻\",\"辅\",\"摄\",\"袭\",\"筋\",\"拒\",\"僚\",\"旱\",\"钾\",\"鸟\",\"漆\",\"沈\",\"眉\",\"疏\",\"添\",\"棒\",\"穗\",\"硝\",\"韩\",\"逼\",\"扭\",\"侨\",\"凉\",\"挺\",\"碗\",\"栽\",\"炒\",\"杯\",\"患\",\"馏\",\"劝\",\"豪\",\"辽\",\"勃\",\"鸿\",\"旦\",\"吏\",\"拜\",\"狗\",\"埋\",\"辊\",\"掩\",\"饮\",\"搬\",\"骂\",\"辞\",\"勾\",\"扣\",\"估\",\"蒋\",\"绒\",\"雾\",\"丈\",\"朵\",\"姆\",\"拟\",\"宇\",\"辑\",\"陕\",\"雕\",\"偿\",\"蓄\",\"崇\",\"剪\",\"倡\",\"厅\",\"咬\",\"驶\",\"薯\",\"刷\",\"斥\",\"番\",\"赋\",\"奉\",\"佛\",\"浇\",\"漫\",\"曼\",\"扇\",\"钙\",\"桃\",\"扶\",\"仔\",\"返\",\"俗\",\"亏\",\"腔\",\"鞋\",\"棱\",\"覆\",\"框\",\"悄\",\"叔\",\"撞\",\"骗\",\"勘\",\"旺\",\"沸\",\"孤\",\"吐\",\"孟\",\"渠\",\"屈\",\"疾\",\"妙\",\"惜\",\"仰\",\"狠\",\"胀\",\"谐\",\"抛\",\"霉\",\"桑\",\"岗\",\"嘛\",\"衰\",\"盗\",\"渗\",\"脏\",\"赖\",\"涌\",\"甜\",\"曹\",\"阅\",\"肌\",\"哩\",\"厉\",\"烃\",\"纬\",\"毅\",\"昨\",\"伪\",\"症\",\"煮\",\"叹\",\"钉\",\"搭\",\"茎\",\"笼\",\"酷\",\"偷\",\"弓\",\"锥\",\"恒\",\"杰\",\"坑\",\"鼻\",\"翼\",\"纶\",\"叙\",\"狱\",\"逮\",\"罐\",\"络\",\"棚\",\"抑\",\"膨\",\"蔬\",\"寺\",\"骤\",\"穆\",\"冶\",\"枯\",\"册\",\"尸\",\"凸\",\"绅\",\"坯\",\"牺\",\"焰\",\"轰\",\"欣\",\"晋\",\"瘦\",\"御\",\"锭\",\"锦\",\"丧\",\"旬\",\"锻\",\"垄\",\"搜\",\"扑\",\"邀\",\"亭\",\"酯\",\"迈\",\"舒\",\"脆\",\"酶\",\"闲\",\"忧\",\"酚\",\"顽\",\"羽\",\"涨\",\"卸\",\"仗\",\"陪\",\"辟\",\"惩\",\"杭\",\"姚\",\"肚\",\"捉\",\"飘\",\"漂\",\"昆\",\"欺\",\"吾\",\"郎\",\"烷\",\"汁\",\"呵\",\"饰\",\"萧\",\"雅\",\"邮\",\"迁\",\"燕\",\"撒\",\"姻\",\"赴\",\"宴\",\"烦\",\"债\",\"帐\",\"斑\",\"铃\",\"旨\",\"醇\",\"董\",\"饼\",\"雏\",\"姿\",\"拌\",\"傅\",\"腹\",\"妥\",\"揉\",\"贤\",\"拆\",\"歪\",\"葡\",\"胺\",\"丢\",\"浩\",\"徽\",\"昂\",\"垫\",\"挡\",\"览\",\"贪\",\"慰\",\"缴\",\"汪\",\"慌\",\"冯\",\"诺\",\"姜\",\"谊\",\"凶\",\"劣\",\"诬\",\"耀\",\"昏\",\"躺\",\"盈\",\"骑\",\"乔\",\"溪\",\"丛\",\"卢\",\"抹\",\"闷\",\"咨\",\"刮\",\"驾\",\"缆\",\"悟\",\"摘\",\"铒\",\"掷\",\"颇\",\"幻\",\"柄\",\"惠\",\"惨\",\"佳\",\"仇\",\"腊\",\"窝\",\"涤\",\"剑\",\"瞧\",\"堡\",\"泼\",\"葱\",\"罩\",\"霍\",\"捞\",\"胎\",\"苍\",\"滨\",\"俩\",\"捅\",\"湘\",\"砍\",\"霞\",\"邵\",\"萄\",\"疯\",\"淮\",\"遂\",\"熊\",\"粪\",\"烘\",\"宿\",\"档\",\"戈\",\"驳\",\"嫂\",\"裕\",\"徙\",\"箭\",\"捐\",\"肠\",\"撑\",\"晒\",\"辨\",\"殿\",\"莲\",\"摊\",\"搅\",\"酱\",\"屏\",\"疫\",\"哀\",\"蔡\",\"堵\",\"沫\",\"皱\",\"畅\",\"叠\",\"阁\",\"莱\",\"敲\",\"辖\",\"钩\",\"痕\",\"坝\",\"巷\",\"饿\",\"祸\",\"丘\",\"玄\",\"溜\",\"曰\",\"逻\",\"彭\",\"尝\",\"卿\",\"妨\",\"艇\",\"吞\",\"韦\",\"怨\",\"矮\",\"歇\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/chinese_simplified.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/chinese_traditional.json":
/*!*******************************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/chinese_traditional.json ***!
  \*******************************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"的\",\"一\",\"是\",\"在\",\"不\",\"了\",\"有\",\"和\",\"人\",\"這\",\"中\",\"大\",\"為\",\"上\",\"個\",\"國\",\"我\",\"以\",\"要\",\"他\",\"時\",\"來\",\"用\",\"們\",\"生\",\"到\",\"作\",\"地\",\"於\",\"出\",\"就\",\"分\",\"對\",\"成\",\"會\",\"可\",\"主\",\"發\",\"年\",\"動\",\"同\",\"工\",\"也\",\"能\",\"下\",\"過\",\"子\",\"說\",\"產\",\"種\",\"面\",\"而\",\"方\",\"後\",\"多\",\"定\",\"行\",\"學\",\"法\",\"所\",\"民\",\"得\",\"經\",\"十\",\"三\",\"之\",\"進\",\"著\",\"等\",\"部\",\"度\",\"家\",\"電\",\"力\",\"裡\",\"如\",\"水\",\"化\",\"高\",\"自\",\"二\",\"理\",\"起\",\"小\",\"物\",\"現\",\"實\",\"加\",\"量\",\"都\",\"兩\",\"體\",\"制\",\"機\",\"當\",\"使\",\"點\",\"從\",\"業\",\"本\",\"去\",\"把\",\"性\",\"好\",\"應\",\"開\",\"它\",\"合\",\"還\",\"因\",\"由\",\"其\",\"些\",\"然\",\"前\",\"外\",\"天\",\"政\",\"四\",\"日\",\"那\",\"社\",\"義\",\"事\",\"平\",\"形\",\"相\",\"全\",\"表\",\"間\",\"樣\",\"與\",\"關\",\"各\",\"重\",\"新\",\"線\",\"內\",\"數\",\"正\",\"心\",\"反\",\"你\",\"明\",\"看\",\"原\",\"又\",\"麼\",\"利\",\"比\",\"或\",\"但\",\"質\",\"氣\",\"第\",\"向\",\"道\",\"命\",\"此\",\"變\",\"條\",\"只\",\"沒\",\"結\",\"解\",\"問\",\"意\",\"建\",\"月\",\"公\",\"無\",\"系\",\"軍\",\"很\",\"情\",\"者\",\"最\",\"立\",\"代\",\"想\",\"已\",\"通\",\"並\",\"提\",\"直\",\"題\",\"黨\",\"程\",\"展\",\"五\",\"果\",\"料\",\"象\",\"員\",\"革\",\"位\",\"入\",\"常\",\"文\",\"總\",\"次\",\"品\",\"式\",\"活\",\"設\",\"及\",\"管\",\"特\",\"件\",\"長\",\"求\",\"老\",\"頭\",\"基\",\"資\",\"邊\",\"流\",\"路\",\"級\",\"少\",\"圖\",\"山\",\"統\",\"接\",\"知\",\"較\",\"將\",\"組\",\"見\",\"計\",\"別\",\"她\",\"手\",\"角\",\"期\",\"根\",\"論\",\"運\",\"農\",\"指\",\"幾\",\"九\",\"區\",\"強\",\"放\",\"決\",\"西\",\"被\",\"幹\",\"做\",\"必\",\"戰\",\"先\",\"回\",\"則\",\"任\",\"取\",\"據\",\"處\",\"隊\",\"南\",\"給\",\"色\",\"光\",\"門\",\"即\",\"保\",\"治\",\"北\",\"造\",\"百\",\"規\",\"熱\",\"領\",\"七\",\"海\",\"口\",\"東\",\"導\",\"器\",\"壓\",\"志\",\"世\",\"金\",\"增\",\"爭\",\"濟\",\"階\",\"油\",\"思\",\"術\",\"極\",\"交\",\"受\",\"聯\",\"什\",\"認\",\"六\",\"共\",\"權\",\"收\",\"證\",\"改\",\"清\",\"美\",\"再\",\"採\",\"轉\",\"更\",\"單\",\"風\",\"切\",\"打\",\"白\",\"教\",\"速\",\"花\",\"帶\",\"安\",\"場\",\"身\",\"車\",\"例\",\"真\",\"務\",\"具\",\"萬\",\"每\",\"目\",\"至\",\"達\",\"走\",\"積\",\"示\",\"議\",\"聲\",\"報\",\"鬥\",\"完\",\"類\",\"八\",\"離\",\"華\",\"名\",\"確\",\"才\",\"科\",\"張\",\"信\",\"馬\",\"節\",\"話\",\"米\",\"整\",\"空\",\"元\",\"況\",\"今\",\"集\",\"溫\",\"傳\",\"土\",\"許\",\"步\",\"群\",\"廣\",\"石\",\"記\",\"需\",\"段\",\"研\",\"界\",\"拉\",\"林\",\"律\",\"叫\",\"且\",\"究\",\"觀\",\"越\",\"織\",\"裝\",\"影\",\"算\",\"低\",\"持\",\"音\",\"眾\",\"書\",\"布\",\"复\",\"容\",\"兒\",\"須\",\"際\",\"商\",\"非\",\"驗\",\"連\",\"斷\",\"深\",\"難\",\"近\",\"礦\",\"千\",\"週\",\"委\",\"素\",\"技\",\"備\",\"半\",\"辦\",\"青\",\"省\",\"列\",\"習\",\"響\",\"約\",\"支\",\"般\",\"史\",\"感\",\"勞\",\"便\",\"團\",\"往\",\"酸\",\"歷\",\"市\",\"克\",\"何\",\"除\",\"消\",\"構\",\"府\",\"稱\",\"太\",\"準\",\"精\",\"值\",\"號\",\"率\",\"族\",\"維\",\"劃\",\"選\",\"標\",\"寫\",\"存\",\"候\",\"毛\",\"親\",\"快\",\"效\",\"斯\",\"院\",\"查\",\"江\",\"型\",\"眼\",\"王\",\"按\",\"格\",\"養\",\"易\",\"置\",\"派\",\"層\",\"片\",\"始\",\"卻\",\"專\",\"狀\",\"育\",\"廠\",\"京\",\"識\",\"適\",\"屬\",\"圓\",\"包\",\"火\",\"住\",\"調\",\"滿\",\"縣\",\"局\",\"照\",\"參\",\"紅\",\"細\",\"引\",\"聽\",\"該\",\"鐵\",\"價\",\"嚴\",\"首\",\"底\",\"液\",\"官\",\"德\",\"隨\",\"病\",\"蘇\",\"失\",\"爾\",\"死\",\"講\",\"配\",\"女\",\"黃\",\"推\",\"顯\",\"談\",\"罪\",\"神\",\"藝\",\"呢\",\"席\",\"含\",\"企\",\"望\",\"密\",\"批\",\"營\",\"項\",\"防\",\"舉\",\"球\",\"英\",\"氧\",\"勢\",\"告\",\"李\",\"台\",\"落\",\"木\",\"幫\",\"輪\",\"破\",\"亞\",\"師\",\"圍\",\"注\",\"遠\",\"字\",\"材\",\"排\",\"供\",\"河\",\"態\",\"封\",\"另\",\"施\",\"減\",\"樹\",\"溶\",\"怎\",\"止\",\"案\",\"言\",\"士\",\"均\",\"武\",\"固\",\"葉\",\"魚\",\"波\",\"視\",\"僅\",\"費\",\"緊\",\"愛\",\"左\",\"章\",\"早\",\"朝\",\"害\",\"續\",\"輕\",\"服\",\"試\",\"食\",\"充\",\"兵\",\"源\",\"判\",\"護\",\"司\",\"足\",\"某\",\"練\",\"差\",\"致\",\"板\",\"田\",\"降\",\"黑\",\"犯\",\"負\",\"擊\",\"范\",\"繼\",\"興\",\"似\",\"餘\",\"堅\",\"曲\",\"輸\",\"修\",\"故\",\"城\",\"夫\",\"夠\",\"送\",\"筆\",\"船\",\"佔\",\"右\",\"財\",\"吃\",\"富\",\"春\",\"職\",\"覺\",\"漢\",\"畫\",\"功\",\"巴\",\"跟\",\"雖\",\"雜\",\"飛\",\"檢\",\"吸\",\"助\",\"昇\",\"陽\",\"互\",\"初\",\"創\",\"抗\",\"考\",\"投\",\"壞\",\"策\",\"古\",\"徑\",\"換\",\"未\",\"跑\",\"留\",\"鋼\",\"曾\",\"端\",\"責\",\"站\",\"簡\",\"述\",\"錢\",\"副\",\"盡\",\"帝\",\"射\",\"草\",\"衝\",\"承\",\"獨\",\"令\",\"限\",\"阿\",\"宣\",\"環\",\"雙\",\"請\",\"超\",\"微\",\"讓\",\"控\",\"州\",\"良\",\"軸\",\"找\",\"否\",\"紀\",\"益\",\"依\",\"優\",\"頂\",\"礎\",\"載\",\"倒\",\"房\",\"突\",\"坐\",\"粉\",\"敵\",\"略\",\"客\",\"袁\",\"冷\",\"勝\",\"絕\",\"析\",\"塊\",\"劑\",\"測\",\"絲\",\"協\",\"訴\",\"念\",\"陳\",\"仍\",\"羅\",\"鹽\",\"友\",\"洋\",\"錯\",\"苦\",\"夜\",\"刑\",\"移\",\"頻\",\"逐\",\"靠\",\"混\",\"母\",\"短\",\"皮\",\"終\",\"聚\",\"汽\",\"村\",\"雲\",\"哪\",\"既\",\"距\",\"衛\",\"停\",\"烈\",\"央\",\"察\",\"燒\",\"迅\",\"境\",\"若\",\"印\",\"洲\",\"刻\",\"括\",\"激\",\"孔\",\"搞\",\"甚\",\"室\",\"待\",\"核\",\"校\",\"散\",\"侵\",\"吧\",\"甲\",\"遊\",\"久\",\"菜\",\"味\",\"舊\",\"模\",\"湖\",\"貨\",\"損\",\"預\",\"阻\",\"毫\",\"普\",\"穩\",\"乙\",\"媽\",\"植\",\"息\",\"擴\",\"銀\",\"語\",\"揮\",\"酒\",\"守\",\"拿\",\"序\",\"紙\",\"醫\",\"缺\",\"雨\",\"嗎\",\"針\",\"劉\",\"啊\",\"急\",\"唱\",\"誤\",\"訓\",\"願\",\"審\",\"附\",\"獲\",\"茶\",\"鮮\",\"糧\",\"斤\",\"孩\",\"脫\",\"硫\",\"肥\",\"善\",\"龍\",\"演\",\"父\",\"漸\",\"血\",\"歡\",\"械\",\"掌\",\"歌\",\"沙\",\"剛\",\"攻\",\"謂\",\"盾\",\"討\",\"晚\",\"粒\",\"亂\",\"燃\",\"矛\",\"乎\",\"殺\",\"藥\",\"寧\",\"魯\",\"貴\",\"鐘\",\"煤\",\"讀\",\"班\",\"伯\",\"香\",\"介\",\"迫\",\"句\",\"豐\",\"培\",\"握\",\"蘭\",\"擔\",\"弦\",\"蛋\",\"沉\",\"假\",\"穿\",\"執\",\"答\",\"樂\",\"誰\",\"順\",\"煙\",\"縮\",\"徵\",\"臉\",\"喜\",\"松\",\"腳\",\"困\",\"異\",\"免\",\"背\",\"星\",\"福\",\"買\",\"染\",\"井\",\"概\",\"慢\",\"怕\",\"磁\",\"倍\",\"祖\",\"皇\",\"促\",\"靜\",\"補\",\"評\",\"翻\",\"肉\",\"踐\",\"尼\",\"衣\",\"寬\",\"揚\",\"棉\",\"希\",\"傷\",\"操\",\"垂\",\"秋\",\"宜\",\"氫\",\"套\",\"督\",\"振\",\"架\",\"亮\",\"末\",\"憲\",\"慶\",\"編\",\"牛\",\"觸\",\"映\",\"雷\",\"銷\",\"詩\",\"座\",\"居\",\"抓\",\"裂\",\"胞\",\"呼\",\"娘\",\"景\",\"威\",\"綠\",\"晶\",\"厚\",\"盟\",\"衡\",\"雞\",\"孫\",\"延\",\"危\",\"膠\",\"屋\",\"鄉\",\"臨\",\"陸\",\"顧\",\"掉\",\"呀\",\"燈\",\"歲\",\"措\",\"束\",\"耐\",\"劇\",\"玉\",\"趙\",\"跳\",\"哥\",\"季\",\"課\",\"凱\",\"胡\",\"額\",\"款\",\"紹\",\"卷\",\"齊\",\"偉\",\"蒸\",\"殖\",\"永\",\"宗\",\"苗\",\"川\",\"爐\",\"岩\",\"弱\",\"零\",\"楊\",\"奏\",\"沿\",\"露\",\"桿\",\"探\",\"滑\",\"鎮\",\"飯\",\"濃\",\"航\",\"懷\",\"趕\",\"庫\",\"奪\",\"伊\",\"靈\",\"稅\",\"途\",\"滅\",\"賽\",\"歸\",\"召\",\"鼓\",\"播\",\"盤\",\"裁\",\"險\",\"康\",\"唯\",\"錄\",\"菌\",\"純\",\"借\",\"糖\",\"蓋\",\"橫\",\"符\",\"私\",\"努\",\"堂\",\"域\",\"槍\",\"潤\",\"幅\",\"哈\",\"竟\",\"熟\",\"蟲\",\"澤\",\"腦\",\"壤\",\"碳\",\"歐\",\"遍\",\"側\",\"寨\",\"敢\",\"徹\",\"慮\",\"斜\",\"薄\",\"庭\",\"納\",\"彈\",\"飼\",\"伸\",\"折\",\"麥\",\"濕\",\"暗\",\"荷\",\"瓦\",\"塞\",\"床\",\"築\",\"惡\",\"戶\",\"訪\",\"塔\",\"奇\",\"透\",\"梁\",\"刀\",\"旋\",\"跡\",\"卡\",\"氯\",\"遇\",\"份\",\"毒\",\"泥\",\"退\",\"洗\",\"擺\",\"灰\",\"彩\",\"賣\",\"耗\",\"夏\",\"擇\",\"忙\",\"銅\",\"獻\",\"硬\",\"予\",\"繁\",\"圈\",\"雪\",\"函\",\"亦\",\"抽\",\"篇\",\"陣\",\"陰\",\"丁\",\"尺\",\"追\",\"堆\",\"雄\",\"迎\",\"泛\",\"爸\",\"樓\",\"避\",\"謀\",\"噸\",\"野\",\"豬\",\"旗\",\"累\",\"偏\",\"典\",\"館\",\"索\",\"秦\",\"脂\",\"潮\",\"爺\",\"豆\",\"忽\",\"托\",\"驚\",\"塑\",\"遺\",\"愈\",\"朱\",\"替\",\"纖\",\"粗\",\"傾\",\"尚\",\"痛\",\"楚\",\"謝\",\"奮\",\"購\",\"磨\",\"君\",\"池\",\"旁\",\"碎\",\"骨\",\"監\",\"捕\",\"弟\",\"暴\",\"割\",\"貫\",\"殊\",\"釋\",\"詞\",\"亡\",\"壁\",\"頓\",\"寶\",\"午\",\"塵\",\"聞\",\"揭\",\"炮\",\"殘\",\"冬\",\"橋\",\"婦\",\"警\",\"綜\",\"招\",\"吳\",\"付\",\"浮\",\"遭\",\"徐\",\"您\",\"搖\",\"谷\",\"贊\",\"箱\",\"隔\",\"訂\",\"男\",\"吹\",\"園\",\"紛\",\"唐\",\"敗\",\"宋\",\"玻\",\"巨\",\"耕\",\"坦\",\"榮\",\"閉\",\"灣\",\"鍵\",\"凡\",\"駐\",\"鍋\",\"救\",\"恩\",\"剝\",\"凝\",\"鹼\",\"齒\",\"截\",\"煉\",\"麻\",\"紡\",\"禁\",\"廢\",\"盛\",\"版\",\"緩\",\"淨\",\"睛\",\"昌\",\"婚\",\"涉\",\"筒\",\"嘴\",\"插\",\"岸\",\"朗\",\"莊\",\"街\",\"藏\",\"姑\",\"貿\",\"腐\",\"奴\",\"啦\",\"慣\",\"乘\",\"夥\",\"恢\",\"勻\",\"紗\",\"扎\",\"辯\",\"耳\",\"彪\",\"臣\",\"億\",\"璃\",\"抵\",\"脈\",\"秀\",\"薩\",\"俄\",\"網\",\"舞\",\"店\",\"噴\",\"縱\",\"寸\",\"汗\",\"掛\",\"洪\",\"賀\",\"閃\",\"柬\",\"爆\",\"烯\",\"津\",\"稻\",\"牆\",\"軟\",\"勇\",\"像\",\"滾\",\"厘\",\"蒙\",\"芳\",\"肯\",\"坡\",\"柱\",\"盪\",\"腿\",\"儀\",\"旅\",\"尾\",\"軋\",\"冰\",\"貢\",\"登\",\"黎\",\"削\",\"鑽\",\"勒\",\"逃\",\"障\",\"氨\",\"郭\",\"峰\",\"幣\",\"港\",\"伏\",\"軌\",\"畝\",\"畢\",\"擦\",\"莫\",\"刺\",\"浪\",\"秘\",\"援\",\"株\",\"健\",\"售\",\"股\",\"島\",\"甘\",\"泡\",\"睡\",\"童\",\"鑄\",\"湯\",\"閥\",\"休\",\"匯\",\"舍\",\"牧\",\"繞\",\"炸\",\"哲\",\"磷\",\"績\",\"朋\",\"淡\",\"尖\",\"啟\",\"陷\",\"柴\",\"呈\",\"徒\",\"顏\",\"淚\",\"稍\",\"忘\",\"泵\",\"藍\",\"拖\",\"洞\",\"授\",\"鏡\",\"辛\",\"壯\",\"鋒\",\"貧\",\"虛\",\"彎\",\"摩\",\"泰\",\"幼\",\"廷\",\"尊\",\"窗\",\"綱\",\"弄\",\"隸\",\"疑\",\"氏\",\"宮\",\"姐\",\"震\",\"瑞\",\"怪\",\"尤\",\"琴\",\"循\",\"描\",\"膜\",\"違\",\"夾\",\"腰\",\"緣\",\"珠\",\"窮\",\"森\",\"枝\",\"竹\",\"溝\",\"催\",\"繩\",\"憶\",\"邦\",\"剩\",\"幸\",\"漿\",\"欄\",\"擁\",\"牙\",\"貯\",\"禮\",\"濾\",\"鈉\",\"紋\",\"罷\",\"拍\",\"咱\",\"喊\",\"袖\",\"埃\",\"勤\",\"罰\",\"焦\",\"潛\",\"伍\",\"墨\",\"欲\",\"縫\",\"姓\",\"刊\",\"飽\",\"仿\",\"獎\",\"鋁\",\"鬼\",\"麗\",\"跨\",\"默\",\"挖\",\"鏈\",\"掃\",\"喝\",\"袋\",\"炭\",\"污\",\"幕\",\"諸\",\"弧\",\"勵\",\"梅\",\"奶\",\"潔\",\"災\",\"舟\",\"鑑\",\"苯\",\"訟\",\"抱\",\"毀\",\"懂\",\"寒\",\"智\",\"埔\",\"寄\",\"屆\",\"躍\",\"渡\",\"挑\",\"丹\",\"艱\",\"貝\",\"碰\",\"拔\",\"爹\",\"戴\",\"碼\",\"夢\",\"芽\",\"熔\",\"赤\",\"漁\",\"哭\",\"敬\",\"顆\",\"奔\",\"鉛\",\"仲\",\"虎\",\"稀\",\"妹\",\"乏\",\"珍\",\"申\",\"桌\",\"遵\",\"允\",\"隆\",\"螺\",\"倉\",\"魏\",\"銳\",\"曉\",\"氮\",\"兼\",\"隱\",\"礙\",\"赫\",\"撥\",\"忠\",\"肅\",\"缸\",\"牽\",\"搶\",\"博\",\"巧\",\"殼\",\"兄\",\"杜\",\"訊\",\"誠\",\"碧\",\"祥\",\"柯\",\"頁\",\"巡\",\"矩\",\"悲\",\"灌\",\"齡\",\"倫\",\"票\",\"尋\",\"桂\",\"鋪\",\"聖\",\"恐\",\"恰\",\"鄭\",\"趣\",\"抬\",\"荒\",\"騰\",\"貼\",\"柔\",\"滴\",\"猛\",\"闊\",\"輛\",\"妻\",\"填\",\"撤\",\"儲\",\"簽\",\"鬧\",\"擾\",\"紫\",\"砂\",\"遞\",\"戲\",\"吊\",\"陶\",\"伐\",\"餵\",\"療\",\"瓶\",\"婆\",\"撫\",\"臂\",\"摸\",\"忍\",\"蝦\",\"蠟\",\"鄰\",\"胸\",\"鞏\",\"擠\",\"偶\",\"棄\",\"槽\",\"勁\",\"乳\",\"鄧\",\"吉\",\"仁\",\"爛\",\"磚\",\"租\",\"烏\",\"艦\",\"伴\",\"瓜\",\"淺\",\"丙\",\"暫\",\"燥\",\"橡\",\"柳\",\"迷\",\"暖\",\"牌\",\"秧\",\"膽\",\"詳\",\"簧\",\"踏\",\"瓷\",\"譜\",\"呆\",\"賓\",\"糊\",\"洛\",\"輝\",\"憤\",\"競\",\"隙\",\"怒\",\"粘\",\"乃\",\"緒\",\"肩\",\"籍\",\"敏\",\"塗\",\"熙\",\"皆\",\"偵\",\"懸\",\"掘\",\"享\",\"糾\",\"醒\",\"狂\",\"鎖\",\"淀\",\"恨\",\"牲\",\"霸\",\"爬\",\"賞\",\"逆\",\"玩\",\"陵\",\"祝\",\"秒\",\"浙\",\"貌\",\"役\",\"彼\",\"悉\",\"鴨\",\"趨\",\"鳳\",\"晨\",\"畜\",\"輩\",\"秩\",\"卵\",\"署\",\"梯\",\"炎\",\"灘\",\"棋\",\"驅\",\"篩\",\"峽\",\"冒\",\"啥\",\"壽\",\"譯\",\"浸\",\"泉\",\"帽\",\"遲\",\"矽\",\"疆\",\"貸\",\"漏\",\"稿\",\"冠\",\"嫩\",\"脅\",\"芯\",\"牢\",\"叛\",\"蝕\",\"奧\",\"鳴\",\"嶺\",\"羊\",\"憑\",\"串\",\"塘\",\"繪\",\"酵\",\"融\",\"盆\",\"錫\",\"廟\",\"籌\",\"凍\",\"輔\",\"攝\",\"襲\",\"筋\",\"拒\",\"僚\",\"旱\",\"鉀\",\"鳥\",\"漆\",\"沈\",\"眉\",\"疏\",\"添\",\"棒\",\"穗\",\"硝\",\"韓\",\"逼\",\"扭\",\"僑\",\"涼\",\"挺\",\"碗\",\"栽\",\"炒\",\"杯\",\"患\",\"餾\",\"勸\",\"豪\",\"遼\",\"勃\",\"鴻\",\"旦\",\"吏\",\"拜\",\"狗\",\"埋\",\"輥\",\"掩\",\"飲\",\"搬\",\"罵\",\"辭\",\"勾\",\"扣\",\"估\",\"蔣\",\"絨\",\"霧\",\"丈\",\"朵\",\"姆\",\"擬\",\"宇\",\"輯\",\"陝\",\"雕\",\"償\",\"蓄\",\"崇\",\"剪\",\"倡\",\"廳\",\"咬\",\"駛\",\"薯\",\"刷\",\"斥\",\"番\",\"賦\",\"奉\",\"佛\",\"澆\",\"漫\",\"曼\",\"扇\",\"鈣\",\"桃\",\"扶\",\"仔\",\"返\",\"俗\",\"虧\",\"腔\",\"鞋\",\"棱\",\"覆\",\"框\",\"悄\",\"叔\",\"撞\",\"騙\",\"勘\",\"旺\",\"沸\",\"孤\",\"吐\",\"孟\",\"渠\",\"屈\",\"疾\",\"妙\",\"惜\",\"仰\",\"狠\",\"脹\",\"諧\",\"拋\",\"黴\",\"桑\",\"崗\",\"嘛\",\"衰\",\"盜\",\"滲\",\"臟\",\"賴\",\"湧\",\"甜\",\"曹\",\"閱\",\"肌\",\"哩\",\"厲\",\"烴\",\"緯\",\"毅\",\"昨\",\"偽\",\"症\",\"煮\",\"嘆\",\"釘\",\"搭\",\"莖\",\"籠\",\"酷\",\"偷\",\"弓\",\"錐\",\"恆\",\"傑\",\"坑\",\"鼻\",\"翼\",\"綸\",\"敘\",\"獄\",\"逮\",\"罐\",\"絡\",\"棚\",\"抑\",\"膨\",\"蔬\",\"寺\",\"驟\",\"穆\",\"冶\",\"枯\",\"冊\",\"屍\",\"凸\",\"紳\",\"坯\",\"犧\",\"焰\",\"轟\",\"欣\",\"晉\",\"瘦\",\"禦\",\"錠\",\"錦\",\"喪\",\"旬\",\"鍛\",\"壟\",\"搜\",\"撲\",\"邀\",\"亭\",\"酯\",\"邁\",\"舒\",\"脆\",\"酶\",\"閒\",\"憂\",\"酚\",\"頑\",\"羽\",\"漲\",\"卸\",\"仗\",\"陪\",\"闢\",\"懲\",\"杭\",\"姚\",\"肚\",\"捉\",\"飄\",\"漂\",\"昆\",\"欺\",\"吾\",\"郎\",\"烷\",\"汁\",\"呵\",\"飾\",\"蕭\",\"雅\",\"郵\",\"遷\",\"燕\",\"撒\",\"姻\",\"赴\",\"宴\",\"煩\",\"債\",\"帳\",\"斑\",\"鈴\",\"旨\",\"醇\",\"董\",\"餅\",\"雛\",\"姿\",\"拌\",\"傅\",\"腹\",\"妥\",\"揉\",\"賢\",\"拆\",\"歪\",\"葡\",\"胺\",\"丟\",\"浩\",\"徽\",\"昂\",\"墊\",\"擋\",\"覽\",\"貪\",\"慰\",\"繳\",\"汪\",\"慌\",\"馮\",\"諾\",\"姜\",\"誼\",\"兇\",\"劣\",\"誣\",\"耀\",\"昏\",\"躺\",\"盈\",\"騎\",\"喬\",\"溪\",\"叢\",\"盧\",\"抹\",\"悶\",\"諮\",\"刮\",\"駕\",\"纜\",\"悟\",\"摘\",\"鉺\",\"擲\",\"頗\",\"幻\",\"柄\",\"惠\",\"慘\",\"佳\",\"仇\",\"臘\",\"窩\",\"滌\",\"劍\",\"瞧\",\"堡\",\"潑\",\"蔥\",\"罩\",\"霍\",\"撈\",\"胎\",\"蒼\",\"濱\",\"倆\",\"捅\",\"湘\",\"砍\",\"霞\",\"邵\",\"萄\",\"瘋\",\"淮\",\"遂\",\"熊\",\"糞\",\"烘\",\"宿\",\"檔\",\"戈\",\"駁\",\"嫂\",\"裕\",\"徙\",\"箭\",\"捐\",\"腸\",\"撐\",\"曬\",\"辨\",\"殿\",\"蓮\",\"攤\",\"攪\",\"醬\",\"屏\",\"疫\",\"哀\",\"蔡\",\"堵\",\"沫\",\"皺\",\"暢\",\"疊\",\"閣\",\"萊\",\"敲\",\"轄\",\"鉤\",\"痕\",\"壩\",\"巷\",\"餓\",\"禍\",\"丘\",\"玄\",\"溜\",\"曰\",\"邏\",\"彭\",\"嘗\",\"卿\",\"妨\",\"艇\",\"吞\",\"韋\",\"怨\",\"矮\",\"歇\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/chinese_traditional.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/czech.json":
/*!*****************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/czech.json ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"abdikace\",\"abeceda\",\"adresa\",\"agrese\",\"akce\",\"aktovka\",\"alej\",\"alkohol\",\"amputace\",\"ananas\",\"andulka\",\"anekdota\",\"anketa\",\"antika\",\"anulovat\",\"archa\",\"arogance\",\"asfalt\",\"asistent\",\"aspirace\",\"astma\",\"astronom\",\"atlas\",\"atletika\",\"atol\",\"autobus\",\"azyl\",\"babka\",\"bachor\",\"bacil\",\"baculka\",\"badatel\",\"bageta\",\"bagr\",\"bahno\",\"bakterie\",\"balada\",\"baletka\",\"balkon\",\"balonek\",\"balvan\",\"balza\",\"bambus\",\"bankomat\",\"barbar\",\"baret\",\"barman\",\"baroko\",\"barva\",\"baterka\",\"batoh\",\"bavlna\",\"bazalka\",\"bazilika\",\"bazuka\",\"bedna\",\"beran\",\"beseda\",\"bestie\",\"beton\",\"bezinka\",\"bezmoc\",\"beztak\",\"bicykl\",\"bidlo\",\"biftek\",\"bikiny\",\"bilance\",\"biograf\",\"biolog\",\"bitva\",\"bizon\",\"blahobyt\",\"blatouch\",\"blecha\",\"bledule\",\"blesk\",\"blikat\",\"blizna\",\"blokovat\",\"bloudit\",\"blud\",\"bobek\",\"bobr\",\"bodlina\",\"bodnout\",\"bohatost\",\"bojkot\",\"bojovat\",\"bokorys\",\"bolest\",\"borec\",\"borovice\",\"bota\",\"boubel\",\"bouchat\",\"bouda\",\"boule\",\"bourat\",\"boxer\",\"bradavka\",\"brambora\",\"branka\",\"bratr\",\"brepta\",\"briketa\",\"brko\",\"brloh\",\"bronz\",\"broskev\",\"brunetka\",\"brusinka\",\"brzda\",\"brzy\",\"bublina\",\"bubnovat\",\"buchta\",\"buditel\",\"budka\",\"budova\",\"bufet\",\"bujarost\",\"bukvice\",\"buldok\",\"bulva\",\"bunda\",\"bunkr\",\"burza\",\"butik\",\"buvol\",\"buzola\",\"bydlet\",\"bylina\",\"bytovka\",\"bzukot\",\"capart\",\"carevna\",\"cedr\",\"cedule\",\"cejch\",\"cejn\",\"cela\",\"celer\",\"celkem\",\"celnice\",\"cenina\",\"cennost\",\"cenovka\",\"centrum\",\"cenzor\",\"cestopis\",\"cetka\",\"chalupa\",\"chapadlo\",\"charita\",\"chata\",\"chechtat\",\"chemie\",\"chichot\",\"chirurg\",\"chlad\",\"chleba\",\"chlubit\",\"chmel\",\"chmura\",\"chobot\",\"chochol\",\"chodba\",\"cholera\",\"chomout\",\"chopit\",\"choroba\",\"chov\",\"chrapot\",\"chrlit\",\"chrt\",\"chrup\",\"chtivost\",\"chudina\",\"chutnat\",\"chvat\",\"chvilka\",\"chvost\",\"chyba\",\"chystat\",\"chytit\",\"cibule\",\"cigareta\",\"cihelna\",\"cihla\",\"cinkot\",\"cirkus\",\"cisterna\",\"citace\",\"citrus\",\"cizinec\",\"cizost\",\"clona\",\"cokoliv\",\"couvat\",\"ctitel\",\"ctnost\",\"cudnost\",\"cuketa\",\"cukr\",\"cupot\",\"cvaknout\",\"cval\",\"cvik\",\"cvrkot\",\"cyklista\",\"daleko\",\"dareba\",\"datel\",\"datum\",\"dcera\",\"debata\",\"dechovka\",\"decibel\",\"deficit\",\"deflace\",\"dekl\",\"dekret\",\"demokrat\",\"deprese\",\"derby\",\"deska\",\"detektiv\",\"dikobraz\",\"diktovat\",\"dioda\",\"diplom\",\"disk\",\"displej\",\"divadlo\",\"divoch\",\"dlaha\",\"dlouho\",\"dluhopis\",\"dnes\",\"dobro\",\"dobytek\",\"docent\",\"dochutit\",\"dodnes\",\"dohled\",\"dohoda\",\"dohra\",\"dojem\",\"dojnice\",\"doklad\",\"dokola\",\"doktor\",\"dokument\",\"dolar\",\"doleva\",\"dolina\",\"doma\",\"dominant\",\"domluvit\",\"domov\",\"donutit\",\"dopad\",\"dopis\",\"doplnit\",\"doposud\",\"doprovod\",\"dopustit\",\"dorazit\",\"dorost\",\"dort\",\"dosah\",\"doslov\",\"dostatek\",\"dosud\",\"dosyta\",\"dotaz\",\"dotek\",\"dotknout\",\"doufat\",\"doutnat\",\"dovozce\",\"dozadu\",\"doznat\",\"dozorce\",\"drahota\",\"drak\",\"dramatik\",\"dravec\",\"draze\",\"drdol\",\"drobnost\",\"drogerie\",\"drozd\",\"drsnost\",\"drtit\",\"drzost\",\"duben\",\"duchovno\",\"dudek\",\"duha\",\"duhovka\",\"dusit\",\"dusno\",\"dutost\",\"dvojice\",\"dvorec\",\"dynamit\",\"ekolog\",\"ekonomie\",\"elektron\",\"elipsa\",\"email\",\"emise\",\"emoce\",\"empatie\",\"epizoda\",\"epocha\",\"epopej\",\"epos\",\"esej\",\"esence\",\"eskorta\",\"eskymo\",\"etiketa\",\"euforie\",\"evoluce\",\"exekuce\",\"exkurze\",\"expedice\",\"exploze\",\"export\",\"extrakt\",\"facka\",\"fajfka\",\"fakulta\",\"fanatik\",\"fantazie\",\"farmacie\",\"favorit\",\"fazole\",\"federace\",\"fejeton\",\"fenka\",\"fialka\",\"figurant\",\"filozof\",\"filtr\",\"finance\",\"finta\",\"fixace\",\"fjord\",\"flanel\",\"flirt\",\"flotila\",\"fond\",\"fosfor\",\"fotbal\",\"fotka\",\"foton\",\"frakce\",\"freska\",\"fronta\",\"fukar\",\"funkce\",\"fyzika\",\"galeje\",\"garant\",\"genetika\",\"geolog\",\"gilotina\",\"glazura\",\"glejt\",\"golem\",\"golfista\",\"gotika\",\"graf\",\"gramofon\",\"granule\",\"grep\",\"gril\",\"grog\",\"groteska\",\"guma\",\"hadice\",\"hadr\",\"hala\",\"halenka\",\"hanba\",\"hanopis\",\"harfa\",\"harpuna\",\"havran\",\"hebkost\",\"hejkal\",\"hejno\",\"hejtman\",\"hektar\",\"helma\",\"hematom\",\"herec\",\"herna\",\"heslo\",\"hezky\",\"historik\",\"hladovka\",\"hlasivky\",\"hlava\",\"hledat\",\"hlen\",\"hlodavec\",\"hloh\",\"hloupost\",\"hltat\",\"hlubina\",\"hluchota\",\"hmat\",\"hmota\",\"hmyz\",\"hnis\",\"hnojivo\",\"hnout\",\"hoblina\",\"hoboj\",\"hoch\",\"hodiny\",\"hodlat\",\"hodnota\",\"hodovat\",\"hojnost\",\"hokej\",\"holinka\",\"holka\",\"holub\",\"homole\",\"honitba\",\"honorace\",\"horal\",\"horda\",\"horizont\",\"horko\",\"horlivec\",\"hormon\",\"hornina\",\"horoskop\",\"horstvo\",\"hospoda\",\"hostina\",\"hotovost\",\"houba\",\"houf\",\"houpat\",\"houska\",\"hovor\",\"hradba\",\"hranice\",\"hravost\",\"hrazda\",\"hrbolek\",\"hrdina\",\"hrdlo\",\"hrdost\",\"hrnek\",\"hrobka\",\"hromada\",\"hrot\",\"hrouda\",\"hrozen\",\"hrstka\",\"hrubost\",\"hryzat\",\"hubenost\",\"hubnout\",\"hudba\",\"hukot\",\"humr\",\"husita\",\"hustota\",\"hvozd\",\"hybnost\",\"hydrant\",\"hygiena\",\"hymna\",\"hysterik\",\"idylka\",\"ihned\",\"ikona\",\"iluze\",\"imunita\",\"infekce\",\"inflace\",\"inkaso\",\"inovace\",\"inspekce\",\"internet\",\"invalida\",\"investor\",\"inzerce\",\"ironie\",\"jablko\",\"jachta\",\"jahoda\",\"jakmile\",\"jakost\",\"jalovec\",\"jantar\",\"jarmark\",\"jaro\",\"jasan\",\"jasno\",\"jatka\",\"javor\",\"jazyk\",\"jedinec\",\"jedle\",\"jednatel\",\"jehlan\",\"jekot\",\"jelen\",\"jelito\",\"jemnost\",\"jenom\",\"jepice\",\"jeseter\",\"jevit\",\"jezdec\",\"jezero\",\"jinak\",\"jindy\",\"jinoch\",\"jiskra\",\"jistota\",\"jitrnice\",\"jizva\",\"jmenovat\",\"jogurt\",\"jurta\",\"kabaret\",\"kabel\",\"kabinet\",\"kachna\",\"kadet\",\"kadidlo\",\"kahan\",\"kajak\",\"kajuta\",\"kakao\",\"kaktus\",\"kalamita\",\"kalhoty\",\"kalibr\",\"kalnost\",\"kamera\",\"kamkoliv\",\"kamna\",\"kanibal\",\"kanoe\",\"kantor\",\"kapalina\",\"kapela\",\"kapitola\",\"kapka\",\"kaple\",\"kapota\",\"kapr\",\"kapusta\",\"kapybara\",\"karamel\",\"karotka\",\"karton\",\"kasa\",\"katalog\",\"katedra\",\"kauce\",\"kauza\",\"kavalec\",\"kazajka\",\"kazeta\",\"kazivost\",\"kdekoliv\",\"kdesi\",\"kedluben\",\"kemp\",\"keramika\",\"kino\",\"klacek\",\"kladivo\",\"klam\",\"klapot\",\"klasika\",\"klaun\",\"klec\",\"klenba\",\"klepat\",\"klesnout\",\"klid\",\"klima\",\"klisna\",\"klobouk\",\"klokan\",\"klopa\",\"kloub\",\"klubovna\",\"klusat\",\"kluzkost\",\"kmen\",\"kmitat\",\"kmotr\",\"kniha\",\"knot\",\"koalice\",\"koberec\",\"kobka\",\"kobliha\",\"kobyla\",\"kocour\",\"kohout\",\"kojenec\",\"kokos\",\"koktejl\",\"kolaps\",\"koleda\",\"kolize\",\"kolo\",\"komando\",\"kometa\",\"komik\",\"komnata\",\"komora\",\"kompas\",\"komunita\",\"konat\",\"koncept\",\"kondice\",\"konec\",\"konfese\",\"kongres\",\"konina\",\"konkurs\",\"kontakt\",\"konzerva\",\"kopanec\",\"kopie\",\"kopnout\",\"koprovka\",\"korbel\",\"korektor\",\"kormidlo\",\"koroptev\",\"korpus\",\"koruna\",\"koryto\",\"korzet\",\"kosatec\",\"kostka\",\"kotel\",\"kotleta\",\"kotoul\",\"koukat\",\"koupelna\",\"kousek\",\"kouzlo\",\"kovboj\",\"koza\",\"kozoroh\",\"krabice\",\"krach\",\"krajina\",\"kralovat\",\"krasopis\",\"kravata\",\"kredit\",\"krejcar\",\"kresba\",\"kreveta\",\"kriket\",\"kritik\",\"krize\",\"krkavec\",\"krmelec\",\"krmivo\",\"krocan\",\"krok\",\"kronika\",\"kropit\",\"kroupa\",\"krovka\",\"krtek\",\"kruhadlo\",\"krupice\",\"krutost\",\"krvinka\",\"krychle\",\"krypta\",\"krystal\",\"kryt\",\"kudlanka\",\"kufr\",\"kujnost\",\"kukla\",\"kulajda\",\"kulich\",\"kulka\",\"kulomet\",\"kultura\",\"kuna\",\"kupodivu\",\"kurt\",\"kurzor\",\"kutil\",\"kvalita\",\"kvasinka\",\"kvestor\",\"kynolog\",\"kyselina\",\"kytara\",\"kytice\",\"kytka\",\"kytovec\",\"kyvadlo\",\"labrador\",\"lachtan\",\"ladnost\",\"laik\",\"lakomec\",\"lamela\",\"lampa\",\"lanovka\",\"lasice\",\"laso\",\"lastura\",\"latinka\",\"lavina\",\"lebka\",\"leckdy\",\"leden\",\"lednice\",\"ledovka\",\"ledvina\",\"legenda\",\"legie\",\"legrace\",\"lehce\",\"lehkost\",\"lehnout\",\"lektvar\",\"lenochod\",\"lentilka\",\"lepenka\",\"lepidlo\",\"letadlo\",\"letec\",\"letmo\",\"letokruh\",\"levhart\",\"levitace\",\"levobok\",\"libra\",\"lichotka\",\"lidojed\",\"lidskost\",\"lihovina\",\"lijavec\",\"lilek\",\"limetka\",\"linie\",\"linka\",\"linoleum\",\"listopad\",\"litina\",\"litovat\",\"lobista\",\"lodivod\",\"logika\",\"logoped\",\"lokalita\",\"loket\",\"lomcovat\",\"lopata\",\"lopuch\",\"lord\",\"losos\",\"lotr\",\"loudal\",\"louh\",\"louka\",\"louskat\",\"lovec\",\"lstivost\",\"lucerna\",\"lucifer\",\"lump\",\"lusk\",\"lustrace\",\"lvice\",\"lyra\",\"lyrika\",\"lysina\",\"madam\",\"madlo\",\"magistr\",\"mahagon\",\"majetek\",\"majitel\",\"majorita\",\"makak\",\"makovice\",\"makrela\",\"malba\",\"malina\",\"malovat\",\"malvice\",\"maminka\",\"mandle\",\"manko\",\"marnost\",\"masakr\",\"maskot\",\"masopust\",\"matice\",\"matrika\",\"maturita\",\"mazanec\",\"mazivo\",\"mazlit\",\"mazurka\",\"mdloba\",\"mechanik\",\"meditace\",\"medovina\",\"melasa\",\"meloun\",\"mentolka\",\"metla\",\"metoda\",\"metr\",\"mezera\",\"migrace\",\"mihnout\",\"mihule\",\"mikina\",\"mikrofon\",\"milenec\",\"milimetr\",\"milost\",\"mimika\",\"mincovna\",\"minibar\",\"minomet\",\"minulost\",\"miska\",\"mistr\",\"mixovat\",\"mladost\",\"mlha\",\"mlhovina\",\"mlok\",\"mlsat\",\"mluvit\",\"mnich\",\"mnohem\",\"mobil\",\"mocnost\",\"modelka\",\"modlitba\",\"mohyla\",\"mokro\",\"molekula\",\"momentka\",\"monarcha\",\"monokl\",\"monstrum\",\"montovat\",\"monzun\",\"mosaz\",\"moskyt\",\"most\",\"motivace\",\"motorka\",\"motyka\",\"moucha\",\"moudrost\",\"mozaika\",\"mozek\",\"mozol\",\"mramor\",\"mravenec\",\"mrkev\",\"mrtvola\",\"mrzet\",\"mrzutost\",\"mstitel\",\"mudrc\",\"muflon\",\"mulat\",\"mumie\",\"munice\",\"muset\",\"mutace\",\"muzeum\",\"muzikant\",\"myslivec\",\"mzda\",\"nabourat\",\"nachytat\",\"nadace\",\"nadbytek\",\"nadhoz\",\"nadobro\",\"nadpis\",\"nahlas\",\"nahnat\",\"nahodile\",\"nahradit\",\"naivita\",\"najednou\",\"najisto\",\"najmout\",\"naklonit\",\"nakonec\",\"nakrmit\",\"nalevo\",\"namazat\",\"namluvit\",\"nanometr\",\"naoko\",\"naopak\",\"naostro\",\"napadat\",\"napevno\",\"naplnit\",\"napnout\",\"naposled\",\"naprosto\",\"narodit\",\"naruby\",\"narychlo\",\"nasadit\",\"nasekat\",\"naslepo\",\"nastat\",\"natolik\",\"navenek\",\"navrch\",\"navzdory\",\"nazvat\",\"nebe\",\"nechat\",\"necky\",\"nedaleko\",\"nedbat\",\"neduh\",\"negace\",\"nehet\",\"nehoda\",\"nejen\",\"nejprve\",\"neklid\",\"nelibost\",\"nemilost\",\"nemoc\",\"neochota\",\"neonka\",\"nepokoj\",\"nerost\",\"nerv\",\"nesmysl\",\"nesoulad\",\"netvor\",\"neuron\",\"nevina\",\"nezvykle\",\"nicota\",\"nijak\",\"nikam\",\"nikdy\",\"nikl\",\"nikterak\",\"nitro\",\"nocleh\",\"nohavice\",\"nominace\",\"nora\",\"norek\",\"nositel\",\"nosnost\",\"nouze\",\"noviny\",\"novota\",\"nozdra\",\"nuda\",\"nudle\",\"nuget\",\"nutit\",\"nutnost\",\"nutrie\",\"nymfa\",\"obal\",\"obarvit\",\"obava\",\"obdiv\",\"obec\",\"obehnat\",\"obejmout\",\"obezita\",\"obhajoba\",\"obilnice\",\"objasnit\",\"objekt\",\"obklopit\",\"oblast\",\"oblek\",\"obliba\",\"obloha\",\"obluda\",\"obnos\",\"obohatit\",\"obojek\",\"obout\",\"obrazec\",\"obrna\",\"obruba\",\"obrys\",\"obsah\",\"obsluha\",\"obstarat\",\"obuv\",\"obvaz\",\"obvinit\",\"obvod\",\"obvykle\",\"obyvatel\",\"obzor\",\"ocas\",\"ocel\",\"ocenit\",\"ochladit\",\"ochota\",\"ochrana\",\"ocitnout\",\"odboj\",\"odbyt\",\"odchod\",\"odcizit\",\"odebrat\",\"odeslat\",\"odevzdat\",\"odezva\",\"odhadce\",\"odhodit\",\"odjet\",\"odjinud\",\"odkaz\",\"odkoupit\",\"odliv\",\"odluka\",\"odmlka\",\"odolnost\",\"odpad\",\"odpis\",\"odplout\",\"odpor\",\"odpustit\",\"odpykat\",\"odrazka\",\"odsoudit\",\"odstup\",\"odsun\",\"odtok\",\"odtud\",\"odvaha\",\"odveta\",\"odvolat\",\"odvracet\",\"odznak\",\"ofina\",\"ofsajd\",\"ohlas\",\"ohnisko\",\"ohrada\",\"ohrozit\",\"ohryzek\",\"okap\",\"okenice\",\"oklika\",\"okno\",\"okouzlit\",\"okovy\",\"okrasa\",\"okres\",\"okrsek\",\"okruh\",\"okupant\",\"okurka\",\"okusit\",\"olejnina\",\"olizovat\",\"omak\",\"omeleta\",\"omezit\",\"omladina\",\"omlouvat\",\"omluva\",\"omyl\",\"onehdy\",\"opakovat\",\"opasek\",\"operace\",\"opice\",\"opilost\",\"opisovat\",\"opora\",\"opozice\",\"opravdu\",\"oproti\",\"orbital\",\"orchestr\",\"orgie\",\"orlice\",\"orloj\",\"ortel\",\"osada\",\"oschnout\",\"osika\",\"osivo\",\"oslava\",\"oslepit\",\"oslnit\",\"oslovit\",\"osnova\",\"osoba\",\"osolit\",\"ospalec\",\"osten\",\"ostraha\",\"ostuda\",\"ostych\",\"osvojit\",\"oteplit\",\"otisk\",\"otop\",\"otrhat\",\"otrlost\",\"otrok\",\"otruby\",\"otvor\",\"ovanout\",\"ovar\",\"oves\",\"ovlivnit\",\"ovoce\",\"oxid\",\"ozdoba\",\"pachatel\",\"pacient\",\"padouch\",\"pahorek\",\"pakt\",\"palanda\",\"palec\",\"palivo\",\"paluba\",\"pamflet\",\"pamlsek\",\"panenka\",\"panika\",\"panna\",\"panovat\",\"panstvo\",\"pantofle\",\"paprika\",\"parketa\",\"parodie\",\"parta\",\"paruka\",\"paryba\",\"paseka\",\"pasivita\",\"pastelka\",\"patent\",\"patrona\",\"pavouk\",\"pazneht\",\"pazourek\",\"pecka\",\"pedagog\",\"pejsek\",\"peklo\",\"peloton\",\"penalta\",\"pendrek\",\"penze\",\"periskop\",\"pero\",\"pestrost\",\"petarda\",\"petice\",\"petrolej\",\"pevnina\",\"pexeso\",\"pianista\",\"piha\",\"pijavice\",\"pikle\",\"piknik\",\"pilina\",\"pilnost\",\"pilulka\",\"pinzeta\",\"pipeta\",\"pisatel\",\"pistole\",\"pitevna\",\"pivnice\",\"pivovar\",\"placenta\",\"plakat\",\"plamen\",\"planeta\",\"plastika\",\"platit\",\"plavidlo\",\"plaz\",\"plech\",\"plemeno\",\"plenta\",\"ples\",\"pletivo\",\"plevel\",\"plivat\",\"plnit\",\"plno\",\"plocha\",\"plodina\",\"plomba\",\"plout\",\"pluk\",\"plyn\",\"pobavit\",\"pobyt\",\"pochod\",\"pocit\",\"poctivec\",\"podat\",\"podcenit\",\"podepsat\",\"podhled\",\"podivit\",\"podklad\",\"podmanit\",\"podnik\",\"podoba\",\"podpora\",\"podraz\",\"podstata\",\"podvod\",\"podzim\",\"poezie\",\"pohanka\",\"pohnutka\",\"pohovor\",\"pohroma\",\"pohyb\",\"pointa\",\"pojistka\",\"pojmout\",\"pokazit\",\"pokles\",\"pokoj\",\"pokrok\",\"pokuta\",\"pokyn\",\"poledne\",\"polibek\",\"polknout\",\"poloha\",\"polynom\",\"pomalu\",\"pominout\",\"pomlka\",\"pomoc\",\"pomsta\",\"pomyslet\",\"ponechat\",\"ponorka\",\"ponurost\",\"popadat\",\"popel\",\"popisek\",\"poplach\",\"poprosit\",\"popsat\",\"popud\",\"poradce\",\"porce\",\"porod\",\"porucha\",\"poryv\",\"posadit\",\"posed\",\"posila\",\"poskok\",\"poslanec\",\"posoudit\",\"pospolu\",\"postava\",\"posudek\",\"posyp\",\"potah\",\"potkan\",\"potlesk\",\"potomek\",\"potrava\",\"potupa\",\"potvora\",\"poukaz\",\"pouto\",\"pouzdro\",\"povaha\",\"povidla\",\"povlak\",\"povoz\",\"povrch\",\"povstat\",\"povyk\",\"povzdech\",\"pozdrav\",\"pozemek\",\"poznatek\",\"pozor\",\"pozvat\",\"pracovat\",\"prahory\",\"praktika\",\"prales\",\"praotec\",\"praporek\",\"prase\",\"pravda\",\"princip\",\"prkno\",\"probudit\",\"procento\",\"prodej\",\"profese\",\"prohra\",\"projekt\",\"prolomit\",\"promile\",\"pronikat\",\"propad\",\"prorok\",\"prosba\",\"proton\",\"proutek\",\"provaz\",\"prskavka\",\"prsten\",\"prudkost\",\"prut\",\"prvek\",\"prvohory\",\"psanec\",\"psovod\",\"pstruh\",\"ptactvo\",\"puberta\",\"puch\",\"pudl\",\"pukavec\",\"puklina\",\"pukrle\",\"pult\",\"pumpa\",\"punc\",\"pupen\",\"pusa\",\"pusinka\",\"pustina\",\"putovat\",\"putyka\",\"pyramida\",\"pysk\",\"pytel\",\"racek\",\"rachot\",\"radiace\",\"radnice\",\"radon\",\"raft\",\"ragby\",\"raketa\",\"rakovina\",\"rameno\",\"rampouch\",\"rande\",\"rarach\",\"rarita\",\"rasovna\",\"rastr\",\"ratolest\",\"razance\",\"razidlo\",\"reagovat\",\"reakce\",\"recept\",\"redaktor\",\"referent\",\"reflex\",\"rejnok\",\"reklama\",\"rekord\",\"rekrut\",\"rektor\",\"reputace\",\"revize\",\"revma\",\"revolver\",\"rezerva\",\"riskovat\",\"riziko\",\"robotika\",\"rodokmen\",\"rohovka\",\"rokle\",\"rokoko\",\"romaneto\",\"ropovod\",\"ropucha\",\"rorejs\",\"rosol\",\"rostlina\",\"rotmistr\",\"rotoped\",\"rotunda\",\"roubenka\",\"roucho\",\"roup\",\"roura\",\"rovina\",\"rovnice\",\"rozbor\",\"rozchod\",\"rozdat\",\"rozeznat\",\"rozhodce\",\"rozinka\",\"rozjezd\",\"rozkaz\",\"rozloha\",\"rozmar\",\"rozpad\",\"rozruch\",\"rozsah\",\"roztok\",\"rozum\",\"rozvod\",\"rubrika\",\"ruchadlo\",\"rukavice\",\"rukopis\",\"ryba\",\"rybolov\",\"rychlost\",\"rydlo\",\"rypadlo\",\"rytina\",\"ryzost\",\"sadista\",\"sahat\",\"sako\",\"samec\",\"samizdat\",\"samota\",\"sanitka\",\"sardinka\",\"sasanka\",\"satelit\",\"sazba\",\"sazenice\",\"sbor\",\"schovat\",\"sebranka\",\"secese\",\"sedadlo\",\"sediment\",\"sedlo\",\"sehnat\",\"sejmout\",\"sekera\",\"sekta\",\"sekunda\",\"sekvoje\",\"semeno\",\"seno\",\"servis\",\"sesadit\",\"seshora\",\"seskok\",\"seslat\",\"sestra\",\"sesuv\",\"sesypat\",\"setba\",\"setina\",\"setkat\",\"setnout\",\"setrvat\",\"sever\",\"seznam\",\"shoda\",\"shrnout\",\"sifon\",\"silnice\",\"sirka\",\"sirotek\",\"sirup\",\"situace\",\"skafandr\",\"skalisko\",\"skanzen\",\"skaut\",\"skeptik\",\"skica\",\"skladba\",\"sklenice\",\"sklo\",\"skluz\",\"skoba\",\"skokan\",\"skoro\",\"skripta\",\"skrz\",\"skupina\",\"skvost\",\"skvrna\",\"slabika\",\"sladidlo\",\"slanina\",\"slast\",\"slavnost\",\"sledovat\",\"slepec\",\"sleva\",\"slezina\",\"slib\",\"slina\",\"sliznice\",\"slon\",\"sloupek\",\"slovo\",\"sluch\",\"sluha\",\"slunce\",\"slupka\",\"slza\",\"smaragd\",\"smetana\",\"smilstvo\",\"smlouva\",\"smog\",\"smrad\",\"smrk\",\"smrtka\",\"smutek\",\"smysl\",\"snad\",\"snaha\",\"snob\",\"sobota\",\"socha\",\"sodovka\",\"sokol\",\"sopka\",\"sotva\",\"souboj\",\"soucit\",\"soudce\",\"souhlas\",\"soulad\",\"soumrak\",\"souprava\",\"soused\",\"soutok\",\"souviset\",\"spalovna\",\"spasitel\",\"spis\",\"splav\",\"spodek\",\"spojenec\",\"spolu\",\"sponzor\",\"spornost\",\"spousta\",\"sprcha\",\"spustit\",\"sranda\",\"sraz\",\"srdce\",\"srna\",\"srnec\",\"srovnat\",\"srpen\",\"srst\",\"srub\",\"stanice\",\"starosta\",\"statika\",\"stavba\",\"stehno\",\"stezka\",\"stodola\",\"stolek\",\"stopa\",\"storno\",\"stoupat\",\"strach\",\"stres\",\"strhnout\",\"strom\",\"struna\",\"studna\",\"stupnice\",\"stvol\",\"styk\",\"subjekt\",\"subtropy\",\"suchar\",\"sudost\",\"sukno\",\"sundat\",\"sunout\",\"surikata\",\"surovina\",\"svah\",\"svalstvo\",\"svetr\",\"svatba\",\"svazek\",\"svisle\",\"svitek\",\"svoboda\",\"svodidlo\",\"svorka\",\"svrab\",\"sykavka\",\"sykot\",\"synek\",\"synovec\",\"sypat\",\"sypkost\",\"syrovost\",\"sysel\",\"sytost\",\"tabletka\",\"tabule\",\"tahoun\",\"tajemno\",\"tajfun\",\"tajga\",\"tajit\",\"tajnost\",\"taktika\",\"tamhle\",\"tampon\",\"tancovat\",\"tanec\",\"tanker\",\"tapeta\",\"tavenina\",\"tazatel\",\"technika\",\"tehdy\",\"tekutina\",\"telefon\",\"temnota\",\"tendence\",\"tenista\",\"tenor\",\"teplota\",\"tepna\",\"teprve\",\"terapie\",\"termoska\",\"textil\",\"ticho\",\"tiskopis\",\"titulek\",\"tkadlec\",\"tkanina\",\"tlapka\",\"tleskat\",\"tlukot\",\"tlupa\",\"tmel\",\"toaleta\",\"topinka\",\"topol\",\"torzo\",\"touha\",\"toulec\",\"tradice\",\"traktor\",\"tramp\",\"trasa\",\"traverza\",\"trefit\",\"trest\",\"trezor\",\"trhavina\",\"trhlina\",\"trochu\",\"trojice\",\"troska\",\"trouba\",\"trpce\",\"trpitel\",\"trpkost\",\"trubec\",\"truchlit\",\"truhlice\",\"trus\",\"trvat\",\"tudy\",\"tuhnout\",\"tuhost\",\"tundra\",\"turista\",\"turnaj\",\"tuzemsko\",\"tvaroh\",\"tvorba\",\"tvrdost\",\"tvrz\",\"tygr\",\"tykev\",\"ubohost\",\"uboze\",\"ubrat\",\"ubrousek\",\"ubrus\",\"ubytovna\",\"ucho\",\"uctivost\",\"udivit\",\"uhradit\",\"ujednat\",\"ujistit\",\"ujmout\",\"ukazatel\",\"uklidnit\",\"uklonit\",\"ukotvit\",\"ukrojit\",\"ulice\",\"ulita\",\"ulovit\",\"umyvadlo\",\"unavit\",\"uniforma\",\"uniknout\",\"upadnout\",\"uplatnit\",\"uplynout\",\"upoutat\",\"upravit\",\"uran\",\"urazit\",\"usednout\",\"usilovat\",\"usmrtit\",\"usnadnit\",\"usnout\",\"usoudit\",\"ustlat\",\"ustrnout\",\"utahovat\",\"utkat\",\"utlumit\",\"utonout\",\"utopenec\",\"utrousit\",\"uvalit\",\"uvolnit\",\"uvozovka\",\"uzdravit\",\"uzel\",\"uzenina\",\"uzlina\",\"uznat\",\"vagon\",\"valcha\",\"valoun\",\"vana\",\"vandal\",\"vanilka\",\"varan\",\"varhany\",\"varovat\",\"vcelku\",\"vchod\",\"vdova\",\"vedro\",\"vegetace\",\"vejce\",\"velbloud\",\"veletrh\",\"velitel\",\"velmoc\",\"velryba\",\"venkov\",\"veranda\",\"verze\",\"veselka\",\"veskrze\",\"vesnice\",\"vespodu\",\"vesta\",\"veterina\",\"veverka\",\"vibrace\",\"vichr\",\"videohra\",\"vidina\",\"vidle\",\"vila\",\"vinice\",\"viset\",\"vitalita\",\"vize\",\"vizitka\",\"vjezd\",\"vklad\",\"vkus\",\"vlajka\",\"vlak\",\"vlasec\",\"vlevo\",\"vlhkost\",\"vliv\",\"vlnovka\",\"vloupat\",\"vnucovat\",\"vnuk\",\"voda\",\"vodivost\",\"vodoznak\",\"vodstvo\",\"vojensky\",\"vojna\",\"vojsko\",\"volant\",\"volba\",\"volit\",\"volno\",\"voskovka\",\"vozidlo\",\"vozovna\",\"vpravo\",\"vrabec\",\"vracet\",\"vrah\",\"vrata\",\"vrba\",\"vrcholek\",\"vrhat\",\"vrstva\",\"vrtule\",\"vsadit\",\"vstoupit\",\"vstup\",\"vtip\",\"vybavit\",\"vybrat\",\"vychovat\",\"vydat\",\"vydra\",\"vyfotit\",\"vyhledat\",\"vyhnout\",\"vyhodit\",\"vyhradit\",\"vyhubit\",\"vyjasnit\",\"vyjet\",\"vyjmout\",\"vyklopit\",\"vykonat\",\"vylekat\",\"vymazat\",\"vymezit\",\"vymizet\",\"vymyslet\",\"vynechat\",\"vynikat\",\"vynutit\",\"vypadat\",\"vyplatit\",\"vypravit\",\"vypustit\",\"vyrazit\",\"vyrovnat\",\"vyrvat\",\"vyslovit\",\"vysoko\",\"vystavit\",\"vysunout\",\"vysypat\",\"vytasit\",\"vytesat\",\"vytratit\",\"vyvinout\",\"vyvolat\",\"vyvrhel\",\"vyzdobit\",\"vyznat\",\"vzadu\",\"vzbudit\",\"vzchopit\",\"vzdor\",\"vzduch\",\"vzdychat\",\"vzestup\",\"vzhledem\",\"vzkaz\",\"vzlykat\",\"vznik\",\"vzorek\",\"vzpoura\",\"vztah\",\"vztek\",\"xylofon\",\"zabrat\",\"zabydlet\",\"zachovat\",\"zadarmo\",\"zadusit\",\"zafoukat\",\"zahltit\",\"zahodit\",\"zahrada\",\"zahynout\",\"zajatec\",\"zajet\",\"zajistit\",\"zaklepat\",\"zakoupit\",\"zalepit\",\"zamezit\",\"zamotat\",\"zamyslet\",\"zanechat\",\"zanikat\",\"zaplatit\",\"zapojit\",\"zapsat\",\"zarazit\",\"zastavit\",\"zasunout\",\"zatajit\",\"zatemnit\",\"zatknout\",\"zaujmout\",\"zavalit\",\"zavelet\",\"zavinit\",\"zavolat\",\"zavrtat\",\"zazvonit\",\"zbavit\",\"zbrusu\",\"zbudovat\",\"zbytek\",\"zdaleka\",\"zdarma\",\"zdatnost\",\"zdivo\",\"zdobit\",\"zdroj\",\"zdvih\",\"zdymadlo\",\"zelenina\",\"zeman\",\"zemina\",\"zeptat\",\"zezadu\",\"zezdola\",\"zhatit\",\"zhltnout\",\"zhluboka\",\"zhotovit\",\"zhruba\",\"zima\",\"zimnice\",\"zjemnit\",\"zklamat\",\"zkoumat\",\"zkratka\",\"zkumavka\",\"zlato\",\"zlehka\",\"zloba\",\"zlom\",\"zlost\",\"zlozvyk\",\"zmapovat\",\"zmar\",\"zmatek\",\"zmije\",\"zmizet\",\"zmocnit\",\"zmodrat\",\"zmrzlina\",\"zmutovat\",\"znak\",\"znalost\",\"znamenat\",\"znovu\",\"zobrazit\",\"zotavit\",\"zoubek\",\"zoufale\",\"zplodit\",\"zpomalit\",\"zprava\",\"zprostit\",\"zprudka\",\"zprvu\",\"zrada\",\"zranit\",\"zrcadlo\",\"zrnitost\",\"zrno\",\"zrovna\",\"zrychlit\",\"zrzavost\",\"zticha\",\"ztratit\",\"zubovina\",\"zubr\",\"zvednout\",\"zvenku\",\"zvesela\",\"zvon\",\"zvrat\",\"zvukovod\",\"zvyk\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/czech.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/english.json":
/*!*******************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/english.json ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"abandon\",\"ability\",\"able\",\"about\",\"above\",\"absent\",\"absorb\",\"abstract\",\"absurd\",\"abuse\",\"access\",\"accident\",\"account\",\"accuse\",\"achieve\",\"acid\",\"acoustic\",\"acquire\",\"across\",\"act\",\"action\",\"actor\",\"actress\",\"actual\",\"adapt\",\"add\",\"addict\",\"address\",\"adjust\",\"admit\",\"adult\",\"advance\",\"advice\",\"aerobic\",\"affair\",\"afford\",\"afraid\",\"again\",\"age\",\"agent\",\"agree\",\"ahead\",\"aim\",\"air\",\"airport\",\"aisle\",\"alarm\",\"album\",\"alcohol\",\"alert\",\"alien\",\"all\",\"alley\",\"allow\",\"almost\",\"alone\",\"alpha\",\"already\",\"also\",\"alter\",\"always\",\"amateur\",\"amazing\",\"among\",\"amount\",\"amused\",\"analyst\",\"anchor\",\"ancient\",\"anger\",\"angle\",\"angry\",\"animal\",\"ankle\",\"announce\",\"annual\",\"another\",\"answer\",\"antenna\",\"antique\",\"anxiety\",\"any\",\"apart\",\"apology\",\"appear\",\"apple\",\"approve\",\"april\",\"arch\",\"arctic\",\"area\",\"arena\",\"argue\",\"arm\",\"armed\",\"armor\",\"army\",\"around\",\"arrange\",\"arrest\",\"arrive\",\"arrow\",\"art\",\"artefact\",\"artist\",\"artwork\",\"ask\",\"aspect\",\"assault\",\"asset\",\"assist\",\"assume\",\"asthma\",\"athlete\",\"atom\",\"attack\",\"attend\",\"attitude\",\"attract\",\"auction\",\"audit\",\"august\",\"aunt\",\"author\",\"auto\",\"autumn\",\"average\",\"avocado\",\"avoid\",\"awake\",\"aware\",\"away\",\"awesome\",\"awful\",\"awkward\",\"axis\",\"baby\",\"bachelor\",\"bacon\",\"badge\",\"bag\",\"balance\",\"balcony\",\"ball\",\"bamboo\",\"banana\",\"banner\",\"bar\",\"barely\",\"bargain\",\"barrel\",\"base\",\"basic\",\"basket\",\"battle\",\"beach\",\"bean\",\"beauty\",\"because\",\"become\",\"beef\",\"before\",\"begin\",\"behave\",\"behind\",\"believe\",\"below\",\"belt\",\"bench\",\"benefit\",\"best\",\"betray\",\"better\",\"between\",\"beyond\",\"bicycle\",\"bid\",\"bike\",\"bind\",\"biology\",\"bird\",\"birth\",\"bitter\",\"black\",\"blade\",\"blame\",\"blanket\",\"blast\",\"bleak\",\"bless\",\"blind\",\"blood\",\"blossom\",\"blouse\",\"blue\",\"blur\",\"blush\",\"board\",\"boat\",\"body\",\"boil\",\"bomb\",\"bone\",\"bonus\",\"book\",\"boost\",\"border\",\"boring\",\"borrow\",\"boss\",\"bottom\",\"bounce\",\"box\",\"boy\",\"bracket\",\"brain\",\"brand\",\"brass\",\"brave\",\"bread\",\"breeze\",\"brick\",\"bridge\",\"brief\",\"bright\",\"bring\",\"brisk\",\"broccoli\",\"broken\",\"bronze\",\"broom\",\"brother\",\"brown\",\"brush\",\"bubble\",\"buddy\",\"budget\",\"buffalo\",\"build\",\"bulb\",\"bulk\",\"bullet\",\"bundle\",\"bunker\",\"burden\",\"burger\",\"burst\",\"bus\",\"business\",\"busy\",\"butter\",\"buyer\",\"buzz\",\"cabbage\",\"cabin\",\"cable\",\"cactus\",\"cage\",\"cake\",\"call\",\"calm\",\"camera\",\"camp\",\"can\",\"canal\",\"cancel\",\"candy\",\"cannon\",\"canoe\",\"canvas\",\"canyon\",\"capable\",\"capital\",\"captain\",\"car\",\"carbon\",\"card\",\"cargo\",\"carpet\",\"carry\",\"cart\",\"case\",\"cash\",\"casino\",\"castle\",\"casual\",\"cat\",\"catalog\",\"catch\",\"category\",\"cattle\",\"caught\",\"cause\",\"caution\",\"cave\",\"ceiling\",\"celery\",\"cement\",\"census\",\"century\",\"cereal\",\"certain\",\"chair\",\"chalk\",\"champion\",\"change\",\"chaos\",\"chapter\",\"charge\",\"chase\",\"chat\",\"cheap\",\"check\",\"cheese\",\"chef\",\"cherry\",\"chest\",\"chicken\",\"chief\",\"child\",\"chimney\",\"choice\",\"choose\",\"chronic\",\"chuckle\",\"chunk\",\"churn\",\"cigar\",\"cinnamon\",\"circle\",\"citizen\",\"city\",\"civil\",\"claim\",\"clap\",\"clarify\",\"claw\",\"clay\",\"clean\",\"clerk\",\"clever\",\"click\",\"client\",\"cliff\",\"climb\",\"clinic\",\"clip\",\"clock\",\"clog\",\"close\",\"cloth\",\"cloud\",\"clown\",\"club\",\"clump\",\"cluster\",\"clutch\",\"coach\",\"coast\",\"coconut\",\"code\",\"coffee\",\"coil\",\"coin\",\"collect\",\"color\",\"column\",\"combine\",\"come\",\"comfort\",\"comic\",\"common\",\"company\",\"concert\",\"conduct\",\"confirm\",\"congress\",\"connect\",\"consider\",\"control\",\"convince\",\"cook\",\"cool\",\"copper\",\"copy\",\"coral\",\"core\",\"corn\",\"correct\",\"cost\",\"cotton\",\"couch\",\"country\",\"couple\",\"course\",\"cousin\",\"cover\",\"coyote\",\"crack\",\"cradle\",\"craft\",\"cram\",\"crane\",\"crash\",\"crater\",\"crawl\",\"crazy\",\"cream\",\"credit\",\"creek\",\"crew\",\"cricket\",\"crime\",\"crisp\",\"critic\",\"crop\",\"cross\",\"crouch\",\"crowd\",\"crucial\",\"cruel\",\"cruise\",\"crumble\",\"crunch\",\"crush\",\"cry\",\"crystal\",\"cube\",\"culture\",\"cup\",\"cupboard\",\"curious\",\"current\",\"curtain\",\"curve\",\"cushion\",\"custom\",\"cute\",\"cycle\",\"dad\",\"damage\",\"damp\",\"dance\",\"danger\",\"daring\",\"dash\",\"daughter\",\"dawn\",\"day\",\"deal\",\"debate\",\"debris\",\"decade\",\"december\",\"decide\",\"decline\",\"decorate\",\"decrease\",\"deer\",\"defense\",\"define\",\"defy\",\"degree\",\"delay\",\"deliver\",\"demand\",\"demise\",\"denial\",\"dentist\",\"deny\",\"depart\",\"depend\",\"deposit\",\"depth\",\"deputy\",\"derive\",\"describe\",\"desert\",\"design\",\"desk\",\"despair\",\"destroy\",\"detail\",\"detect\",\"develop\",\"device\",\"devote\",\"diagram\",\"dial\",\"diamond\",\"diary\",\"dice\",\"diesel\",\"diet\",\"differ\",\"digital\",\"dignity\",\"dilemma\",\"dinner\",\"dinosaur\",\"direct\",\"dirt\",\"disagree\",\"discover\",\"disease\",\"dish\",\"dismiss\",\"disorder\",\"display\",\"distance\",\"divert\",\"divide\",\"divorce\",\"dizzy\",\"doctor\",\"document\",\"dog\",\"doll\",\"dolphin\",\"domain\",\"donate\",\"donkey\",\"donor\",\"door\",\"dose\",\"double\",\"dove\",\"draft\",\"dragon\",\"drama\",\"drastic\",\"draw\",\"dream\",\"dress\",\"drift\",\"drill\",\"drink\",\"drip\",\"drive\",\"drop\",\"drum\",\"dry\",\"duck\",\"dumb\",\"dune\",\"during\",\"dust\",\"dutch\",\"duty\",\"dwarf\",\"dynamic\",\"eager\",\"eagle\",\"early\",\"earn\",\"earth\",\"easily\",\"east\",\"easy\",\"echo\",\"ecology\",\"economy\",\"edge\",\"edit\",\"educate\",\"effort\",\"egg\",\"eight\",\"either\",\"elbow\",\"elder\",\"electric\",\"elegant\",\"element\",\"elephant\",\"elevator\",\"elite\",\"else\",\"embark\",\"embody\",\"embrace\",\"emerge\",\"emotion\",\"employ\",\"empower\",\"empty\",\"enable\",\"enact\",\"end\",\"endless\",\"endorse\",\"enemy\",\"energy\",\"enforce\",\"engage\",\"engine\",\"enhance\",\"enjoy\",\"enlist\",\"enough\",\"enrich\",\"enroll\",\"ensure\",\"enter\",\"entire\",\"entry\",\"envelope\",\"episode\",\"equal\",\"equip\",\"era\",\"erase\",\"erode\",\"erosion\",\"error\",\"erupt\",\"escape\",\"essay\",\"essence\",\"estate\",\"eternal\",\"ethics\",\"evidence\",\"evil\",\"evoke\",\"evolve\",\"exact\",\"example\",\"excess\",\"exchange\",\"excite\",\"exclude\",\"excuse\",\"execute\",\"exercise\",\"exhaust\",\"exhibit\",\"exile\",\"exist\",\"exit\",\"exotic\",\"expand\",\"expect\",\"expire\",\"explain\",\"expose\",\"express\",\"extend\",\"extra\",\"eye\",\"eyebrow\",\"fabric\",\"face\",\"faculty\",\"fade\",\"faint\",\"faith\",\"fall\",\"false\",\"fame\",\"family\",\"famous\",\"fan\",\"fancy\",\"fantasy\",\"farm\",\"fashion\",\"fat\",\"fatal\",\"father\",\"fatigue\",\"fault\",\"favorite\",\"feature\",\"february\",\"federal\",\"fee\",\"feed\",\"feel\",\"female\",\"fence\",\"festival\",\"fetch\",\"fever\",\"few\",\"fiber\",\"fiction\",\"field\",\"figure\",\"file\",\"film\",\"filter\",\"final\",\"find\",\"fine\",\"finger\",\"finish\",\"fire\",\"firm\",\"first\",\"fiscal\",\"fish\",\"fit\",\"fitness\",\"fix\",\"flag\",\"flame\",\"flash\",\"flat\",\"flavor\",\"flee\",\"flight\",\"flip\",\"float\",\"flock\",\"floor\",\"flower\",\"fluid\",\"flush\",\"fly\",\"foam\",\"focus\",\"fog\",\"foil\",\"fold\",\"follow\",\"food\",\"foot\",\"force\",\"forest\",\"forget\",\"fork\",\"fortune\",\"forum\",\"forward\",\"fossil\",\"foster\",\"found\",\"fox\",\"fragile\",\"frame\",\"frequent\",\"fresh\",\"friend\",\"fringe\",\"frog\",\"front\",\"frost\",\"frown\",\"frozen\",\"fruit\",\"fuel\",\"fun\",\"funny\",\"furnace\",\"fury\",\"future\",\"gadget\",\"gain\",\"galaxy\",\"gallery\",\"game\",\"gap\",\"garage\",\"garbage\",\"garden\",\"garlic\",\"garment\",\"gas\",\"gasp\",\"gate\",\"gather\",\"gauge\",\"gaze\",\"general\",\"genius\",\"genre\",\"gentle\",\"genuine\",\"gesture\",\"ghost\",\"giant\",\"gift\",\"giggle\",\"ginger\",\"giraffe\",\"girl\",\"give\",\"glad\",\"glance\",\"glare\",\"glass\",\"glide\",\"glimpse\",\"globe\",\"gloom\",\"glory\",\"glove\",\"glow\",\"glue\",\"goat\",\"goddess\",\"gold\",\"good\",\"goose\",\"gorilla\",\"gospel\",\"gossip\",\"govern\",\"gown\",\"grab\",\"grace\",\"grain\",\"grant\",\"grape\",\"grass\",\"gravity\",\"great\",\"green\",\"grid\",\"grief\",\"grit\",\"grocery\",\"group\",\"grow\",\"grunt\",\"guard\",\"guess\",\"guide\",\"guilt\",\"guitar\",\"gun\",\"gym\",\"habit\",\"hair\",\"half\",\"hammer\",\"hamster\",\"hand\",\"happy\",\"harbor\",\"hard\",\"harsh\",\"harvest\",\"hat\",\"have\",\"hawk\",\"hazard\",\"head\",\"health\",\"heart\",\"heavy\",\"hedgehog\",\"height\",\"hello\",\"helmet\",\"help\",\"hen\",\"hero\",\"hidden\",\"high\",\"hill\",\"hint\",\"hip\",\"hire\",\"history\",\"hobby\",\"hockey\",\"hold\",\"hole\",\"holiday\",\"hollow\",\"home\",\"honey\",\"hood\",\"hope\",\"horn\",\"horror\",\"horse\",\"hospital\",\"host\",\"hotel\",\"hour\",\"hover\",\"hub\",\"huge\",\"human\",\"humble\",\"humor\",\"hundred\",\"hungry\",\"hunt\",\"hurdle\",\"hurry\",\"hurt\",\"husband\",\"hybrid\",\"ice\",\"icon\",\"idea\",\"identify\",\"idle\",\"ignore\",\"ill\",\"illegal\",\"illness\",\"image\",\"imitate\",\"immense\",\"immune\",\"impact\",\"impose\",\"improve\",\"impulse\",\"inch\",\"include\",\"income\",\"increase\",\"index\",\"indicate\",\"indoor\",\"industry\",\"infant\",\"inflict\",\"inform\",\"inhale\",\"inherit\",\"initial\",\"inject\",\"injury\",\"inmate\",\"inner\",\"innocent\",\"input\",\"inquiry\",\"insane\",\"insect\",\"inside\",\"inspire\",\"install\",\"intact\",\"interest\",\"into\",\"invest\",\"invite\",\"involve\",\"iron\",\"island\",\"isolate\",\"issue\",\"item\",\"ivory\",\"jacket\",\"jaguar\",\"jar\",\"jazz\",\"jealous\",\"jeans\",\"jelly\",\"jewel\",\"job\",\"join\",\"joke\",\"journey\",\"joy\",\"judge\",\"juice\",\"jump\",\"jungle\",\"junior\",\"junk\",\"just\",\"kangaroo\",\"keen\",\"keep\",\"ketchup\",\"key\",\"kick\",\"kid\",\"kidney\",\"kind\",\"kingdom\",\"kiss\",\"kit\",\"kitchen\",\"kite\",\"kitten\",\"kiwi\",\"knee\",\"knife\",\"knock\",\"know\",\"lab\",\"label\",\"labor\",\"ladder\",\"lady\",\"lake\",\"lamp\",\"language\",\"laptop\",\"large\",\"later\",\"latin\",\"laugh\",\"laundry\",\"lava\",\"law\",\"lawn\",\"lawsuit\",\"layer\",\"lazy\",\"leader\",\"leaf\",\"learn\",\"leave\",\"lecture\",\"left\",\"leg\",\"legal\",\"legend\",\"leisure\",\"lemon\",\"lend\",\"length\",\"lens\",\"leopard\",\"lesson\",\"letter\",\"level\",\"liar\",\"liberty\",\"library\",\"license\",\"life\",\"lift\",\"light\",\"like\",\"limb\",\"limit\",\"link\",\"lion\",\"liquid\",\"list\",\"little\",\"live\",\"lizard\",\"load\",\"loan\",\"lobster\",\"local\",\"lock\",\"logic\",\"lonely\",\"long\",\"loop\",\"lottery\",\"loud\",\"lounge\",\"love\",\"loyal\",\"lucky\",\"luggage\",\"lumber\",\"lunar\",\"lunch\",\"luxury\",\"lyrics\",\"machine\",\"mad\",\"magic\",\"magnet\",\"maid\",\"mail\",\"main\",\"major\",\"make\",\"mammal\",\"man\",\"manage\",\"mandate\",\"mango\",\"mansion\",\"manual\",\"maple\",\"marble\",\"march\",\"margin\",\"marine\",\"market\",\"marriage\",\"mask\",\"mass\",\"master\",\"match\",\"material\",\"math\",\"matrix\",\"matter\",\"maximum\",\"maze\",\"meadow\",\"mean\",\"measure\",\"meat\",\"mechanic\",\"medal\",\"media\",\"melody\",\"melt\",\"member\",\"memory\",\"mention\",\"menu\",\"mercy\",\"merge\",\"merit\",\"merry\",\"mesh\",\"message\",\"metal\",\"method\",\"middle\",\"midnight\",\"milk\",\"million\",\"mimic\",\"mind\",\"minimum\",\"minor\",\"minute\",\"miracle\",\"mirror\",\"misery\",\"miss\",\"mistake\",\"mix\",\"mixed\",\"mixture\",\"mobile\",\"model\",\"modify\",\"mom\",\"moment\",\"monitor\",\"monkey\",\"monster\",\"month\",\"moon\",\"moral\",\"more\",\"morning\",\"mosquito\",\"mother\",\"motion\",\"motor\",\"mountain\",\"mouse\",\"move\",\"movie\",\"much\",\"muffin\",\"mule\",\"multiply\",\"muscle\",\"museum\",\"mushroom\",\"music\",\"must\",\"mutual\",\"myself\",\"mystery\",\"myth\",\"naive\",\"name\",\"napkin\",\"narrow\",\"nasty\",\"nation\",\"nature\",\"near\",\"neck\",\"need\",\"negative\",\"neglect\",\"neither\",\"nephew\",\"nerve\",\"nest\",\"net\",\"network\",\"neutral\",\"never\",\"news\",\"next\",\"nice\",\"night\",\"noble\",\"noise\",\"nominee\",\"noodle\",\"normal\",\"north\",\"nose\",\"notable\",\"note\",\"nothing\",\"notice\",\"novel\",\"now\",\"nuclear\",\"number\",\"nurse\",\"nut\",\"oak\",\"obey\",\"object\",\"oblige\",\"obscure\",\"observe\",\"obtain\",\"obvious\",\"occur\",\"ocean\",\"october\",\"odor\",\"off\",\"offer\",\"office\",\"often\",\"oil\",\"okay\",\"old\",\"olive\",\"olympic\",\"omit\",\"once\",\"one\",\"onion\",\"online\",\"only\",\"open\",\"opera\",\"opinion\",\"oppose\",\"option\",\"orange\",\"orbit\",\"orchard\",\"order\",\"ordinary\",\"organ\",\"orient\",\"original\",\"orphan\",\"ostrich\",\"other\",\"outdoor\",\"outer\",\"output\",\"outside\",\"oval\",\"oven\",\"over\",\"own\",\"owner\",\"oxygen\",\"oyster\",\"ozone\",\"pact\",\"paddle\",\"page\",\"pair\",\"palace\",\"palm\",\"panda\",\"panel\",\"panic\",\"panther\",\"paper\",\"parade\",\"parent\",\"park\",\"parrot\",\"party\",\"pass\",\"patch\",\"path\",\"patient\",\"patrol\",\"pattern\",\"pause\",\"pave\",\"payment\",\"peace\",\"peanut\",\"pear\",\"peasant\",\"pelican\",\"pen\",\"penalty\",\"pencil\",\"people\",\"pepper\",\"perfect\",\"permit\",\"person\",\"pet\",\"phone\",\"photo\",\"phrase\",\"physical\",\"piano\",\"picnic\",\"picture\",\"piece\",\"pig\",\"pigeon\",\"pill\",\"pilot\",\"pink\",\"pioneer\",\"pipe\",\"pistol\",\"pitch\",\"pizza\",\"place\",\"planet\",\"plastic\",\"plate\",\"play\",\"please\",\"pledge\",\"pluck\",\"plug\",\"plunge\",\"poem\",\"poet\",\"point\",\"polar\",\"pole\",\"police\",\"pond\",\"pony\",\"pool\",\"popular\",\"portion\",\"position\",\"possible\",\"post\",\"potato\",\"pottery\",\"poverty\",\"powder\",\"power\",\"practice\",\"praise\",\"predict\",\"prefer\",\"prepare\",\"present\",\"pretty\",\"prevent\",\"price\",\"pride\",\"primary\",\"print\",\"priority\",\"prison\",\"private\",\"prize\",\"problem\",\"process\",\"produce\",\"profit\",\"program\",\"project\",\"promote\",\"proof\",\"property\",\"prosper\",\"protect\",\"proud\",\"provide\",\"public\",\"pudding\",\"pull\",\"pulp\",\"pulse\",\"pumpkin\",\"punch\",\"pupil\",\"puppy\",\"purchase\",\"purity\",\"purpose\",\"purse\",\"push\",\"put\",\"puzzle\",\"pyramid\",\"quality\",\"quantum\",\"quarter\",\"question\",\"quick\",\"quit\",\"quiz\",\"quote\",\"rabbit\",\"raccoon\",\"race\",\"rack\",\"radar\",\"radio\",\"rail\",\"rain\",\"raise\",\"rally\",\"ramp\",\"ranch\",\"random\",\"range\",\"rapid\",\"rare\",\"rate\",\"rather\",\"raven\",\"raw\",\"razor\",\"ready\",\"real\",\"reason\",\"rebel\",\"rebuild\",\"recall\",\"receive\",\"recipe\",\"record\",\"recycle\",\"reduce\",\"reflect\",\"reform\",\"refuse\",\"region\",\"regret\",\"regular\",\"reject\",\"relax\",\"release\",\"relief\",\"rely\",\"remain\",\"remember\",\"remind\",\"remove\",\"render\",\"renew\",\"rent\",\"reopen\",\"repair\",\"repeat\",\"replace\",\"report\",\"require\",\"rescue\",\"resemble\",\"resist\",\"resource\",\"response\",\"result\",\"retire\",\"retreat\",\"return\",\"reunion\",\"reveal\",\"review\",\"reward\",\"rhythm\",\"rib\",\"ribbon\",\"rice\",\"rich\",\"ride\",\"ridge\",\"rifle\",\"right\",\"rigid\",\"ring\",\"riot\",\"ripple\",\"risk\",\"ritual\",\"rival\",\"river\",\"road\",\"roast\",\"robot\",\"robust\",\"rocket\",\"romance\",\"roof\",\"rookie\",\"room\",\"rose\",\"rotate\",\"rough\",\"round\",\"route\",\"royal\",\"rubber\",\"rude\",\"rug\",\"rule\",\"run\",\"runway\",\"rural\",\"sad\",\"saddle\",\"sadness\",\"safe\",\"sail\",\"salad\",\"salmon\",\"salon\",\"salt\",\"salute\",\"same\",\"sample\",\"sand\",\"satisfy\",\"satoshi\",\"sauce\",\"sausage\",\"save\",\"say\",\"scale\",\"scan\",\"scare\",\"scatter\",\"scene\",\"scheme\",\"school\",\"science\",\"scissors\",\"scorpion\",\"scout\",\"scrap\",\"screen\",\"script\",\"scrub\",\"sea\",\"search\",\"season\",\"seat\",\"second\",\"secret\",\"section\",\"security\",\"seed\",\"seek\",\"segment\",\"select\",\"sell\",\"seminar\",\"senior\",\"sense\",\"sentence\",\"series\",\"service\",\"session\",\"settle\",\"setup\",\"seven\",\"shadow\",\"shaft\",\"shallow\",\"share\",\"shed\",\"shell\",\"sheriff\",\"shield\",\"shift\",\"shine\",\"ship\",\"shiver\",\"shock\",\"shoe\",\"shoot\",\"shop\",\"short\",\"shoulder\",\"shove\",\"shrimp\",\"shrug\",\"shuffle\",\"shy\",\"sibling\",\"sick\",\"side\",\"siege\",\"sight\",\"sign\",\"silent\",\"silk\",\"silly\",\"silver\",\"similar\",\"simple\",\"since\",\"sing\",\"siren\",\"sister\",\"situate\",\"six\",\"size\",\"skate\",\"sketch\",\"ski\",\"skill\",\"skin\",\"skirt\",\"skull\",\"slab\",\"slam\",\"sleep\",\"slender\",\"slice\",\"slide\",\"slight\",\"slim\",\"slogan\",\"slot\",\"slow\",\"slush\",\"small\",\"smart\",\"smile\",\"smoke\",\"smooth\",\"snack\",\"snake\",\"snap\",\"sniff\",\"snow\",\"soap\",\"soccer\",\"social\",\"sock\",\"soda\",\"soft\",\"solar\",\"soldier\",\"solid\",\"solution\",\"solve\",\"someone\",\"song\",\"soon\",\"sorry\",\"sort\",\"soul\",\"sound\",\"soup\",\"source\",\"south\",\"space\",\"spare\",\"spatial\",\"spawn\",\"speak\",\"special\",\"speed\",\"spell\",\"spend\",\"sphere\",\"spice\",\"spider\",\"spike\",\"spin\",\"spirit\",\"split\",\"spoil\",\"sponsor\",\"spoon\",\"sport\",\"spot\",\"spray\",\"spread\",\"spring\",\"spy\",\"square\",\"squeeze\",\"squirrel\",\"stable\",\"stadium\",\"staff\",\"stage\",\"stairs\",\"stamp\",\"stand\",\"start\",\"state\",\"stay\",\"steak\",\"steel\",\"stem\",\"step\",\"stereo\",\"stick\",\"still\",\"sting\",\"stock\",\"stomach\",\"stone\",\"stool\",\"story\",\"stove\",\"strategy\",\"street\",\"strike\",\"strong\",\"struggle\",\"student\",\"stuff\",\"stumble\",\"style\",\"subject\",\"submit\",\"subway\",\"success\",\"such\",\"sudden\",\"suffer\",\"sugar\",\"suggest\",\"suit\",\"summer\",\"sun\",\"sunny\",\"sunset\",\"super\",\"supply\",\"supreme\",\"sure\",\"surface\",\"surge\",\"surprise\",\"surround\",\"survey\",\"suspect\",\"sustain\",\"swallow\",\"swamp\",\"swap\",\"swarm\",\"swear\",\"sweet\",\"swift\",\"swim\",\"swing\",\"switch\",\"sword\",\"symbol\",\"symptom\",\"syrup\",\"system\",\"table\",\"tackle\",\"tag\",\"tail\",\"talent\",\"talk\",\"tank\",\"tape\",\"target\",\"task\",\"taste\",\"tattoo\",\"taxi\",\"teach\",\"team\",\"tell\",\"ten\",\"tenant\",\"tennis\",\"tent\",\"term\",\"test\",\"text\",\"thank\",\"that\",\"theme\",\"then\",\"theory\",\"there\",\"they\",\"thing\",\"this\",\"thought\",\"three\",\"thrive\",\"throw\",\"thumb\",\"thunder\",\"ticket\",\"tide\",\"tiger\",\"tilt\",\"timber\",\"time\",\"tiny\",\"tip\",\"tired\",\"tissue\",\"title\",\"toast\",\"tobacco\",\"today\",\"toddler\",\"toe\",\"together\",\"toilet\",\"token\",\"tomato\",\"tomorrow\",\"tone\",\"tongue\",\"tonight\",\"tool\",\"tooth\",\"top\",\"topic\",\"topple\",\"torch\",\"tornado\",\"tortoise\",\"toss\",\"total\",\"tourist\",\"toward\",\"tower\",\"town\",\"toy\",\"track\",\"trade\",\"traffic\",\"tragic\",\"train\",\"transfer\",\"trap\",\"trash\",\"travel\",\"tray\",\"treat\",\"tree\",\"trend\",\"trial\",\"tribe\",\"trick\",\"trigger\",\"trim\",\"trip\",\"trophy\",\"trouble\",\"truck\",\"true\",\"truly\",\"trumpet\",\"trust\",\"truth\",\"try\",\"tube\",\"tuition\",\"tumble\",\"tuna\",\"tunnel\",\"turkey\",\"turn\",\"turtle\",\"twelve\",\"twenty\",\"twice\",\"twin\",\"twist\",\"two\",\"type\",\"typical\",\"ugly\",\"umbrella\",\"unable\",\"unaware\",\"uncle\",\"uncover\",\"under\",\"undo\",\"unfair\",\"unfold\",\"unhappy\",\"uniform\",\"unique\",\"unit\",\"universe\",\"unknown\",\"unlock\",\"until\",\"unusual\",\"unveil\",\"update\",\"upgrade\",\"uphold\",\"upon\",\"upper\",\"upset\",\"urban\",\"urge\",\"usage\",\"use\",\"used\",\"useful\",\"useless\",\"usual\",\"utility\",\"vacant\",\"vacuum\",\"vague\",\"valid\",\"valley\",\"valve\",\"van\",\"vanish\",\"vapor\",\"various\",\"vast\",\"vault\",\"vehicle\",\"velvet\",\"vendor\",\"venture\",\"venue\",\"verb\",\"verify\",\"version\",\"very\",\"vessel\",\"veteran\",\"viable\",\"vibrant\",\"vicious\",\"victory\",\"video\",\"view\",\"village\",\"vintage\",\"violin\",\"virtual\",\"virus\",\"visa\",\"visit\",\"visual\",\"vital\",\"vivid\",\"vocal\",\"voice\",\"void\",\"volcano\",\"volume\",\"vote\",\"voyage\",\"wage\",\"wagon\",\"wait\",\"walk\",\"wall\",\"walnut\",\"want\",\"warfare\",\"warm\",\"warrior\",\"wash\",\"wasp\",\"waste\",\"water\",\"wave\",\"way\",\"wealth\",\"weapon\",\"wear\",\"weasel\",\"weather\",\"web\",\"wedding\",\"weekend\",\"weird\",\"welcome\",\"west\",\"wet\",\"whale\",\"what\",\"wheat\",\"wheel\",\"when\",\"where\",\"whip\",\"whisper\",\"wide\",\"width\",\"wife\",\"wild\",\"will\",\"win\",\"window\",\"wine\",\"wing\",\"wink\",\"winner\",\"winter\",\"wire\",\"wisdom\",\"wise\",\"wish\",\"witness\",\"wolf\",\"woman\",\"wonder\",\"wood\",\"wool\",\"word\",\"work\",\"world\",\"worry\",\"worth\",\"wrap\",\"wreck\",\"wrestle\",\"wrist\",\"write\",\"wrong\",\"yard\",\"year\",\"yellow\",\"you\",\"young\",\"youth\",\"zebra\",\"zero\",\"zone\",\"zoo\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/english.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/french.json":
/*!******************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/french.json ***!
  \******************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"abaisser\",\"abandon\",\"abdiquer\",\"abeille\",\"abolir\",\"aborder\",\"aboutir\",\"aboyer\",\"abrasif\",\"abreuver\",\"abriter\",\"abroger\",\"abrupt\",\"absence\",\"absolu\",\"absurde\",\"abusif\",\"abyssal\",\"académie\",\"acajou\",\"acarien\",\"accabler\",\"accepter\",\"acclamer\",\"accolade\",\"accroche\",\"accuser\",\"acerbe\",\"achat\",\"acheter\",\"aciduler\",\"acier\",\"acompte\",\"acquérir\",\"acronyme\",\"acteur\",\"actif\",\"actuel\",\"adepte\",\"adéquat\",\"adhésif\",\"adjectif\",\"adjuger\",\"admettre\",\"admirer\",\"adopter\",\"adorer\",\"adoucir\",\"adresse\",\"adroit\",\"adulte\",\"adverbe\",\"aérer\",\"aéronef\",\"affaire\",\"affecter\",\"affiche\",\"affreux\",\"affubler\",\"agacer\",\"agencer\",\"agile\",\"agiter\",\"agrafer\",\"agréable\",\"agrume\",\"aider\",\"aiguille\",\"ailier\",\"aimable\",\"aisance\",\"ajouter\",\"ajuster\",\"alarmer\",\"alchimie\",\"alerte\",\"algèbre\",\"algue\",\"aliéner\",\"aliment\",\"alléger\",\"alliage\",\"allouer\",\"allumer\",\"alourdir\",\"alpaga\",\"altesse\",\"alvéole\",\"amateur\",\"ambigu\",\"ambre\",\"aménager\",\"amertume\",\"amidon\",\"amiral\",\"amorcer\",\"amour\",\"amovible\",\"amphibie\",\"ampleur\",\"amusant\",\"analyse\",\"anaphore\",\"anarchie\",\"anatomie\",\"ancien\",\"anéantir\",\"angle\",\"angoisse\",\"anguleux\",\"animal\",\"annexer\",\"annonce\",\"annuel\",\"anodin\",\"anomalie\",\"anonyme\",\"anormal\",\"antenne\",\"antidote\",\"anxieux\",\"apaiser\",\"apéritif\",\"aplanir\",\"apologie\",\"appareil\",\"appeler\",\"apporter\",\"appuyer\",\"aquarium\",\"aqueduc\",\"arbitre\",\"arbuste\",\"ardeur\",\"ardoise\",\"argent\",\"arlequin\",\"armature\",\"armement\",\"armoire\",\"armure\",\"arpenter\",\"arracher\",\"arriver\",\"arroser\",\"arsenic\",\"artériel\",\"article\",\"aspect\",\"asphalte\",\"aspirer\",\"assaut\",\"asservir\",\"assiette\",\"associer\",\"assurer\",\"asticot\",\"astre\",\"astuce\",\"atelier\",\"atome\",\"atrium\",\"atroce\",\"attaque\",\"attentif\",\"attirer\",\"attraper\",\"aubaine\",\"auberge\",\"audace\",\"audible\",\"augurer\",\"aurore\",\"automne\",\"autruche\",\"avaler\",\"avancer\",\"avarice\",\"avenir\",\"averse\",\"aveugle\",\"aviateur\",\"avide\",\"avion\",\"aviser\",\"avoine\",\"avouer\",\"avril\",\"axial\",\"axiome\",\"badge\",\"bafouer\",\"bagage\",\"baguette\",\"baignade\",\"balancer\",\"balcon\",\"baleine\",\"balisage\",\"bambin\",\"bancaire\",\"bandage\",\"banlieue\",\"bannière\",\"banquier\",\"barbier\",\"baril\",\"baron\",\"barque\",\"barrage\",\"bassin\",\"bastion\",\"bataille\",\"bateau\",\"batterie\",\"baudrier\",\"bavarder\",\"belette\",\"bélier\",\"belote\",\"bénéfice\",\"berceau\",\"berger\",\"berline\",\"bermuda\",\"besace\",\"besogne\",\"bétail\",\"beurre\",\"biberon\",\"bicycle\",\"bidule\",\"bijou\",\"bilan\",\"bilingue\",\"billard\",\"binaire\",\"biologie\",\"biopsie\",\"biotype\",\"biscuit\",\"bison\",\"bistouri\",\"bitume\",\"bizarre\",\"blafard\",\"blague\",\"blanchir\",\"blessant\",\"blinder\",\"blond\",\"bloquer\",\"blouson\",\"bobard\",\"bobine\",\"boire\",\"boiser\",\"bolide\",\"bonbon\",\"bondir\",\"bonheur\",\"bonifier\",\"bonus\",\"bordure\",\"borne\",\"botte\",\"boucle\",\"boueux\",\"bougie\",\"boulon\",\"bouquin\",\"bourse\",\"boussole\",\"boutique\",\"boxeur\",\"branche\",\"brasier\",\"brave\",\"brebis\",\"brèche\",\"breuvage\",\"bricoler\",\"brigade\",\"brillant\",\"brioche\",\"brique\",\"brochure\",\"broder\",\"bronzer\",\"brousse\",\"broyeur\",\"brume\",\"brusque\",\"brutal\",\"bruyant\",\"buffle\",\"buisson\",\"bulletin\",\"bureau\",\"burin\",\"bustier\",\"butiner\",\"butoir\",\"buvable\",\"buvette\",\"cabanon\",\"cabine\",\"cachette\",\"cadeau\",\"cadre\",\"caféine\",\"caillou\",\"caisson\",\"calculer\",\"calepin\",\"calibre\",\"calmer\",\"calomnie\",\"calvaire\",\"camarade\",\"caméra\",\"camion\",\"campagne\",\"canal\",\"caneton\",\"canon\",\"cantine\",\"canular\",\"capable\",\"caporal\",\"caprice\",\"capsule\",\"capter\",\"capuche\",\"carabine\",\"carbone\",\"caresser\",\"caribou\",\"carnage\",\"carotte\",\"carreau\",\"carton\",\"cascade\",\"casier\",\"casque\",\"cassure\",\"causer\",\"caution\",\"cavalier\",\"caverne\",\"caviar\",\"cédille\",\"ceinture\",\"céleste\",\"cellule\",\"cendrier\",\"censurer\",\"central\",\"cercle\",\"cérébral\",\"cerise\",\"cerner\",\"cerveau\",\"cesser\",\"chagrin\",\"chaise\",\"chaleur\",\"chambre\",\"chance\",\"chapitre\",\"charbon\",\"chasseur\",\"chaton\",\"chausson\",\"chavirer\",\"chemise\",\"chenille\",\"chéquier\",\"chercher\",\"cheval\",\"chien\",\"chiffre\",\"chignon\",\"chimère\",\"chiot\",\"chlorure\",\"chocolat\",\"choisir\",\"chose\",\"chouette\",\"chrome\",\"chute\",\"cigare\",\"cigogne\",\"cimenter\",\"cinéma\",\"cintrer\",\"circuler\",\"cirer\",\"cirque\",\"citerne\",\"citoyen\",\"citron\",\"civil\",\"clairon\",\"clameur\",\"claquer\",\"classe\",\"clavier\",\"client\",\"cligner\",\"climat\",\"clivage\",\"cloche\",\"clonage\",\"cloporte\",\"cobalt\",\"cobra\",\"cocasse\",\"cocotier\",\"coder\",\"codifier\",\"coffre\",\"cogner\",\"cohésion\",\"coiffer\",\"coincer\",\"colère\",\"colibri\",\"colline\",\"colmater\",\"colonel\",\"combat\",\"comédie\",\"commande\",\"compact\",\"concert\",\"conduire\",\"confier\",\"congeler\",\"connoter\",\"consonne\",\"contact\",\"convexe\",\"copain\",\"copie\",\"corail\",\"corbeau\",\"cordage\",\"corniche\",\"corpus\",\"correct\",\"cortège\",\"cosmique\",\"costume\",\"coton\",\"coude\",\"coupure\",\"courage\",\"couteau\",\"couvrir\",\"coyote\",\"crabe\",\"crainte\",\"cravate\",\"crayon\",\"créature\",\"créditer\",\"crémeux\",\"creuser\",\"crevette\",\"cribler\",\"crier\",\"cristal\",\"critère\",\"croire\",\"croquer\",\"crotale\",\"crucial\",\"cruel\",\"crypter\",\"cubique\",\"cueillir\",\"cuillère\",\"cuisine\",\"cuivre\",\"culminer\",\"cultiver\",\"cumuler\",\"cupide\",\"curatif\",\"curseur\",\"cyanure\",\"cycle\",\"cylindre\",\"cynique\",\"daigner\",\"damier\",\"danger\",\"danseur\",\"dauphin\",\"débattre\",\"débiter\",\"déborder\",\"débrider\",\"débutant\",\"décaler\",\"décembre\",\"déchirer\",\"décider\",\"déclarer\",\"décorer\",\"décrire\",\"décupler\",\"dédale\",\"déductif\",\"déesse\",\"défensif\",\"défiler\",\"défrayer\",\"dégager\",\"dégivrer\",\"déglutir\",\"dégrafer\",\"déjeuner\",\"délice\",\"déloger\",\"demander\",\"demeurer\",\"démolir\",\"dénicher\",\"dénouer\",\"dentelle\",\"dénuder\",\"départ\",\"dépenser\",\"déphaser\",\"déplacer\",\"déposer\",\"déranger\",\"dérober\",\"désastre\",\"descente\",\"désert\",\"désigner\",\"désobéir\",\"dessiner\",\"destrier\",\"détacher\",\"détester\",\"détourer\",\"détresse\",\"devancer\",\"devenir\",\"deviner\",\"devoir\",\"diable\",\"dialogue\",\"diamant\",\"dicter\",\"différer\",\"digérer\",\"digital\",\"digne\",\"diluer\",\"dimanche\",\"diminuer\",\"dioxyde\",\"directif\",\"diriger\",\"discuter\",\"disposer\",\"dissiper\",\"distance\",\"divertir\",\"diviser\",\"docile\",\"docteur\",\"dogme\",\"doigt\",\"domaine\",\"domicile\",\"dompter\",\"donateur\",\"donjon\",\"donner\",\"dopamine\",\"dortoir\",\"dorure\",\"dosage\",\"doseur\",\"dossier\",\"dotation\",\"douanier\",\"double\",\"douceur\",\"douter\",\"doyen\",\"dragon\",\"draper\",\"dresser\",\"dribbler\",\"droiture\",\"duperie\",\"duplexe\",\"durable\",\"durcir\",\"dynastie\",\"éblouir\",\"écarter\",\"écharpe\",\"échelle\",\"éclairer\",\"éclipse\",\"éclore\",\"écluse\",\"école\",\"économie\",\"écorce\",\"écouter\",\"écraser\",\"écrémer\",\"écrivain\",\"écrou\",\"écume\",\"écureuil\",\"édifier\",\"éduquer\",\"effacer\",\"effectif\",\"effigie\",\"effort\",\"effrayer\",\"effusion\",\"égaliser\",\"égarer\",\"éjecter\",\"élaborer\",\"élargir\",\"électron\",\"élégant\",\"éléphant\",\"élève\",\"éligible\",\"élitisme\",\"éloge\",\"élucider\",\"éluder\",\"emballer\",\"embellir\",\"embryon\",\"émeraude\",\"émission\",\"emmener\",\"émotion\",\"émouvoir\",\"empereur\",\"employer\",\"emporter\",\"emprise\",\"émulsion\",\"encadrer\",\"enchère\",\"enclave\",\"encoche\",\"endiguer\",\"endosser\",\"endroit\",\"enduire\",\"énergie\",\"enfance\",\"enfermer\",\"enfouir\",\"engager\",\"engin\",\"englober\",\"énigme\",\"enjamber\",\"enjeu\",\"enlever\",\"ennemi\",\"ennuyeux\",\"enrichir\",\"enrobage\",\"enseigne\",\"entasser\",\"entendre\",\"entier\",\"entourer\",\"entraver\",\"énumérer\",\"envahir\",\"enviable\",\"envoyer\",\"enzyme\",\"éolien\",\"épaissir\",\"épargne\",\"épatant\",\"épaule\",\"épicerie\",\"épidémie\",\"épier\",\"épilogue\",\"épine\",\"épisode\",\"épitaphe\",\"époque\",\"épreuve\",\"éprouver\",\"épuisant\",\"équerre\",\"équipe\",\"ériger\",\"érosion\",\"erreur\",\"éruption\",\"escalier\",\"espadon\",\"espèce\",\"espiègle\",\"espoir\",\"esprit\",\"esquiver\",\"essayer\",\"essence\",\"essieu\",\"essorer\",\"estime\",\"estomac\",\"estrade\",\"étagère\",\"étaler\",\"étanche\",\"étatique\",\"éteindre\",\"étendoir\",\"éternel\",\"éthanol\",\"éthique\",\"ethnie\",\"étirer\",\"étoffer\",\"étoile\",\"étonnant\",\"étourdir\",\"étrange\",\"étroit\",\"étude\",\"euphorie\",\"évaluer\",\"évasion\",\"éventail\",\"évidence\",\"éviter\",\"évolutif\",\"évoquer\",\"exact\",\"exagérer\",\"exaucer\",\"exceller\",\"excitant\",\"exclusif\",\"excuse\",\"exécuter\",\"exemple\",\"exercer\",\"exhaler\",\"exhorter\",\"exigence\",\"exiler\",\"exister\",\"exotique\",\"expédier\",\"explorer\",\"exposer\",\"exprimer\",\"exquis\",\"extensif\",\"extraire\",\"exulter\",\"fable\",\"fabuleux\",\"facette\",\"facile\",\"facture\",\"faiblir\",\"falaise\",\"fameux\",\"famille\",\"farceur\",\"farfelu\",\"farine\",\"farouche\",\"fasciner\",\"fatal\",\"fatigue\",\"faucon\",\"fautif\",\"faveur\",\"favori\",\"fébrile\",\"féconder\",\"fédérer\",\"félin\",\"femme\",\"fémur\",\"fendoir\",\"féodal\",\"fermer\",\"féroce\",\"ferveur\",\"festival\",\"feuille\",\"feutre\",\"février\",\"fiasco\",\"ficeler\",\"fictif\",\"fidèle\",\"figure\",\"filature\",\"filetage\",\"filière\",\"filleul\",\"filmer\",\"filou\",\"filtrer\",\"financer\",\"finir\",\"fiole\",\"firme\",\"fissure\",\"fixer\",\"flairer\",\"flamme\",\"flasque\",\"flatteur\",\"fléau\",\"flèche\",\"fleur\",\"flexion\",\"flocon\",\"flore\",\"fluctuer\",\"fluide\",\"fluvial\",\"folie\",\"fonderie\",\"fongible\",\"fontaine\",\"forcer\",\"forgeron\",\"formuler\",\"fortune\",\"fossile\",\"foudre\",\"fougère\",\"fouiller\",\"foulure\",\"fourmi\",\"fragile\",\"fraise\",\"franchir\",\"frapper\",\"frayeur\",\"frégate\",\"freiner\",\"frelon\",\"frémir\",\"frénésie\",\"frère\",\"friable\",\"friction\",\"frisson\",\"frivole\",\"froid\",\"fromage\",\"frontal\",\"frotter\",\"fruit\",\"fugitif\",\"fuite\",\"fureur\",\"furieux\",\"furtif\",\"fusion\",\"futur\",\"gagner\",\"galaxie\",\"galerie\",\"gambader\",\"garantir\",\"gardien\",\"garnir\",\"garrigue\",\"gazelle\",\"gazon\",\"géant\",\"gélatine\",\"gélule\",\"gendarme\",\"général\",\"génie\",\"genou\",\"gentil\",\"géologie\",\"géomètre\",\"géranium\",\"germe\",\"gestuel\",\"geyser\",\"gibier\",\"gicler\",\"girafe\",\"givre\",\"glace\",\"glaive\",\"glisser\",\"globe\",\"gloire\",\"glorieux\",\"golfeur\",\"gomme\",\"gonfler\",\"gorge\",\"gorille\",\"goudron\",\"gouffre\",\"goulot\",\"goupille\",\"gourmand\",\"goutte\",\"graduel\",\"graffiti\",\"graine\",\"grand\",\"grappin\",\"gratuit\",\"gravir\",\"grenat\",\"griffure\",\"griller\",\"grimper\",\"grogner\",\"gronder\",\"grotte\",\"groupe\",\"gruger\",\"grutier\",\"gruyère\",\"guépard\",\"guerrier\",\"guide\",\"guimauve\",\"guitare\",\"gustatif\",\"gymnaste\",\"gyrostat\",\"habitude\",\"hachoir\",\"halte\",\"hameau\",\"hangar\",\"hanneton\",\"haricot\",\"harmonie\",\"harpon\",\"hasard\",\"hélium\",\"hématome\",\"herbe\",\"hérisson\",\"hermine\",\"héron\",\"hésiter\",\"heureux\",\"hiberner\",\"hibou\",\"hilarant\",\"histoire\",\"hiver\",\"homard\",\"hommage\",\"homogène\",\"honneur\",\"honorer\",\"honteux\",\"horde\",\"horizon\",\"horloge\",\"hormone\",\"horrible\",\"houleux\",\"housse\",\"hublot\",\"huileux\",\"humain\",\"humble\",\"humide\",\"humour\",\"hurler\",\"hydromel\",\"hygiène\",\"hymne\",\"hypnose\",\"idylle\",\"ignorer\",\"iguane\",\"illicite\",\"illusion\",\"image\",\"imbiber\",\"imiter\",\"immense\",\"immobile\",\"immuable\",\"impact\",\"impérial\",\"implorer\",\"imposer\",\"imprimer\",\"imputer\",\"incarner\",\"incendie\",\"incident\",\"incliner\",\"incolore\",\"indexer\",\"indice\",\"inductif\",\"inédit\",\"ineptie\",\"inexact\",\"infini\",\"infliger\",\"informer\",\"infusion\",\"ingérer\",\"inhaler\",\"inhiber\",\"injecter\",\"injure\",\"innocent\",\"inoculer\",\"inonder\",\"inscrire\",\"insecte\",\"insigne\",\"insolite\",\"inspirer\",\"instinct\",\"insulter\",\"intact\",\"intense\",\"intime\",\"intrigue\",\"intuitif\",\"inutile\",\"invasion\",\"inventer\",\"inviter\",\"invoquer\",\"ironique\",\"irradier\",\"irréel\",\"irriter\",\"isoler\",\"ivoire\",\"ivresse\",\"jaguar\",\"jaillir\",\"jambe\",\"janvier\",\"jardin\",\"jauger\",\"jaune\",\"javelot\",\"jetable\",\"jeton\",\"jeudi\",\"jeunesse\",\"joindre\",\"joncher\",\"jongler\",\"joueur\",\"jouissif\",\"journal\",\"jovial\",\"joyau\",\"joyeux\",\"jubiler\",\"jugement\",\"junior\",\"jupon\",\"juriste\",\"justice\",\"juteux\",\"juvénile\",\"kayak\",\"kimono\",\"kiosque\",\"label\",\"labial\",\"labourer\",\"lacérer\",\"lactose\",\"lagune\",\"laine\",\"laisser\",\"laitier\",\"lambeau\",\"lamelle\",\"lampe\",\"lanceur\",\"langage\",\"lanterne\",\"lapin\",\"largeur\",\"larme\",\"laurier\",\"lavabo\",\"lavoir\",\"lecture\",\"légal\",\"léger\",\"légume\",\"lessive\",\"lettre\",\"levier\",\"lexique\",\"lézard\",\"liasse\",\"libérer\",\"libre\",\"licence\",\"licorne\",\"liège\",\"lièvre\",\"ligature\",\"ligoter\",\"ligue\",\"limer\",\"limite\",\"limonade\",\"limpide\",\"linéaire\",\"lingot\",\"lionceau\",\"liquide\",\"lisière\",\"lister\",\"lithium\",\"litige\",\"littoral\",\"livreur\",\"logique\",\"lointain\",\"loisir\",\"lombric\",\"loterie\",\"louer\",\"lourd\",\"loutre\",\"louve\",\"loyal\",\"lubie\",\"lucide\",\"lucratif\",\"lueur\",\"lugubre\",\"luisant\",\"lumière\",\"lunaire\",\"lundi\",\"luron\",\"lutter\",\"luxueux\",\"machine\",\"magasin\",\"magenta\",\"magique\",\"maigre\",\"maillon\",\"maintien\",\"mairie\",\"maison\",\"majorer\",\"malaxer\",\"maléfice\",\"malheur\",\"malice\",\"mallette\",\"mammouth\",\"mandater\",\"maniable\",\"manquant\",\"manteau\",\"manuel\",\"marathon\",\"marbre\",\"marchand\",\"mardi\",\"maritime\",\"marqueur\",\"marron\",\"marteler\",\"mascotte\",\"massif\",\"matériel\",\"matière\",\"matraque\",\"maudire\",\"maussade\",\"mauve\",\"maximal\",\"méchant\",\"méconnu\",\"médaille\",\"médecin\",\"méditer\",\"méduse\",\"meilleur\",\"mélange\",\"mélodie\",\"membre\",\"mémoire\",\"menacer\",\"mener\",\"menhir\",\"mensonge\",\"mentor\",\"mercredi\",\"mérite\",\"merle\",\"messager\",\"mesure\",\"métal\",\"météore\",\"méthode\",\"métier\",\"meuble\",\"miauler\",\"microbe\",\"miette\",\"mignon\",\"migrer\",\"milieu\",\"million\",\"mimique\",\"mince\",\"minéral\",\"minimal\",\"minorer\",\"minute\",\"miracle\",\"miroiter\",\"missile\",\"mixte\",\"mobile\",\"moderne\",\"moelleux\",\"mondial\",\"moniteur\",\"monnaie\",\"monotone\",\"monstre\",\"montagne\",\"monument\",\"moqueur\",\"morceau\",\"morsure\",\"mortier\",\"moteur\",\"motif\",\"mouche\",\"moufle\",\"moulin\",\"mousson\",\"mouton\",\"mouvant\",\"multiple\",\"munition\",\"muraille\",\"murène\",\"murmure\",\"muscle\",\"muséum\",\"musicien\",\"mutation\",\"muter\",\"mutuel\",\"myriade\",\"myrtille\",\"mystère\",\"mythique\",\"nageur\",\"nappe\",\"narquois\",\"narrer\",\"natation\",\"nation\",\"nature\",\"naufrage\",\"nautique\",\"navire\",\"nébuleux\",\"nectar\",\"néfaste\",\"négation\",\"négliger\",\"négocier\",\"neige\",\"nerveux\",\"nettoyer\",\"neurone\",\"neutron\",\"neveu\",\"niche\",\"nickel\",\"nitrate\",\"niveau\",\"noble\",\"nocif\",\"nocturne\",\"noirceur\",\"noisette\",\"nomade\",\"nombreux\",\"nommer\",\"normatif\",\"notable\",\"notifier\",\"notoire\",\"nourrir\",\"nouveau\",\"novateur\",\"novembre\",\"novice\",\"nuage\",\"nuancer\",\"nuire\",\"nuisible\",\"numéro\",\"nuptial\",\"nuque\",\"nutritif\",\"obéir\",\"objectif\",\"obliger\",\"obscur\",\"observer\",\"obstacle\",\"obtenir\",\"obturer\",\"occasion\",\"occuper\",\"océan\",\"octobre\",\"octroyer\",\"octupler\",\"oculaire\",\"odeur\",\"odorant\",\"offenser\",\"officier\",\"offrir\",\"ogive\",\"oiseau\",\"oisillon\",\"olfactif\",\"olivier\",\"ombrage\",\"omettre\",\"onctueux\",\"onduler\",\"onéreux\",\"onirique\",\"opale\",\"opaque\",\"opérer\",\"opinion\",\"opportun\",\"opprimer\",\"opter\",\"optique\",\"orageux\",\"orange\",\"orbite\",\"ordonner\",\"oreille\",\"organe\",\"orgueil\",\"orifice\",\"ornement\",\"orque\",\"ortie\",\"osciller\",\"osmose\",\"ossature\",\"otarie\",\"ouragan\",\"ourson\",\"outil\",\"outrager\",\"ouvrage\",\"ovation\",\"oxyde\",\"oxygène\",\"ozone\",\"paisible\",\"palace\",\"palmarès\",\"palourde\",\"palper\",\"panache\",\"panda\",\"pangolin\",\"paniquer\",\"panneau\",\"panorama\",\"pantalon\",\"papaye\",\"papier\",\"papoter\",\"papyrus\",\"paradoxe\",\"parcelle\",\"paresse\",\"parfumer\",\"parler\",\"parole\",\"parrain\",\"parsemer\",\"partager\",\"parure\",\"parvenir\",\"passion\",\"pastèque\",\"paternel\",\"patience\",\"patron\",\"pavillon\",\"pavoiser\",\"payer\",\"paysage\",\"peigne\",\"peintre\",\"pelage\",\"pélican\",\"pelle\",\"pelouse\",\"peluche\",\"pendule\",\"pénétrer\",\"pénible\",\"pensif\",\"pénurie\",\"pépite\",\"péplum\",\"perdrix\",\"perforer\",\"période\",\"permuter\",\"perplexe\",\"persil\",\"perte\",\"peser\",\"pétale\",\"petit\",\"pétrir\",\"peuple\",\"pharaon\",\"phobie\",\"phoque\",\"photon\",\"phrase\",\"physique\",\"piano\",\"pictural\",\"pièce\",\"pierre\",\"pieuvre\",\"pilote\",\"pinceau\",\"pipette\",\"piquer\",\"pirogue\",\"piscine\",\"piston\",\"pivoter\",\"pixel\",\"pizza\",\"placard\",\"plafond\",\"plaisir\",\"planer\",\"plaque\",\"plastron\",\"plateau\",\"pleurer\",\"plexus\",\"pliage\",\"plomb\",\"plonger\",\"pluie\",\"plumage\",\"pochette\",\"poésie\",\"poète\",\"pointe\",\"poirier\",\"poisson\",\"poivre\",\"polaire\",\"policier\",\"pollen\",\"polygone\",\"pommade\",\"pompier\",\"ponctuel\",\"pondérer\",\"poney\",\"portique\",\"position\",\"posséder\",\"posture\",\"potager\",\"poteau\",\"potion\",\"pouce\",\"poulain\",\"poumon\",\"pourpre\",\"poussin\",\"pouvoir\",\"prairie\",\"pratique\",\"précieux\",\"prédire\",\"préfixe\",\"prélude\",\"prénom\",\"présence\",\"prétexte\",\"prévoir\",\"primitif\",\"prince\",\"prison\",\"priver\",\"problème\",\"procéder\",\"prodige\",\"profond\",\"progrès\",\"proie\",\"projeter\",\"prologue\",\"promener\",\"propre\",\"prospère\",\"protéger\",\"prouesse\",\"proverbe\",\"prudence\",\"pruneau\",\"psychose\",\"public\",\"puceron\",\"puiser\",\"pulpe\",\"pulsar\",\"punaise\",\"punitif\",\"pupitre\",\"purifier\",\"puzzle\",\"pyramide\",\"quasar\",\"querelle\",\"question\",\"quiétude\",\"quitter\",\"quotient\",\"racine\",\"raconter\",\"radieux\",\"ragondin\",\"raideur\",\"raisin\",\"ralentir\",\"rallonge\",\"ramasser\",\"rapide\",\"rasage\",\"ratisser\",\"ravager\",\"ravin\",\"rayonner\",\"réactif\",\"réagir\",\"réaliser\",\"réanimer\",\"recevoir\",\"réciter\",\"réclamer\",\"récolter\",\"recruter\",\"reculer\",\"recycler\",\"rédiger\",\"redouter\",\"refaire\",\"réflexe\",\"réformer\",\"refrain\",\"refuge\",\"régalien\",\"région\",\"réglage\",\"régulier\",\"réitérer\",\"rejeter\",\"rejouer\",\"relatif\",\"relever\",\"relief\",\"remarque\",\"remède\",\"remise\",\"remonter\",\"remplir\",\"remuer\",\"renard\",\"renfort\",\"renifler\",\"renoncer\",\"rentrer\",\"renvoi\",\"replier\",\"reporter\",\"reprise\",\"reptile\",\"requin\",\"réserve\",\"résineux\",\"résoudre\",\"respect\",\"rester\",\"résultat\",\"rétablir\",\"retenir\",\"réticule\",\"retomber\",\"retracer\",\"réunion\",\"réussir\",\"revanche\",\"revivre\",\"révolte\",\"révulsif\",\"richesse\",\"rideau\",\"rieur\",\"rigide\",\"rigoler\",\"rincer\",\"riposter\",\"risible\",\"risque\",\"rituel\",\"rival\",\"rivière\",\"rocheux\",\"romance\",\"rompre\",\"ronce\",\"rondin\",\"roseau\",\"rosier\",\"rotatif\",\"rotor\",\"rotule\",\"rouge\",\"rouille\",\"rouleau\",\"routine\",\"royaume\",\"ruban\",\"rubis\",\"ruche\",\"ruelle\",\"rugueux\",\"ruiner\",\"ruisseau\",\"ruser\",\"rustique\",\"rythme\",\"sabler\",\"saboter\",\"sabre\",\"sacoche\",\"safari\",\"sagesse\",\"saisir\",\"salade\",\"salive\",\"salon\",\"saluer\",\"samedi\",\"sanction\",\"sanglier\",\"sarcasme\",\"sardine\",\"saturer\",\"saugrenu\",\"saumon\",\"sauter\",\"sauvage\",\"savant\",\"savonner\",\"scalpel\",\"scandale\",\"scélérat\",\"scénario\",\"sceptre\",\"schéma\",\"science\",\"scinder\",\"score\",\"scrutin\",\"sculpter\",\"séance\",\"sécable\",\"sécher\",\"secouer\",\"sécréter\",\"sédatif\",\"séduire\",\"seigneur\",\"séjour\",\"sélectif\",\"semaine\",\"sembler\",\"semence\",\"séminal\",\"sénateur\",\"sensible\",\"sentence\",\"séparer\",\"séquence\",\"serein\",\"sergent\",\"sérieux\",\"serrure\",\"sérum\",\"service\",\"sésame\",\"sévir\",\"sevrage\",\"sextuple\",\"sidéral\",\"siècle\",\"siéger\",\"siffler\",\"sigle\",\"signal\",\"silence\",\"silicium\",\"simple\",\"sincère\",\"sinistre\",\"siphon\",\"sirop\",\"sismique\",\"situer\",\"skier\",\"social\",\"socle\",\"sodium\",\"soigneux\",\"soldat\",\"soleil\",\"solitude\",\"soluble\",\"sombre\",\"sommeil\",\"somnoler\",\"sonde\",\"songeur\",\"sonnette\",\"sonore\",\"sorcier\",\"sortir\",\"sosie\",\"sottise\",\"soucieux\",\"soudure\",\"souffle\",\"soulever\",\"soupape\",\"source\",\"soutirer\",\"souvenir\",\"spacieux\",\"spatial\",\"spécial\",\"sphère\",\"spiral\",\"stable\",\"station\",\"sternum\",\"stimulus\",\"stipuler\",\"strict\",\"studieux\",\"stupeur\",\"styliste\",\"sublime\",\"substrat\",\"subtil\",\"subvenir\",\"succès\",\"sucre\",\"suffixe\",\"suggérer\",\"suiveur\",\"sulfate\",\"superbe\",\"supplier\",\"surface\",\"suricate\",\"surmener\",\"surprise\",\"sursaut\",\"survie\",\"suspect\",\"syllabe\",\"symbole\",\"symétrie\",\"synapse\",\"syntaxe\",\"système\",\"tabac\",\"tablier\",\"tactile\",\"tailler\",\"talent\",\"talisman\",\"talonner\",\"tambour\",\"tamiser\",\"tangible\",\"tapis\",\"taquiner\",\"tarder\",\"tarif\",\"tartine\",\"tasse\",\"tatami\",\"tatouage\",\"taupe\",\"taureau\",\"taxer\",\"témoin\",\"temporel\",\"tenaille\",\"tendre\",\"teneur\",\"tenir\",\"tension\",\"terminer\",\"terne\",\"terrible\",\"tétine\",\"texte\",\"thème\",\"théorie\",\"thérapie\",\"thorax\",\"tibia\",\"tiède\",\"timide\",\"tirelire\",\"tiroir\",\"tissu\",\"titane\",\"titre\",\"tituber\",\"toboggan\",\"tolérant\",\"tomate\",\"tonique\",\"tonneau\",\"toponyme\",\"torche\",\"tordre\",\"tornade\",\"torpille\",\"torrent\",\"torse\",\"tortue\",\"totem\",\"toucher\",\"tournage\",\"tousser\",\"toxine\",\"traction\",\"trafic\",\"tragique\",\"trahir\",\"train\",\"trancher\",\"travail\",\"trèfle\",\"tremper\",\"trésor\",\"treuil\",\"triage\",\"tribunal\",\"tricoter\",\"trilogie\",\"triomphe\",\"tripler\",\"triturer\",\"trivial\",\"trombone\",\"tronc\",\"tropical\",\"troupeau\",\"tuile\",\"tulipe\",\"tumulte\",\"tunnel\",\"turbine\",\"tuteur\",\"tutoyer\",\"tuyau\",\"tympan\",\"typhon\",\"typique\",\"tyran\",\"ubuesque\",\"ultime\",\"ultrason\",\"unanime\",\"unifier\",\"union\",\"unique\",\"unitaire\",\"univers\",\"uranium\",\"urbain\",\"urticant\",\"usage\",\"usine\",\"usuel\",\"usure\",\"utile\",\"utopie\",\"vacarme\",\"vaccin\",\"vagabond\",\"vague\",\"vaillant\",\"vaincre\",\"vaisseau\",\"valable\",\"valise\",\"vallon\",\"valve\",\"vampire\",\"vanille\",\"vapeur\",\"varier\",\"vaseux\",\"vassal\",\"vaste\",\"vecteur\",\"vedette\",\"végétal\",\"véhicule\",\"veinard\",\"véloce\",\"vendredi\",\"vénérer\",\"venger\",\"venimeux\",\"ventouse\",\"verdure\",\"vérin\",\"vernir\",\"verrou\",\"verser\",\"vertu\",\"veston\",\"vétéran\",\"vétuste\",\"vexant\",\"vexer\",\"viaduc\",\"viande\",\"victoire\",\"vidange\",\"vidéo\",\"vignette\",\"vigueur\",\"vilain\",\"village\",\"vinaigre\",\"violon\",\"vipère\",\"virement\",\"virtuose\",\"virus\",\"visage\",\"viseur\",\"vision\",\"visqueux\",\"visuel\",\"vital\",\"vitesse\",\"viticole\",\"vitrine\",\"vivace\",\"vivipare\",\"vocation\",\"voguer\",\"voile\",\"voisin\",\"voiture\",\"volaille\",\"volcan\",\"voltiger\",\"volume\",\"vorace\",\"vortex\",\"voter\",\"vouloir\",\"voyage\",\"voyelle\",\"wagon\",\"xénon\",\"yacht\",\"zèbre\",\"zénith\",\"zeste\",\"zoologie\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/french.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/italian.json":
/*!*******************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/italian.json ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"abaco\",\"abbaglio\",\"abbinato\",\"abete\",\"abisso\",\"abolire\",\"abrasivo\",\"abrogato\",\"accadere\",\"accenno\",\"accusato\",\"acetone\",\"achille\",\"acido\",\"acqua\",\"acre\",\"acrilico\",\"acrobata\",\"acuto\",\"adagio\",\"addebito\",\"addome\",\"adeguato\",\"aderire\",\"adipe\",\"adottare\",\"adulare\",\"affabile\",\"affetto\",\"affisso\",\"affranto\",\"aforisma\",\"afoso\",\"africano\",\"agave\",\"agente\",\"agevole\",\"aggancio\",\"agire\",\"agitare\",\"agonismo\",\"agricolo\",\"agrumeto\",\"aguzzo\",\"alabarda\",\"alato\",\"albatro\",\"alberato\",\"albo\",\"albume\",\"alce\",\"alcolico\",\"alettone\",\"alfa\",\"algebra\",\"aliante\",\"alibi\",\"alimento\",\"allagato\",\"allegro\",\"allievo\",\"allodola\",\"allusivo\",\"almeno\",\"alogeno\",\"alpaca\",\"alpestre\",\"altalena\",\"alterno\",\"alticcio\",\"altrove\",\"alunno\",\"alveolo\",\"alzare\",\"amalgama\",\"amanita\",\"amarena\",\"ambito\",\"ambrato\",\"ameba\",\"america\",\"ametista\",\"amico\",\"ammasso\",\"ammenda\",\"ammirare\",\"ammonito\",\"amore\",\"ampio\",\"ampliare\",\"amuleto\",\"anacardo\",\"anagrafe\",\"analista\",\"anarchia\",\"anatra\",\"anca\",\"ancella\",\"ancora\",\"andare\",\"andrea\",\"anello\",\"angelo\",\"angolare\",\"angusto\",\"anima\",\"annegare\",\"annidato\",\"anno\",\"annuncio\",\"anonimo\",\"anticipo\",\"anzi\",\"apatico\",\"apertura\",\"apode\",\"apparire\",\"appetito\",\"appoggio\",\"approdo\",\"appunto\",\"aprile\",\"arabica\",\"arachide\",\"aragosta\",\"araldica\",\"arancio\",\"aratura\",\"arazzo\",\"arbitro\",\"archivio\",\"ardito\",\"arenile\",\"argento\",\"argine\",\"arguto\",\"aria\",\"armonia\",\"arnese\",\"arredato\",\"arringa\",\"arrosto\",\"arsenico\",\"arso\",\"artefice\",\"arzillo\",\"asciutto\",\"ascolto\",\"asepsi\",\"asettico\",\"asfalto\",\"asino\",\"asola\",\"aspirato\",\"aspro\",\"assaggio\",\"asse\",\"assoluto\",\"assurdo\",\"asta\",\"astenuto\",\"astice\",\"astratto\",\"atavico\",\"ateismo\",\"atomico\",\"atono\",\"attesa\",\"attivare\",\"attorno\",\"attrito\",\"attuale\",\"ausilio\",\"austria\",\"autista\",\"autonomo\",\"autunno\",\"avanzato\",\"avere\",\"avvenire\",\"avviso\",\"avvolgere\",\"azione\",\"azoto\",\"azzimo\",\"azzurro\",\"babele\",\"baccano\",\"bacino\",\"baco\",\"badessa\",\"badilata\",\"bagnato\",\"baita\",\"balcone\",\"baldo\",\"balena\",\"ballata\",\"balzano\",\"bambino\",\"bandire\",\"baraonda\",\"barbaro\",\"barca\",\"baritono\",\"barlume\",\"barocco\",\"basilico\",\"basso\",\"batosta\",\"battuto\",\"baule\",\"bava\",\"bavosa\",\"becco\",\"beffa\",\"belgio\",\"belva\",\"benda\",\"benevole\",\"benigno\",\"benzina\",\"bere\",\"berlina\",\"beta\",\"bibita\",\"bici\",\"bidone\",\"bifido\",\"biga\",\"bilancia\",\"bimbo\",\"binocolo\",\"biologo\",\"bipede\",\"bipolare\",\"birbante\",\"birra\",\"biscotto\",\"bisesto\",\"bisnonno\",\"bisonte\",\"bisturi\",\"bizzarro\",\"blando\",\"blatta\",\"bollito\",\"bonifico\",\"bordo\",\"bosco\",\"botanico\",\"bottino\",\"bozzolo\",\"braccio\",\"bradipo\",\"brama\",\"branca\",\"bravura\",\"bretella\",\"brevetto\",\"brezza\",\"briglia\",\"brillante\",\"brindare\",\"broccolo\",\"brodo\",\"bronzina\",\"brullo\",\"bruno\",\"bubbone\",\"buca\",\"budino\",\"buffone\",\"buio\",\"bulbo\",\"buono\",\"burlone\",\"burrasca\",\"bussola\",\"busta\",\"cadetto\",\"caduco\",\"calamaro\",\"calcolo\",\"calesse\",\"calibro\",\"calmo\",\"caloria\",\"cambusa\",\"camerata\",\"camicia\",\"cammino\",\"camola\",\"campale\",\"canapa\",\"candela\",\"cane\",\"canino\",\"canotto\",\"cantina\",\"capace\",\"capello\",\"capitolo\",\"capogiro\",\"cappero\",\"capra\",\"capsula\",\"carapace\",\"carcassa\",\"cardo\",\"carisma\",\"carovana\",\"carretto\",\"cartolina\",\"casaccio\",\"cascata\",\"caserma\",\"caso\",\"cassone\",\"castello\",\"casuale\",\"catasta\",\"catena\",\"catrame\",\"cauto\",\"cavillo\",\"cedibile\",\"cedrata\",\"cefalo\",\"celebre\",\"cellulare\",\"cena\",\"cenone\",\"centesimo\",\"ceramica\",\"cercare\",\"certo\",\"cerume\",\"cervello\",\"cesoia\",\"cespo\",\"ceto\",\"chela\",\"chiaro\",\"chicca\",\"chiedere\",\"chimera\",\"china\",\"chirurgo\",\"chitarra\",\"ciao\",\"ciclismo\",\"cifrare\",\"cigno\",\"cilindro\",\"ciottolo\",\"circa\",\"cirrosi\",\"citrico\",\"cittadino\",\"ciuffo\",\"civetta\",\"civile\",\"classico\",\"clinica\",\"cloro\",\"cocco\",\"codardo\",\"codice\",\"coerente\",\"cognome\",\"collare\",\"colmato\",\"colore\",\"colposo\",\"coltivato\",\"colza\",\"coma\",\"cometa\",\"commando\",\"comodo\",\"computer\",\"comune\",\"conciso\",\"condurre\",\"conferma\",\"congelare\",\"coniuge\",\"connesso\",\"conoscere\",\"consumo\",\"continuo\",\"convegno\",\"coperto\",\"copione\",\"coppia\",\"copricapo\",\"corazza\",\"cordata\",\"coricato\",\"cornice\",\"corolla\",\"corpo\",\"corredo\",\"corsia\",\"cortese\",\"cosmico\",\"costante\",\"cottura\",\"covato\",\"cratere\",\"cravatta\",\"creato\",\"credere\",\"cremoso\",\"crescita\",\"creta\",\"criceto\",\"crinale\",\"crisi\",\"critico\",\"croce\",\"cronaca\",\"crostata\",\"cruciale\",\"crusca\",\"cucire\",\"cuculo\",\"cugino\",\"cullato\",\"cupola\",\"curatore\",\"cursore\",\"curvo\",\"cuscino\",\"custode\",\"dado\",\"daino\",\"dalmata\",\"damerino\",\"daniela\",\"dannoso\",\"danzare\",\"datato\",\"davanti\",\"davvero\",\"debutto\",\"decennio\",\"deciso\",\"declino\",\"decollo\",\"decreto\",\"dedicato\",\"definito\",\"deforme\",\"degno\",\"delegare\",\"delfino\",\"delirio\",\"delta\",\"demenza\",\"denotato\",\"dentro\",\"deposito\",\"derapata\",\"derivare\",\"deroga\",\"descritto\",\"deserto\",\"desiderio\",\"desumere\",\"detersivo\",\"devoto\",\"diametro\",\"dicembre\",\"diedro\",\"difeso\",\"diffuso\",\"digerire\",\"digitale\",\"diluvio\",\"dinamico\",\"dinnanzi\",\"dipinto\",\"diploma\",\"dipolo\",\"diradare\",\"dire\",\"dirotto\",\"dirupo\",\"disagio\",\"discreto\",\"disfare\",\"disgelo\",\"disposto\",\"distanza\",\"disumano\",\"dito\",\"divano\",\"divelto\",\"dividere\",\"divorato\",\"doblone\",\"docente\",\"doganale\",\"dogma\",\"dolce\",\"domato\",\"domenica\",\"dominare\",\"dondolo\",\"dono\",\"dormire\",\"dote\",\"dottore\",\"dovuto\",\"dozzina\",\"drago\",\"druido\",\"dubbio\",\"dubitare\",\"ducale\",\"duna\",\"duomo\",\"duplice\",\"duraturo\",\"ebano\",\"eccesso\",\"ecco\",\"eclissi\",\"economia\",\"edera\",\"edicola\",\"edile\",\"editoria\",\"educare\",\"egemonia\",\"egli\",\"egoismo\",\"egregio\",\"elaborato\",\"elargire\",\"elegante\",\"elencato\",\"eletto\",\"elevare\",\"elfico\",\"elica\",\"elmo\",\"elsa\",\"eluso\",\"emanato\",\"emblema\",\"emesso\",\"emiro\",\"emotivo\",\"emozione\",\"empirico\",\"emulo\",\"endemico\",\"enduro\",\"energia\",\"enfasi\",\"enoteca\",\"entrare\",\"enzima\",\"epatite\",\"epilogo\",\"episodio\",\"epocale\",\"eppure\",\"equatore\",\"erario\",\"erba\",\"erboso\",\"erede\",\"eremita\",\"erigere\",\"ermetico\",\"eroe\",\"erosivo\",\"errante\",\"esagono\",\"esame\",\"esanime\",\"esaudire\",\"esca\",\"esempio\",\"esercito\",\"esibito\",\"esigente\",\"esistere\",\"esito\",\"esofago\",\"esortato\",\"esoso\",\"espanso\",\"espresso\",\"essenza\",\"esso\",\"esteso\",\"estimare\",\"estonia\",\"estroso\",\"esultare\",\"etilico\",\"etnico\",\"etrusco\",\"etto\",\"euclideo\",\"europa\",\"evaso\",\"evidenza\",\"evitato\",\"evoluto\",\"evviva\",\"fabbrica\",\"faccenda\",\"fachiro\",\"falco\",\"famiglia\",\"fanale\",\"fanfara\",\"fango\",\"fantasma\",\"fare\",\"farfalla\",\"farinoso\",\"farmaco\",\"fascia\",\"fastoso\",\"fasullo\",\"faticare\",\"fato\",\"favoloso\",\"febbre\",\"fecola\",\"fede\",\"fegato\",\"felpa\",\"feltro\",\"femmina\",\"fendere\",\"fenomeno\",\"fermento\",\"ferro\",\"fertile\",\"fessura\",\"festivo\",\"fetta\",\"feudo\",\"fiaba\",\"fiducia\",\"fifa\",\"figurato\",\"filo\",\"finanza\",\"finestra\",\"finire\",\"fiore\",\"fiscale\",\"fisico\",\"fiume\",\"flacone\",\"flamenco\",\"flebo\",\"flemma\",\"florido\",\"fluente\",\"fluoro\",\"fobico\",\"focaccia\",\"focoso\",\"foderato\",\"foglio\",\"folata\",\"folclore\",\"folgore\",\"fondente\",\"fonetico\",\"fonia\",\"fontana\",\"forbito\",\"forchetta\",\"foresta\",\"formica\",\"fornaio\",\"foro\",\"fortezza\",\"forzare\",\"fosfato\",\"fosso\",\"fracasso\",\"frana\",\"frassino\",\"fratello\",\"freccetta\",\"frenata\",\"fresco\",\"frigo\",\"frollino\",\"fronde\",\"frugale\",\"frutta\",\"fucilata\",\"fucsia\",\"fuggente\",\"fulmine\",\"fulvo\",\"fumante\",\"fumetto\",\"fumoso\",\"fune\",\"funzione\",\"fuoco\",\"furbo\",\"furgone\",\"furore\",\"fuso\",\"futile\",\"gabbiano\",\"gaffe\",\"galateo\",\"gallina\",\"galoppo\",\"gambero\",\"gamma\",\"garanzia\",\"garbo\",\"garofano\",\"garzone\",\"gasdotto\",\"gasolio\",\"gastrico\",\"gatto\",\"gaudio\",\"gazebo\",\"gazzella\",\"geco\",\"gelatina\",\"gelso\",\"gemello\",\"gemmato\",\"gene\",\"genitore\",\"gennaio\",\"genotipo\",\"gergo\",\"ghepardo\",\"ghiaccio\",\"ghisa\",\"giallo\",\"gilda\",\"ginepro\",\"giocare\",\"gioiello\",\"giorno\",\"giove\",\"girato\",\"girone\",\"gittata\",\"giudizio\",\"giurato\",\"giusto\",\"globulo\",\"glutine\",\"gnomo\",\"gobba\",\"golf\",\"gomito\",\"gommone\",\"gonfio\",\"gonna\",\"governo\",\"gracile\",\"grado\",\"grafico\",\"grammo\",\"grande\",\"grattare\",\"gravoso\",\"grazia\",\"greca\",\"gregge\",\"grifone\",\"grigio\",\"grinza\",\"grotta\",\"gruppo\",\"guadagno\",\"guaio\",\"guanto\",\"guardare\",\"gufo\",\"guidare\",\"ibernato\",\"icona\",\"identico\",\"idillio\",\"idolo\",\"idra\",\"idrico\",\"idrogeno\",\"igiene\",\"ignaro\",\"ignorato\",\"ilare\",\"illeso\",\"illogico\",\"illudere\",\"imballo\",\"imbevuto\",\"imbocco\",\"imbuto\",\"immane\",\"immerso\",\"immolato\",\"impacco\",\"impeto\",\"impiego\",\"importo\",\"impronta\",\"inalare\",\"inarcare\",\"inattivo\",\"incanto\",\"incendio\",\"inchino\",\"incisivo\",\"incluso\",\"incontro\",\"incrocio\",\"incubo\",\"indagine\",\"india\",\"indole\",\"inedito\",\"infatti\",\"infilare\",\"inflitto\",\"ingaggio\",\"ingegno\",\"inglese\",\"ingordo\",\"ingrosso\",\"innesco\",\"inodore\",\"inoltrare\",\"inondato\",\"insano\",\"insetto\",\"insieme\",\"insonnia\",\"insulina\",\"intasato\",\"intero\",\"intonaco\",\"intuito\",\"inumidire\",\"invalido\",\"invece\",\"invito\",\"iperbole\",\"ipnotico\",\"ipotesi\",\"ippica\",\"iride\",\"irlanda\",\"ironico\",\"irrigato\",\"irrorare\",\"isolato\",\"isotopo\",\"isterico\",\"istituto\",\"istrice\",\"italia\",\"iterare\",\"labbro\",\"labirinto\",\"lacca\",\"lacerato\",\"lacrima\",\"lacuna\",\"laddove\",\"lago\",\"lampo\",\"lancetta\",\"lanterna\",\"lardoso\",\"larga\",\"laringe\",\"lastra\",\"latenza\",\"latino\",\"lattuga\",\"lavagna\",\"lavoro\",\"legale\",\"leggero\",\"lembo\",\"lentezza\",\"lenza\",\"leone\",\"lepre\",\"lesivo\",\"lessato\",\"lesto\",\"letterale\",\"leva\",\"levigato\",\"libero\",\"lido\",\"lievito\",\"lilla\",\"limatura\",\"limitare\",\"limpido\",\"lineare\",\"lingua\",\"liquido\",\"lira\",\"lirica\",\"lisca\",\"lite\",\"litigio\",\"livrea\",\"locanda\",\"lode\",\"logica\",\"lombare\",\"londra\",\"longevo\",\"loquace\",\"lorenzo\",\"loto\",\"lotteria\",\"luce\",\"lucidato\",\"lumaca\",\"luminoso\",\"lungo\",\"lupo\",\"luppolo\",\"lusinga\",\"lusso\",\"lutto\",\"macabro\",\"macchina\",\"macero\",\"macinato\",\"madama\",\"magico\",\"maglia\",\"magnete\",\"magro\",\"maiolica\",\"malafede\",\"malgrado\",\"malinteso\",\"malsano\",\"malto\",\"malumore\",\"mana\",\"mancia\",\"mandorla\",\"mangiare\",\"manifesto\",\"mannaro\",\"manovra\",\"mansarda\",\"mantide\",\"manubrio\",\"mappa\",\"maratona\",\"marcire\",\"maretta\",\"marmo\",\"marsupio\",\"maschera\",\"massaia\",\"mastino\",\"materasso\",\"matricola\",\"mattone\",\"maturo\",\"mazurca\",\"meandro\",\"meccanico\",\"mecenate\",\"medesimo\",\"meditare\",\"mega\",\"melassa\",\"melis\",\"melodia\",\"meninge\",\"meno\",\"mensola\",\"mercurio\",\"merenda\",\"merlo\",\"meschino\",\"mese\",\"messere\",\"mestolo\",\"metallo\",\"metodo\",\"mettere\",\"miagolare\",\"mica\",\"micelio\",\"michele\",\"microbo\",\"midollo\",\"miele\",\"migliore\",\"milano\",\"milite\",\"mimosa\",\"minerale\",\"mini\",\"minore\",\"mirino\",\"mirtillo\",\"miscela\",\"missiva\",\"misto\",\"misurare\",\"mitezza\",\"mitigare\",\"mitra\",\"mittente\",\"mnemonico\",\"modello\",\"modifica\",\"modulo\",\"mogano\",\"mogio\",\"mole\",\"molosso\",\"monastero\",\"monco\",\"mondina\",\"monetario\",\"monile\",\"monotono\",\"monsone\",\"montato\",\"monviso\",\"mora\",\"mordere\",\"morsicato\",\"mostro\",\"motivato\",\"motosega\",\"motto\",\"movenza\",\"movimento\",\"mozzo\",\"mucca\",\"mucosa\",\"muffa\",\"mughetto\",\"mugnaio\",\"mulatto\",\"mulinello\",\"multiplo\",\"mummia\",\"munto\",\"muovere\",\"murale\",\"musa\",\"muscolo\",\"musica\",\"mutevole\",\"muto\",\"nababbo\",\"nafta\",\"nanometro\",\"narciso\",\"narice\",\"narrato\",\"nascere\",\"nastrare\",\"naturale\",\"nautica\",\"naviglio\",\"nebulosa\",\"necrosi\",\"negativo\",\"negozio\",\"nemmeno\",\"neofita\",\"neretto\",\"nervo\",\"nessuno\",\"nettuno\",\"neutrale\",\"neve\",\"nevrotico\",\"nicchia\",\"ninfa\",\"nitido\",\"nobile\",\"nocivo\",\"nodo\",\"nome\",\"nomina\",\"nordico\",\"normale\",\"norvegese\",\"nostrano\",\"notare\",\"notizia\",\"notturno\",\"novella\",\"nucleo\",\"nulla\",\"numero\",\"nuovo\",\"nutrire\",\"nuvola\",\"nuziale\",\"oasi\",\"obbedire\",\"obbligo\",\"obelisco\",\"oblio\",\"obolo\",\"obsoleto\",\"occasione\",\"occhio\",\"occidente\",\"occorrere\",\"occultare\",\"ocra\",\"oculato\",\"odierno\",\"odorare\",\"offerta\",\"offrire\",\"offuscato\",\"oggetto\",\"oggi\",\"ognuno\",\"olandese\",\"olfatto\",\"oliato\",\"oliva\",\"ologramma\",\"oltre\",\"omaggio\",\"ombelico\",\"ombra\",\"omega\",\"omissione\",\"ondoso\",\"onere\",\"onice\",\"onnivoro\",\"onorevole\",\"onta\",\"operato\",\"opinione\",\"opposto\",\"oracolo\",\"orafo\",\"ordine\",\"orecchino\",\"orefice\",\"orfano\",\"organico\",\"origine\",\"orizzonte\",\"orma\",\"ormeggio\",\"ornativo\",\"orologio\",\"orrendo\",\"orribile\",\"ortensia\",\"ortica\",\"orzata\",\"orzo\",\"osare\",\"oscurare\",\"osmosi\",\"ospedale\",\"ospite\",\"ossa\",\"ossidare\",\"ostacolo\",\"oste\",\"otite\",\"otre\",\"ottagono\",\"ottimo\",\"ottobre\",\"ovale\",\"ovest\",\"ovino\",\"oviparo\",\"ovocito\",\"ovunque\",\"ovviare\",\"ozio\",\"pacchetto\",\"pace\",\"pacifico\",\"padella\",\"padrone\",\"paese\",\"paga\",\"pagina\",\"palazzina\",\"palesare\",\"pallido\",\"palo\",\"palude\",\"pandoro\",\"pannello\",\"paolo\",\"paonazzo\",\"paprica\",\"parabola\",\"parcella\",\"parere\",\"pargolo\",\"pari\",\"parlato\",\"parola\",\"partire\",\"parvenza\",\"parziale\",\"passivo\",\"pasticca\",\"patacca\",\"patologia\",\"pattume\",\"pavone\",\"peccato\",\"pedalare\",\"pedonale\",\"peggio\",\"peloso\",\"penare\",\"pendice\",\"penisola\",\"pennuto\",\"penombra\",\"pensare\",\"pentola\",\"pepe\",\"pepita\",\"perbene\",\"percorso\",\"perdonato\",\"perforare\",\"pergamena\",\"periodo\",\"permesso\",\"perno\",\"perplesso\",\"persuaso\",\"pertugio\",\"pervaso\",\"pesatore\",\"pesista\",\"peso\",\"pestifero\",\"petalo\",\"pettine\",\"petulante\",\"pezzo\",\"piacere\",\"pianta\",\"piattino\",\"piccino\",\"picozza\",\"piega\",\"pietra\",\"piffero\",\"pigiama\",\"pigolio\",\"pigro\",\"pila\",\"pilifero\",\"pillola\",\"pilota\",\"pimpante\",\"pineta\",\"pinna\",\"pinolo\",\"pioggia\",\"piombo\",\"piramide\",\"piretico\",\"pirite\",\"pirolisi\",\"pitone\",\"pizzico\",\"placebo\",\"planare\",\"plasma\",\"platano\",\"plenario\",\"pochezza\",\"poderoso\",\"podismo\",\"poesia\",\"poggiare\",\"polenta\",\"poligono\",\"pollice\",\"polmonite\",\"polpetta\",\"polso\",\"poltrona\",\"polvere\",\"pomice\",\"pomodoro\",\"ponte\",\"popoloso\",\"porfido\",\"poroso\",\"porpora\",\"porre\",\"portata\",\"posa\",\"positivo\",\"possesso\",\"postulato\",\"potassio\",\"potere\",\"pranzo\",\"prassi\",\"pratica\",\"precluso\",\"predica\",\"prefisso\",\"pregiato\",\"prelievo\",\"premere\",\"prenotare\",\"preparato\",\"presenza\",\"pretesto\",\"prevalso\",\"prima\",\"principe\",\"privato\",\"problema\",\"procura\",\"produrre\",\"profumo\",\"progetto\",\"prolunga\",\"promessa\",\"pronome\",\"proposta\",\"proroga\",\"proteso\",\"prova\",\"prudente\",\"prugna\",\"prurito\",\"psiche\",\"pubblico\",\"pudica\",\"pugilato\",\"pugno\",\"pulce\",\"pulito\",\"pulsante\",\"puntare\",\"pupazzo\",\"pupilla\",\"puro\",\"quadro\",\"qualcosa\",\"quasi\",\"querela\",\"quota\",\"raccolto\",\"raddoppio\",\"radicale\",\"radunato\",\"raffica\",\"ragazzo\",\"ragione\",\"ragno\",\"ramarro\",\"ramingo\",\"ramo\",\"randagio\",\"rantolare\",\"rapato\",\"rapina\",\"rappreso\",\"rasatura\",\"raschiato\",\"rasente\",\"rassegna\",\"rastrello\",\"rata\",\"ravveduto\",\"reale\",\"recepire\",\"recinto\",\"recluta\",\"recondito\",\"recupero\",\"reddito\",\"redimere\",\"regalato\",\"registro\",\"regola\",\"regresso\",\"relazione\",\"remare\",\"remoto\",\"renna\",\"replica\",\"reprimere\",\"reputare\",\"resa\",\"residente\",\"responso\",\"restauro\",\"rete\",\"retina\",\"retorica\",\"rettifica\",\"revocato\",\"riassunto\",\"ribadire\",\"ribelle\",\"ribrezzo\",\"ricarica\",\"ricco\",\"ricevere\",\"riciclato\",\"ricordo\",\"ricreduto\",\"ridicolo\",\"ridurre\",\"rifasare\",\"riflesso\",\"riforma\",\"rifugio\",\"rigare\",\"rigettato\",\"righello\",\"rilassato\",\"rilevato\",\"rimanere\",\"rimbalzo\",\"rimedio\",\"rimorchio\",\"rinascita\",\"rincaro\",\"rinforzo\",\"rinnovo\",\"rinomato\",\"rinsavito\",\"rintocco\",\"rinuncia\",\"rinvenire\",\"riparato\",\"ripetuto\",\"ripieno\",\"riportare\",\"ripresa\",\"ripulire\",\"risata\",\"rischio\",\"riserva\",\"risibile\",\"riso\",\"rispetto\",\"ristoro\",\"risultato\",\"risvolto\",\"ritardo\",\"ritegno\",\"ritmico\",\"ritrovo\",\"riunione\",\"riva\",\"riverso\",\"rivincita\",\"rivolto\",\"rizoma\",\"roba\",\"robotico\",\"robusto\",\"roccia\",\"roco\",\"rodaggio\",\"rodere\",\"roditore\",\"rogito\",\"rollio\",\"romantico\",\"rompere\",\"ronzio\",\"rosolare\",\"rospo\",\"rotante\",\"rotondo\",\"rotula\",\"rovescio\",\"rubizzo\",\"rubrica\",\"ruga\",\"rullino\",\"rumine\",\"rumoroso\",\"ruolo\",\"rupe\",\"russare\",\"rustico\",\"sabato\",\"sabbiare\",\"sabotato\",\"sagoma\",\"salasso\",\"saldatura\",\"salgemma\",\"salivare\",\"salmone\",\"salone\",\"saltare\",\"saluto\",\"salvo\",\"sapere\",\"sapido\",\"saporito\",\"saraceno\",\"sarcasmo\",\"sarto\",\"sassoso\",\"satellite\",\"satira\",\"satollo\",\"saturno\",\"savana\",\"savio\",\"saziato\",\"sbadiglio\",\"sbalzo\",\"sbancato\",\"sbarra\",\"sbattere\",\"sbavare\",\"sbendare\",\"sbirciare\",\"sbloccato\",\"sbocciato\",\"sbrinare\",\"sbruffone\",\"sbuffare\",\"scabroso\",\"scadenza\",\"scala\",\"scambiare\",\"scandalo\",\"scapola\",\"scarso\",\"scatenare\",\"scavato\",\"scelto\",\"scenico\",\"scettro\",\"scheda\",\"schiena\",\"sciarpa\",\"scienza\",\"scindere\",\"scippo\",\"sciroppo\",\"scivolo\",\"sclerare\",\"scodella\",\"scolpito\",\"scomparto\",\"sconforto\",\"scoprire\",\"scorta\",\"scossone\",\"scozzese\",\"scriba\",\"scrollare\",\"scrutinio\",\"scuderia\",\"scultore\",\"scuola\",\"scuro\",\"scusare\",\"sdebitare\",\"sdoganare\",\"seccatura\",\"secondo\",\"sedano\",\"seggiola\",\"segnalato\",\"segregato\",\"seguito\",\"selciato\",\"selettivo\",\"sella\",\"selvaggio\",\"semaforo\",\"sembrare\",\"seme\",\"seminato\",\"sempre\",\"senso\",\"sentire\",\"sepolto\",\"sequenza\",\"serata\",\"serbato\",\"sereno\",\"serio\",\"serpente\",\"serraglio\",\"servire\",\"sestina\",\"setola\",\"settimana\",\"sfacelo\",\"sfaldare\",\"sfamato\",\"sfarzoso\",\"sfaticato\",\"sfera\",\"sfida\",\"sfilato\",\"sfinge\",\"sfocato\",\"sfoderare\",\"sfogo\",\"sfoltire\",\"sforzato\",\"sfratto\",\"sfruttato\",\"sfuggito\",\"sfumare\",\"sfuso\",\"sgabello\",\"sgarbato\",\"sgonfiare\",\"sgorbio\",\"sgrassato\",\"sguardo\",\"sibilo\",\"siccome\",\"sierra\",\"sigla\",\"signore\",\"silenzio\",\"sillaba\",\"simbolo\",\"simpatico\",\"simulato\",\"sinfonia\",\"singolo\",\"sinistro\",\"sino\",\"sintesi\",\"sinusoide\",\"sipario\",\"sisma\",\"sistole\",\"situato\",\"slitta\",\"slogatura\",\"sloveno\",\"smarrito\",\"smemorato\",\"smentito\",\"smeraldo\",\"smilzo\",\"smontare\",\"smottato\",\"smussato\",\"snellire\",\"snervato\",\"snodo\",\"sobbalzo\",\"sobrio\",\"soccorso\",\"sociale\",\"sodale\",\"soffitto\",\"sogno\",\"soldato\",\"solenne\",\"solido\",\"sollazzo\",\"solo\",\"solubile\",\"solvente\",\"somatico\",\"somma\",\"sonda\",\"sonetto\",\"sonnifero\",\"sopire\",\"soppeso\",\"sopra\",\"sorgere\",\"sorpasso\",\"sorriso\",\"sorso\",\"sorteggio\",\"sorvolato\",\"sospiro\",\"sosta\",\"sottile\",\"spada\",\"spalla\",\"spargere\",\"spatola\",\"spavento\",\"spazzola\",\"specie\",\"spedire\",\"spegnere\",\"spelatura\",\"speranza\",\"spessore\",\"spettrale\",\"spezzato\",\"spia\",\"spigoloso\",\"spillato\",\"spinoso\",\"spirale\",\"splendido\",\"sportivo\",\"sposo\",\"spranga\",\"sprecare\",\"spronato\",\"spruzzo\",\"spuntino\",\"squillo\",\"sradicare\",\"srotolato\",\"stabile\",\"stacco\",\"staffa\",\"stagnare\",\"stampato\",\"stantio\",\"starnuto\",\"stasera\",\"statuto\",\"stelo\",\"steppa\",\"sterzo\",\"stiletto\",\"stima\",\"stirpe\",\"stivale\",\"stizzoso\",\"stonato\",\"storico\",\"strappo\",\"stregato\",\"stridulo\",\"strozzare\",\"strutto\",\"stuccare\",\"stufo\",\"stupendo\",\"subentro\",\"succoso\",\"sudore\",\"suggerito\",\"sugo\",\"sultano\",\"suonare\",\"superbo\",\"supporto\",\"surgelato\",\"surrogato\",\"sussurro\",\"sutura\",\"svagare\",\"svedese\",\"sveglio\",\"svelare\",\"svenuto\",\"svezia\",\"sviluppo\",\"svista\",\"svizzera\",\"svolta\",\"svuotare\",\"tabacco\",\"tabulato\",\"tacciare\",\"taciturno\",\"tale\",\"talismano\",\"tampone\",\"tannino\",\"tara\",\"tardivo\",\"targato\",\"tariffa\",\"tarpare\",\"tartaruga\",\"tasto\",\"tattico\",\"taverna\",\"tavolata\",\"tazza\",\"teca\",\"tecnico\",\"telefono\",\"temerario\",\"tempo\",\"temuto\",\"tendone\",\"tenero\",\"tensione\",\"tentacolo\",\"teorema\",\"terme\",\"terrazzo\",\"terzetto\",\"tesi\",\"tesserato\",\"testato\",\"tetro\",\"tettoia\",\"tifare\",\"tigella\",\"timbro\",\"tinto\",\"tipico\",\"tipografo\",\"tiraggio\",\"tiro\",\"titanio\",\"titolo\",\"titubante\",\"tizio\",\"tizzone\",\"toccare\",\"tollerare\",\"tolto\",\"tombola\",\"tomo\",\"tonfo\",\"tonsilla\",\"topazio\",\"topologia\",\"toppa\",\"torba\",\"tornare\",\"torrone\",\"tortora\",\"toscano\",\"tossire\",\"tostatura\",\"totano\",\"trabocco\",\"trachea\",\"trafila\",\"tragedia\",\"tralcio\",\"tramonto\",\"transito\",\"trapano\",\"trarre\",\"trasloco\",\"trattato\",\"trave\",\"treccia\",\"tremolio\",\"trespolo\",\"tributo\",\"tricheco\",\"trifoglio\",\"trillo\",\"trincea\",\"trio\",\"tristezza\",\"triturato\",\"trivella\",\"tromba\",\"trono\",\"troppo\",\"trottola\",\"trovare\",\"truccato\",\"tubatura\",\"tuffato\",\"tulipano\",\"tumulto\",\"tunisia\",\"turbare\",\"turchino\",\"tuta\",\"tutela\",\"ubicato\",\"uccello\",\"uccisore\",\"udire\",\"uditivo\",\"uffa\",\"ufficio\",\"uguale\",\"ulisse\",\"ultimato\",\"umano\",\"umile\",\"umorismo\",\"uncinetto\",\"ungere\",\"ungherese\",\"unicorno\",\"unificato\",\"unisono\",\"unitario\",\"unte\",\"uovo\",\"upupa\",\"uragano\",\"urgenza\",\"urlo\",\"usanza\",\"usato\",\"uscito\",\"usignolo\",\"usuraio\",\"utensile\",\"utilizzo\",\"utopia\",\"vacante\",\"vaccinato\",\"vagabondo\",\"vagliato\",\"valanga\",\"valgo\",\"valico\",\"valletta\",\"valoroso\",\"valutare\",\"valvola\",\"vampata\",\"vangare\",\"vanitoso\",\"vano\",\"vantaggio\",\"vanvera\",\"vapore\",\"varano\",\"varcato\",\"variante\",\"vasca\",\"vedetta\",\"vedova\",\"veduto\",\"vegetale\",\"veicolo\",\"velcro\",\"velina\",\"velluto\",\"veloce\",\"venato\",\"vendemmia\",\"vento\",\"verace\",\"verbale\",\"vergogna\",\"verifica\",\"vero\",\"verruca\",\"verticale\",\"vescica\",\"vessillo\",\"vestale\",\"veterano\",\"vetrina\",\"vetusto\",\"viandante\",\"vibrante\",\"vicenda\",\"vichingo\",\"vicinanza\",\"vidimare\",\"vigilia\",\"vigneto\",\"vigore\",\"vile\",\"villano\",\"vimini\",\"vincitore\",\"viola\",\"vipera\",\"virgola\",\"virologo\",\"virulento\",\"viscoso\",\"visione\",\"vispo\",\"vissuto\",\"visura\",\"vita\",\"vitello\",\"vittima\",\"vivanda\",\"vivido\",\"viziare\",\"voce\",\"voga\",\"volatile\",\"volere\",\"volpe\",\"voragine\",\"vulcano\",\"zampogna\",\"zanna\",\"zappato\",\"zattera\",\"zavorra\",\"zefiro\",\"zelante\",\"zelo\",\"zenzero\",\"zerbino\",\"zibetto\",\"zinco\",\"zircone\",\"zitto\",\"zolla\",\"zotico\",\"zucchero\",\"zufolo\",\"zulu\",\"zuppa\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/italian.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/japanese.json":
/*!********************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/japanese.json ***!
  \********************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"あいこくしん\",\"あいさつ\",\"あいだ\",\"あおぞら\",\"あかちゃん\",\"あきる\",\"あけがた\",\"あける\",\"あこがれる\",\"あさい\",\"あさひ\",\"あしあと\",\"あじわう\",\"あずかる\",\"あずき\",\"あそぶ\",\"あたえる\",\"あたためる\",\"あたりまえ\",\"あたる\",\"あつい\",\"あつかう\",\"あっしゅく\",\"あつまり\",\"あつめる\",\"あてな\",\"あてはまる\",\"あひる\",\"あぶら\",\"あぶる\",\"あふれる\",\"あまい\",\"あまど\",\"あまやかす\",\"あまり\",\"あみもの\",\"あめりか\",\"あやまる\",\"あゆむ\",\"あらいぐま\",\"あらし\",\"あらすじ\",\"あらためる\",\"あらゆる\",\"あらわす\",\"ありがとう\",\"あわせる\",\"あわてる\",\"あんい\",\"あんがい\",\"あんこ\",\"あんぜん\",\"あんてい\",\"あんない\",\"あんまり\",\"いいだす\",\"いおん\",\"いがい\",\"いがく\",\"いきおい\",\"いきなり\",\"いきもの\",\"いきる\",\"いくじ\",\"いくぶん\",\"いけばな\",\"いけん\",\"いこう\",\"いこく\",\"いこつ\",\"いさましい\",\"いさん\",\"いしき\",\"いじゅう\",\"いじょう\",\"いじわる\",\"いずみ\",\"いずれ\",\"いせい\",\"いせえび\",\"いせかい\",\"いせき\",\"いぜん\",\"いそうろう\",\"いそがしい\",\"いだい\",\"いだく\",\"いたずら\",\"いたみ\",\"いたりあ\",\"いちおう\",\"いちじ\",\"いちど\",\"いちば\",\"いちぶ\",\"いちりゅう\",\"いつか\",\"いっしゅん\",\"いっせい\",\"いっそう\",\"いったん\",\"いっち\",\"いってい\",\"いっぽう\",\"いてざ\",\"いてん\",\"いどう\",\"いとこ\",\"いない\",\"いなか\",\"いねむり\",\"いのち\",\"いのる\",\"いはつ\",\"いばる\",\"いはん\",\"いびき\",\"いひん\",\"いふく\",\"いへん\",\"いほう\",\"いみん\",\"いもうと\",\"いもたれ\",\"いもり\",\"いやがる\",\"いやす\",\"いよかん\",\"いよく\",\"いらい\",\"いらすと\",\"いりぐち\",\"いりょう\",\"いれい\",\"いれもの\",\"いれる\",\"いろえんぴつ\",\"いわい\",\"いわう\",\"いわかん\",\"いわば\",\"いわゆる\",\"いんげんまめ\",\"いんさつ\",\"いんしょう\",\"いんよう\",\"うえき\",\"うえる\",\"うおざ\",\"うがい\",\"うかぶ\",\"うかべる\",\"うきわ\",\"うくらいな\",\"うくれれ\",\"うけたまわる\",\"うけつけ\",\"うけとる\",\"うけもつ\",\"うける\",\"うごかす\",\"うごく\",\"うこん\",\"うさぎ\",\"うしなう\",\"うしろがみ\",\"うすい\",\"うすぎ\",\"うすぐらい\",\"うすめる\",\"うせつ\",\"うちあわせ\",\"うちがわ\",\"うちき\",\"うちゅう\",\"うっかり\",\"うつくしい\",\"うったえる\",\"うつる\",\"うどん\",\"うなぎ\",\"うなじ\",\"うなずく\",\"うなる\",\"うねる\",\"うのう\",\"うぶげ\",\"うぶごえ\",\"うまれる\",\"うめる\",\"うもう\",\"うやまう\",\"うよく\",\"うらがえす\",\"うらぐち\",\"うらない\",\"うりあげ\",\"うりきれ\",\"うるさい\",\"うれしい\",\"うれゆき\",\"うれる\",\"うろこ\",\"うわき\",\"うわさ\",\"うんこう\",\"うんちん\",\"うんてん\",\"うんどう\",\"えいえん\",\"えいが\",\"えいきょう\",\"えいご\",\"えいせい\",\"えいぶん\",\"えいよう\",\"えいわ\",\"えおり\",\"えがお\",\"えがく\",\"えきたい\",\"えくせる\",\"えしゃく\",\"えすて\",\"えつらん\",\"えのぐ\",\"えほうまき\",\"えほん\",\"えまき\",\"えもじ\",\"えもの\",\"えらい\",\"えらぶ\",\"えりあ\",\"えんえん\",\"えんかい\",\"えんぎ\",\"えんげき\",\"えんしゅう\",\"えんぜつ\",\"えんそく\",\"えんちょう\",\"えんとつ\",\"おいかける\",\"おいこす\",\"おいしい\",\"おいつく\",\"おうえん\",\"おうさま\",\"おうじ\",\"おうせつ\",\"おうたい\",\"おうふく\",\"おうべい\",\"おうよう\",\"おえる\",\"おおい\",\"おおう\",\"おおどおり\",\"おおや\",\"おおよそ\",\"おかえり\",\"おかず\",\"おがむ\",\"おかわり\",\"おぎなう\",\"おきる\",\"おくさま\",\"おくじょう\",\"おくりがな\",\"おくる\",\"おくれる\",\"おこす\",\"おこなう\",\"おこる\",\"おさえる\",\"おさない\",\"おさめる\",\"おしいれ\",\"おしえる\",\"おじぎ\",\"おじさん\",\"おしゃれ\",\"おそらく\",\"おそわる\",\"おたがい\",\"おたく\",\"おだやか\",\"おちつく\",\"おっと\",\"おつり\",\"おでかけ\",\"おとしもの\",\"おとなしい\",\"おどり\",\"おどろかす\",\"おばさん\",\"おまいり\",\"おめでとう\",\"おもいで\",\"おもう\",\"おもたい\",\"おもちゃ\",\"おやつ\",\"おやゆび\",\"およぼす\",\"おらんだ\",\"おろす\",\"おんがく\",\"おんけい\",\"おんしゃ\",\"おんせん\",\"おんだん\",\"おんちゅう\",\"おんどけい\",\"かあつ\",\"かいが\",\"がいき\",\"がいけん\",\"がいこう\",\"かいさつ\",\"かいしゃ\",\"かいすいよく\",\"かいぜん\",\"かいぞうど\",\"かいつう\",\"かいてん\",\"かいとう\",\"かいふく\",\"がいへき\",\"かいほう\",\"かいよう\",\"がいらい\",\"かいわ\",\"かえる\",\"かおり\",\"かかえる\",\"かがく\",\"かがし\",\"かがみ\",\"かくご\",\"かくとく\",\"かざる\",\"がぞう\",\"かたい\",\"かたち\",\"がちょう\",\"がっきゅう\",\"がっこう\",\"がっさん\",\"がっしょう\",\"かなざわし\",\"かのう\",\"がはく\",\"かぶか\",\"かほう\",\"かほご\",\"かまう\",\"かまぼこ\",\"かめれおん\",\"かゆい\",\"かようび\",\"からい\",\"かるい\",\"かろう\",\"かわく\",\"かわら\",\"がんか\",\"かんけい\",\"かんこう\",\"かんしゃ\",\"かんそう\",\"かんたん\",\"かんち\",\"がんばる\",\"きあい\",\"きあつ\",\"きいろ\",\"ぎいん\",\"きうい\",\"きうん\",\"きえる\",\"きおう\",\"きおく\",\"きおち\",\"きおん\",\"きかい\",\"きかく\",\"きかんしゃ\",\"ききて\",\"きくばり\",\"きくらげ\",\"きけんせい\",\"きこう\",\"きこえる\",\"きこく\",\"きさい\",\"きさく\",\"きさま\",\"きさらぎ\",\"ぎじかがく\",\"ぎしき\",\"ぎじたいけん\",\"ぎじにってい\",\"ぎじゅつしゃ\",\"きすう\",\"きせい\",\"きせき\",\"きせつ\",\"きそう\",\"きぞく\",\"きぞん\",\"きたえる\",\"きちょう\",\"きつえん\",\"ぎっちり\",\"きつつき\",\"きつね\",\"きてい\",\"きどう\",\"きどく\",\"きない\",\"きなが\",\"きなこ\",\"きぬごし\",\"きねん\",\"きのう\",\"きのした\",\"きはく\",\"きびしい\",\"きひん\",\"きふく\",\"きぶん\",\"きぼう\",\"きほん\",\"きまる\",\"きみつ\",\"きむずかしい\",\"きめる\",\"きもだめし\",\"きもち\",\"きもの\",\"きゃく\",\"きやく\",\"ぎゅうにく\",\"きよう\",\"きょうりゅう\",\"きらい\",\"きらく\",\"きりん\",\"きれい\",\"きれつ\",\"きろく\",\"ぎろん\",\"きわめる\",\"ぎんいろ\",\"きんかくじ\",\"きんじょ\",\"きんようび\",\"ぐあい\",\"くいず\",\"くうかん\",\"くうき\",\"くうぐん\",\"くうこう\",\"ぐうせい\",\"くうそう\",\"ぐうたら\",\"くうふく\",\"くうぼ\",\"くかん\",\"くきょう\",\"くげん\",\"ぐこう\",\"くさい\",\"くさき\",\"くさばな\",\"くさる\",\"くしゃみ\",\"くしょう\",\"くすのき\",\"くすりゆび\",\"くせげ\",\"くせん\",\"ぐたいてき\",\"くださる\",\"くたびれる\",\"くちこみ\",\"くちさき\",\"くつした\",\"ぐっすり\",\"くつろぐ\",\"くとうてん\",\"くどく\",\"くなん\",\"くねくね\",\"くのう\",\"くふう\",\"くみあわせ\",\"くみたてる\",\"くめる\",\"くやくしょ\",\"くらす\",\"くらべる\",\"くるま\",\"くれる\",\"くろう\",\"くわしい\",\"ぐんかん\",\"ぐんしょく\",\"ぐんたい\",\"ぐんて\",\"けあな\",\"けいかく\",\"けいけん\",\"けいこ\",\"けいさつ\",\"げいじゅつ\",\"けいたい\",\"げいのうじん\",\"けいれき\",\"けいろ\",\"けおとす\",\"けおりもの\",\"げきか\",\"げきげん\",\"げきだん\",\"げきちん\",\"げきとつ\",\"げきは\",\"げきやく\",\"げこう\",\"げこくじょう\",\"げざい\",\"けさき\",\"げざん\",\"けしき\",\"けしごむ\",\"けしょう\",\"げすと\",\"けたば\",\"けちゃっぷ\",\"けちらす\",\"けつあつ\",\"けつい\",\"けつえき\",\"けっこん\",\"けつじょ\",\"けっせき\",\"けってい\",\"けつまつ\",\"げつようび\",\"げつれい\",\"けつろん\",\"げどく\",\"けとばす\",\"けとる\",\"けなげ\",\"けなす\",\"けなみ\",\"けぬき\",\"げねつ\",\"けねん\",\"けはい\",\"げひん\",\"けぶかい\",\"げぼく\",\"けまり\",\"けみかる\",\"けむし\",\"けむり\",\"けもの\",\"けらい\",\"けろけろ\",\"けわしい\",\"けんい\",\"けんえつ\",\"けんお\",\"けんか\",\"げんき\",\"けんげん\",\"けんこう\",\"けんさく\",\"けんしゅう\",\"けんすう\",\"げんそう\",\"けんちく\",\"けんてい\",\"けんとう\",\"けんない\",\"けんにん\",\"げんぶつ\",\"けんま\",\"けんみん\",\"けんめい\",\"けんらん\",\"けんり\",\"こあくま\",\"こいぬ\",\"こいびと\",\"ごうい\",\"こうえん\",\"こうおん\",\"こうかん\",\"ごうきゅう\",\"ごうけい\",\"こうこう\",\"こうさい\",\"こうじ\",\"こうすい\",\"ごうせい\",\"こうそく\",\"こうたい\",\"こうちゃ\",\"こうつう\",\"こうてい\",\"こうどう\",\"こうない\",\"こうはい\",\"ごうほう\",\"ごうまん\",\"こうもく\",\"こうりつ\",\"こえる\",\"こおり\",\"ごかい\",\"ごがつ\",\"ごかん\",\"こくご\",\"こくさい\",\"こくとう\",\"こくない\",\"こくはく\",\"こぐま\",\"こけい\",\"こける\",\"ここのか\",\"こころ\",\"こさめ\",\"こしつ\",\"こすう\",\"こせい\",\"こせき\",\"こぜん\",\"こそだて\",\"こたい\",\"こたえる\",\"こたつ\",\"こちょう\",\"こっか\",\"こつこつ\",\"こつばん\",\"こつぶ\",\"こてい\",\"こてん\",\"ことがら\",\"ことし\",\"ことば\",\"ことり\",\"こなごな\",\"こねこね\",\"このまま\",\"このみ\",\"このよ\",\"ごはん\",\"こひつじ\",\"こふう\",\"こふん\",\"こぼれる\",\"ごまあぶら\",\"こまかい\",\"ごますり\",\"こまつな\",\"こまる\",\"こむぎこ\",\"こもじ\",\"こもち\",\"こもの\",\"こもん\",\"こやく\",\"こやま\",\"こゆう\",\"こゆび\",\"こよい\",\"こよう\",\"こりる\",\"これくしょん\",\"ころっけ\",\"こわもて\",\"こわれる\",\"こんいん\",\"こんかい\",\"こんき\",\"こんしゅう\",\"こんすい\",\"こんだて\",\"こんとん\",\"こんなん\",\"こんびに\",\"こんぽん\",\"こんまけ\",\"こんや\",\"こんれい\",\"こんわく\",\"ざいえき\",\"さいかい\",\"さいきん\",\"ざいげん\",\"ざいこ\",\"さいしょ\",\"さいせい\",\"ざいたく\",\"ざいちゅう\",\"さいてき\",\"ざいりょう\",\"さうな\",\"さかいし\",\"さがす\",\"さかな\",\"さかみち\",\"さがる\",\"さぎょう\",\"さくし\",\"さくひん\",\"さくら\",\"さこく\",\"さこつ\",\"さずかる\",\"ざせき\",\"さたん\",\"さつえい\",\"ざつおん\",\"ざっか\",\"ざつがく\",\"さっきょく\",\"ざっし\",\"さつじん\",\"ざっそう\",\"さつたば\",\"さつまいも\",\"さてい\",\"さといも\",\"さとう\",\"さとおや\",\"さとし\",\"さとる\",\"さのう\",\"さばく\",\"さびしい\",\"さべつ\",\"さほう\",\"さほど\",\"さます\",\"さみしい\",\"さみだれ\",\"さむけ\",\"さめる\",\"さやえんどう\",\"さゆう\",\"さよう\",\"さよく\",\"さらだ\",\"ざるそば\",\"さわやか\",\"さわる\",\"さんいん\",\"さんか\",\"さんきゃく\",\"さんこう\",\"さんさい\",\"ざんしょ\",\"さんすう\",\"さんせい\",\"さんそ\",\"さんち\",\"さんま\",\"さんみ\",\"さんらん\",\"しあい\",\"しあげ\",\"しあさって\",\"しあわせ\",\"しいく\",\"しいん\",\"しうち\",\"しえい\",\"しおけ\",\"しかい\",\"しかく\",\"じかん\",\"しごと\",\"しすう\",\"じだい\",\"したうけ\",\"したぎ\",\"したて\",\"したみ\",\"しちょう\",\"しちりん\",\"しっかり\",\"しつじ\",\"しつもん\",\"してい\",\"してき\",\"してつ\",\"じてん\",\"じどう\",\"しなぎれ\",\"しなもの\",\"しなん\",\"しねま\",\"しねん\",\"しのぐ\",\"しのぶ\",\"しはい\",\"しばかり\",\"しはつ\",\"しはらい\",\"しはん\",\"しひょう\",\"しふく\",\"じぶん\",\"しへい\",\"しほう\",\"しほん\",\"しまう\",\"しまる\",\"しみん\",\"しむける\",\"じむしょ\",\"しめい\",\"しめる\",\"しもん\",\"しゃいん\",\"しゃうん\",\"しゃおん\",\"じゃがいも\",\"しやくしょ\",\"しゃくほう\",\"しゃけん\",\"しゃこ\",\"しゃざい\",\"しゃしん\",\"しゃせん\",\"しゃそう\",\"しゃたい\",\"しゃちょう\",\"しゃっきん\",\"じゃま\",\"しゃりん\",\"しゃれい\",\"じゆう\",\"じゅうしょ\",\"しゅくはく\",\"じゅしん\",\"しゅっせき\",\"しゅみ\",\"しゅらば\",\"じゅんばん\",\"しょうかい\",\"しょくたく\",\"しょっけん\",\"しょどう\",\"しょもつ\",\"しらせる\",\"しらべる\",\"しんか\",\"しんこう\",\"じんじゃ\",\"しんせいじ\",\"しんちく\",\"しんりん\",\"すあげ\",\"すあし\",\"すあな\",\"ずあん\",\"すいえい\",\"すいか\",\"すいとう\",\"ずいぶん\",\"すいようび\",\"すうがく\",\"すうじつ\",\"すうせん\",\"すおどり\",\"すきま\",\"すくう\",\"すくない\",\"すける\",\"すごい\",\"すこし\",\"ずさん\",\"すずしい\",\"すすむ\",\"すすめる\",\"すっかり\",\"ずっしり\",\"ずっと\",\"すてき\",\"すてる\",\"すねる\",\"すのこ\",\"すはだ\",\"すばらしい\",\"ずひょう\",\"ずぶぬれ\",\"すぶり\",\"すふれ\",\"すべて\",\"すべる\",\"ずほう\",\"すぼん\",\"すまい\",\"すめし\",\"すもう\",\"すやき\",\"すらすら\",\"するめ\",\"すれちがう\",\"すろっと\",\"すわる\",\"すんぜん\",\"すんぽう\",\"せあぶら\",\"せいかつ\",\"せいげん\",\"せいじ\",\"せいよう\",\"せおう\",\"せかいかん\",\"せきにん\",\"せきむ\",\"せきゆ\",\"せきらんうん\",\"せけん\",\"せこう\",\"せすじ\",\"せたい\",\"せたけ\",\"せっかく\",\"せっきゃく\",\"ぜっく\",\"せっけん\",\"せっこつ\",\"せっさたくま\",\"せつぞく\",\"せつだん\",\"せつでん\",\"せっぱん\",\"せつび\",\"せつぶん\",\"せつめい\",\"せつりつ\",\"せなか\",\"せのび\",\"せはば\",\"せびろ\",\"せぼね\",\"せまい\",\"せまる\",\"せめる\",\"せもたれ\",\"せりふ\",\"ぜんあく\",\"せんい\",\"せんえい\",\"せんか\",\"せんきょ\",\"せんく\",\"せんげん\",\"ぜんご\",\"せんさい\",\"せんしゅ\",\"せんすい\",\"せんせい\",\"せんぞ\",\"せんたく\",\"せんちょう\",\"せんてい\",\"せんとう\",\"せんぬき\",\"せんねん\",\"せんぱい\",\"ぜんぶ\",\"ぜんぽう\",\"せんむ\",\"せんめんじょ\",\"せんもん\",\"せんやく\",\"せんゆう\",\"せんよう\",\"ぜんら\",\"ぜんりゃく\",\"せんれい\",\"せんろ\",\"そあく\",\"そいとげる\",\"そいね\",\"そうがんきょう\",\"そうき\",\"そうご\",\"そうしん\",\"そうだん\",\"そうなん\",\"そうび\",\"そうめん\",\"そうり\",\"そえもの\",\"そえん\",\"そがい\",\"そげき\",\"そこう\",\"そこそこ\",\"そざい\",\"そしな\",\"そせい\",\"そせん\",\"そそぐ\",\"そだてる\",\"そつう\",\"そつえん\",\"そっかん\",\"そつぎょう\",\"そっけつ\",\"そっこう\",\"そっせん\",\"そっと\",\"そとがわ\",\"そとづら\",\"そなえる\",\"そなた\",\"そふぼ\",\"そぼく\",\"そぼろ\",\"そまつ\",\"そまる\",\"そむく\",\"そむりえ\",\"そめる\",\"そもそも\",\"そよかぜ\",\"そらまめ\",\"そろう\",\"そんかい\",\"そんけい\",\"そんざい\",\"そんしつ\",\"そんぞく\",\"そんちょう\",\"ぞんび\",\"ぞんぶん\",\"そんみん\",\"たあい\",\"たいいん\",\"たいうん\",\"たいえき\",\"たいおう\",\"だいがく\",\"たいき\",\"たいぐう\",\"たいけん\",\"たいこ\",\"たいざい\",\"だいじょうぶ\",\"だいすき\",\"たいせつ\",\"たいそう\",\"だいたい\",\"たいちょう\",\"たいてい\",\"だいどころ\",\"たいない\",\"たいねつ\",\"たいのう\",\"たいはん\",\"だいひょう\",\"たいふう\",\"たいへん\",\"たいほ\",\"たいまつばな\",\"たいみんぐ\",\"たいむ\",\"たいめん\",\"たいやき\",\"たいよう\",\"たいら\",\"たいりょく\",\"たいる\",\"たいわん\",\"たうえ\",\"たえる\",\"たおす\",\"たおる\",\"たおれる\",\"たかい\",\"たかね\",\"たきび\",\"たくさん\",\"たこく\",\"たこやき\",\"たさい\",\"たしざん\",\"だじゃれ\",\"たすける\",\"たずさわる\",\"たそがれ\",\"たたかう\",\"たたく\",\"ただしい\",\"たたみ\",\"たちばな\",\"だっかい\",\"だっきゃく\",\"だっこ\",\"だっしゅつ\",\"だったい\",\"たてる\",\"たとえる\",\"たなばた\",\"たにん\",\"たぬき\",\"たのしみ\",\"たはつ\",\"たぶん\",\"たべる\",\"たぼう\",\"たまご\",\"たまる\",\"だむる\",\"ためいき\",\"ためす\",\"ためる\",\"たもつ\",\"たやすい\",\"たよる\",\"たらす\",\"たりきほんがん\",\"たりょう\",\"たりる\",\"たると\",\"たれる\",\"たれんと\",\"たろっと\",\"たわむれる\",\"だんあつ\",\"たんい\",\"たんおん\",\"たんか\",\"たんき\",\"たんけん\",\"たんご\",\"たんさん\",\"たんじょうび\",\"だんせい\",\"たんそく\",\"たんたい\",\"だんち\",\"たんてい\",\"たんとう\",\"だんな\",\"たんにん\",\"だんねつ\",\"たんのう\",\"たんぴん\",\"だんぼう\",\"たんまつ\",\"たんめい\",\"だんれつ\",\"だんろ\",\"だんわ\",\"ちあい\",\"ちあん\",\"ちいき\",\"ちいさい\",\"ちえん\",\"ちかい\",\"ちから\",\"ちきゅう\",\"ちきん\",\"ちけいず\",\"ちけん\",\"ちこく\",\"ちさい\",\"ちしき\",\"ちしりょう\",\"ちせい\",\"ちそう\",\"ちたい\",\"ちたん\",\"ちちおや\",\"ちつじょ\",\"ちてき\",\"ちてん\",\"ちぬき\",\"ちぬり\",\"ちのう\",\"ちひょう\",\"ちへいせん\",\"ちほう\",\"ちまた\",\"ちみつ\",\"ちみどろ\",\"ちめいど\",\"ちゃんこなべ\",\"ちゅうい\",\"ちゆりょく\",\"ちょうし\",\"ちょさくけん\",\"ちらし\",\"ちらみ\",\"ちりがみ\",\"ちりょう\",\"ちるど\",\"ちわわ\",\"ちんたい\",\"ちんもく\",\"ついか\",\"ついたち\",\"つうか\",\"つうじょう\",\"つうはん\",\"つうわ\",\"つかう\",\"つかれる\",\"つくね\",\"つくる\",\"つけね\",\"つける\",\"つごう\",\"つたえる\",\"つづく\",\"つつじ\",\"つつむ\",\"つとめる\",\"つながる\",\"つなみ\",\"つねづね\",\"つのる\",\"つぶす\",\"つまらない\",\"つまる\",\"つみき\",\"つめたい\",\"つもり\",\"つもる\",\"つよい\",\"つるぼ\",\"つるみく\",\"つわもの\",\"つわり\",\"てあし\",\"てあて\",\"てあみ\",\"ていおん\",\"ていか\",\"ていき\",\"ていけい\",\"ていこく\",\"ていさつ\",\"ていし\",\"ていせい\",\"ていたい\",\"ていど\",\"ていねい\",\"ていひょう\",\"ていへん\",\"ていぼう\",\"てうち\",\"ておくれ\",\"てきとう\",\"てくび\",\"でこぼこ\",\"てさぎょう\",\"てさげ\",\"てすり\",\"てそう\",\"てちがい\",\"てちょう\",\"てつがく\",\"てつづき\",\"でっぱ\",\"てつぼう\",\"てつや\",\"でぬかえ\",\"てぬき\",\"てぬぐい\",\"てのひら\",\"てはい\",\"てぶくろ\",\"てふだ\",\"てほどき\",\"てほん\",\"てまえ\",\"てまきずし\",\"てみじか\",\"てみやげ\",\"てらす\",\"てれび\",\"てわけ\",\"てわたし\",\"でんあつ\",\"てんいん\",\"てんかい\",\"てんき\",\"てんぐ\",\"てんけん\",\"てんごく\",\"てんさい\",\"てんし\",\"てんすう\",\"でんち\",\"てんてき\",\"てんとう\",\"てんない\",\"てんぷら\",\"てんぼうだい\",\"てんめつ\",\"てんらんかい\",\"でんりょく\",\"でんわ\",\"どあい\",\"といれ\",\"どうかん\",\"とうきゅう\",\"どうぐ\",\"とうし\",\"とうむぎ\",\"とおい\",\"とおか\",\"とおく\",\"とおす\",\"とおる\",\"とかい\",\"とかす\",\"ときおり\",\"ときどき\",\"とくい\",\"とくしゅう\",\"とくてん\",\"とくに\",\"とくべつ\",\"とけい\",\"とける\",\"とこや\",\"とさか\",\"としょかん\",\"とそう\",\"とたん\",\"とちゅう\",\"とっきゅう\",\"とっくん\",\"とつぜん\",\"とつにゅう\",\"とどける\",\"ととのえる\",\"とない\",\"となえる\",\"となり\",\"とのさま\",\"とばす\",\"どぶがわ\",\"とほう\",\"とまる\",\"とめる\",\"ともだち\",\"ともる\",\"どようび\",\"とらえる\",\"とんかつ\",\"どんぶり\",\"ないかく\",\"ないこう\",\"ないしょ\",\"ないす\",\"ないせん\",\"ないそう\",\"なおす\",\"ながい\",\"なくす\",\"なげる\",\"なこうど\",\"なさけ\",\"なたでここ\",\"なっとう\",\"なつやすみ\",\"ななおし\",\"なにごと\",\"なにもの\",\"なにわ\",\"なのか\",\"なふだ\",\"なまいき\",\"なまえ\",\"なまみ\",\"なみだ\",\"なめらか\",\"なめる\",\"なやむ\",\"ならう\",\"ならび\",\"ならぶ\",\"なれる\",\"なわとび\",\"なわばり\",\"にあう\",\"にいがた\",\"にうけ\",\"におい\",\"にかい\",\"にがて\",\"にきび\",\"にくしみ\",\"にくまん\",\"にげる\",\"にさんかたんそ\",\"にしき\",\"にせもの\",\"にちじょう\",\"にちようび\",\"にっか\",\"にっき\",\"にっけい\",\"にっこう\",\"にっさん\",\"にっしょく\",\"にっすう\",\"にっせき\",\"にってい\",\"になう\",\"にほん\",\"にまめ\",\"にもつ\",\"にやり\",\"にゅういん\",\"にりんしゃ\",\"にわとり\",\"にんい\",\"にんか\",\"にんき\",\"にんげん\",\"にんしき\",\"にんずう\",\"にんそう\",\"にんたい\",\"にんち\",\"にんてい\",\"にんにく\",\"にんぷ\",\"にんまり\",\"にんむ\",\"にんめい\",\"にんよう\",\"ぬいくぎ\",\"ぬかす\",\"ぬぐいとる\",\"ぬぐう\",\"ぬくもり\",\"ぬすむ\",\"ぬまえび\",\"ぬめり\",\"ぬらす\",\"ぬんちゃく\",\"ねあげ\",\"ねいき\",\"ねいる\",\"ねいろ\",\"ねぐせ\",\"ねくたい\",\"ねくら\",\"ねこぜ\",\"ねこむ\",\"ねさげ\",\"ねすごす\",\"ねそべる\",\"ねだん\",\"ねつい\",\"ねっしん\",\"ねつぞう\",\"ねったいぎょ\",\"ねぶそく\",\"ねふだ\",\"ねぼう\",\"ねほりはほり\",\"ねまき\",\"ねまわし\",\"ねみみ\",\"ねむい\",\"ねむたい\",\"ねもと\",\"ねらう\",\"ねわざ\",\"ねんいり\",\"ねんおし\",\"ねんかん\",\"ねんきん\",\"ねんぐ\",\"ねんざ\",\"ねんし\",\"ねんちゃく\",\"ねんど\",\"ねんぴ\",\"ねんぶつ\",\"ねんまつ\",\"ねんりょう\",\"ねんれい\",\"のいず\",\"のおづま\",\"のがす\",\"のきなみ\",\"のこぎり\",\"のこす\",\"のこる\",\"のせる\",\"のぞく\",\"のぞむ\",\"のたまう\",\"のちほど\",\"のっく\",\"のばす\",\"のはら\",\"のべる\",\"のぼる\",\"のみもの\",\"のやま\",\"のらいぬ\",\"のらねこ\",\"のりもの\",\"のりゆき\",\"のれん\",\"のんき\",\"ばあい\",\"はあく\",\"ばあさん\",\"ばいか\",\"ばいく\",\"はいけん\",\"はいご\",\"はいしん\",\"はいすい\",\"はいせん\",\"はいそう\",\"はいち\",\"ばいばい\",\"はいれつ\",\"はえる\",\"はおる\",\"はかい\",\"ばかり\",\"はかる\",\"はくしゅ\",\"はけん\",\"はこぶ\",\"はさみ\",\"はさん\",\"はしご\",\"ばしょ\",\"はしる\",\"はせる\",\"ぱそこん\",\"はそん\",\"はたん\",\"はちみつ\",\"はつおん\",\"はっかく\",\"はづき\",\"はっきり\",\"はっくつ\",\"はっけん\",\"はっこう\",\"はっさん\",\"はっしん\",\"はったつ\",\"はっちゅう\",\"はってん\",\"はっぴょう\",\"はっぽう\",\"はなす\",\"はなび\",\"はにかむ\",\"はぶらし\",\"はみがき\",\"はむかう\",\"はめつ\",\"はやい\",\"はやし\",\"はらう\",\"はろうぃん\",\"はわい\",\"はんい\",\"はんえい\",\"はんおん\",\"はんかく\",\"はんきょう\",\"ばんぐみ\",\"はんこ\",\"はんしゃ\",\"はんすう\",\"はんだん\",\"ぱんち\",\"ぱんつ\",\"はんてい\",\"はんとし\",\"はんのう\",\"はんぱ\",\"はんぶん\",\"はんぺん\",\"はんぼうき\",\"はんめい\",\"はんらん\",\"はんろん\",\"ひいき\",\"ひうん\",\"ひえる\",\"ひかく\",\"ひかり\",\"ひかる\",\"ひかん\",\"ひくい\",\"ひけつ\",\"ひこうき\",\"ひこく\",\"ひさい\",\"ひさしぶり\",\"ひさん\",\"びじゅつかん\",\"ひしょ\",\"ひそか\",\"ひそむ\",\"ひたむき\",\"ひだり\",\"ひたる\",\"ひつぎ\",\"ひっこし\",\"ひっし\",\"ひつじゅひん\",\"ひっす\",\"ひつぜん\",\"ぴったり\",\"ぴっちり\",\"ひつよう\",\"ひてい\",\"ひとごみ\",\"ひなまつり\",\"ひなん\",\"ひねる\",\"ひはん\",\"ひびく\",\"ひひょう\",\"ひほう\",\"ひまわり\",\"ひまん\",\"ひみつ\",\"ひめい\",\"ひめじし\",\"ひやけ\",\"ひやす\",\"ひよう\",\"びょうき\",\"ひらがな\",\"ひらく\",\"ひりつ\",\"ひりょう\",\"ひるま\",\"ひるやすみ\",\"ひれい\",\"ひろい\",\"ひろう\",\"ひろき\",\"ひろゆき\",\"ひんかく\",\"ひんけつ\",\"ひんこん\",\"ひんしゅ\",\"ひんそう\",\"ぴんち\",\"ひんぱん\",\"びんぼう\",\"ふあん\",\"ふいうち\",\"ふうけい\",\"ふうせん\",\"ぷうたろう\",\"ふうとう\",\"ふうふ\",\"ふえる\",\"ふおん\",\"ふかい\",\"ふきん\",\"ふくざつ\",\"ふくぶくろ\",\"ふこう\",\"ふさい\",\"ふしぎ\",\"ふじみ\",\"ふすま\",\"ふせい\",\"ふせぐ\",\"ふそく\",\"ぶたにく\",\"ふたん\",\"ふちょう\",\"ふつう\",\"ふつか\",\"ふっかつ\",\"ふっき\",\"ふっこく\",\"ぶどう\",\"ふとる\",\"ふとん\",\"ふのう\",\"ふはい\",\"ふひょう\",\"ふへん\",\"ふまん\",\"ふみん\",\"ふめつ\",\"ふめん\",\"ふよう\",\"ふりこ\",\"ふりる\",\"ふるい\",\"ふんいき\",\"ぶんがく\",\"ぶんぐ\",\"ふんしつ\",\"ぶんせき\",\"ふんそう\",\"ぶんぽう\",\"へいあん\",\"へいおん\",\"へいがい\",\"へいき\",\"へいげん\",\"へいこう\",\"へいさ\",\"へいしゃ\",\"へいせつ\",\"へいそ\",\"へいたく\",\"へいてん\",\"へいねつ\",\"へいわ\",\"へきが\",\"へこむ\",\"べにいろ\",\"べにしょうが\",\"へらす\",\"へんかん\",\"べんきょう\",\"べんごし\",\"へんさい\",\"へんたい\",\"べんり\",\"ほあん\",\"ほいく\",\"ぼうぎょ\",\"ほうこく\",\"ほうそう\",\"ほうほう\",\"ほうもん\",\"ほうりつ\",\"ほえる\",\"ほおん\",\"ほかん\",\"ほきょう\",\"ぼきん\",\"ほくろ\",\"ほけつ\",\"ほけん\",\"ほこう\",\"ほこる\",\"ほしい\",\"ほしつ\",\"ほしゅ\",\"ほしょう\",\"ほせい\",\"ほそい\",\"ほそく\",\"ほたて\",\"ほたる\",\"ぽちぶくろ\",\"ほっきょく\",\"ほっさ\",\"ほったん\",\"ほとんど\",\"ほめる\",\"ほんい\",\"ほんき\",\"ほんけ\",\"ほんしつ\",\"ほんやく\",\"まいにち\",\"まかい\",\"まかせる\",\"まがる\",\"まける\",\"まこと\",\"まさつ\",\"まじめ\",\"ますく\",\"まぜる\",\"まつり\",\"まとめ\",\"まなぶ\",\"まぬけ\",\"まねく\",\"まほう\",\"まもる\",\"まゆげ\",\"まよう\",\"まろやか\",\"まわす\",\"まわり\",\"まわる\",\"まんが\",\"まんきつ\",\"まんぞく\",\"まんなか\",\"みいら\",\"みうち\",\"みえる\",\"みがく\",\"みかた\",\"みかん\",\"みけん\",\"みこん\",\"みじかい\",\"みすい\",\"みすえる\",\"みせる\",\"みっか\",\"みつかる\",\"みつける\",\"みてい\",\"みとめる\",\"みなと\",\"みなみかさい\",\"みねらる\",\"みのう\",\"みのがす\",\"みほん\",\"みもと\",\"みやげ\",\"みらい\",\"みりょく\",\"みわく\",\"みんか\",\"みんぞく\",\"むいか\",\"むえき\",\"むえん\",\"むかい\",\"むかう\",\"むかえ\",\"むかし\",\"むぎちゃ\",\"むける\",\"むげん\",\"むさぼる\",\"むしあつい\",\"むしば\",\"むじゅん\",\"むしろ\",\"むすう\",\"むすこ\",\"むすぶ\",\"むすめ\",\"むせる\",\"むせん\",\"むちゅう\",\"むなしい\",\"むのう\",\"むやみ\",\"むよう\",\"むらさき\",\"むりょう\",\"むろん\",\"めいあん\",\"めいうん\",\"めいえん\",\"めいかく\",\"めいきょく\",\"めいさい\",\"めいし\",\"めいそう\",\"めいぶつ\",\"めいれい\",\"めいわく\",\"めぐまれる\",\"めざす\",\"めした\",\"めずらしい\",\"めだつ\",\"めまい\",\"めやす\",\"めんきょ\",\"めんせき\",\"めんどう\",\"もうしあげる\",\"もうどうけん\",\"もえる\",\"もくし\",\"もくてき\",\"もくようび\",\"もちろん\",\"もどる\",\"もらう\",\"もんく\",\"もんだい\",\"やおや\",\"やける\",\"やさい\",\"やさしい\",\"やすい\",\"やすたろう\",\"やすみ\",\"やせる\",\"やそう\",\"やたい\",\"やちん\",\"やっと\",\"やっぱり\",\"やぶる\",\"やめる\",\"ややこしい\",\"やよい\",\"やわらかい\",\"ゆうき\",\"ゆうびんきょく\",\"ゆうべ\",\"ゆうめい\",\"ゆけつ\",\"ゆしゅつ\",\"ゆせん\",\"ゆそう\",\"ゆたか\",\"ゆちゃく\",\"ゆでる\",\"ゆにゅう\",\"ゆびわ\",\"ゆらい\",\"ゆれる\",\"ようい\",\"ようか\",\"ようきゅう\",\"ようじ\",\"ようす\",\"ようちえん\",\"よかぜ\",\"よかん\",\"よきん\",\"よくせい\",\"よくぼう\",\"よけい\",\"よごれる\",\"よさん\",\"よしゅう\",\"よそう\",\"よそく\",\"よっか\",\"よてい\",\"よどがわく\",\"よねつ\",\"よやく\",\"よゆう\",\"よろこぶ\",\"よろしい\",\"らいう\",\"らくがき\",\"らくご\",\"らくさつ\",\"らくだ\",\"らしんばん\",\"らせん\",\"らぞく\",\"らたい\",\"らっか\",\"られつ\",\"りえき\",\"りかい\",\"りきさく\",\"りきせつ\",\"りくぐん\",\"りくつ\",\"りけん\",\"りこう\",\"りせい\",\"りそう\",\"りそく\",\"りてん\",\"りねん\",\"りゆう\",\"りゅうがく\",\"りよう\",\"りょうり\",\"りょかん\",\"りょくちゃ\",\"りょこう\",\"りりく\",\"りれき\",\"りろん\",\"りんご\",\"るいけい\",\"るいさい\",\"るいじ\",\"るいせき\",\"るすばん\",\"るりがわら\",\"れいかん\",\"れいぎ\",\"れいせい\",\"れいぞうこ\",\"れいとう\",\"れいぼう\",\"れきし\",\"れきだい\",\"れんあい\",\"れんけい\",\"れんこん\",\"れんさい\",\"れんしゅう\",\"れんぞく\",\"れんらく\",\"ろうか\",\"ろうご\",\"ろうじん\",\"ろうそく\",\"ろくが\",\"ろこつ\",\"ろじうら\",\"ろしゅつ\",\"ろせん\",\"ろてん\",\"ろめん\",\"ろれつ\",\"ろんぎ\",\"ろんぱ\",\"ろんぶん\",\"ろんり\",\"わかす\",\"わかめ\",\"わかやま\",\"わかれる\",\"わしつ\",\"わじまし\",\"わすれもの\",\"わらう\",\"われる\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/japanese.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/korean.json":
/*!******************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/korean.json ***!
  \******************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"가격\",\"가끔\",\"가난\",\"가능\",\"가득\",\"가르침\",\"가뭄\",\"가방\",\"가상\",\"가슴\",\"가운데\",\"가을\",\"가이드\",\"가입\",\"가장\",\"가정\",\"가족\",\"가죽\",\"각오\",\"각자\",\"간격\",\"간부\",\"간섭\",\"간장\",\"간접\",\"간판\",\"갈등\",\"갈비\",\"갈색\",\"갈증\",\"감각\",\"감기\",\"감소\",\"감수성\",\"감자\",\"감정\",\"갑자기\",\"강남\",\"강당\",\"강도\",\"강력히\",\"강변\",\"강북\",\"강사\",\"강수량\",\"강아지\",\"강원도\",\"강의\",\"강제\",\"강조\",\"같이\",\"개구리\",\"개나리\",\"개방\",\"개별\",\"개선\",\"개성\",\"개인\",\"객관적\",\"거실\",\"거액\",\"거울\",\"거짓\",\"거품\",\"걱정\",\"건강\",\"건물\",\"건설\",\"건조\",\"건축\",\"걸음\",\"검사\",\"검토\",\"게시판\",\"게임\",\"겨울\",\"견해\",\"결과\",\"결국\",\"결론\",\"결석\",\"결승\",\"결심\",\"결정\",\"결혼\",\"경계\",\"경고\",\"경기\",\"경력\",\"경복궁\",\"경비\",\"경상도\",\"경영\",\"경우\",\"경쟁\",\"경제\",\"경주\",\"경찰\",\"경치\",\"경향\",\"경험\",\"계곡\",\"계단\",\"계란\",\"계산\",\"계속\",\"계약\",\"계절\",\"계층\",\"계획\",\"고객\",\"고구려\",\"고궁\",\"고급\",\"고등학생\",\"고무신\",\"고민\",\"고양이\",\"고장\",\"고전\",\"고집\",\"고춧가루\",\"고통\",\"고향\",\"곡식\",\"골목\",\"골짜기\",\"골프\",\"공간\",\"공개\",\"공격\",\"공군\",\"공급\",\"공기\",\"공동\",\"공무원\",\"공부\",\"공사\",\"공식\",\"공업\",\"공연\",\"공원\",\"공장\",\"공짜\",\"공책\",\"공통\",\"공포\",\"공항\",\"공휴일\",\"과목\",\"과일\",\"과장\",\"과정\",\"과학\",\"관객\",\"관계\",\"관광\",\"관념\",\"관람\",\"관련\",\"관리\",\"관습\",\"관심\",\"관점\",\"관찰\",\"광경\",\"광고\",\"광장\",\"광주\",\"괴로움\",\"굉장히\",\"교과서\",\"교문\",\"교복\",\"교실\",\"교양\",\"교육\",\"교장\",\"교직\",\"교통\",\"교환\",\"교훈\",\"구경\",\"구름\",\"구멍\",\"구별\",\"구분\",\"구석\",\"구성\",\"구속\",\"구역\",\"구입\",\"구청\",\"구체적\",\"국가\",\"국기\",\"국내\",\"국립\",\"국물\",\"국민\",\"국수\",\"국어\",\"국왕\",\"국적\",\"국제\",\"국회\",\"군대\",\"군사\",\"군인\",\"궁극적\",\"권리\",\"권위\",\"권투\",\"귀국\",\"귀신\",\"규정\",\"규칙\",\"균형\",\"그날\",\"그냥\",\"그늘\",\"그러나\",\"그룹\",\"그릇\",\"그림\",\"그제서야\",\"그토록\",\"극복\",\"극히\",\"근거\",\"근교\",\"근래\",\"근로\",\"근무\",\"근본\",\"근원\",\"근육\",\"근처\",\"글씨\",\"글자\",\"금강산\",\"금고\",\"금년\",\"금메달\",\"금액\",\"금연\",\"금요일\",\"금지\",\"긍정적\",\"기간\",\"기관\",\"기념\",\"기능\",\"기독교\",\"기둥\",\"기록\",\"기름\",\"기법\",\"기본\",\"기분\",\"기쁨\",\"기숙사\",\"기술\",\"기억\",\"기업\",\"기온\",\"기운\",\"기원\",\"기적\",\"기준\",\"기침\",\"기혼\",\"기획\",\"긴급\",\"긴장\",\"길이\",\"김밥\",\"김치\",\"김포공항\",\"깍두기\",\"깜빡\",\"깨달음\",\"깨소금\",\"껍질\",\"꼭대기\",\"꽃잎\",\"나들이\",\"나란히\",\"나머지\",\"나물\",\"나침반\",\"나흘\",\"낙엽\",\"난방\",\"날개\",\"날씨\",\"날짜\",\"남녀\",\"남대문\",\"남매\",\"남산\",\"남자\",\"남편\",\"남학생\",\"낭비\",\"낱말\",\"내년\",\"내용\",\"내일\",\"냄비\",\"냄새\",\"냇물\",\"냉동\",\"냉면\",\"냉방\",\"냉장고\",\"넥타이\",\"넷째\",\"노동\",\"노란색\",\"노력\",\"노인\",\"녹음\",\"녹차\",\"녹화\",\"논리\",\"논문\",\"논쟁\",\"놀이\",\"농구\",\"농담\",\"농민\",\"농부\",\"농업\",\"농장\",\"농촌\",\"높이\",\"눈동자\",\"눈물\",\"눈썹\",\"뉴욕\",\"느낌\",\"늑대\",\"능동적\",\"능력\",\"다방\",\"다양성\",\"다음\",\"다이어트\",\"다행\",\"단계\",\"단골\",\"단독\",\"단맛\",\"단순\",\"단어\",\"단위\",\"단점\",\"단체\",\"단추\",\"단편\",\"단풍\",\"달걀\",\"달러\",\"달력\",\"달리\",\"닭고기\",\"담당\",\"담배\",\"담요\",\"담임\",\"답변\",\"답장\",\"당근\",\"당분간\",\"당연히\",\"당장\",\"대규모\",\"대낮\",\"대단히\",\"대답\",\"대도시\",\"대략\",\"대량\",\"대륙\",\"대문\",\"대부분\",\"대신\",\"대응\",\"대장\",\"대전\",\"대접\",\"대중\",\"대책\",\"대출\",\"대충\",\"대통령\",\"대학\",\"대한민국\",\"대합실\",\"대형\",\"덩어리\",\"데이트\",\"도대체\",\"도덕\",\"도둑\",\"도망\",\"도서관\",\"도심\",\"도움\",\"도입\",\"도자기\",\"도저히\",\"도전\",\"도중\",\"도착\",\"독감\",\"독립\",\"독서\",\"독일\",\"독창적\",\"동화책\",\"뒷모습\",\"뒷산\",\"딸아이\",\"마누라\",\"마늘\",\"마당\",\"마라톤\",\"마련\",\"마무리\",\"마사지\",\"마약\",\"마요네즈\",\"마을\",\"마음\",\"마이크\",\"마중\",\"마지막\",\"마찬가지\",\"마찰\",\"마흔\",\"막걸리\",\"막내\",\"막상\",\"만남\",\"만두\",\"만세\",\"만약\",\"만일\",\"만점\",\"만족\",\"만화\",\"많이\",\"말기\",\"말씀\",\"말투\",\"맘대로\",\"망원경\",\"매년\",\"매달\",\"매력\",\"매번\",\"매스컴\",\"매일\",\"매장\",\"맥주\",\"먹이\",\"먼저\",\"먼지\",\"멀리\",\"메일\",\"며느리\",\"며칠\",\"면담\",\"멸치\",\"명단\",\"명령\",\"명예\",\"명의\",\"명절\",\"명칭\",\"명함\",\"모금\",\"모니터\",\"모델\",\"모든\",\"모범\",\"모습\",\"모양\",\"모임\",\"모조리\",\"모집\",\"모퉁이\",\"목걸이\",\"목록\",\"목사\",\"목소리\",\"목숨\",\"목적\",\"목표\",\"몰래\",\"몸매\",\"몸무게\",\"몸살\",\"몸속\",\"몸짓\",\"몸통\",\"몹시\",\"무관심\",\"무궁화\",\"무더위\",\"무덤\",\"무릎\",\"무슨\",\"무엇\",\"무역\",\"무용\",\"무조건\",\"무지개\",\"무척\",\"문구\",\"문득\",\"문법\",\"문서\",\"문제\",\"문학\",\"문화\",\"물가\",\"물건\",\"물결\",\"물고기\",\"물론\",\"물리학\",\"물음\",\"물질\",\"물체\",\"미국\",\"미디어\",\"미사일\",\"미술\",\"미역\",\"미용실\",\"미움\",\"미인\",\"미팅\",\"미혼\",\"민간\",\"민족\",\"민주\",\"믿음\",\"밀가루\",\"밀리미터\",\"밑바닥\",\"바가지\",\"바구니\",\"바나나\",\"바늘\",\"바닥\",\"바닷가\",\"바람\",\"바이러스\",\"바탕\",\"박물관\",\"박사\",\"박수\",\"반대\",\"반드시\",\"반말\",\"반발\",\"반성\",\"반응\",\"반장\",\"반죽\",\"반지\",\"반찬\",\"받침\",\"발가락\",\"발걸음\",\"발견\",\"발달\",\"발레\",\"발목\",\"발바닥\",\"발생\",\"발음\",\"발자국\",\"발전\",\"발톱\",\"발표\",\"밤하늘\",\"밥그릇\",\"밥맛\",\"밥상\",\"밥솥\",\"방금\",\"방면\",\"방문\",\"방바닥\",\"방법\",\"방송\",\"방식\",\"방안\",\"방울\",\"방지\",\"방학\",\"방해\",\"방향\",\"배경\",\"배꼽\",\"배달\",\"배드민턴\",\"백두산\",\"백색\",\"백성\",\"백인\",\"백제\",\"백화점\",\"버릇\",\"버섯\",\"버튼\",\"번개\",\"번역\",\"번지\",\"번호\",\"벌금\",\"벌레\",\"벌써\",\"범위\",\"범인\",\"범죄\",\"법률\",\"법원\",\"법적\",\"법칙\",\"베이징\",\"벨트\",\"변경\",\"변동\",\"변명\",\"변신\",\"변호사\",\"변화\",\"별도\",\"별명\",\"별일\",\"병실\",\"병아리\",\"병원\",\"보관\",\"보너스\",\"보라색\",\"보람\",\"보름\",\"보상\",\"보안\",\"보자기\",\"보장\",\"보전\",\"보존\",\"보통\",\"보편적\",\"보험\",\"복도\",\"복사\",\"복숭아\",\"복습\",\"볶음\",\"본격적\",\"본래\",\"본부\",\"본사\",\"본성\",\"본인\",\"본질\",\"볼펜\",\"봉사\",\"봉지\",\"봉투\",\"부근\",\"부끄러움\",\"부담\",\"부동산\",\"부문\",\"부분\",\"부산\",\"부상\",\"부엌\",\"부인\",\"부작용\",\"부장\",\"부정\",\"부족\",\"부지런히\",\"부친\",\"부탁\",\"부품\",\"부회장\",\"북부\",\"북한\",\"분노\",\"분량\",\"분리\",\"분명\",\"분석\",\"분야\",\"분위기\",\"분필\",\"분홍색\",\"불고기\",\"불과\",\"불교\",\"불꽃\",\"불만\",\"불법\",\"불빛\",\"불안\",\"불이익\",\"불행\",\"브랜드\",\"비극\",\"비난\",\"비닐\",\"비둘기\",\"비디오\",\"비로소\",\"비만\",\"비명\",\"비밀\",\"비바람\",\"비빔밥\",\"비상\",\"비용\",\"비율\",\"비중\",\"비타민\",\"비판\",\"빌딩\",\"빗물\",\"빗방울\",\"빗줄기\",\"빛깔\",\"빨간색\",\"빨래\",\"빨리\",\"사건\",\"사계절\",\"사나이\",\"사냥\",\"사람\",\"사랑\",\"사립\",\"사모님\",\"사물\",\"사방\",\"사상\",\"사생활\",\"사설\",\"사슴\",\"사실\",\"사업\",\"사용\",\"사월\",\"사장\",\"사전\",\"사진\",\"사촌\",\"사춘기\",\"사탕\",\"사투리\",\"사흘\",\"산길\",\"산부인과\",\"산업\",\"산책\",\"살림\",\"살인\",\"살짝\",\"삼계탕\",\"삼국\",\"삼십\",\"삼월\",\"삼촌\",\"상관\",\"상금\",\"상대\",\"상류\",\"상반기\",\"상상\",\"상식\",\"상업\",\"상인\",\"상자\",\"상점\",\"상처\",\"상추\",\"상태\",\"상표\",\"상품\",\"상황\",\"새벽\",\"색깔\",\"색연필\",\"생각\",\"생명\",\"생물\",\"생방송\",\"생산\",\"생선\",\"생신\",\"생일\",\"생활\",\"서랍\",\"서른\",\"서명\",\"서민\",\"서비스\",\"서양\",\"서울\",\"서적\",\"서점\",\"서쪽\",\"서클\",\"석사\",\"석유\",\"선거\",\"선물\",\"선배\",\"선생\",\"선수\",\"선원\",\"선장\",\"선전\",\"선택\",\"선풍기\",\"설거지\",\"설날\",\"설렁탕\",\"설명\",\"설문\",\"설사\",\"설악산\",\"설치\",\"설탕\",\"섭씨\",\"성공\",\"성당\",\"성명\",\"성별\",\"성인\",\"성장\",\"성적\",\"성질\",\"성함\",\"세금\",\"세미나\",\"세상\",\"세월\",\"세종대왕\",\"세탁\",\"센터\",\"센티미터\",\"셋째\",\"소규모\",\"소극적\",\"소금\",\"소나기\",\"소년\",\"소득\",\"소망\",\"소문\",\"소설\",\"소속\",\"소아과\",\"소용\",\"소원\",\"소음\",\"소중히\",\"소지품\",\"소질\",\"소풍\",\"소형\",\"속담\",\"속도\",\"속옷\",\"손가락\",\"손길\",\"손녀\",\"손님\",\"손등\",\"손목\",\"손뼉\",\"손실\",\"손질\",\"손톱\",\"손해\",\"솔직히\",\"솜씨\",\"송아지\",\"송이\",\"송편\",\"쇠고기\",\"쇼핑\",\"수건\",\"수년\",\"수단\",\"수돗물\",\"수동적\",\"수면\",\"수명\",\"수박\",\"수상\",\"수석\",\"수술\",\"수시로\",\"수업\",\"수염\",\"수영\",\"수입\",\"수준\",\"수집\",\"수출\",\"수컷\",\"수필\",\"수학\",\"수험생\",\"수화기\",\"숙녀\",\"숙소\",\"숙제\",\"순간\",\"순서\",\"순수\",\"순식간\",\"순위\",\"숟가락\",\"술병\",\"술집\",\"숫자\",\"스님\",\"스물\",\"스스로\",\"스승\",\"스웨터\",\"스위치\",\"스케이트\",\"스튜디오\",\"스트레스\",\"스포츠\",\"슬쩍\",\"슬픔\",\"습관\",\"습기\",\"승객\",\"승리\",\"승부\",\"승용차\",\"승진\",\"시각\",\"시간\",\"시골\",\"시금치\",\"시나리오\",\"시댁\",\"시리즈\",\"시멘트\",\"시민\",\"시부모\",\"시선\",\"시설\",\"시스템\",\"시아버지\",\"시어머니\",\"시월\",\"시인\",\"시일\",\"시작\",\"시장\",\"시절\",\"시점\",\"시중\",\"시즌\",\"시집\",\"시청\",\"시합\",\"시험\",\"식구\",\"식기\",\"식당\",\"식량\",\"식료품\",\"식물\",\"식빵\",\"식사\",\"식생활\",\"식초\",\"식탁\",\"식품\",\"신고\",\"신규\",\"신념\",\"신문\",\"신발\",\"신비\",\"신사\",\"신세\",\"신용\",\"신제품\",\"신청\",\"신체\",\"신화\",\"실감\",\"실내\",\"실력\",\"실례\",\"실망\",\"실수\",\"실습\",\"실시\",\"실장\",\"실정\",\"실질적\",\"실천\",\"실체\",\"실컷\",\"실태\",\"실패\",\"실험\",\"실현\",\"심리\",\"심부름\",\"심사\",\"심장\",\"심정\",\"심판\",\"쌍둥이\",\"씨름\",\"씨앗\",\"아가씨\",\"아나운서\",\"아드님\",\"아들\",\"아쉬움\",\"아스팔트\",\"아시아\",\"아울러\",\"아저씨\",\"아줌마\",\"아직\",\"아침\",\"아파트\",\"아프리카\",\"아픔\",\"아홉\",\"아흔\",\"악기\",\"악몽\",\"악수\",\"안개\",\"안경\",\"안과\",\"안내\",\"안녕\",\"안동\",\"안방\",\"안부\",\"안주\",\"알루미늄\",\"알코올\",\"암시\",\"암컷\",\"압력\",\"앞날\",\"앞문\",\"애인\",\"애정\",\"액수\",\"앨범\",\"야간\",\"야단\",\"야옹\",\"약간\",\"약국\",\"약속\",\"약수\",\"약점\",\"약품\",\"약혼녀\",\"양념\",\"양력\",\"양말\",\"양배추\",\"양주\",\"양파\",\"어둠\",\"어려움\",\"어른\",\"어젯밤\",\"어쨌든\",\"어쩌다가\",\"어쩐지\",\"언니\",\"언덕\",\"언론\",\"언어\",\"얼굴\",\"얼른\",\"얼음\",\"얼핏\",\"엄마\",\"업무\",\"업종\",\"업체\",\"엉덩이\",\"엉망\",\"엉터리\",\"엊그제\",\"에너지\",\"에어컨\",\"엔진\",\"여건\",\"여고생\",\"여관\",\"여군\",\"여권\",\"여대생\",\"여덟\",\"여동생\",\"여든\",\"여론\",\"여름\",\"여섯\",\"여성\",\"여왕\",\"여인\",\"여전히\",\"여직원\",\"여학생\",\"여행\",\"역사\",\"역시\",\"역할\",\"연결\",\"연구\",\"연극\",\"연기\",\"연락\",\"연설\",\"연세\",\"연속\",\"연습\",\"연애\",\"연예인\",\"연인\",\"연장\",\"연주\",\"연출\",\"연필\",\"연합\",\"연휴\",\"열기\",\"열매\",\"열쇠\",\"열심히\",\"열정\",\"열차\",\"열흘\",\"염려\",\"엽서\",\"영국\",\"영남\",\"영상\",\"영양\",\"영역\",\"영웅\",\"영원히\",\"영하\",\"영향\",\"영혼\",\"영화\",\"옆구리\",\"옆방\",\"옆집\",\"예감\",\"예금\",\"예방\",\"예산\",\"예상\",\"예선\",\"예술\",\"예습\",\"예식장\",\"예약\",\"예전\",\"예절\",\"예정\",\"예컨대\",\"옛날\",\"오늘\",\"오락\",\"오랫동안\",\"오렌지\",\"오로지\",\"오른발\",\"오븐\",\"오십\",\"오염\",\"오월\",\"오전\",\"오직\",\"오징어\",\"오페라\",\"오피스텔\",\"오히려\",\"옥상\",\"옥수수\",\"온갖\",\"온라인\",\"온몸\",\"온종일\",\"온통\",\"올가을\",\"올림픽\",\"올해\",\"옷차림\",\"와이셔츠\",\"와인\",\"완성\",\"완전\",\"왕비\",\"왕자\",\"왜냐하면\",\"왠지\",\"외갓집\",\"외국\",\"외로움\",\"외삼촌\",\"외출\",\"외침\",\"외할머니\",\"왼발\",\"왼손\",\"왼쪽\",\"요금\",\"요일\",\"요즘\",\"요청\",\"용기\",\"용서\",\"용어\",\"우산\",\"우선\",\"우승\",\"우연히\",\"우정\",\"우체국\",\"우편\",\"운동\",\"운명\",\"운반\",\"운전\",\"운행\",\"울산\",\"울음\",\"움직임\",\"웃어른\",\"웃음\",\"워낙\",\"원고\",\"원래\",\"원서\",\"원숭이\",\"원인\",\"원장\",\"원피스\",\"월급\",\"월드컵\",\"월세\",\"월요일\",\"웨이터\",\"위반\",\"위법\",\"위성\",\"위원\",\"위험\",\"위협\",\"윗사람\",\"유난히\",\"유럽\",\"유명\",\"유물\",\"유산\",\"유적\",\"유치원\",\"유학\",\"유행\",\"유형\",\"육군\",\"육상\",\"육십\",\"육체\",\"은행\",\"음력\",\"음료\",\"음반\",\"음성\",\"음식\",\"음악\",\"음주\",\"의견\",\"의논\",\"의문\",\"의복\",\"의식\",\"의심\",\"의외로\",\"의욕\",\"의원\",\"의학\",\"이것\",\"이곳\",\"이념\",\"이놈\",\"이달\",\"이대로\",\"이동\",\"이렇게\",\"이력서\",\"이론적\",\"이름\",\"이민\",\"이발소\",\"이별\",\"이불\",\"이빨\",\"이상\",\"이성\",\"이슬\",\"이야기\",\"이용\",\"이웃\",\"이월\",\"이윽고\",\"이익\",\"이전\",\"이중\",\"이튿날\",\"이틀\",\"이혼\",\"인간\",\"인격\",\"인공\",\"인구\",\"인근\",\"인기\",\"인도\",\"인류\",\"인물\",\"인생\",\"인쇄\",\"인연\",\"인원\",\"인재\",\"인종\",\"인천\",\"인체\",\"인터넷\",\"인하\",\"인형\",\"일곱\",\"일기\",\"일단\",\"일대\",\"일등\",\"일반\",\"일본\",\"일부\",\"일상\",\"일생\",\"일손\",\"일요일\",\"일월\",\"일정\",\"일종\",\"일주일\",\"일찍\",\"일체\",\"일치\",\"일행\",\"일회용\",\"임금\",\"임무\",\"입대\",\"입력\",\"입맛\",\"입사\",\"입술\",\"입시\",\"입원\",\"입장\",\"입학\",\"자가용\",\"자격\",\"자극\",\"자동\",\"자랑\",\"자부심\",\"자식\",\"자신\",\"자연\",\"자원\",\"자율\",\"자전거\",\"자정\",\"자존심\",\"자판\",\"작가\",\"작년\",\"작성\",\"작업\",\"작용\",\"작은딸\",\"작품\",\"잔디\",\"잔뜩\",\"잔치\",\"잘못\",\"잠깐\",\"잠수함\",\"잠시\",\"잠옷\",\"잠자리\",\"잡지\",\"장관\",\"장군\",\"장기간\",\"장래\",\"장례\",\"장르\",\"장마\",\"장면\",\"장모\",\"장미\",\"장비\",\"장사\",\"장소\",\"장식\",\"장애인\",\"장인\",\"장점\",\"장차\",\"장학금\",\"재능\",\"재빨리\",\"재산\",\"재생\",\"재작년\",\"재정\",\"재채기\",\"재판\",\"재학\",\"재활용\",\"저것\",\"저고리\",\"저곳\",\"저녁\",\"저런\",\"저렇게\",\"저번\",\"저울\",\"저절로\",\"저축\",\"적극\",\"적당히\",\"적성\",\"적용\",\"적응\",\"전개\",\"전공\",\"전기\",\"전달\",\"전라도\",\"전망\",\"전문\",\"전반\",\"전부\",\"전세\",\"전시\",\"전용\",\"전자\",\"전쟁\",\"전주\",\"전철\",\"전체\",\"전통\",\"전혀\",\"전후\",\"절대\",\"절망\",\"절반\",\"절약\",\"절차\",\"점검\",\"점수\",\"점심\",\"점원\",\"점점\",\"점차\",\"접근\",\"접시\",\"접촉\",\"젓가락\",\"정거장\",\"정도\",\"정류장\",\"정리\",\"정말\",\"정면\",\"정문\",\"정반대\",\"정보\",\"정부\",\"정비\",\"정상\",\"정성\",\"정오\",\"정원\",\"정장\",\"정지\",\"정치\",\"정확히\",\"제공\",\"제과점\",\"제대로\",\"제목\",\"제발\",\"제법\",\"제삿날\",\"제안\",\"제일\",\"제작\",\"제주도\",\"제출\",\"제품\",\"제한\",\"조각\",\"조건\",\"조금\",\"조깅\",\"조명\",\"조미료\",\"조상\",\"조선\",\"조용히\",\"조절\",\"조정\",\"조직\",\"존댓말\",\"존재\",\"졸업\",\"졸음\",\"종교\",\"종로\",\"종류\",\"종소리\",\"종업원\",\"종종\",\"종합\",\"좌석\",\"죄인\",\"주관적\",\"주름\",\"주말\",\"주머니\",\"주먹\",\"주문\",\"주민\",\"주방\",\"주변\",\"주식\",\"주인\",\"주일\",\"주장\",\"주전자\",\"주택\",\"준비\",\"줄거리\",\"줄기\",\"줄무늬\",\"중간\",\"중계방송\",\"중국\",\"중년\",\"중단\",\"중독\",\"중반\",\"중부\",\"중세\",\"중소기업\",\"중순\",\"중앙\",\"중요\",\"중학교\",\"즉석\",\"즉시\",\"즐거움\",\"증가\",\"증거\",\"증권\",\"증상\",\"증세\",\"지각\",\"지갑\",\"지경\",\"지극히\",\"지금\",\"지급\",\"지능\",\"지름길\",\"지리산\",\"지방\",\"지붕\",\"지식\",\"지역\",\"지우개\",\"지원\",\"지적\",\"지점\",\"지진\",\"지출\",\"직선\",\"직업\",\"직원\",\"직장\",\"진급\",\"진동\",\"진로\",\"진료\",\"진리\",\"진짜\",\"진찰\",\"진출\",\"진통\",\"진행\",\"질문\",\"질병\",\"질서\",\"짐작\",\"집단\",\"집안\",\"집중\",\"짜증\",\"찌꺼기\",\"차남\",\"차라리\",\"차량\",\"차림\",\"차별\",\"차선\",\"차츰\",\"착각\",\"찬물\",\"찬성\",\"참가\",\"참기름\",\"참새\",\"참석\",\"참여\",\"참외\",\"참조\",\"찻잔\",\"창가\",\"창고\",\"창구\",\"창문\",\"창밖\",\"창작\",\"창조\",\"채널\",\"채점\",\"책가방\",\"책방\",\"책상\",\"책임\",\"챔피언\",\"처벌\",\"처음\",\"천국\",\"천둥\",\"천장\",\"천재\",\"천천히\",\"철도\",\"철저히\",\"철학\",\"첫날\",\"첫째\",\"청년\",\"청바지\",\"청소\",\"청춘\",\"체계\",\"체력\",\"체온\",\"체육\",\"체중\",\"체험\",\"초등학생\",\"초반\",\"초밥\",\"초상화\",\"초순\",\"초여름\",\"초원\",\"초저녁\",\"초점\",\"초청\",\"초콜릿\",\"촛불\",\"총각\",\"총리\",\"총장\",\"촬영\",\"최근\",\"최상\",\"최선\",\"최신\",\"최악\",\"최종\",\"추석\",\"추억\",\"추진\",\"추천\",\"추측\",\"축구\",\"축소\",\"축제\",\"축하\",\"출근\",\"출발\",\"출산\",\"출신\",\"출연\",\"출입\",\"출장\",\"출판\",\"충격\",\"충고\",\"충돌\",\"충분히\",\"충청도\",\"취업\",\"취직\",\"취향\",\"치약\",\"친구\",\"친척\",\"칠십\",\"칠월\",\"칠판\",\"침대\",\"침묵\",\"침실\",\"칫솔\",\"칭찬\",\"카메라\",\"카운터\",\"칼국수\",\"캐릭터\",\"캠퍼스\",\"캠페인\",\"커튼\",\"컨디션\",\"컬러\",\"컴퓨터\",\"코끼리\",\"코미디\",\"콘서트\",\"콜라\",\"콤플렉스\",\"콩나물\",\"쾌감\",\"쿠데타\",\"크림\",\"큰길\",\"큰딸\",\"큰소리\",\"큰아들\",\"큰어머니\",\"큰일\",\"큰절\",\"클래식\",\"클럽\",\"킬로\",\"타입\",\"타자기\",\"탁구\",\"탁자\",\"탄생\",\"태권도\",\"태양\",\"태풍\",\"택시\",\"탤런트\",\"터널\",\"터미널\",\"테니스\",\"테스트\",\"테이블\",\"텔레비전\",\"토론\",\"토마토\",\"토요일\",\"통계\",\"통과\",\"통로\",\"통신\",\"통역\",\"통일\",\"통장\",\"통제\",\"통증\",\"통합\",\"통화\",\"퇴근\",\"퇴원\",\"퇴직금\",\"튀김\",\"트럭\",\"특급\",\"특별\",\"특성\",\"특수\",\"특징\",\"특히\",\"튼튼히\",\"티셔츠\",\"파란색\",\"파일\",\"파출소\",\"판결\",\"판단\",\"판매\",\"판사\",\"팔십\",\"팔월\",\"팝송\",\"패션\",\"팩스\",\"팩시밀리\",\"팬티\",\"퍼센트\",\"페인트\",\"편견\",\"편의\",\"편지\",\"편히\",\"평가\",\"평균\",\"평생\",\"평소\",\"평양\",\"평일\",\"평화\",\"포스터\",\"포인트\",\"포장\",\"포함\",\"표면\",\"표정\",\"표준\",\"표현\",\"품목\",\"품질\",\"풍경\",\"풍속\",\"풍습\",\"프랑스\",\"프린터\",\"플라스틱\",\"피곤\",\"피망\",\"피아노\",\"필름\",\"필수\",\"필요\",\"필자\",\"필통\",\"핑계\",\"하느님\",\"하늘\",\"하드웨어\",\"하룻밤\",\"하반기\",\"하숙집\",\"하순\",\"하여튼\",\"하지만\",\"하천\",\"하품\",\"하필\",\"학과\",\"학교\",\"학급\",\"학기\",\"학년\",\"학력\",\"학번\",\"학부모\",\"학비\",\"학생\",\"학술\",\"학습\",\"학용품\",\"학원\",\"학위\",\"학자\",\"학점\",\"한계\",\"한글\",\"한꺼번에\",\"한낮\",\"한눈\",\"한동안\",\"한때\",\"한라산\",\"한마디\",\"한문\",\"한번\",\"한복\",\"한식\",\"한여름\",\"한쪽\",\"할머니\",\"할아버지\",\"할인\",\"함께\",\"함부로\",\"합격\",\"합리적\",\"항공\",\"항구\",\"항상\",\"항의\",\"해결\",\"해군\",\"해답\",\"해당\",\"해물\",\"해석\",\"해설\",\"해수욕장\",\"해안\",\"핵심\",\"핸드백\",\"햄버거\",\"햇볕\",\"햇살\",\"행동\",\"행복\",\"행사\",\"행운\",\"행위\",\"향기\",\"향상\",\"향수\",\"허락\",\"허용\",\"헬기\",\"현관\",\"현금\",\"현대\",\"현상\",\"현실\",\"현장\",\"현재\",\"현지\",\"혈액\",\"협력\",\"형부\",\"형사\",\"형수\",\"형식\",\"형제\",\"형태\",\"형편\",\"혜택\",\"호기심\",\"호남\",\"호랑이\",\"호박\",\"호텔\",\"호흡\",\"혹시\",\"홀로\",\"홈페이지\",\"홍보\",\"홍수\",\"홍차\",\"화면\",\"화분\",\"화살\",\"화요일\",\"화장\",\"화학\",\"확보\",\"확인\",\"확장\",\"확정\",\"환갑\",\"환경\",\"환영\",\"환율\",\"환자\",\"활기\",\"활동\",\"활발히\",\"활용\",\"활짝\",\"회견\",\"회관\",\"회복\",\"회색\",\"회원\",\"회장\",\"회전\",\"횟수\",\"횡단보도\",\"효율적\",\"후반\",\"후춧가루\",\"훈련\",\"훨씬\",\"휴식\",\"휴일\",\"흉내\",\"흐름\",\"흑백\",\"흑인\",\"흔적\",\"흔히\",\"흥미\",\"흥분\",\"희곡\",\"희망\",\"희생\",\"흰색\",\"힘껏\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/korean.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/portuguese.json":
/*!**********************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/portuguese.json ***!
  \**********************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"abacate\",\"abaixo\",\"abalar\",\"abater\",\"abduzir\",\"abelha\",\"aberto\",\"abismo\",\"abotoar\",\"abranger\",\"abreviar\",\"abrigar\",\"abrupto\",\"absinto\",\"absoluto\",\"absurdo\",\"abutre\",\"acabado\",\"acalmar\",\"acampar\",\"acanhar\",\"acaso\",\"aceitar\",\"acelerar\",\"acenar\",\"acervo\",\"acessar\",\"acetona\",\"achatar\",\"acidez\",\"acima\",\"acionado\",\"acirrar\",\"aclamar\",\"aclive\",\"acolhida\",\"acomodar\",\"acoplar\",\"acordar\",\"acumular\",\"acusador\",\"adaptar\",\"adega\",\"adentro\",\"adepto\",\"adequar\",\"aderente\",\"adesivo\",\"adeus\",\"adiante\",\"aditivo\",\"adjetivo\",\"adjunto\",\"admirar\",\"adorar\",\"adquirir\",\"adubo\",\"adverso\",\"advogado\",\"aeronave\",\"afastar\",\"aferir\",\"afetivo\",\"afinador\",\"afivelar\",\"aflito\",\"afluente\",\"afrontar\",\"agachar\",\"agarrar\",\"agasalho\",\"agenciar\",\"agilizar\",\"agiota\",\"agitado\",\"agora\",\"agradar\",\"agreste\",\"agrupar\",\"aguardar\",\"agulha\",\"ajoelhar\",\"ajudar\",\"ajustar\",\"alameda\",\"alarme\",\"alastrar\",\"alavanca\",\"albergue\",\"albino\",\"alcatra\",\"aldeia\",\"alecrim\",\"alegria\",\"alertar\",\"alface\",\"alfinete\",\"algum\",\"alheio\",\"aliar\",\"alicate\",\"alienar\",\"alinhar\",\"aliviar\",\"almofada\",\"alocar\",\"alpiste\",\"alterar\",\"altitude\",\"alucinar\",\"alugar\",\"aluno\",\"alusivo\",\"alvo\",\"amaciar\",\"amador\",\"amarelo\",\"amassar\",\"ambas\",\"ambiente\",\"ameixa\",\"amenizar\",\"amido\",\"amistoso\",\"amizade\",\"amolador\",\"amontoar\",\"amoroso\",\"amostra\",\"amparar\",\"ampliar\",\"ampola\",\"anagrama\",\"analisar\",\"anarquia\",\"anatomia\",\"andaime\",\"anel\",\"anexo\",\"angular\",\"animar\",\"anjo\",\"anomalia\",\"anotado\",\"ansioso\",\"anterior\",\"anuidade\",\"anunciar\",\"anzol\",\"apagador\",\"apalpar\",\"apanhado\",\"apego\",\"apelido\",\"apertada\",\"apesar\",\"apetite\",\"apito\",\"aplauso\",\"aplicada\",\"apoio\",\"apontar\",\"aposta\",\"aprendiz\",\"aprovar\",\"aquecer\",\"arame\",\"aranha\",\"arara\",\"arcada\",\"ardente\",\"areia\",\"arejar\",\"arenito\",\"aresta\",\"argiloso\",\"argola\",\"arma\",\"arquivo\",\"arraial\",\"arrebate\",\"arriscar\",\"arroba\",\"arrumar\",\"arsenal\",\"arterial\",\"artigo\",\"arvoredo\",\"asfaltar\",\"asilado\",\"aspirar\",\"assador\",\"assinar\",\"assoalho\",\"assunto\",\"astral\",\"atacado\",\"atadura\",\"atalho\",\"atarefar\",\"atear\",\"atender\",\"aterro\",\"ateu\",\"atingir\",\"atirador\",\"ativo\",\"atoleiro\",\"atracar\",\"atrevido\",\"atriz\",\"atual\",\"atum\",\"auditor\",\"aumentar\",\"aura\",\"aurora\",\"autismo\",\"autoria\",\"autuar\",\"avaliar\",\"avante\",\"avaria\",\"avental\",\"avesso\",\"aviador\",\"avisar\",\"avulso\",\"axila\",\"azarar\",\"azedo\",\"azeite\",\"azulejo\",\"babar\",\"babosa\",\"bacalhau\",\"bacharel\",\"bacia\",\"bagagem\",\"baiano\",\"bailar\",\"baioneta\",\"bairro\",\"baixista\",\"bajular\",\"baleia\",\"baliza\",\"balsa\",\"banal\",\"bandeira\",\"banho\",\"banir\",\"banquete\",\"barato\",\"barbado\",\"baronesa\",\"barraca\",\"barulho\",\"baseado\",\"bastante\",\"batata\",\"batedor\",\"batida\",\"batom\",\"batucar\",\"baunilha\",\"beber\",\"beijo\",\"beirada\",\"beisebol\",\"beldade\",\"beleza\",\"belga\",\"beliscar\",\"bendito\",\"bengala\",\"benzer\",\"berimbau\",\"berlinda\",\"berro\",\"besouro\",\"bexiga\",\"bezerro\",\"bico\",\"bicudo\",\"bienal\",\"bifocal\",\"bifurcar\",\"bigorna\",\"bilhete\",\"bimestre\",\"bimotor\",\"biologia\",\"biombo\",\"biosfera\",\"bipolar\",\"birrento\",\"biscoito\",\"bisneto\",\"bispo\",\"bissexto\",\"bitola\",\"bizarro\",\"blindado\",\"bloco\",\"bloquear\",\"boato\",\"bobagem\",\"bocado\",\"bocejo\",\"bochecha\",\"boicotar\",\"bolada\",\"boletim\",\"bolha\",\"bolo\",\"bombeiro\",\"bonde\",\"boneco\",\"bonita\",\"borbulha\",\"borda\",\"boreal\",\"borracha\",\"bovino\",\"boxeador\",\"branco\",\"brasa\",\"braveza\",\"breu\",\"briga\",\"brilho\",\"brincar\",\"broa\",\"brochura\",\"bronzear\",\"broto\",\"bruxo\",\"bucha\",\"budismo\",\"bufar\",\"bule\",\"buraco\",\"busca\",\"busto\",\"buzina\",\"cabana\",\"cabelo\",\"cabide\",\"cabo\",\"cabrito\",\"cacau\",\"cacetada\",\"cachorro\",\"cacique\",\"cadastro\",\"cadeado\",\"cafezal\",\"caiaque\",\"caipira\",\"caixote\",\"cajado\",\"caju\",\"calafrio\",\"calcular\",\"caldeira\",\"calibrar\",\"calmante\",\"calota\",\"camada\",\"cambista\",\"camisa\",\"camomila\",\"campanha\",\"camuflar\",\"canavial\",\"cancelar\",\"caneta\",\"canguru\",\"canhoto\",\"canivete\",\"canoa\",\"cansado\",\"cantar\",\"canudo\",\"capacho\",\"capela\",\"capinar\",\"capotar\",\"capricho\",\"captador\",\"capuz\",\"caracol\",\"carbono\",\"cardeal\",\"careca\",\"carimbar\",\"carneiro\",\"carpete\",\"carreira\",\"cartaz\",\"carvalho\",\"casaco\",\"casca\",\"casebre\",\"castelo\",\"casulo\",\"catarata\",\"cativar\",\"caule\",\"causador\",\"cautelar\",\"cavalo\",\"caverna\",\"cebola\",\"cedilha\",\"cegonha\",\"celebrar\",\"celular\",\"cenoura\",\"censo\",\"centeio\",\"cercar\",\"cerrado\",\"certeiro\",\"cerveja\",\"cetim\",\"cevada\",\"chacota\",\"chaleira\",\"chamado\",\"chapada\",\"charme\",\"chatice\",\"chave\",\"chefe\",\"chegada\",\"cheiro\",\"cheque\",\"chicote\",\"chifre\",\"chinelo\",\"chocalho\",\"chover\",\"chumbo\",\"chutar\",\"chuva\",\"cicatriz\",\"ciclone\",\"cidade\",\"cidreira\",\"ciente\",\"cigana\",\"cimento\",\"cinto\",\"cinza\",\"ciranda\",\"circuito\",\"cirurgia\",\"citar\",\"clareza\",\"clero\",\"clicar\",\"clone\",\"clube\",\"coado\",\"coagir\",\"cobaia\",\"cobertor\",\"cobrar\",\"cocada\",\"coelho\",\"coentro\",\"coeso\",\"cogumelo\",\"coibir\",\"coifa\",\"coiote\",\"colar\",\"coleira\",\"colher\",\"colidir\",\"colmeia\",\"colono\",\"coluna\",\"comando\",\"combinar\",\"comentar\",\"comitiva\",\"comover\",\"complexo\",\"comum\",\"concha\",\"condor\",\"conectar\",\"confuso\",\"congelar\",\"conhecer\",\"conjugar\",\"consumir\",\"contrato\",\"convite\",\"cooperar\",\"copeiro\",\"copiador\",\"copo\",\"coquetel\",\"coragem\",\"cordial\",\"corneta\",\"coronha\",\"corporal\",\"correio\",\"cortejo\",\"coruja\",\"corvo\",\"cosseno\",\"costela\",\"cotonete\",\"couro\",\"couve\",\"covil\",\"cozinha\",\"cratera\",\"cravo\",\"creche\",\"credor\",\"creme\",\"crer\",\"crespo\",\"criada\",\"criminal\",\"crioulo\",\"crise\",\"criticar\",\"crosta\",\"crua\",\"cruzeiro\",\"cubano\",\"cueca\",\"cuidado\",\"cujo\",\"culatra\",\"culminar\",\"culpar\",\"cultura\",\"cumprir\",\"cunhado\",\"cupido\",\"curativo\",\"curral\",\"cursar\",\"curto\",\"cuspir\",\"custear\",\"cutelo\",\"damasco\",\"datar\",\"debater\",\"debitar\",\"deboche\",\"debulhar\",\"decalque\",\"decimal\",\"declive\",\"decote\",\"decretar\",\"dedal\",\"dedicado\",\"deduzir\",\"defesa\",\"defumar\",\"degelo\",\"degrau\",\"degustar\",\"deitado\",\"deixar\",\"delator\",\"delegado\",\"delinear\",\"delonga\",\"demanda\",\"demitir\",\"demolido\",\"dentista\",\"depenado\",\"depilar\",\"depois\",\"depressa\",\"depurar\",\"deriva\",\"derramar\",\"desafio\",\"desbotar\",\"descanso\",\"desenho\",\"desfiado\",\"desgaste\",\"desigual\",\"deslize\",\"desmamar\",\"desova\",\"despesa\",\"destaque\",\"desviar\",\"detalhar\",\"detentor\",\"detonar\",\"detrito\",\"deusa\",\"dever\",\"devido\",\"devotado\",\"dezena\",\"diagrama\",\"dialeto\",\"didata\",\"difuso\",\"digitar\",\"dilatado\",\"diluente\",\"diminuir\",\"dinastia\",\"dinheiro\",\"diocese\",\"direto\",\"discreta\",\"disfarce\",\"disparo\",\"disquete\",\"dissipar\",\"distante\",\"ditador\",\"diurno\",\"diverso\",\"divisor\",\"divulgar\",\"dizer\",\"dobrador\",\"dolorido\",\"domador\",\"dominado\",\"donativo\",\"donzela\",\"dormente\",\"dorsal\",\"dosagem\",\"dourado\",\"doutor\",\"drenagem\",\"drible\",\"drogaria\",\"duelar\",\"duende\",\"dueto\",\"duplo\",\"duquesa\",\"durante\",\"duvidoso\",\"eclodir\",\"ecoar\",\"ecologia\",\"edificar\",\"edital\",\"educado\",\"efeito\",\"efetivar\",\"ejetar\",\"elaborar\",\"eleger\",\"eleitor\",\"elenco\",\"elevador\",\"eliminar\",\"elogiar\",\"embargo\",\"embolado\",\"embrulho\",\"embutido\",\"emenda\",\"emergir\",\"emissor\",\"empatia\",\"empenho\",\"empinado\",\"empolgar\",\"emprego\",\"empurrar\",\"emulador\",\"encaixe\",\"encenado\",\"enchente\",\"encontro\",\"endeusar\",\"endossar\",\"enfaixar\",\"enfeite\",\"enfim\",\"engajado\",\"engenho\",\"englobar\",\"engomado\",\"engraxar\",\"enguia\",\"enjoar\",\"enlatar\",\"enquanto\",\"enraizar\",\"enrolado\",\"enrugar\",\"ensaio\",\"enseada\",\"ensino\",\"ensopado\",\"entanto\",\"enteado\",\"entidade\",\"entortar\",\"entrada\",\"entulho\",\"envergar\",\"enviado\",\"envolver\",\"enxame\",\"enxerto\",\"enxofre\",\"enxuto\",\"epiderme\",\"equipar\",\"ereto\",\"erguido\",\"errata\",\"erva\",\"ervilha\",\"esbanjar\",\"esbelto\",\"escama\",\"escola\",\"escrita\",\"escuta\",\"esfinge\",\"esfolar\",\"esfregar\",\"esfumado\",\"esgrima\",\"esmalte\",\"espanto\",\"espelho\",\"espiga\",\"esponja\",\"espreita\",\"espumar\",\"esquerda\",\"estaca\",\"esteira\",\"esticar\",\"estofado\",\"estrela\",\"estudo\",\"esvaziar\",\"etanol\",\"etiqueta\",\"euforia\",\"europeu\",\"evacuar\",\"evaporar\",\"evasivo\",\"eventual\",\"evidente\",\"evoluir\",\"exagero\",\"exalar\",\"examinar\",\"exato\",\"exausto\",\"excesso\",\"excitar\",\"exclamar\",\"executar\",\"exemplo\",\"exibir\",\"exigente\",\"exonerar\",\"expandir\",\"expelir\",\"expirar\",\"explanar\",\"exposto\",\"expresso\",\"expulsar\",\"externo\",\"extinto\",\"extrato\",\"fabricar\",\"fabuloso\",\"faceta\",\"facial\",\"fada\",\"fadiga\",\"faixa\",\"falar\",\"falta\",\"familiar\",\"fandango\",\"fanfarra\",\"fantoche\",\"fardado\",\"farelo\",\"farinha\",\"farofa\",\"farpa\",\"fartura\",\"fatia\",\"fator\",\"favorita\",\"faxina\",\"fazenda\",\"fechado\",\"feijoada\",\"feirante\",\"felino\",\"feminino\",\"fenda\",\"feno\",\"fera\",\"feriado\",\"ferrugem\",\"ferver\",\"festejar\",\"fetal\",\"feudal\",\"fiapo\",\"fibrose\",\"ficar\",\"ficheiro\",\"figurado\",\"fileira\",\"filho\",\"filme\",\"filtrar\",\"firmeza\",\"fisgada\",\"fissura\",\"fita\",\"fivela\",\"fixador\",\"fixo\",\"flacidez\",\"flamingo\",\"flanela\",\"flechada\",\"flora\",\"flutuar\",\"fluxo\",\"focal\",\"focinho\",\"fofocar\",\"fogo\",\"foguete\",\"foice\",\"folgado\",\"folheto\",\"forjar\",\"formiga\",\"forno\",\"forte\",\"fosco\",\"fossa\",\"fragata\",\"fralda\",\"frango\",\"frasco\",\"fraterno\",\"freira\",\"frente\",\"fretar\",\"frieza\",\"friso\",\"fritura\",\"fronha\",\"frustrar\",\"fruteira\",\"fugir\",\"fulano\",\"fuligem\",\"fundar\",\"fungo\",\"funil\",\"furador\",\"furioso\",\"futebol\",\"gabarito\",\"gabinete\",\"gado\",\"gaiato\",\"gaiola\",\"gaivota\",\"galega\",\"galho\",\"galinha\",\"galocha\",\"ganhar\",\"garagem\",\"garfo\",\"gargalo\",\"garimpo\",\"garoupa\",\"garrafa\",\"gasoduto\",\"gasto\",\"gata\",\"gatilho\",\"gaveta\",\"gazela\",\"gelado\",\"geleia\",\"gelo\",\"gemada\",\"gemer\",\"gemido\",\"generoso\",\"gengiva\",\"genial\",\"genoma\",\"genro\",\"geologia\",\"gerador\",\"germinar\",\"gesso\",\"gestor\",\"ginasta\",\"gincana\",\"gingado\",\"girafa\",\"girino\",\"glacial\",\"glicose\",\"global\",\"glorioso\",\"goela\",\"goiaba\",\"golfe\",\"golpear\",\"gordura\",\"gorjeta\",\"gorro\",\"gostoso\",\"goteira\",\"governar\",\"gracejo\",\"gradual\",\"grafite\",\"gralha\",\"grampo\",\"granada\",\"gratuito\",\"graveto\",\"graxa\",\"grego\",\"grelhar\",\"greve\",\"grilo\",\"grisalho\",\"gritaria\",\"grosso\",\"grotesco\",\"grudado\",\"grunhido\",\"gruta\",\"guache\",\"guarani\",\"guaxinim\",\"guerrear\",\"guiar\",\"guincho\",\"guisado\",\"gula\",\"guloso\",\"guru\",\"habitar\",\"harmonia\",\"haste\",\"haver\",\"hectare\",\"herdar\",\"heresia\",\"hesitar\",\"hiato\",\"hibernar\",\"hidratar\",\"hiena\",\"hino\",\"hipismo\",\"hipnose\",\"hipoteca\",\"hoje\",\"holofote\",\"homem\",\"honesto\",\"honrado\",\"hormonal\",\"hospedar\",\"humorado\",\"iate\",\"ideia\",\"idoso\",\"ignorado\",\"igreja\",\"iguana\",\"ileso\",\"ilha\",\"iludido\",\"iluminar\",\"ilustrar\",\"imagem\",\"imediato\",\"imenso\",\"imersivo\",\"iminente\",\"imitador\",\"imortal\",\"impacto\",\"impedir\",\"implante\",\"impor\",\"imprensa\",\"impune\",\"imunizar\",\"inalador\",\"inapto\",\"inativo\",\"incenso\",\"inchar\",\"incidir\",\"incluir\",\"incolor\",\"indeciso\",\"indireto\",\"indutor\",\"ineficaz\",\"inerente\",\"infantil\",\"infestar\",\"infinito\",\"inflamar\",\"informal\",\"infrator\",\"ingerir\",\"inibido\",\"inicial\",\"inimigo\",\"injetar\",\"inocente\",\"inodoro\",\"inovador\",\"inox\",\"inquieto\",\"inscrito\",\"inseto\",\"insistir\",\"inspetor\",\"instalar\",\"insulto\",\"intacto\",\"integral\",\"intimar\",\"intocado\",\"intriga\",\"invasor\",\"inverno\",\"invicto\",\"invocar\",\"iogurte\",\"iraniano\",\"ironizar\",\"irreal\",\"irritado\",\"isca\",\"isento\",\"isolado\",\"isqueiro\",\"italiano\",\"janeiro\",\"jangada\",\"janta\",\"jararaca\",\"jardim\",\"jarro\",\"jasmim\",\"jato\",\"javali\",\"jazida\",\"jejum\",\"joaninha\",\"joelhada\",\"jogador\",\"joia\",\"jornal\",\"jorrar\",\"jovem\",\"juba\",\"judeu\",\"judoca\",\"juiz\",\"julgador\",\"julho\",\"jurado\",\"jurista\",\"juro\",\"justa\",\"labareda\",\"laboral\",\"lacre\",\"lactante\",\"ladrilho\",\"lagarta\",\"lagoa\",\"laje\",\"lamber\",\"lamentar\",\"laminar\",\"lampejo\",\"lanche\",\"lapidar\",\"lapso\",\"laranja\",\"lareira\",\"largura\",\"lasanha\",\"lastro\",\"lateral\",\"latido\",\"lavanda\",\"lavoura\",\"lavrador\",\"laxante\",\"lazer\",\"lealdade\",\"lebre\",\"legado\",\"legendar\",\"legista\",\"leigo\",\"leiloar\",\"leitura\",\"lembrete\",\"leme\",\"lenhador\",\"lentilha\",\"leoa\",\"lesma\",\"leste\",\"letivo\",\"letreiro\",\"levar\",\"leveza\",\"levitar\",\"liberal\",\"libido\",\"liderar\",\"ligar\",\"ligeiro\",\"limitar\",\"limoeiro\",\"limpador\",\"linda\",\"linear\",\"linhagem\",\"liquidez\",\"listagem\",\"lisura\",\"litoral\",\"livro\",\"lixa\",\"lixeira\",\"locador\",\"locutor\",\"lojista\",\"lombo\",\"lona\",\"longe\",\"lontra\",\"lorde\",\"lotado\",\"loteria\",\"loucura\",\"lousa\",\"louvar\",\"luar\",\"lucidez\",\"lucro\",\"luneta\",\"lustre\",\"lutador\",\"luva\",\"macaco\",\"macete\",\"machado\",\"macio\",\"madeira\",\"madrinha\",\"magnata\",\"magreza\",\"maior\",\"mais\",\"malandro\",\"malha\",\"malote\",\"maluco\",\"mamilo\",\"mamoeiro\",\"mamute\",\"manada\",\"mancha\",\"mandato\",\"manequim\",\"manhoso\",\"manivela\",\"manobrar\",\"mansa\",\"manter\",\"manusear\",\"mapeado\",\"maquinar\",\"marcador\",\"maresia\",\"marfim\",\"margem\",\"marinho\",\"marmita\",\"maroto\",\"marquise\",\"marreco\",\"martelo\",\"marujo\",\"mascote\",\"masmorra\",\"massagem\",\"mastigar\",\"matagal\",\"materno\",\"matinal\",\"matutar\",\"maxilar\",\"medalha\",\"medida\",\"medusa\",\"megafone\",\"meiga\",\"melancia\",\"melhor\",\"membro\",\"memorial\",\"menino\",\"menos\",\"mensagem\",\"mental\",\"merecer\",\"mergulho\",\"mesada\",\"mesclar\",\"mesmo\",\"mesquita\",\"mestre\",\"metade\",\"meteoro\",\"metragem\",\"mexer\",\"mexicano\",\"micro\",\"migalha\",\"migrar\",\"milagre\",\"milenar\",\"milhar\",\"mimado\",\"minerar\",\"minhoca\",\"ministro\",\"minoria\",\"miolo\",\"mirante\",\"mirtilo\",\"misturar\",\"mocidade\",\"moderno\",\"modular\",\"moeda\",\"moer\",\"moinho\",\"moita\",\"moldura\",\"moleza\",\"molho\",\"molinete\",\"molusco\",\"montanha\",\"moqueca\",\"morango\",\"morcego\",\"mordomo\",\"morena\",\"mosaico\",\"mosquete\",\"mostarda\",\"motel\",\"motim\",\"moto\",\"motriz\",\"muda\",\"muito\",\"mulata\",\"mulher\",\"multar\",\"mundial\",\"munido\",\"muralha\",\"murcho\",\"muscular\",\"museu\",\"musical\",\"nacional\",\"nadador\",\"naja\",\"namoro\",\"narina\",\"narrado\",\"nascer\",\"nativa\",\"natureza\",\"navalha\",\"navegar\",\"navio\",\"neblina\",\"nebuloso\",\"negativa\",\"negociar\",\"negrito\",\"nervoso\",\"neta\",\"neural\",\"nevasca\",\"nevoeiro\",\"ninar\",\"ninho\",\"nitidez\",\"nivelar\",\"nobreza\",\"noite\",\"noiva\",\"nomear\",\"nominal\",\"nordeste\",\"nortear\",\"notar\",\"noticiar\",\"noturno\",\"novelo\",\"novilho\",\"novo\",\"nublado\",\"nudez\",\"numeral\",\"nupcial\",\"nutrir\",\"nuvem\",\"obcecado\",\"obedecer\",\"objetivo\",\"obrigado\",\"obscuro\",\"obstetra\",\"obter\",\"obturar\",\"ocidente\",\"ocioso\",\"ocorrer\",\"oculista\",\"ocupado\",\"ofegante\",\"ofensiva\",\"oferenda\",\"oficina\",\"ofuscado\",\"ogiva\",\"olaria\",\"oleoso\",\"olhar\",\"oliveira\",\"ombro\",\"omelete\",\"omisso\",\"omitir\",\"ondulado\",\"oneroso\",\"ontem\",\"opcional\",\"operador\",\"oponente\",\"oportuno\",\"oposto\",\"orar\",\"orbitar\",\"ordem\",\"ordinal\",\"orfanato\",\"orgasmo\",\"orgulho\",\"oriental\",\"origem\",\"oriundo\",\"orla\",\"ortodoxo\",\"orvalho\",\"oscilar\",\"ossada\",\"osso\",\"ostentar\",\"otimismo\",\"ousadia\",\"outono\",\"outubro\",\"ouvido\",\"ovelha\",\"ovular\",\"oxidar\",\"oxigenar\",\"pacato\",\"paciente\",\"pacote\",\"pactuar\",\"padaria\",\"padrinho\",\"pagar\",\"pagode\",\"painel\",\"pairar\",\"paisagem\",\"palavra\",\"palestra\",\"palheta\",\"palito\",\"palmada\",\"palpitar\",\"pancada\",\"panela\",\"panfleto\",\"panqueca\",\"pantanal\",\"papagaio\",\"papelada\",\"papiro\",\"parafina\",\"parcial\",\"pardal\",\"parede\",\"partida\",\"pasmo\",\"passado\",\"pastel\",\"patamar\",\"patente\",\"patinar\",\"patrono\",\"paulada\",\"pausar\",\"peculiar\",\"pedalar\",\"pedestre\",\"pediatra\",\"pedra\",\"pegada\",\"peitoral\",\"peixe\",\"pele\",\"pelicano\",\"penca\",\"pendurar\",\"peneira\",\"penhasco\",\"pensador\",\"pente\",\"perceber\",\"perfeito\",\"pergunta\",\"perito\",\"permitir\",\"perna\",\"perplexo\",\"persiana\",\"pertence\",\"peruca\",\"pescado\",\"pesquisa\",\"pessoa\",\"petiscar\",\"piada\",\"picado\",\"piedade\",\"pigmento\",\"pilastra\",\"pilhado\",\"pilotar\",\"pimenta\",\"pincel\",\"pinguim\",\"pinha\",\"pinote\",\"pintar\",\"pioneiro\",\"pipoca\",\"piquete\",\"piranha\",\"pires\",\"pirueta\",\"piscar\",\"pistola\",\"pitanga\",\"pivete\",\"planta\",\"plaqueta\",\"platina\",\"plebeu\",\"plumagem\",\"pluvial\",\"pneu\",\"poda\",\"poeira\",\"poetisa\",\"polegada\",\"policiar\",\"poluente\",\"polvilho\",\"pomar\",\"pomba\",\"ponderar\",\"pontaria\",\"populoso\",\"porta\",\"possuir\",\"postal\",\"pote\",\"poupar\",\"pouso\",\"povoar\",\"praia\",\"prancha\",\"prato\",\"praxe\",\"prece\",\"predador\",\"prefeito\",\"premiar\",\"prensar\",\"preparar\",\"presilha\",\"pretexto\",\"prevenir\",\"prezar\",\"primata\",\"princesa\",\"prisma\",\"privado\",\"processo\",\"produto\",\"profeta\",\"proibido\",\"projeto\",\"prometer\",\"propagar\",\"prosa\",\"protetor\",\"provador\",\"publicar\",\"pudim\",\"pular\",\"pulmonar\",\"pulseira\",\"punhal\",\"punir\",\"pupilo\",\"pureza\",\"puxador\",\"quadra\",\"quantia\",\"quarto\",\"quase\",\"quebrar\",\"queda\",\"queijo\",\"quente\",\"querido\",\"quimono\",\"quina\",\"quiosque\",\"rabanada\",\"rabisco\",\"rachar\",\"racionar\",\"radial\",\"raiar\",\"rainha\",\"raio\",\"raiva\",\"rajada\",\"ralado\",\"ramal\",\"ranger\",\"ranhura\",\"rapadura\",\"rapel\",\"rapidez\",\"raposa\",\"raquete\",\"raridade\",\"rasante\",\"rascunho\",\"rasgar\",\"raspador\",\"rasteira\",\"rasurar\",\"ratazana\",\"ratoeira\",\"realeza\",\"reanimar\",\"reaver\",\"rebaixar\",\"rebelde\",\"rebolar\",\"recado\",\"recente\",\"recheio\",\"recibo\",\"recordar\",\"recrutar\",\"recuar\",\"rede\",\"redimir\",\"redonda\",\"reduzida\",\"reenvio\",\"refinar\",\"refletir\",\"refogar\",\"refresco\",\"refugiar\",\"regalia\",\"regime\",\"regra\",\"reinado\",\"reitor\",\"rejeitar\",\"relativo\",\"remador\",\"remendo\",\"remorso\",\"renovado\",\"reparo\",\"repelir\",\"repleto\",\"repolho\",\"represa\",\"repudiar\",\"requerer\",\"resenha\",\"resfriar\",\"resgatar\",\"residir\",\"resolver\",\"respeito\",\"ressaca\",\"restante\",\"resumir\",\"retalho\",\"reter\",\"retirar\",\"retomada\",\"retratar\",\"revelar\",\"revisor\",\"revolta\",\"riacho\",\"rica\",\"rigidez\",\"rigoroso\",\"rimar\",\"ringue\",\"risada\",\"risco\",\"risonho\",\"robalo\",\"rochedo\",\"rodada\",\"rodeio\",\"rodovia\",\"roedor\",\"roleta\",\"romano\",\"roncar\",\"rosado\",\"roseira\",\"rosto\",\"rota\",\"roteiro\",\"rotina\",\"rotular\",\"rouco\",\"roupa\",\"roxo\",\"rubro\",\"rugido\",\"rugoso\",\"ruivo\",\"rumo\",\"rupestre\",\"russo\",\"sabor\",\"saciar\",\"sacola\",\"sacudir\",\"sadio\",\"safira\",\"saga\",\"sagrada\",\"saibro\",\"salada\",\"saleiro\",\"salgado\",\"saliva\",\"salpicar\",\"salsicha\",\"saltar\",\"salvador\",\"sambar\",\"samurai\",\"sanar\",\"sanfona\",\"sangue\",\"sanidade\",\"sapato\",\"sarda\",\"sargento\",\"sarjeta\",\"saturar\",\"saudade\",\"saxofone\",\"sazonal\",\"secar\",\"secular\",\"seda\",\"sedento\",\"sediado\",\"sedoso\",\"sedutor\",\"segmento\",\"segredo\",\"segundo\",\"seiva\",\"seleto\",\"selvagem\",\"semanal\",\"semente\",\"senador\",\"senhor\",\"sensual\",\"sentado\",\"separado\",\"sereia\",\"seringa\",\"serra\",\"servo\",\"setembro\",\"setor\",\"sigilo\",\"silhueta\",\"silicone\",\"simetria\",\"simpatia\",\"simular\",\"sinal\",\"sincero\",\"singular\",\"sinopse\",\"sintonia\",\"sirene\",\"siri\",\"situado\",\"soberano\",\"sobra\",\"socorro\",\"sogro\",\"soja\",\"solda\",\"soletrar\",\"solteiro\",\"sombrio\",\"sonata\",\"sondar\",\"sonegar\",\"sonhador\",\"sono\",\"soprano\",\"soquete\",\"sorrir\",\"sorteio\",\"sossego\",\"sotaque\",\"soterrar\",\"sovado\",\"sozinho\",\"suavizar\",\"subida\",\"submerso\",\"subsolo\",\"subtrair\",\"sucata\",\"sucesso\",\"suco\",\"sudeste\",\"sufixo\",\"sugador\",\"sugerir\",\"sujeito\",\"sulfato\",\"sumir\",\"suor\",\"superior\",\"suplicar\",\"suposto\",\"suprimir\",\"surdina\",\"surfista\",\"surpresa\",\"surreal\",\"surtir\",\"suspiro\",\"sustento\",\"tabela\",\"tablete\",\"tabuada\",\"tacho\",\"tagarela\",\"talher\",\"talo\",\"talvez\",\"tamanho\",\"tamborim\",\"tampa\",\"tangente\",\"tanto\",\"tapar\",\"tapioca\",\"tardio\",\"tarefa\",\"tarja\",\"tarraxa\",\"tatuagem\",\"taurino\",\"taxativo\",\"taxista\",\"teatral\",\"tecer\",\"tecido\",\"teclado\",\"tedioso\",\"teia\",\"teimar\",\"telefone\",\"telhado\",\"tempero\",\"tenente\",\"tensor\",\"tentar\",\"termal\",\"terno\",\"terreno\",\"tese\",\"tesoura\",\"testado\",\"teto\",\"textura\",\"texugo\",\"tiara\",\"tigela\",\"tijolo\",\"timbrar\",\"timidez\",\"tingido\",\"tinteiro\",\"tiragem\",\"titular\",\"toalha\",\"tocha\",\"tolerar\",\"tolice\",\"tomada\",\"tomilho\",\"tonel\",\"tontura\",\"topete\",\"tora\",\"torcido\",\"torneio\",\"torque\",\"torrada\",\"torto\",\"tostar\",\"touca\",\"toupeira\",\"toxina\",\"trabalho\",\"tracejar\",\"tradutor\",\"trafegar\",\"trajeto\",\"trama\",\"trancar\",\"trapo\",\"traseiro\",\"tratador\",\"travar\",\"treino\",\"tremer\",\"trepidar\",\"trevo\",\"triagem\",\"tribo\",\"triciclo\",\"tridente\",\"trilogia\",\"trindade\",\"triplo\",\"triturar\",\"triunfal\",\"trocar\",\"trombeta\",\"trova\",\"trunfo\",\"truque\",\"tubular\",\"tucano\",\"tudo\",\"tulipa\",\"tupi\",\"turbo\",\"turma\",\"turquesa\",\"tutelar\",\"tutorial\",\"uivar\",\"umbigo\",\"unha\",\"unidade\",\"uniforme\",\"urologia\",\"urso\",\"urtiga\",\"urubu\",\"usado\",\"usina\",\"usufruir\",\"vacina\",\"vadiar\",\"vagaroso\",\"vaidoso\",\"vala\",\"valente\",\"validade\",\"valores\",\"vantagem\",\"vaqueiro\",\"varanda\",\"vareta\",\"varrer\",\"vascular\",\"vasilha\",\"vassoura\",\"vazar\",\"vazio\",\"veado\",\"vedar\",\"vegetar\",\"veicular\",\"veleiro\",\"velhice\",\"veludo\",\"vencedor\",\"vendaval\",\"venerar\",\"ventre\",\"verbal\",\"verdade\",\"vereador\",\"vergonha\",\"vermelho\",\"verniz\",\"versar\",\"vertente\",\"vespa\",\"vestido\",\"vetorial\",\"viaduto\",\"viagem\",\"viajar\",\"viatura\",\"vibrador\",\"videira\",\"vidraria\",\"viela\",\"viga\",\"vigente\",\"vigiar\",\"vigorar\",\"vilarejo\",\"vinco\",\"vinheta\",\"vinil\",\"violeta\",\"virada\",\"virtude\",\"visitar\",\"visto\",\"vitral\",\"viveiro\",\"vizinho\",\"voador\",\"voar\",\"vogal\",\"volante\",\"voleibol\",\"voltagem\",\"volumoso\",\"vontade\",\"vulto\",\"vuvuzela\",\"xadrez\",\"xarope\",\"xeque\",\"xeretar\",\"xerife\",\"xingar\",\"zangado\",\"zarpar\",\"zebu\",\"zelador\",\"zombar\",\"zoologia\",\"zumbido\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/portuguese.json?");

/***/ }),

/***/ "./node_modules/bip39/src/wordlists/spanish.json":
/*!*******************************************************!*\
  !*** ./node_modules/bip39/src/wordlists/spanish.json ***!
  \*******************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('[\"ábaco\",\"abdomen\",\"abeja\",\"abierto\",\"abogado\",\"abono\",\"aborto\",\"abrazo\",\"abrir\",\"abuelo\",\"abuso\",\"acabar\",\"academia\",\"acceso\",\"acción\",\"aceite\",\"acelga\",\"acento\",\"aceptar\",\"ácido\",\"aclarar\",\"acné\",\"acoger\",\"acoso\",\"activo\",\"acto\",\"actriz\",\"actuar\",\"acudir\",\"acuerdo\",\"acusar\",\"adicto\",\"admitir\",\"adoptar\",\"adorno\",\"aduana\",\"adulto\",\"aéreo\",\"afectar\",\"afición\",\"afinar\",\"afirmar\",\"ágil\",\"agitar\",\"agonía\",\"agosto\",\"agotar\",\"agregar\",\"agrio\",\"agua\",\"agudo\",\"águila\",\"aguja\",\"ahogo\",\"ahorro\",\"aire\",\"aislar\",\"ajedrez\",\"ajeno\",\"ajuste\",\"alacrán\",\"alambre\",\"alarma\",\"alba\",\"álbum\",\"alcalde\",\"aldea\",\"alegre\",\"alejar\",\"alerta\",\"aleta\",\"alfiler\",\"alga\",\"algodón\",\"aliado\",\"aliento\",\"alivio\",\"alma\",\"almeja\",\"almíbar\",\"altar\",\"alteza\",\"altivo\",\"alto\",\"altura\",\"alumno\",\"alzar\",\"amable\",\"amante\",\"amapola\",\"amargo\",\"amasar\",\"ámbar\",\"ámbito\",\"ameno\",\"amigo\",\"amistad\",\"amor\",\"amparo\",\"amplio\",\"ancho\",\"anciano\",\"ancla\",\"andar\",\"andén\",\"anemia\",\"ángulo\",\"anillo\",\"ánimo\",\"anís\",\"anotar\",\"antena\",\"antiguo\",\"antojo\",\"anual\",\"anular\",\"anuncio\",\"añadir\",\"añejo\",\"año\",\"apagar\",\"aparato\",\"apetito\",\"apio\",\"aplicar\",\"apodo\",\"aporte\",\"apoyo\",\"aprender\",\"aprobar\",\"apuesta\",\"apuro\",\"arado\",\"araña\",\"arar\",\"árbitro\",\"árbol\",\"arbusto\",\"archivo\",\"arco\",\"arder\",\"ardilla\",\"arduo\",\"área\",\"árido\",\"aries\",\"armonía\",\"arnés\",\"aroma\",\"arpa\",\"arpón\",\"arreglo\",\"arroz\",\"arruga\",\"arte\",\"artista\",\"asa\",\"asado\",\"asalto\",\"ascenso\",\"asegurar\",\"aseo\",\"asesor\",\"asiento\",\"asilo\",\"asistir\",\"asno\",\"asombro\",\"áspero\",\"astilla\",\"astro\",\"astuto\",\"asumir\",\"asunto\",\"atajo\",\"ataque\",\"atar\",\"atento\",\"ateo\",\"ático\",\"atleta\",\"átomo\",\"atraer\",\"atroz\",\"atún\",\"audaz\",\"audio\",\"auge\",\"aula\",\"aumento\",\"ausente\",\"autor\",\"aval\",\"avance\",\"avaro\",\"ave\",\"avellana\",\"avena\",\"avestruz\",\"avión\",\"aviso\",\"ayer\",\"ayuda\",\"ayuno\",\"azafrán\",\"azar\",\"azote\",\"azúcar\",\"azufre\",\"azul\",\"baba\",\"babor\",\"bache\",\"bahía\",\"baile\",\"bajar\",\"balanza\",\"balcón\",\"balde\",\"bambú\",\"banco\",\"banda\",\"baño\",\"barba\",\"barco\",\"barniz\",\"barro\",\"báscula\",\"bastón\",\"basura\",\"batalla\",\"batería\",\"batir\",\"batuta\",\"baúl\",\"bazar\",\"bebé\",\"bebida\",\"bello\",\"besar\",\"beso\",\"bestia\",\"bicho\",\"bien\",\"bingo\",\"blanco\",\"bloque\",\"blusa\",\"boa\",\"bobina\",\"bobo\",\"boca\",\"bocina\",\"boda\",\"bodega\",\"boina\",\"bola\",\"bolero\",\"bolsa\",\"bomba\",\"bondad\",\"bonito\",\"bono\",\"bonsái\",\"borde\",\"borrar\",\"bosque\",\"bote\",\"botín\",\"bóveda\",\"bozal\",\"bravo\",\"brazo\",\"brecha\",\"breve\",\"brillo\",\"brinco\",\"brisa\",\"broca\",\"broma\",\"bronce\",\"brote\",\"bruja\",\"brusco\",\"bruto\",\"buceo\",\"bucle\",\"bueno\",\"buey\",\"bufanda\",\"bufón\",\"búho\",\"buitre\",\"bulto\",\"burbuja\",\"burla\",\"burro\",\"buscar\",\"butaca\",\"buzón\",\"caballo\",\"cabeza\",\"cabina\",\"cabra\",\"cacao\",\"cadáver\",\"cadena\",\"caer\",\"café\",\"caída\",\"caimán\",\"caja\",\"cajón\",\"cal\",\"calamar\",\"calcio\",\"caldo\",\"calidad\",\"calle\",\"calma\",\"calor\",\"calvo\",\"cama\",\"cambio\",\"camello\",\"camino\",\"campo\",\"cáncer\",\"candil\",\"canela\",\"canguro\",\"canica\",\"canto\",\"caña\",\"cañón\",\"caoba\",\"caos\",\"capaz\",\"capitán\",\"capote\",\"captar\",\"capucha\",\"cara\",\"carbón\",\"cárcel\",\"careta\",\"carga\",\"cariño\",\"carne\",\"carpeta\",\"carro\",\"carta\",\"casa\",\"casco\",\"casero\",\"caspa\",\"castor\",\"catorce\",\"catre\",\"caudal\",\"causa\",\"cazo\",\"cebolla\",\"ceder\",\"cedro\",\"celda\",\"célebre\",\"celoso\",\"célula\",\"cemento\",\"ceniza\",\"centro\",\"cerca\",\"cerdo\",\"cereza\",\"cero\",\"cerrar\",\"certeza\",\"césped\",\"cetro\",\"chacal\",\"chaleco\",\"champú\",\"chancla\",\"chapa\",\"charla\",\"chico\",\"chiste\",\"chivo\",\"choque\",\"choza\",\"chuleta\",\"chupar\",\"ciclón\",\"ciego\",\"cielo\",\"cien\",\"cierto\",\"cifra\",\"cigarro\",\"cima\",\"cinco\",\"cine\",\"cinta\",\"ciprés\",\"circo\",\"ciruela\",\"cisne\",\"cita\",\"ciudad\",\"clamor\",\"clan\",\"claro\",\"clase\",\"clave\",\"cliente\",\"clima\",\"clínica\",\"cobre\",\"cocción\",\"cochino\",\"cocina\",\"coco\",\"código\",\"codo\",\"cofre\",\"coger\",\"cohete\",\"cojín\",\"cojo\",\"cola\",\"colcha\",\"colegio\",\"colgar\",\"colina\",\"collar\",\"colmo\",\"columna\",\"combate\",\"comer\",\"comida\",\"cómodo\",\"compra\",\"conde\",\"conejo\",\"conga\",\"conocer\",\"consejo\",\"contar\",\"copa\",\"copia\",\"corazón\",\"corbata\",\"corcho\",\"cordón\",\"corona\",\"correr\",\"coser\",\"cosmos\",\"costa\",\"cráneo\",\"cráter\",\"crear\",\"crecer\",\"creído\",\"crema\",\"cría\",\"crimen\",\"cripta\",\"crisis\",\"cromo\",\"crónica\",\"croqueta\",\"crudo\",\"cruz\",\"cuadro\",\"cuarto\",\"cuatro\",\"cubo\",\"cubrir\",\"cuchara\",\"cuello\",\"cuento\",\"cuerda\",\"cuesta\",\"cueva\",\"cuidar\",\"culebra\",\"culpa\",\"culto\",\"cumbre\",\"cumplir\",\"cuna\",\"cuneta\",\"cuota\",\"cupón\",\"cúpula\",\"curar\",\"curioso\",\"curso\",\"curva\",\"cutis\",\"dama\",\"danza\",\"dar\",\"dardo\",\"dátil\",\"deber\",\"débil\",\"década\",\"decir\",\"dedo\",\"defensa\",\"definir\",\"dejar\",\"delfín\",\"delgado\",\"delito\",\"demora\",\"denso\",\"dental\",\"deporte\",\"derecho\",\"derrota\",\"desayuno\",\"deseo\",\"desfile\",\"desnudo\",\"destino\",\"desvío\",\"detalle\",\"detener\",\"deuda\",\"día\",\"diablo\",\"diadema\",\"diamante\",\"diana\",\"diario\",\"dibujo\",\"dictar\",\"diente\",\"dieta\",\"diez\",\"difícil\",\"digno\",\"dilema\",\"diluir\",\"dinero\",\"directo\",\"dirigir\",\"disco\",\"diseño\",\"disfraz\",\"diva\",\"divino\",\"doble\",\"doce\",\"dolor\",\"domingo\",\"don\",\"donar\",\"dorado\",\"dormir\",\"dorso\",\"dos\",\"dosis\",\"dragón\",\"droga\",\"ducha\",\"duda\",\"duelo\",\"dueño\",\"dulce\",\"dúo\",\"duque\",\"durar\",\"dureza\",\"duro\",\"ébano\",\"ebrio\",\"echar\",\"eco\",\"ecuador\",\"edad\",\"edición\",\"edificio\",\"editor\",\"educar\",\"efecto\",\"eficaz\",\"eje\",\"ejemplo\",\"elefante\",\"elegir\",\"elemento\",\"elevar\",\"elipse\",\"élite\",\"elixir\",\"elogio\",\"eludir\",\"embudo\",\"emitir\",\"emoción\",\"empate\",\"empeño\",\"empleo\",\"empresa\",\"enano\",\"encargo\",\"enchufe\",\"encía\",\"enemigo\",\"enero\",\"enfado\",\"enfermo\",\"engaño\",\"enigma\",\"enlace\",\"enorme\",\"enredo\",\"ensayo\",\"enseñar\",\"entero\",\"entrar\",\"envase\",\"envío\",\"época\",\"equipo\",\"erizo\",\"escala\",\"escena\",\"escolar\",\"escribir\",\"escudo\",\"esencia\",\"esfera\",\"esfuerzo\",\"espada\",\"espejo\",\"espía\",\"esposa\",\"espuma\",\"esquí\",\"estar\",\"este\",\"estilo\",\"estufa\",\"etapa\",\"eterno\",\"ética\",\"etnia\",\"evadir\",\"evaluar\",\"evento\",\"evitar\",\"exacto\",\"examen\",\"exceso\",\"excusa\",\"exento\",\"exigir\",\"exilio\",\"existir\",\"éxito\",\"experto\",\"explicar\",\"exponer\",\"extremo\",\"fábrica\",\"fábula\",\"fachada\",\"fácil\",\"factor\",\"faena\",\"faja\",\"falda\",\"fallo\",\"falso\",\"faltar\",\"fama\",\"familia\",\"famoso\",\"faraón\",\"farmacia\",\"farol\",\"farsa\",\"fase\",\"fatiga\",\"fauna\",\"favor\",\"fax\",\"febrero\",\"fecha\",\"feliz\",\"feo\",\"feria\",\"feroz\",\"fértil\",\"fervor\",\"festín\",\"fiable\",\"fianza\",\"fiar\",\"fibra\",\"ficción\",\"ficha\",\"fideo\",\"fiebre\",\"fiel\",\"fiera\",\"fiesta\",\"figura\",\"fijar\",\"fijo\",\"fila\",\"filete\",\"filial\",\"filtro\",\"fin\",\"finca\",\"fingir\",\"finito\",\"firma\",\"flaco\",\"flauta\",\"flecha\",\"flor\",\"flota\",\"fluir\",\"flujo\",\"flúor\",\"fobia\",\"foca\",\"fogata\",\"fogón\",\"folio\",\"folleto\",\"fondo\",\"forma\",\"forro\",\"fortuna\",\"forzar\",\"fosa\",\"foto\",\"fracaso\",\"frágil\",\"franja\",\"frase\",\"fraude\",\"freír\",\"freno\",\"fresa\",\"frío\",\"frito\",\"fruta\",\"fuego\",\"fuente\",\"fuerza\",\"fuga\",\"fumar\",\"función\",\"funda\",\"furgón\",\"furia\",\"fusil\",\"fútbol\",\"futuro\",\"gacela\",\"gafas\",\"gaita\",\"gajo\",\"gala\",\"galería\",\"gallo\",\"gamba\",\"ganar\",\"gancho\",\"ganga\",\"ganso\",\"garaje\",\"garza\",\"gasolina\",\"gastar\",\"gato\",\"gavilán\",\"gemelo\",\"gemir\",\"gen\",\"género\",\"genio\",\"gente\",\"geranio\",\"gerente\",\"germen\",\"gesto\",\"gigante\",\"gimnasio\",\"girar\",\"giro\",\"glaciar\",\"globo\",\"gloria\",\"gol\",\"golfo\",\"goloso\",\"golpe\",\"goma\",\"gordo\",\"gorila\",\"gorra\",\"gota\",\"goteo\",\"gozar\",\"grada\",\"gráfico\",\"grano\",\"grasa\",\"gratis\",\"grave\",\"grieta\",\"grillo\",\"gripe\",\"gris\",\"grito\",\"grosor\",\"grúa\",\"grueso\",\"grumo\",\"grupo\",\"guante\",\"guapo\",\"guardia\",\"guerra\",\"guía\",\"guiño\",\"guion\",\"guiso\",\"guitarra\",\"gusano\",\"gustar\",\"haber\",\"hábil\",\"hablar\",\"hacer\",\"hacha\",\"hada\",\"hallar\",\"hamaca\",\"harina\",\"haz\",\"hazaña\",\"hebilla\",\"hebra\",\"hecho\",\"helado\",\"helio\",\"hembra\",\"herir\",\"hermano\",\"héroe\",\"hervir\",\"hielo\",\"hierro\",\"hígado\",\"higiene\",\"hijo\",\"himno\",\"historia\",\"hocico\",\"hogar\",\"hoguera\",\"hoja\",\"hombre\",\"hongo\",\"honor\",\"honra\",\"hora\",\"hormiga\",\"horno\",\"hostil\",\"hoyo\",\"hueco\",\"huelga\",\"huerta\",\"hueso\",\"huevo\",\"huida\",\"huir\",\"humano\",\"húmedo\",\"humilde\",\"humo\",\"hundir\",\"huracán\",\"hurto\",\"icono\",\"ideal\",\"idioma\",\"ídolo\",\"iglesia\",\"iglú\",\"igual\",\"ilegal\",\"ilusión\",\"imagen\",\"imán\",\"imitar\",\"impar\",\"imperio\",\"imponer\",\"impulso\",\"incapaz\",\"índice\",\"inerte\",\"infiel\",\"informe\",\"ingenio\",\"inicio\",\"inmenso\",\"inmune\",\"innato\",\"insecto\",\"instante\",\"interés\",\"íntimo\",\"intuir\",\"inútil\",\"invierno\",\"ira\",\"iris\",\"ironía\",\"isla\",\"islote\",\"jabalí\",\"jabón\",\"jamón\",\"jarabe\",\"jardín\",\"jarra\",\"jaula\",\"jazmín\",\"jefe\",\"jeringa\",\"jinete\",\"jornada\",\"joroba\",\"joven\",\"joya\",\"juerga\",\"jueves\",\"juez\",\"jugador\",\"jugo\",\"juguete\",\"juicio\",\"junco\",\"jungla\",\"junio\",\"juntar\",\"júpiter\",\"jurar\",\"justo\",\"juvenil\",\"juzgar\",\"kilo\",\"koala\",\"labio\",\"lacio\",\"lacra\",\"lado\",\"ladrón\",\"lagarto\",\"lágrima\",\"laguna\",\"laico\",\"lamer\",\"lámina\",\"lámpara\",\"lana\",\"lancha\",\"langosta\",\"lanza\",\"lápiz\",\"largo\",\"larva\",\"lástima\",\"lata\",\"látex\",\"latir\",\"laurel\",\"lavar\",\"lazo\",\"leal\",\"lección\",\"leche\",\"lector\",\"leer\",\"legión\",\"legumbre\",\"lejano\",\"lengua\",\"lento\",\"leña\",\"león\",\"leopardo\",\"lesión\",\"letal\",\"letra\",\"leve\",\"leyenda\",\"libertad\",\"libro\",\"licor\",\"líder\",\"lidiar\",\"lienzo\",\"liga\",\"ligero\",\"lima\",\"límite\",\"limón\",\"limpio\",\"lince\",\"lindo\",\"línea\",\"lingote\",\"lino\",\"linterna\",\"líquido\",\"liso\",\"lista\",\"litera\",\"litio\",\"litro\",\"llaga\",\"llama\",\"llanto\",\"llave\",\"llegar\",\"llenar\",\"llevar\",\"llorar\",\"llover\",\"lluvia\",\"lobo\",\"loción\",\"loco\",\"locura\",\"lógica\",\"logro\",\"lombriz\",\"lomo\",\"lonja\",\"lote\",\"lucha\",\"lucir\",\"lugar\",\"lujo\",\"luna\",\"lunes\",\"lupa\",\"lustro\",\"luto\",\"luz\",\"maceta\",\"macho\",\"madera\",\"madre\",\"maduro\",\"maestro\",\"mafia\",\"magia\",\"mago\",\"maíz\",\"maldad\",\"maleta\",\"malla\",\"malo\",\"mamá\",\"mambo\",\"mamut\",\"manco\",\"mando\",\"manejar\",\"manga\",\"maniquí\",\"manjar\",\"mano\",\"manso\",\"manta\",\"mañana\",\"mapa\",\"máquina\",\"mar\",\"marco\",\"marea\",\"marfil\",\"margen\",\"marido\",\"mármol\",\"marrón\",\"martes\",\"marzo\",\"masa\",\"máscara\",\"masivo\",\"matar\",\"materia\",\"matiz\",\"matriz\",\"máximo\",\"mayor\",\"mazorca\",\"mecha\",\"medalla\",\"medio\",\"médula\",\"mejilla\",\"mejor\",\"melena\",\"melón\",\"memoria\",\"menor\",\"mensaje\",\"mente\",\"menú\",\"mercado\",\"merengue\",\"mérito\",\"mes\",\"mesón\",\"meta\",\"meter\",\"método\",\"metro\",\"mezcla\",\"miedo\",\"miel\",\"miembro\",\"miga\",\"mil\",\"milagro\",\"militar\",\"millón\",\"mimo\",\"mina\",\"minero\",\"mínimo\",\"minuto\",\"miope\",\"mirar\",\"misa\",\"miseria\",\"misil\",\"mismo\",\"mitad\",\"mito\",\"mochila\",\"moción\",\"moda\",\"modelo\",\"moho\",\"mojar\",\"molde\",\"moler\",\"molino\",\"momento\",\"momia\",\"monarca\",\"moneda\",\"monja\",\"monto\",\"moño\",\"morada\",\"morder\",\"moreno\",\"morir\",\"morro\",\"morsa\",\"mortal\",\"mosca\",\"mostrar\",\"motivo\",\"mover\",\"móvil\",\"mozo\",\"mucho\",\"mudar\",\"mueble\",\"muela\",\"muerte\",\"muestra\",\"mugre\",\"mujer\",\"mula\",\"muleta\",\"multa\",\"mundo\",\"muñeca\",\"mural\",\"muro\",\"músculo\",\"museo\",\"musgo\",\"música\",\"muslo\",\"nácar\",\"nación\",\"nadar\",\"naipe\",\"naranja\",\"nariz\",\"narrar\",\"nasal\",\"natal\",\"nativo\",\"natural\",\"náusea\",\"naval\",\"nave\",\"navidad\",\"necio\",\"néctar\",\"negar\",\"negocio\",\"negro\",\"neón\",\"nervio\",\"neto\",\"neutro\",\"nevar\",\"nevera\",\"nicho\",\"nido\",\"niebla\",\"nieto\",\"niñez\",\"niño\",\"nítido\",\"nivel\",\"nobleza\",\"noche\",\"nómina\",\"noria\",\"norma\",\"norte\",\"nota\",\"noticia\",\"novato\",\"novela\",\"novio\",\"nube\",\"nuca\",\"núcleo\",\"nudillo\",\"nudo\",\"nuera\",\"nueve\",\"nuez\",\"nulo\",\"número\",\"nutria\",\"oasis\",\"obeso\",\"obispo\",\"objeto\",\"obra\",\"obrero\",\"observar\",\"obtener\",\"obvio\",\"oca\",\"ocaso\",\"océano\",\"ochenta\",\"ocho\",\"ocio\",\"ocre\",\"octavo\",\"octubre\",\"oculto\",\"ocupar\",\"ocurrir\",\"odiar\",\"odio\",\"odisea\",\"oeste\",\"ofensa\",\"oferta\",\"oficio\",\"ofrecer\",\"ogro\",\"oído\",\"oír\",\"ojo\",\"ola\",\"oleada\",\"olfato\",\"olivo\",\"olla\",\"olmo\",\"olor\",\"olvido\",\"ombligo\",\"onda\",\"onza\",\"opaco\",\"opción\",\"ópera\",\"opinar\",\"oponer\",\"optar\",\"óptica\",\"opuesto\",\"oración\",\"orador\",\"oral\",\"órbita\",\"orca\",\"orden\",\"oreja\",\"órgano\",\"orgía\",\"orgullo\",\"oriente\",\"origen\",\"orilla\",\"oro\",\"orquesta\",\"oruga\",\"osadía\",\"oscuro\",\"osezno\",\"oso\",\"ostra\",\"otoño\",\"otro\",\"oveja\",\"óvulo\",\"óxido\",\"oxígeno\",\"oyente\",\"ozono\",\"pacto\",\"padre\",\"paella\",\"página\",\"pago\",\"país\",\"pájaro\",\"palabra\",\"palco\",\"paleta\",\"pálido\",\"palma\",\"paloma\",\"palpar\",\"pan\",\"panal\",\"pánico\",\"pantera\",\"pañuelo\",\"papá\",\"papel\",\"papilla\",\"paquete\",\"parar\",\"parcela\",\"pared\",\"parir\",\"paro\",\"párpado\",\"parque\",\"párrafo\",\"parte\",\"pasar\",\"paseo\",\"pasión\",\"paso\",\"pasta\",\"pata\",\"patio\",\"patria\",\"pausa\",\"pauta\",\"pavo\",\"payaso\",\"peatón\",\"pecado\",\"pecera\",\"pecho\",\"pedal\",\"pedir\",\"pegar\",\"peine\",\"pelar\",\"peldaño\",\"pelea\",\"peligro\",\"pellejo\",\"pelo\",\"peluca\",\"pena\",\"pensar\",\"peñón\",\"peón\",\"peor\",\"pepino\",\"pequeño\",\"pera\",\"percha\",\"perder\",\"pereza\",\"perfil\",\"perico\",\"perla\",\"permiso\",\"perro\",\"persona\",\"pesa\",\"pesca\",\"pésimo\",\"pestaña\",\"pétalo\",\"petróleo\",\"pez\",\"pezuña\",\"picar\",\"pichón\",\"pie\",\"piedra\",\"pierna\",\"pieza\",\"pijama\",\"pilar\",\"piloto\",\"pimienta\",\"pino\",\"pintor\",\"pinza\",\"piña\",\"piojo\",\"pipa\",\"pirata\",\"pisar\",\"piscina\",\"piso\",\"pista\",\"pitón\",\"pizca\",\"placa\",\"plan\",\"plata\",\"playa\",\"plaza\",\"pleito\",\"pleno\",\"plomo\",\"pluma\",\"plural\",\"pobre\",\"poco\",\"poder\",\"podio\",\"poema\",\"poesía\",\"poeta\",\"polen\",\"policía\",\"pollo\",\"polvo\",\"pomada\",\"pomelo\",\"pomo\",\"pompa\",\"poner\",\"porción\",\"portal\",\"posada\",\"poseer\",\"posible\",\"poste\",\"potencia\",\"potro\",\"pozo\",\"prado\",\"precoz\",\"pregunta\",\"premio\",\"prensa\",\"preso\",\"previo\",\"primo\",\"príncipe\",\"prisión\",\"privar\",\"proa\",\"probar\",\"proceso\",\"producto\",\"proeza\",\"profesor\",\"programa\",\"prole\",\"promesa\",\"pronto\",\"propio\",\"próximo\",\"prueba\",\"público\",\"puchero\",\"pudor\",\"pueblo\",\"puerta\",\"puesto\",\"pulga\",\"pulir\",\"pulmón\",\"pulpo\",\"pulso\",\"puma\",\"punto\",\"puñal\",\"puño\",\"pupa\",\"pupila\",\"puré\",\"quedar\",\"queja\",\"quemar\",\"querer\",\"queso\",\"quieto\",\"química\",\"quince\",\"quitar\",\"rábano\",\"rabia\",\"rabo\",\"ración\",\"radical\",\"raíz\",\"rama\",\"rampa\",\"rancho\",\"rango\",\"rapaz\",\"rápido\",\"rapto\",\"rasgo\",\"raspa\",\"rato\",\"rayo\",\"raza\",\"razón\",\"reacción\",\"realidad\",\"rebaño\",\"rebote\",\"recaer\",\"receta\",\"rechazo\",\"recoger\",\"recreo\",\"recto\",\"recurso\",\"red\",\"redondo\",\"reducir\",\"reflejo\",\"reforma\",\"refrán\",\"refugio\",\"regalo\",\"regir\",\"regla\",\"regreso\",\"rehén\",\"reino\",\"reír\",\"reja\",\"relato\",\"relevo\",\"relieve\",\"relleno\",\"reloj\",\"remar\",\"remedio\",\"remo\",\"rencor\",\"rendir\",\"renta\",\"reparto\",\"repetir\",\"reposo\",\"reptil\",\"res\",\"rescate\",\"resina\",\"respeto\",\"resto\",\"resumen\",\"retiro\",\"retorno\",\"retrato\",\"reunir\",\"revés\",\"revista\",\"rey\",\"rezar\",\"rico\",\"riego\",\"rienda\",\"riesgo\",\"rifa\",\"rígido\",\"rigor\",\"rincón\",\"riñón\",\"río\",\"riqueza\",\"risa\",\"ritmo\",\"rito\",\"rizo\",\"roble\",\"roce\",\"rociar\",\"rodar\",\"rodeo\",\"rodilla\",\"roer\",\"rojizo\",\"rojo\",\"romero\",\"romper\",\"ron\",\"ronco\",\"ronda\",\"ropa\",\"ropero\",\"rosa\",\"rosca\",\"rostro\",\"rotar\",\"rubí\",\"rubor\",\"rudo\",\"rueda\",\"rugir\",\"ruido\",\"ruina\",\"ruleta\",\"rulo\",\"rumbo\",\"rumor\",\"ruptura\",\"ruta\",\"rutina\",\"sábado\",\"saber\",\"sabio\",\"sable\",\"sacar\",\"sagaz\",\"sagrado\",\"sala\",\"saldo\",\"salero\",\"salir\",\"salmón\",\"salón\",\"salsa\",\"salto\",\"salud\",\"salvar\",\"samba\",\"sanción\",\"sandía\",\"sanear\",\"sangre\",\"sanidad\",\"sano\",\"santo\",\"sapo\",\"saque\",\"sardina\",\"sartén\",\"sastre\",\"satán\",\"sauna\",\"saxofón\",\"sección\",\"seco\",\"secreto\",\"secta\",\"sed\",\"seguir\",\"seis\",\"sello\",\"selva\",\"semana\",\"semilla\",\"senda\",\"sensor\",\"señal\",\"señor\",\"separar\",\"sepia\",\"sequía\",\"ser\",\"serie\",\"sermón\",\"servir\",\"sesenta\",\"sesión\",\"seta\",\"setenta\",\"severo\",\"sexo\",\"sexto\",\"sidra\",\"siesta\",\"siete\",\"siglo\",\"signo\",\"sílaba\",\"silbar\",\"silencio\",\"silla\",\"símbolo\",\"simio\",\"sirena\",\"sistema\",\"sitio\",\"situar\",\"sobre\",\"socio\",\"sodio\",\"sol\",\"solapa\",\"soldado\",\"soledad\",\"sólido\",\"soltar\",\"solución\",\"sombra\",\"sondeo\",\"sonido\",\"sonoro\",\"sonrisa\",\"sopa\",\"soplar\",\"soporte\",\"sordo\",\"sorpresa\",\"sorteo\",\"sostén\",\"sótano\",\"suave\",\"subir\",\"suceso\",\"sudor\",\"suegra\",\"suelo\",\"sueño\",\"suerte\",\"sufrir\",\"sujeto\",\"sultán\",\"sumar\",\"superar\",\"suplir\",\"suponer\",\"supremo\",\"sur\",\"surco\",\"sureño\",\"surgir\",\"susto\",\"sutil\",\"tabaco\",\"tabique\",\"tabla\",\"tabú\",\"taco\",\"tacto\",\"tajo\",\"talar\",\"talco\",\"talento\",\"talla\",\"talón\",\"tamaño\",\"tambor\",\"tango\",\"tanque\",\"tapa\",\"tapete\",\"tapia\",\"tapón\",\"taquilla\",\"tarde\",\"tarea\",\"tarifa\",\"tarjeta\",\"tarot\",\"tarro\",\"tarta\",\"tatuaje\",\"tauro\",\"taza\",\"tazón\",\"teatro\",\"techo\",\"tecla\",\"técnica\",\"tejado\",\"tejer\",\"tejido\",\"tela\",\"teléfono\",\"tema\",\"temor\",\"templo\",\"tenaz\",\"tender\",\"tener\",\"tenis\",\"tenso\",\"teoría\",\"terapia\",\"terco\",\"término\",\"ternura\",\"terror\",\"tesis\",\"tesoro\",\"testigo\",\"tetera\",\"texto\",\"tez\",\"tibio\",\"tiburón\",\"tiempo\",\"tienda\",\"tierra\",\"tieso\",\"tigre\",\"tijera\",\"tilde\",\"timbre\",\"tímido\",\"timo\",\"tinta\",\"tío\",\"típico\",\"tipo\",\"tira\",\"tirón\",\"titán\",\"títere\",\"título\",\"tiza\",\"toalla\",\"tobillo\",\"tocar\",\"tocino\",\"todo\",\"toga\",\"toldo\",\"tomar\",\"tono\",\"tonto\",\"topar\",\"tope\",\"toque\",\"tórax\",\"torero\",\"tormenta\",\"torneo\",\"toro\",\"torpedo\",\"torre\",\"torso\",\"tortuga\",\"tos\",\"tosco\",\"toser\",\"tóxico\",\"trabajo\",\"tractor\",\"traer\",\"tráfico\",\"trago\",\"traje\",\"tramo\",\"trance\",\"trato\",\"trauma\",\"trazar\",\"trébol\",\"tregua\",\"treinta\",\"tren\",\"trepar\",\"tres\",\"tribu\",\"trigo\",\"tripa\",\"triste\",\"triunfo\",\"trofeo\",\"trompa\",\"tronco\",\"tropa\",\"trote\",\"trozo\",\"truco\",\"trueno\",\"trufa\",\"tubería\",\"tubo\",\"tuerto\",\"tumba\",\"tumor\",\"túnel\",\"túnica\",\"turbina\",\"turismo\",\"turno\",\"tutor\",\"ubicar\",\"úlcera\",\"umbral\",\"unidad\",\"unir\",\"universo\",\"uno\",\"untar\",\"uña\",\"urbano\",\"urbe\",\"urgente\",\"urna\",\"usar\",\"usuario\",\"útil\",\"utopía\",\"uva\",\"vaca\",\"vacío\",\"vacuna\",\"vagar\",\"vago\",\"vaina\",\"vajilla\",\"vale\",\"válido\",\"valle\",\"valor\",\"válvula\",\"vampiro\",\"vara\",\"variar\",\"varón\",\"vaso\",\"vecino\",\"vector\",\"vehículo\",\"veinte\",\"vejez\",\"vela\",\"velero\",\"veloz\",\"vena\",\"vencer\",\"venda\",\"veneno\",\"vengar\",\"venir\",\"venta\",\"venus\",\"ver\",\"verano\",\"verbo\",\"verde\",\"vereda\",\"verja\",\"verso\",\"verter\",\"vía\",\"viaje\",\"vibrar\",\"vicio\",\"víctima\",\"vida\",\"vídeo\",\"vidrio\",\"viejo\",\"viernes\",\"vigor\",\"vil\",\"villa\",\"vinagre\",\"vino\",\"viñedo\",\"violín\",\"viral\",\"virgo\",\"virtud\",\"visor\",\"víspera\",\"vista\",\"vitamina\",\"viudo\",\"vivaz\",\"vivero\",\"vivir\",\"vivo\",\"volcán\",\"volumen\",\"volver\",\"voraz\",\"votar\",\"voto\",\"voz\",\"vuelo\",\"vulgar\",\"yacer\",\"yate\",\"yegua\",\"yema\",\"yerno\",\"yeso\",\"yodo\",\"yoga\",\"yogur\",\"zafiro\",\"zanja\",\"zapato\",\"zarza\",\"zona\",\"zorro\",\"zumo\",\"zurdo\"]');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bip39/src/wordlists/spanish.json?");

/***/ }),

/***/ "./node_modules/blake2b-wasm/blake2b.js":
/*!**********************************************!*\
  !*** ./node_modules/blake2b-wasm/blake2b.js ***!
  \**********************************************/
/***/ ((module) => {

eval("var __commonJS = (cb, mod) => function __require() {\n  return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __toBinary = /* @__PURE__ */ (() => {\n  var table = new Uint8Array(128);\n  for (var i = 0; i < 64; i++)\n    table[i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i * 4 - 205] = i;\n  return (base64) => {\n    var n = base64.length, bytes2 = new Uint8Array((n - (base64[n - 1] == \"=\") - (base64[n - 2] == \"=\")) * 3 / 4 | 0);\n    for (var i2 = 0, j = 0; i2 < n; ) {\n      var c0 = table[base64.charCodeAt(i2++)], c1 = table[base64.charCodeAt(i2++)];\n      var c2 = table[base64.charCodeAt(i2++)], c3 = table[base64.charCodeAt(i2++)];\n      bytes2[j++] = c0 << 2 | c1 >> 4;\n      bytes2[j++] = c1 << 4 | c2 >> 2;\n      bytes2[j++] = c2 << 6 | c3;\n    }\n    return bytes2;\n  };\n})();\n\n// wasm-binary:./blake2b.wat\nvar require_blake2b = __commonJS({\n  \"wasm-binary:./blake2b.wat\"(exports2, module2) {\n    module2.exports = __toBinary(\" \");\n  }\n});\n\n// wasm-module:./blake2b.wat\nvar bytes = require_blake2b();\nvar compiled = WebAssembly.compile(bytes);\nmodule.exports = async (imports) => {\n  const instance = await WebAssembly.instantiate(await compiled, imports);\n  return instance.exports;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blake2b-wasm/blake2b.js?");

/***/ }),

/***/ "./node_modules/blake2b-wasm/index.js":
/*!********************************************!*\
  !*** ./node_modules/blake2b-wasm/index.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assert = __webpack_require__(/*! nanoassert */ \"./node_modules/nanoassert/index.js\")\nvar b4a = __webpack_require__(/*! b4a */ \"./node_modules/b4a/browser.js\")\n\nvar wasm = null\nvar wasmPromise = typeof WebAssembly !== \"undefined\" && __webpack_require__(/*! ./blake2b */ \"./node_modules/blake2b-wasm/blake2b.js\")().then(mod => {\n  wasm = mod\n})\n\nvar head = 64\nvar freeList = []\n\nmodule.exports = Blake2b\nvar BYTES_MIN = module.exports.BYTES_MIN = 16\nvar BYTES_MAX = module.exports.BYTES_MAX = 64\nvar BYTES = module.exports.BYTES = 32\nvar KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16\nvar KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64\nvar KEYBYTES = module.exports.KEYBYTES = 32\nvar SALTBYTES = module.exports.SALTBYTES = 16\nvar PERSONALBYTES = module.exports.PERSONALBYTES = 16\n\nfunction Blake2b (digestLength, key, salt, personal, noAssert) {\n  if (!(this instanceof Blake2b)) return new Blake2b(digestLength, key, salt, personal, noAssert)\n  if (!wasm) throw new Error('WASM not loaded. Wait for Blake2b.ready(cb)')\n  if (!digestLength) digestLength = 32\n\n  if (noAssert !== true) {\n    assert(digestLength >= BYTES_MIN, 'digestLength must be at least ' + BYTES_MIN + ', was given ' + digestLength)\n    assert(digestLength <= BYTES_MAX, 'digestLength must be at most ' + BYTES_MAX + ', was given ' + digestLength)\n    if (key != null) {\n      assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer')\n      assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length)\n      assert(key.length <= KEYBYTES_MAX, 'key must be at least ' + KEYBYTES_MAX + ', was given ' + key.length)\n    }\n    if (salt != null) {\n      assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer')\n      assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length)\n    }\n    if (personal != null) {\n      assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer')\n      assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length)\n    }\n  }\n\n  if (!freeList.length) {\n    freeList.push(head)\n    head += 216\n  }\n\n  this.digestLength = digestLength\n  this.finalized = false\n  this.pointer = freeList.pop()\n  this._memory = new Uint8Array(wasm.memory.buffer)\n\n  this._memory.fill(0, 0, 64)\n  this._memory[0] = this.digestLength\n  this._memory[1] = key ? key.length : 0\n  this._memory[2] = 1 // fanout\n  this._memory[3] = 1 // depth\n\n  if (salt) this._memory.set(salt, 32)\n  if (personal) this._memory.set(personal, 48)\n\n  if (this.pointer + 216 > this._memory.length) this._realloc(this.pointer + 216) // we need 216 bytes for the state\n  wasm.blake2b_init(this.pointer, this.digestLength)\n\n  if (key) {\n    this.update(key)\n    this._memory.fill(0, head, head + key.length) // whiteout key\n    this._memory[this.pointer + 200] = 128\n  }\n}\n\nBlake2b.prototype._realloc = function (size) {\n  wasm.memory.grow(Math.max(0, Math.ceil(Math.abs(size - this._memory.length) / 65536)))\n  this._memory = new Uint8Array(wasm.memory.buffer)\n}\n\nBlake2b.prototype.update = function (input) {\n  assert(this.finalized === false, 'Hash instance finalized')\n  assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer')\n\n  if (head + input.length > this._memory.length) this._realloc(head + input.length)\n  this._memory.set(input, head)\n  wasm.blake2b_update(this.pointer, head, head + input.length)\n  return this\n}\n\nBlake2b.prototype.digest = function (enc) {\n  assert(this.finalized === false, 'Hash instance finalized')\n  this.finalized = true\n\n  freeList.push(this.pointer)\n  wasm.blake2b_final(this.pointer)\n\n  if (!enc || enc === 'binary') {\n    return this._memory.slice(this.pointer + 128, this.pointer + 128 + this.digestLength)\n  }\n\n  if (typeof enc === 'string') {\n    return b4a.toString(this._memory, enc, this.pointer + 128, this.pointer + 128 + this.digestLength)\n  }\n\n  assert(enc instanceof Uint8Array && enc.length >= this.digestLength, 'input must be Uint8Array or Buffer')\n  for (var i = 0; i < this.digestLength; i++) {\n    enc[i] = this._memory[this.pointer + 128 + i]\n  }\n\n  return enc\n}\n\n// libsodium compat\nBlake2b.prototype.final = Blake2b.prototype.digest\n\nBlake2b.WASM = wasm\nBlake2b.SUPPORTED = typeof WebAssembly !== 'undefined'\n\nBlake2b.ready = function (cb) {\n  if (!cb) cb = noop\n  if (!wasmPromise) return cb(new Error('WebAssembly not supported'))\n  return wasmPromise.then(() => cb(), cb)\n}\n\nBlake2b.prototype.ready = Blake2b.ready\n\nBlake2b.prototype.getPartialHash = function () {\n  return this._memory.slice(this.pointer, this.pointer + 216);\n}\n\nBlake2b.prototype.setPartialHash = function (ph) {\n  this._memory.set(ph, this.pointer);\n}\n\nfunction noop () {}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blake2b-wasm/index.js?");

/***/ }),

/***/ "./node_modules/blake2b/index.js":
/*!***************************************!*\
  !*** ./node_modules/blake2b/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assert = __webpack_require__(/*! nanoassert */ \"./node_modules/nanoassert/index.js\")\nvar b2wasm = __webpack_require__(/*! blake2b-wasm */ \"./node_modules/blake2b-wasm/index.js\")\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n  var o0 = v[a] + v[b]\n  var o1 = v[a + 1] + v[b + 1]\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n  var o0 = v[a] + b0\n  if (b0 < 0) {\n    o0 += 0x100000000\n  }\n  var o1 = v[a + 1] + b1\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n  return (arr[i] ^\n  (arr[i + 1] << 8) ^\n  (arr[i + 2] << 16) ^\n  (arr[i + 3] << 24))\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n  var x0 = m[ix]\n  var x1 = m[ix + 1]\n  var y0 = m[iy]\n  var y1 = m[iy + 1]\n\n  ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n  ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n  var xor0 = v[d] ^ v[a]\n  var xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = xor1\n  v[d + 1] = xor0\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n  v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n  ADD64AA(v, a, b)\n  ADD64AC(v, a, y0, y1)\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n  xor0 = v[d] ^ v[a]\n  xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n  v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n  v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nvar BLAKE2B_IV32 = new Uint32Array([\n  0xF3BCC908, 0x6A09E667, 0x84CAA73B, 0xBB67AE85,\n  0xFE94F82B, 0x3C6EF372, 0x5F1D36F1, 0xA54FF53A,\n  0xADE682D1, 0x510E527F, 0x2B3E6C1F, 0x9B05688C,\n  0xFB41BD6B, 0x1F83D9AB, 0x137E2179, 0x5BE0CD19\n])\n\nvar SIGMA8 = [\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,\n  11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,\n  7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,\n  9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,\n  2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,\n  12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,\n  13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,\n  6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,\n  10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nvar SIGMA82 = new Uint8Array(SIGMA8.map(function (x) { return x * 2 }))\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nvar v = new Uint32Array(32)\nvar m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n  var i = 0\n\n  // init work variables\n  for (i = 0; i < 16; i++) {\n    v[i] = ctx.h[i]\n    v[i + 16] = BLAKE2B_IV32[i]\n  }\n\n  // low 64 bits of offset\n  v[24] = v[24] ^ ctx.t\n  v[25] = v[25] ^ (ctx.t / 0x100000000)\n  // high 64 bits not supported, offset may not be higher than 2**53-1\n\n  // last block flag set ?\n  if (last) {\n    v[28] = ~v[28]\n    v[29] = ~v[29]\n  }\n\n  // get little-endian words\n  for (i = 0; i < 32; i++) {\n    m[i] = B2B_GET32(ctx.b, 4 * i)\n  }\n\n  // twelve rounds of mixing\n  for (i = 0; i < 12; i++) {\n    B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n    B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n    B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n    B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n    B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n    B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n    B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n    B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n  }\n\n  for (i = 0; i < 16; i++) {\n    ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n  }\n}\n\n// reusable parameter_block\nvar parameter_block = new Uint8Array([\n  0, 0, 0, 0,      //  0: outlen, keylen, fanout, depth\n  0, 0, 0, 0,      //  4: leaf length, sequential mode\n  0, 0, 0, 0,      //  8: node offset\n  0, 0, 0, 0,      // 12: node offset\n  0, 0, 0, 0,      // 16: node depth, inner length, rfu\n  0, 0, 0, 0,      // 20: rfu\n  0, 0, 0, 0,      // 24: rfu\n  0, 0, 0, 0,      // 28: rfu\n  0, 0, 0, 0,      // 32: salt\n  0, 0, 0, 0,      // 36: salt\n  0, 0, 0, 0,      // 40: salt\n  0, 0, 0, 0,      // 44: salt\n  0, 0, 0, 0,      // 48: personal\n  0, 0, 0, 0,      // 52: personal\n  0, 0, 0, 0,      // 56: personal\n  0, 0, 0, 0       // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\nfunction Blake2b (outlen, key, salt, personal) {\n  // zero out parameter_block before usage\n  parameter_block.fill(0)\n  // state, 'param block'\n\n  this.b = new Uint8Array(128)\n  this.h = new Uint32Array(16)\n  this.t = 0 // input count\n  this.c = 0 // pointer within buffer\n  this.outlen = outlen // output length in bytes\n\n  parameter_block[0] = outlen\n  if (key) parameter_block[1] = key.length\n  parameter_block[2] = 1 // fanout\n  parameter_block[3] = 1 // depth\n\n  if (salt) parameter_block.set(salt, 32)\n  if (personal) parameter_block.set(personal, 48)\n\n  // initialize hash state\n  for (var i = 0; i < 16; i++) {\n    this.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameter_block, i * 4)\n  }\n\n  // key the hash, if applicable\n  if (key) {\n    blake2bUpdate(this, key)\n    // at the end\n    this.c = 128\n  }\n}\n\nBlake2b.prototype.update = function (input) {\n  assert(input instanceof Uint8Array, 'input must be Uint8Array or Buffer')\n  blake2bUpdate(this, input)\n  return this\n}\n\nBlake2b.prototype.digest = function (out) {\n  var buf = (!out || out === 'binary' || out === 'hex') ? new Uint8Array(this.outlen) : out\n  assert(buf instanceof Uint8Array, 'out must be \"binary\", \"hex\", Uint8Array, or Buffer')\n  assert(buf.length >= this.outlen, 'out must have at least outlen bytes of space')\n  blake2bFinal(this, buf)\n  if (out === 'hex') return hexSlice(buf)\n  return buf\n}\n\nBlake2b.prototype.final = Blake2b.prototype.digest\n\nBlake2b.ready = function (cb) {\n  b2wasm.ready(function () {\n    cb() // ignore the error\n  })\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n  for (var i = 0; i < input.length; i++) {\n    if (ctx.c === 128) { // buffer full ?\n      ctx.t += ctx.c // add counters\n      blake2bCompress(ctx, false) // compress (not last)\n      ctx.c = 0 // counter to zero\n    }\n    ctx.b[ctx.c++] = input[i]\n  }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx, out) {\n  ctx.t += ctx.c // mark last block offset\n\n  while (ctx.c < 128) { // fill up with zeros\n    ctx.b[ctx.c++] = 0\n  }\n  blake2bCompress(ctx, true) // final block flag = 1\n\n  for (var i = 0; i < ctx.outlen; i++) {\n    out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n  }\n  return out\n}\n\nfunction hexSlice (buf) {\n  var str = ''\n  for (var i = 0; i < buf.length; i++) str += toHex(buf[i])\n  return str\n}\n\nfunction toHex (n) {\n  if (n < 16) return '0' + n.toString(16)\n  return n.toString(16)\n}\n\nvar Proto = Blake2b\n\nmodule.exports = function createHash (outlen, key, salt, personal, noAssert) {\n  if (noAssert !== true) {\n    assert(outlen >= BYTES_MIN, 'outlen must be at least ' + BYTES_MIN + ', was given ' + outlen)\n    assert(outlen <= BYTES_MAX, 'outlen must be at most ' + BYTES_MAX + ', was given ' + outlen)\n    if (key != null) {\n      assert(key instanceof Uint8Array, 'key must be Uint8Array or Buffer')\n      assert(key.length >= KEYBYTES_MIN, 'key must be at least ' + KEYBYTES_MIN + ', was given ' + key.length)\n      assert(key.length <= KEYBYTES_MAX, 'key must be at most ' + KEYBYTES_MAX + ', was given ' + key.length)\n    }\n    if (salt != null) {\n      assert(salt instanceof Uint8Array, 'salt must be Uint8Array or Buffer')\n      assert(salt.length === SALTBYTES, 'salt must be exactly ' + SALTBYTES + ', was given ' + salt.length)\n    }\n    if (personal != null) {\n      assert(personal instanceof Uint8Array, 'personal must be Uint8Array or Buffer')\n      assert(personal.length === PERSONALBYTES, 'personal must be exactly ' + PERSONALBYTES + ', was given ' + personal.length)\n    }\n  }\n\n  return new Proto(outlen, key, salt, personal)\n}\n\nmodule.exports.ready = function (cb) {\n  b2wasm.ready(function () { // ignore errors\n    cb()\n  })\n}\n\nmodule.exports.WASM_SUPPORTED = b2wasm.SUPPORTED\nmodule.exports.WASM_LOADED = false\n\nvar BYTES_MIN = module.exports.BYTES_MIN = 16\nvar BYTES_MAX = module.exports.BYTES_MAX = 64\nvar BYTES = module.exports.BYTES = 32\nvar KEYBYTES_MIN = module.exports.KEYBYTES_MIN = 16\nvar KEYBYTES_MAX = module.exports.KEYBYTES_MAX = 64\nvar KEYBYTES = module.exports.KEYBYTES = 32\nvar SALTBYTES = module.exports.SALTBYTES = 16\nvar PERSONALBYTES = module.exports.PERSONALBYTES = 16\n\nb2wasm.ready(function (err) {\n  if (!err) {\n    module.exports.WASM_LOADED = true\n    module.exports = b2wasm\n  }\n})\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blake2b/index.js?");

/***/ }),

/***/ "./node_modules/blakejs/blake2b.js":
/*!*****************************************!*\
  !*** ./node_modules/blakejs/blake2b.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// Blake2B in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = __webpack_require__(/*! ./util */ \"./node_modules/blakejs/util.js\")\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += v[b,b+1]\n// v should be a Uint32Array\nfunction ADD64AA (v, a, b) {\n  const o0 = v[a] + v[b]\n  let o1 = v[a + 1] + v[b + 1]\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// 64-bit unsigned addition\n// Sets v[a,a+1] += b\n// b0 is the low 32 bits of b, b1 represents the high 32 bits\nfunction ADD64AC (v, a, b0, b1) {\n  let o0 = v[a] + b0\n  if (b0 < 0) {\n    o0 += 0x100000000\n  }\n  let o1 = v[a + 1] + b1\n  if (o0 >= 0x100000000) {\n    o1++\n  }\n  v[a] = o0\n  v[a + 1] = o1\n}\n\n// Little-endian byte access\nfunction B2B_GET32 (arr, i) {\n  return arr[i] ^ (arr[i + 1] << 8) ^ (arr[i + 2] << 16) ^ (arr[i + 3] << 24)\n}\n\n// G Mixing function\n// The ROTRs are inlined for speed\nfunction B2B_G (a, b, c, d, ix, iy) {\n  const x0 = m[ix]\n  const x1 = m[ix + 1]\n  const y0 = m[iy]\n  const y1 = m[iy + 1]\n\n  ADD64AA(v, a, b) // v[a,a+1] += v[b,b+1] ... in JS we must store a uint64 as two uint32s\n  ADD64AC(v, a, x0, x1) // v[a, a+1] += x ... x0 is the low 32 bits of x, x1 is the high 32 bits\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated to the right by 32 bits\n  let xor0 = v[d] ^ v[a]\n  let xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = xor1\n  v[d + 1] = xor0\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 24 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor0 >>> 24) ^ (xor1 << 8)\n  v[b + 1] = (xor1 >>> 24) ^ (xor0 << 8)\n\n  ADD64AA(v, a, b)\n  ADD64AC(v, a, y0, y1)\n\n  // v[d,d+1] = (v[d,d+1] xor v[a,a+1]) rotated right by 16 bits\n  xor0 = v[d] ^ v[a]\n  xor1 = v[d + 1] ^ v[a + 1]\n  v[d] = (xor0 >>> 16) ^ (xor1 << 16)\n  v[d + 1] = (xor1 >>> 16) ^ (xor0 << 16)\n\n  ADD64AA(v, c, d)\n\n  // v[b,b+1] = (v[b,b+1] xor v[c,c+1]) rotated right by 63 bits\n  xor0 = v[b] ^ v[c]\n  xor1 = v[b + 1] ^ v[c + 1]\n  v[b] = (xor1 >>> 31) ^ (xor0 << 1)\n  v[b + 1] = (xor0 >>> 31) ^ (xor1 << 1)\n}\n\n// Initialization Vector\nconst BLAKE2B_IV32 = new Uint32Array([\n  0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372,\n  0x5f1d36f1, 0xa54ff53a, 0xade682d1, 0x510e527f, 0x2b3e6c1f, 0x9b05688c,\n  0xfb41bd6b, 0x1f83d9ab, 0x137e2179, 0x5be0cd19\n])\n\nconst SIGMA8 = [\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13,\n  6, 1, 12, 0, 2, 11, 7, 5, 3, 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1,\n  9, 4, 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8, 9, 0, 5, 7, 2, 4,\n  10, 15, 14, 1, 11, 12, 6, 8, 3, 13, 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5,\n  15, 14, 1, 9, 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11, 13, 11, 7,\n  14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10, 6, 15, 14, 9, 11, 3, 0, 8, 12, 2,\n  13, 7, 1, 4, 10, 5, 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0, 0,\n  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 14, 10, 4, 8, 9, 15, 13, 6,\n  1, 12, 0, 2, 11, 7, 5, 3\n]\n\n// These are offsets into a uint64 buffer.\n// Multiply them all by 2 to make them offsets into a uint32 buffer,\n// because this is Javascript and we don't have uint64s\nconst SIGMA82 = new Uint8Array(\n  SIGMA8.map(function (x) {\n    return x * 2\n  })\n)\n\n// Compression function. 'last' flag indicates last block.\n// Note we're representing 16 uint64s as 32 uint32s\nconst v = new Uint32Array(32)\nconst m = new Uint32Array(32)\nfunction blake2bCompress (ctx, last) {\n  let i = 0\n\n  // init work variables\n  for (i = 0; i < 16; i++) {\n    v[i] = ctx.h[i]\n    v[i + 16] = BLAKE2B_IV32[i]\n  }\n\n  // low 64 bits of offset\n  v[24] = v[24] ^ ctx.t\n  v[25] = v[25] ^ (ctx.t / 0x100000000)\n  // high 64 bits not supported, offset may not be higher than 2**53-1\n\n  // last block flag set ?\n  if (last) {\n    v[28] = ~v[28]\n    v[29] = ~v[29]\n  }\n\n  // get little-endian words\n  for (i = 0; i < 32; i++) {\n    m[i] = B2B_GET32(ctx.b, 4 * i)\n  }\n\n  // twelve rounds of mixing\n  // uncomment the DebugPrint calls to log the computation\n  // and match the RFC sample documentation\n  // util.debugPrint('          m[16]', m, 64)\n  for (i = 0; i < 12; i++) {\n    // util.debugPrint('   (i=' + (i < 10 ? ' ' : '') + i + ') v[16]', v, 64)\n    B2B_G(0, 8, 16, 24, SIGMA82[i * 16 + 0], SIGMA82[i * 16 + 1])\n    B2B_G(2, 10, 18, 26, SIGMA82[i * 16 + 2], SIGMA82[i * 16 + 3])\n    B2B_G(4, 12, 20, 28, SIGMA82[i * 16 + 4], SIGMA82[i * 16 + 5])\n    B2B_G(6, 14, 22, 30, SIGMA82[i * 16 + 6], SIGMA82[i * 16 + 7])\n    B2B_G(0, 10, 20, 30, SIGMA82[i * 16 + 8], SIGMA82[i * 16 + 9])\n    B2B_G(2, 12, 22, 24, SIGMA82[i * 16 + 10], SIGMA82[i * 16 + 11])\n    B2B_G(4, 14, 16, 26, SIGMA82[i * 16 + 12], SIGMA82[i * 16 + 13])\n    B2B_G(6, 8, 18, 28, SIGMA82[i * 16 + 14], SIGMA82[i * 16 + 15])\n  }\n  // util.debugPrint('   (i=12) v[16]', v, 64)\n\n  for (i = 0; i < 16; i++) {\n    ctx.h[i] = ctx.h[i] ^ v[i] ^ v[i + 16]\n  }\n  // util.debugPrint('h[8]', ctx.h, 64)\n}\n\n// reusable parameterBlock\nconst parameterBlock = new Uint8Array([\n  0,\n  0,\n  0,\n  0, //  0: outlen, keylen, fanout, depth\n  0,\n  0,\n  0,\n  0, //  4: leaf length, sequential mode\n  0,\n  0,\n  0,\n  0, //  8: node offset\n  0,\n  0,\n  0,\n  0, // 12: node offset\n  0,\n  0,\n  0,\n  0, // 16: node depth, inner length, rfu\n  0,\n  0,\n  0,\n  0, // 20: rfu\n  0,\n  0,\n  0,\n  0, // 24: rfu\n  0,\n  0,\n  0,\n  0, // 28: rfu\n  0,\n  0,\n  0,\n  0, // 32: salt\n  0,\n  0,\n  0,\n  0, // 36: salt\n  0,\n  0,\n  0,\n  0, // 40: salt\n  0,\n  0,\n  0,\n  0, // 44: salt\n  0,\n  0,\n  0,\n  0, // 48: personal\n  0,\n  0,\n  0,\n  0, // 52: personal\n  0,\n  0,\n  0,\n  0, // 56: personal\n  0,\n  0,\n  0,\n  0 // 60: personal\n])\n\n// Creates a BLAKE2b hashing context\n// Requires an output length between 1 and 64 bytes\n// Takes an optional Uint8Array key\n// Takes an optinal Uint8Array salt\n// Takes an optinal Uint8Array personal\nfunction blake2bInit (outlen, key, salt, personal) {\n  if (outlen === 0 || outlen > 64) {\n    throw new Error('Illegal output length, expected 0 < length <= 64')\n  }\n  if (key && key.length > 64) {\n    throw new Error('Illegal key, expected Uint8Array with 0 < length <= 64')\n  }\n  if (salt && salt.length !== 16) {\n    throw new Error('Illegal salt, expected Uint8Array with length is 16')\n  }\n  if (personal && personal.length !== 16) {\n    throw new Error('Illegal personal, expected Uint8Array with length is 16')\n  }\n\n  // state, 'param block'\n  const ctx = {\n    b: new Uint8Array(128),\n    h: new Uint32Array(16),\n    t: 0, // input count\n    c: 0, // pointer within buffer\n    outlen: outlen // output length in bytes\n  }\n\n  // initialize parameterBlock before usage\n  parameterBlock.fill(0)\n  parameterBlock[0] = outlen\n  if (key) parameterBlock[1] = key.length\n  parameterBlock[2] = 1 // fanout\n  parameterBlock[3] = 1 // depth\n  if (salt) parameterBlock.set(salt, 32)\n  if (personal) parameterBlock.set(personal, 48)\n\n  // initialize hash state\n  for (let i = 0; i < 16; i++) {\n    ctx.h[i] = BLAKE2B_IV32[i] ^ B2B_GET32(parameterBlock, i * 4)\n  }\n\n  // key the hash, if applicable\n  if (key) {\n    blake2bUpdate(ctx, key)\n    // at the end\n    ctx.c = 128\n  }\n\n  return ctx\n}\n\n// Updates a BLAKE2b streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2bUpdate (ctx, input) {\n  for (let i = 0; i < input.length; i++) {\n    if (ctx.c === 128) {\n      // buffer full ?\n      ctx.t += ctx.c // add counters\n      blake2bCompress(ctx, false) // compress (not last)\n      ctx.c = 0 // counter to zero\n    }\n    ctx.b[ctx.c++] = input[i]\n  }\n}\n\n// Completes a BLAKE2b streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2bFinal (ctx) {\n  ctx.t += ctx.c // mark last block offset\n\n  while (ctx.c < 128) {\n    // fill up with zeros\n    ctx.b[ctx.c++] = 0\n  }\n  blake2bCompress(ctx, true) // final block flag = 1\n\n  // little endian convert and store\n  const out = new Uint8Array(ctx.outlen)\n  for (let i = 0; i < ctx.outlen; i++) {\n    out[i] = ctx.h[i >> 2] >> (8 * (i & 3))\n  }\n  return out\n}\n\n// Computes the BLAKE2B hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2b (input, key, outlen, salt, personal) {\n  // preprocess inputs\n  outlen = outlen || 64\n  input = util.normalizeInput(input)\n  if (salt) {\n    salt = util.normalizeInput(salt)\n  }\n  if (personal) {\n    personal = util.normalizeInput(personal)\n  }\n\n  // do the math\n  const ctx = blake2bInit(outlen, key, salt, personal)\n  blake2bUpdate(ctx, input)\n  return blake2bFinal(ctx)\n}\n\n// Computes the BLAKE2B hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 64 bytes\n// - outlen - optional output length in bytes, default 64\n// - salt - optional salt bytes, string, Buffer or Uint8Array\n// - personal - optional personal bytes, string, Buffer or Uint8Array\nfunction blake2bHex (input, key, outlen, salt, personal) {\n  const output = blake2b(input, key, outlen, salt, personal)\n  return util.toHex(output)\n}\n\nmodule.exports = {\n  blake2b: blake2b,\n  blake2bHex: blake2bHex,\n  blake2bInit: blake2bInit,\n  blake2bUpdate: blake2bUpdate,\n  blake2bFinal: blake2bFinal\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blakejs/blake2b.js?");

/***/ }),

/***/ "./node_modules/blakejs/blake2s.js":
/*!*****************************************!*\
  !*** ./node_modules/blakejs/blake2s.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// BLAKE2s hash function in pure Javascript\n// Adapted from the reference implementation in RFC7693\n// Ported to Javascript by DC - https://github.com/dcposch\n\nconst util = __webpack_require__(/*! ./util */ \"./node_modules/blakejs/util.js\")\n\n// Little-endian byte access.\n// Expects a Uint8Array and an index\n// Returns the little-endian uint32 at v[i..i+3]\nfunction B2S_GET32 (v, i) {\n  return v[i] ^ (v[i + 1] << 8) ^ (v[i + 2] << 16) ^ (v[i + 3] << 24)\n}\n\n// Mixing function G.\nfunction B2S_G (a, b, c, d, x, y) {\n  v[a] = v[a] + v[b] + x\n  v[d] = ROTR32(v[d] ^ v[a], 16)\n  v[c] = v[c] + v[d]\n  v[b] = ROTR32(v[b] ^ v[c], 12)\n  v[a] = v[a] + v[b] + y\n  v[d] = ROTR32(v[d] ^ v[a], 8)\n  v[c] = v[c] + v[d]\n  v[b] = ROTR32(v[b] ^ v[c], 7)\n}\n\n// 32-bit right rotation\n// x should be a uint32\n// y must be between 1 and 31, inclusive\nfunction ROTR32 (x, y) {\n  return (x >>> y) ^ (x << (32 - y))\n}\n\n// Initialization Vector.\nconst BLAKE2S_IV = new Uint32Array([\n  0x6a09e667,\n  0xbb67ae85,\n  0x3c6ef372,\n  0xa54ff53a,\n  0x510e527f,\n  0x9b05688c,\n  0x1f83d9ab,\n  0x5be0cd19\n])\n\nconst SIGMA = new Uint8Array([\n  0,\n  1,\n  2,\n  3,\n  4,\n  5,\n  6,\n  7,\n  8,\n  9,\n  10,\n  11,\n  12,\n  13,\n  14,\n  15,\n  14,\n  10,\n  4,\n  8,\n  9,\n  15,\n  13,\n  6,\n  1,\n  12,\n  0,\n  2,\n  11,\n  7,\n  5,\n  3,\n  11,\n  8,\n  12,\n  0,\n  5,\n  2,\n  15,\n  13,\n  10,\n  14,\n  3,\n  6,\n  7,\n  1,\n  9,\n  4,\n  7,\n  9,\n  3,\n  1,\n  13,\n  12,\n  11,\n  14,\n  2,\n  6,\n  5,\n  10,\n  4,\n  0,\n  15,\n  8,\n  9,\n  0,\n  5,\n  7,\n  2,\n  4,\n  10,\n  15,\n  14,\n  1,\n  11,\n  12,\n  6,\n  8,\n  3,\n  13,\n  2,\n  12,\n  6,\n  10,\n  0,\n  11,\n  8,\n  3,\n  4,\n  13,\n  7,\n  5,\n  15,\n  14,\n  1,\n  9,\n  12,\n  5,\n  1,\n  15,\n  14,\n  13,\n  4,\n  10,\n  0,\n  7,\n  6,\n  3,\n  9,\n  2,\n  8,\n  11,\n  13,\n  11,\n  7,\n  14,\n  12,\n  1,\n  3,\n  9,\n  5,\n  0,\n  15,\n  4,\n  8,\n  6,\n  2,\n  10,\n  6,\n  15,\n  14,\n  9,\n  11,\n  3,\n  0,\n  8,\n  12,\n  2,\n  13,\n  7,\n  1,\n  4,\n  10,\n  5,\n  10,\n  2,\n  8,\n  4,\n  7,\n  6,\n  1,\n  5,\n  15,\n  11,\n  9,\n  14,\n  3,\n  12,\n  13,\n  0\n])\n\n// Compression function. \"last\" flag indicates last block\nconst v = new Uint32Array(16)\nconst m = new Uint32Array(16)\nfunction blake2sCompress (ctx, last) {\n  let i = 0\n  for (i = 0; i < 8; i++) {\n    // init work variables\n    v[i] = ctx.h[i]\n    v[i + 8] = BLAKE2S_IV[i]\n  }\n\n  v[12] ^= ctx.t // low 32 bits of offset\n  v[13] ^= ctx.t / 0x100000000 // high 32 bits\n  if (last) {\n    // last block flag set ?\n    v[14] = ~v[14]\n  }\n\n  for (i = 0; i < 16; i++) {\n    // get little-endian words\n    m[i] = B2S_GET32(ctx.b, 4 * i)\n  }\n\n  // ten rounds of mixing\n  // uncomment the DebugPrint calls to log the computation\n  // and match the RFC sample documentation\n  // util.debugPrint('          m[16]', m, 32)\n  for (i = 0; i < 10; i++) {\n    // util.debugPrint('   (i=' + i + ')  v[16]', v, 32)\n    B2S_G(0, 4, 8, 12, m[SIGMA[i * 16 + 0]], m[SIGMA[i * 16 + 1]])\n    B2S_G(1, 5, 9, 13, m[SIGMA[i * 16 + 2]], m[SIGMA[i * 16 + 3]])\n    B2S_G(2, 6, 10, 14, m[SIGMA[i * 16 + 4]], m[SIGMA[i * 16 + 5]])\n    B2S_G(3, 7, 11, 15, m[SIGMA[i * 16 + 6]], m[SIGMA[i * 16 + 7]])\n    B2S_G(0, 5, 10, 15, m[SIGMA[i * 16 + 8]], m[SIGMA[i * 16 + 9]])\n    B2S_G(1, 6, 11, 12, m[SIGMA[i * 16 + 10]], m[SIGMA[i * 16 + 11]])\n    B2S_G(2, 7, 8, 13, m[SIGMA[i * 16 + 12]], m[SIGMA[i * 16 + 13]])\n    B2S_G(3, 4, 9, 14, m[SIGMA[i * 16 + 14]], m[SIGMA[i * 16 + 15]])\n  }\n  // util.debugPrint('   (i=10) v[16]', v, 32)\n\n  for (i = 0; i < 8; i++) {\n    ctx.h[i] ^= v[i] ^ v[i + 8]\n  }\n  // util.debugPrint('h[8]', ctx.h, 32)\n}\n\n// Creates a BLAKE2s hashing context\n// Requires an output length between 1 and 32 bytes\n// Takes an optional Uint8Array key\nfunction blake2sInit (outlen, key) {\n  if (!(outlen > 0 && outlen <= 32)) {\n    throw new Error('Incorrect output length, should be in [1, 32]')\n  }\n  const keylen = key ? key.length : 0\n  if (key && !(keylen > 0 && keylen <= 32)) {\n    throw new Error('Incorrect key length, should be in [1, 32]')\n  }\n\n  const ctx = {\n    h: new Uint32Array(BLAKE2S_IV), // hash state\n    b: new Uint8Array(64), // input block\n    c: 0, // pointer within block\n    t: 0, // input count\n    outlen: outlen // output length in bytes\n  }\n  ctx.h[0] ^= 0x01010000 ^ (keylen << 8) ^ outlen\n\n  if (keylen > 0) {\n    blake2sUpdate(ctx, key)\n    ctx.c = 64 // at the end\n  }\n\n  return ctx\n}\n\n// Updates a BLAKE2s streaming hash\n// Requires hash context and Uint8Array (byte array)\nfunction blake2sUpdate (ctx, input) {\n  for (let i = 0; i < input.length; i++) {\n    if (ctx.c === 64) {\n      // buffer full ?\n      ctx.t += ctx.c // add counters\n      blake2sCompress(ctx, false) // compress (not last)\n      ctx.c = 0 // counter to zero\n    }\n    ctx.b[ctx.c++] = input[i]\n  }\n}\n\n// Completes a BLAKE2s streaming hash\n// Returns a Uint8Array containing the message digest\nfunction blake2sFinal (ctx) {\n  ctx.t += ctx.c // mark last block offset\n  while (ctx.c < 64) {\n    // fill up with zeros\n    ctx.b[ctx.c++] = 0\n  }\n  blake2sCompress(ctx, true) // final block flag = 1\n\n  // little endian convert and store\n  const out = new Uint8Array(ctx.outlen)\n  for (let i = 0; i < ctx.outlen; i++) {\n    out[i] = (ctx.h[i >> 2] >> (8 * (i & 3))) & 0xff\n  }\n  return out\n}\n\n// Computes the BLAKE2S hash of a string or byte array, and returns a Uint8Array\n//\n// Returns a n-byte Uint8Array\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2s (input, key, outlen) {\n  // preprocess inputs\n  outlen = outlen || 32\n  input = util.normalizeInput(input)\n\n  // do the math\n  const ctx = blake2sInit(outlen, key)\n  blake2sUpdate(ctx, input)\n  return blake2sFinal(ctx)\n}\n\n// Computes the BLAKE2S hash of a string or byte array\n//\n// Returns an n-byte hash in hex, all lowercase\n//\n// Parameters:\n// - input - the input bytes, as a string, Buffer, or Uint8Array\n// - key - optional key Uint8Array, up to 32 bytes\n// - outlen - optional output length in bytes, default 64\nfunction blake2sHex (input, key, outlen) {\n  const output = blake2s(input, key, outlen)\n  return util.toHex(output)\n}\n\nmodule.exports = {\n  blake2s: blake2s,\n  blake2sHex: blake2sHex,\n  blake2sInit: blake2sInit,\n  blake2sUpdate: blake2sUpdate,\n  blake2sFinal: blake2sFinal\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blakejs/blake2s.js?");

/***/ }),

/***/ "./node_modules/blakejs/index.js":
/*!***************************************!*\
  !*** ./node_modules/blakejs/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("const b2b = __webpack_require__(/*! ./blake2b */ \"./node_modules/blakejs/blake2b.js\")\nconst b2s = __webpack_require__(/*! ./blake2s */ \"./node_modules/blakejs/blake2s.js\")\n\nmodule.exports = {\n  blake2b: b2b.blake2b,\n  blake2bHex: b2b.blake2bHex,\n  blake2bInit: b2b.blake2bInit,\n  blake2bUpdate: b2b.blake2bUpdate,\n  blake2bFinal: b2b.blake2bFinal,\n  blake2s: b2s.blake2s,\n  blake2sHex: b2s.blake2sHex,\n  blake2sInit: b2s.blake2sInit,\n  blake2sUpdate: b2s.blake2sUpdate,\n  blake2sFinal: b2s.blake2sFinal\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blakejs/index.js?");

/***/ }),

/***/ "./node_modules/blakejs/util.js":
/*!**************************************!*\
  !*** ./node_modules/blakejs/util.js ***!
  \**************************************/
/***/ ((module) => {

eval("const ERROR_MSG_INPUT = 'Input must be an string, Buffer or Uint8Array'\n\n// For convenience, let people hash a string, not just a Uint8Array\nfunction normalizeInput (input) {\n  let ret\n  if (input instanceof Uint8Array) {\n    ret = input\n  } else if (typeof input === 'string') {\n    const encoder = new TextEncoder()\n    ret = encoder.encode(input)\n  } else {\n    throw new Error(ERROR_MSG_INPUT)\n  }\n  return ret\n}\n\n// Converts a Uint8Array to a hexadecimal string\n// For example, toHex([255, 0, 255]) returns \"ff00ff\"\nfunction toHex (bytes) {\n  return Array.prototype.map\n    .call(bytes, function (n) {\n      return (n < 16 ? '0' : '') + n.toString(16)\n    })\n    .join('')\n}\n\n// Converts any value in [0...2^32-1] to an 8-character hex string\nfunction uint32ToHex (val) {\n  return (0x100000000 + val).toString(16).substring(1)\n}\n\n// For debugging: prints out hash state in the same format as the RFC\n// sample computation exactly, so that you can diff\nfunction debugPrint (label, arr, size) {\n  let msg = '\\n' + label + ' = '\n  for (let i = 0; i < arr.length; i += 2) {\n    if (size === 32) {\n      msg += uint32ToHex(arr[i]).toUpperCase()\n      msg += ' '\n      msg += uint32ToHex(arr[i + 1]).toUpperCase()\n    } else if (size === 64) {\n      msg += uint32ToHex(arr[i + 1]).toUpperCase()\n      msg += uint32ToHex(arr[i]).toUpperCase()\n    } else throw new Error('Invalid size ' + size)\n    if (i % 6 === 4) {\n      msg += '\\n' + new Array(label.length + 4).join(' ')\n    } else if (i < arr.length - 2) {\n      msg += ' '\n    }\n  }\n  console.log(msg)\n}\n\n// For performance testing: generates N bytes of input, hashes M times\n// Measures and prints MB/second hash performance each time\nfunction testSpeed (hashFn, N, M) {\n  let startMs = new Date().getTime()\n\n  const input = new Uint8Array(N)\n  for (let i = 0; i < N; i++) {\n    input[i] = i % 256\n  }\n  const genMs = new Date().getTime()\n  console.log('Generated random input in ' + (genMs - startMs) + 'ms')\n  startMs = genMs\n\n  for (let i = 0; i < M; i++) {\n    const hashHex = hashFn(input)\n    const hashMs = new Date().getTime()\n    const ms = hashMs - startMs\n    startMs = hashMs\n    console.log('Hashed in ' + ms + 'ms: ' + hashHex.substring(0, 20) + '...')\n    console.log(\n      Math.round((N / (1 << 20) / (ms / 1000)) * 100) / 100 + ' MB PER SECOND'\n    )\n  }\n}\n\nmodule.exports = {\n  normalizeInput: normalizeInput,\n  toHex: toHex,\n  debugPrint: debugPrint,\n  testSpeed: testSpeed\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/blakejs/util.js?");

/***/ }),

/***/ "./node_modules/bn.js/lib/bn.js":
/*!**************************************!*\
  !*** ./node_modules/bn.js/lib/bn.js ***!
  \**************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?8131\").Buffer);\n    }\n  } catch (e) {\n  }\n\n  BN.isBN = function isBN (num) {\n    if (num instanceof BN) {\n      return true;\n    }\n\n    return num !== null && typeof num === 'object' &&\n      num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n  };\n\n  BN.max = function max (left, right) {\n    if (left.cmp(right) > 0) return left;\n    return right;\n  };\n\n  BN.min = function min (left, right) {\n    if (left.cmp(right) < 0) return left;\n    return right;\n  };\n\n  BN.prototype._init = function init (number, base, endian) {\n    if (typeof number === 'number') {\n      return this._initNumber(number, base, endian);\n    }\n\n    if (typeof number === 'object') {\n      return this._initArray(number, base, endian);\n    }\n\n    if (base === 'hex') {\n      base = 16;\n    }\n    assert(base === (base | 0) && base >= 2 && base <= 36);\n\n    number = number.toString().replace(/\\s+/g, '');\n    var start = 0;\n    if (number[0] === '-') {\n      start++;\n      this.negative = 1;\n    }\n\n    if (start < number.length) {\n      if (base === 16) {\n        this._parseHex(number, start, endian);\n      } else {\n        this._parseBase(number, base, start);\n        if (endian === 'le') {\n          this._initArray(this.toArray(), base, endian);\n        }\n      }\n    }\n  };\n\n  BN.prototype._initNumber = function _initNumber (number, base, endian) {\n    if (number < 0) {\n      this.negative = 1;\n      number = -number;\n    }\n    if (number < 0x4000000) {\n      this.words = [number & 0x3ffffff];\n      this.length = 1;\n    } else if (number < 0x10000000000000) {\n      this.words = [\n        number & 0x3ffffff,\n        (number / 0x4000000) & 0x3ffffff\n      ];\n      this.length = 2;\n    } else {\n      assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n      this.words = [\n        number & 0x3ffffff,\n        (number / 0x4000000) & 0x3ffffff,\n        1\n      ];\n      this.length = 3;\n    }\n\n    if (endian !== 'le') return;\n\n    // Reverse the bytes\n    this._initArray(this.toArray(), base, endian);\n  };\n\n  BN.prototype._initArray = function _initArray (number, base, endian) {\n    // Perhaps a Uint8Array\n    assert(typeof number.length === 'number');\n    if (number.length <= 0) {\n      this.words = [0];\n      this.length = 1;\n      return this;\n    }\n\n    this.length = Math.ceil(number.length / 3);\n    this.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    var j, w;\n    var off = 0;\n    if (endian === 'be') {\n      for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n        w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n        this.words[j] |= (w << off) & 0x3ffffff;\n        this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n        off += 24;\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    } else if (endian === 'le') {\n      for (i = 0, j = 0; i < number.length; i += 3) {\n        w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n        this.words[j] |= (w << off) & 0x3ffffff;\n        this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n        off += 24;\n        if (off >= 26) {\n          off -= 26;\n          j++;\n        }\n      }\n    }\n    return this._strip();\n  };\n\n  function parseHex4Bits (string, index) {\n    var c = string.charCodeAt(index);\n    // '0' - '9'\n    if (c >= 48 && c <= 57) {\n      return c - 48;\n    // 'A' - 'F'\n    } else if (c >= 65 && c <= 70) {\n      return c - 55;\n    // 'a' - 'f'\n    } else if (c >= 97 && c <= 102) {\n      return c - 87;\n    } else {\n      assert(false, 'Invalid character in ' + string);\n    }\n  }\n\n  function parseHexByte (string, lowerBound, index) {\n    var r = parseHex4Bits(string, index);\n    if (index - 1 >= lowerBound) {\n      r |= parseHex4Bits(string, index - 1) << 4;\n    }\n    return r;\n  }\n\n  BN.prototype._parseHex = function _parseHex (number, start, endian) {\n    // Create possibly bigger array to ensure that it fits the number\n    this.length = Math.ceil((number.length - start) / 6);\n    this.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      this.words[i] = 0;\n    }\n\n    // 24-bits chunks\n    var off = 0;\n    var j = 0;\n\n    var w;\n    if (endian === 'be') {\n      for (i = number.length - 1; i >= start; i -= 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    } else {\n      var parseLength = number.length - start;\n      for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n        w = parseHexByte(number, start, i) << off;\n        this.words[j] |= w & 0x3ffffff;\n        if (off >= 18) {\n          off -= 18;\n          j += 1;\n          this.words[j] |= w >>> 26;\n        } else {\n          off += 8;\n        }\n      }\n    }\n\n    this._strip();\n  };\n\n  function parseBase (str, start, end, mul) {\n    var r = 0;\n    var b = 0;\n    var len = Math.min(str.length, end);\n    for (var i = start; i < len; i++) {\n      var c = str.charCodeAt(i) - 48;\n\n      r *= mul;\n\n      // 'a'\n      if (c >= 49) {\n        b = c - 49 + 0xa;\n\n      // 'A'\n      } else if (c >= 17) {\n        b = c - 17 + 0xa;\n\n      // '0' - '9'\n      } else {\n        b = c;\n      }\n      assert(c >= 0 && b < mul, 'Invalid character');\n      r += b;\n    }\n    return r;\n  }\n\n  BN.prototype._parseBase = function _parseBase (number, base, start) {\n    // Initialize as zero\n    this.words = [0];\n    this.length = 1;\n\n    // Find length of limb in base\n    for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n      limbLen++;\n    }\n    limbLen--;\n    limbPow = (limbPow / base) | 0;\n\n    var total = number.length - start;\n    var mod = total % limbLen;\n    var end = Math.min(total, total - mod) + start;\n\n    var word = 0;\n    for (var i = start; i < end; i += limbLen) {\n      word = parseBase(number, i, i + limbLen, base);\n\n      this.imuln(limbPow);\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    if (mod !== 0) {\n      var pow = 1;\n      word = parseBase(number, i, number.length, base);\n\n      for (i = 0; i < mod; i++) {\n        pow *= base;\n      }\n\n      this.imuln(pow);\n      if (this.words[0] + word < 0x4000000) {\n        this.words[0] += word;\n      } else {\n        this._iaddn(word);\n      }\n    }\n\n    this._strip();\n  };\n\n  BN.prototype.copy = function copy (dest) {\n    dest.words = new Array(this.length);\n    for (var i = 0; i < this.length; i++) {\n      dest.words[i] = this.words[i];\n    }\n    dest.length = this.length;\n    dest.negative = this.negative;\n    dest.red = this.red;\n  };\n\n  function move (dest, src) {\n    dest.words = src.words;\n    dest.length = src.length;\n    dest.negative = src.negative;\n    dest.red = src.red;\n  }\n\n  BN.prototype._move = function _move (dest) {\n    move(dest, this);\n  };\n\n  BN.prototype.clone = function clone () {\n    var r = new BN(null);\n    this.copy(r);\n    return r;\n  };\n\n  BN.prototype._expand = function _expand (size) {\n    while (this.length < size) {\n      this.words[this.length++] = 0;\n    }\n    return this;\n  };\n\n  // Remove leading `0` from `this`\n  BN.prototype._strip = function strip () {\n    while (this.length > 1 && this.words[this.length - 1] === 0) {\n      this.length--;\n    }\n    return this._normSign();\n  };\n\n  BN.prototype._normSign = function _normSign () {\n    // -0 = 0\n    if (this.length === 1 && this.words[0] === 0) {\n      this.negative = 0;\n    }\n    return this;\n  };\n\n  // Check Symbol.for because not everywhere where Symbol defined\n  // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n  if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n    try {\n      BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n    } catch (e) {\n      BN.prototype.inspect = inspect;\n    }\n  } else {\n    BN.prototype.inspect = inspect;\n  }\n\n  function inspect () {\n    return (this.red ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  }\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modrn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16, 2);\n  };\n\n  if (Buffer) {\n    BN.prototype.toBuffer = function toBuffer (endian, length) {\n      return this.toArrayLike(Buffer, endian, length);\n    };\n  }\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  var allocate = function allocate (ArrayType, size) {\n    if (ArrayType.allocUnsafe) {\n      return ArrayType.allocUnsafe(size);\n    }\n    return new ArrayType(size);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    this._strip();\n\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    var res = allocate(ArrayType, reqLength);\n    var postfix = endian === 'le' ? 'LE' : 'BE';\n    this['_toArrayLike' + postfix](res, byteLength);\n    return res;\n  };\n\n  BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n    var position = 0;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = (this.words[i] << shift) | carry;\n\n      res[position++] = word & 0xff;\n      if (position < res.length) {\n        res[position++] = (word >> 8) & 0xff;\n      }\n      if (position < res.length) {\n        res[position++] = (word >> 16) & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position < res.length) {\n          res[position++] = (word >> 24) & 0xff;\n        }\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position < res.length) {\n      res[position++] = carry;\n\n      while (position < res.length) {\n        res[position++] = 0;\n      }\n    }\n  };\n\n  BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n    var position = res.length - 1;\n    var carry = 0;\n\n    for (var i = 0, shift = 0; i < this.length; i++) {\n      var word = (this.words[i] << shift) | carry;\n\n      res[position--] = word & 0xff;\n      if (position >= 0) {\n        res[position--] = (word >> 8) & 0xff;\n      }\n      if (position >= 0) {\n        res[position--] = (word >> 16) & 0xff;\n      }\n\n      if (shift === 6) {\n        if (position >= 0) {\n          res[position--] = (word >> 24) & 0xff;\n        }\n        carry = 0;\n        shift = 0;\n      } else {\n        carry = word >>> 24;\n        shift += 2;\n      }\n    }\n\n    if (position >= 0) {\n      res[position--] = carry;\n\n      while (position >= 0) {\n        res[position--] = 0;\n      }\n    }\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] >>> wbit) & 0x01;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this._strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this._strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this._strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this._strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this._strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out._strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n    // var fftm = new FFTM();\n    // return fftm.mulp(self, num, out);\n    return bigMulTo(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out._strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this._strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) <= num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this._strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this._strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this._strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q._strip();\n    }\n    a._strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modrn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modrn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modrn = function modrn (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return isNegNum ? -acc : acc;\n  };\n\n  // WARNING: DEPRECATED\n  BN.prototype.modn = function modn (num) {\n    return this.modrn(num);\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    var isNegNum = num < 0;\n    if (isNegNum) num = -num;\n\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    this._strip();\n    return isNegNum ? this.ineg() : this;\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this._strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is a BN v4 instance\n        r.strip();\n      } else {\n        // r is a BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n    move(a, a.umod(this.m)._forceRed(this));\n    return a;\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/brorand/index.js":
/*!***************************************!*\
  !*** ./node_modules/brorand/index.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var r;\n\nmodule.exports = function rand(len) {\n  if (!r)\n    r = new Rand(null);\n\n  return r.generate(len);\n};\n\nfunction Rand(rand) {\n  this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n  return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n  if (this.rand.getBytes)\n    return this.rand.getBytes(n);\n\n  var res = new Uint8Array(n);\n  for (var i = 0; i < res.length; i++)\n    res[i] = this.rand.getByte();\n  return res;\n};\n\nif (typeof self === 'object') {\n  if (self.crypto && self.crypto.getRandomValues) {\n    // Modern browsers\n    Rand.prototype._rand = function _rand(n) {\n      var arr = new Uint8Array(n);\n      self.crypto.getRandomValues(arr);\n      return arr;\n    };\n  } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n    // IE\n    Rand.prototype._rand = function _rand(n) {\n      var arr = new Uint8Array(n);\n      self.msCrypto.getRandomValues(arr);\n      return arr;\n    };\n\n  // Safari's WebWorkers do not have `crypto`\n  } else if (typeof window === 'object') {\n    // Old junk\n    Rand.prototype._rand = function() {\n      throw new Error('Not implemented yet');\n    };\n  }\n} else {\n  // Node.js or Web worker with no crypto support\n  try {\n    var crypto = __webpack_require__(/*! crypto */ \"?3fc0\");\n    if (typeof crypto.randomBytes !== 'function')\n      throw new Error('Not supported');\n\n    Rand.prototype._rand = function _rand(n) {\n      return crypto.randomBytes(n);\n    };\n  } catch (e) {\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/brorand/index.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/aes.js":
/*!********************************************!*\
  !*** ./node_modules/browserify-aes/aes.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nfunction asUInt32Array (buf) {\n  if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n  var len = (buf.length / 4) | 0\n  var out = new Array(len)\n\n  for (var i = 0; i < len; i++) {\n    out[i] = buf.readUInt32BE(i * 4)\n  }\n\n  return out\n}\n\nfunction scrubVec (v) {\n  for (var i = 0; i < v.length; v++) {\n    v[i] = 0\n  }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n  var SUB_MIX0 = SUB_MIX[0]\n  var SUB_MIX1 = SUB_MIX[1]\n  var SUB_MIX2 = SUB_MIX[2]\n  var SUB_MIX3 = SUB_MIX[3]\n\n  var s0 = M[0] ^ keySchedule[0]\n  var s1 = M[1] ^ keySchedule[1]\n  var s2 = M[2] ^ keySchedule[2]\n  var s3 = M[3] ^ keySchedule[3]\n  var t0, t1, t2, t3\n  var ksRow = 4\n\n  for (var round = 1; round < nRounds; round++) {\n    t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n    t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n    t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n    t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n    s0 = t0\n    s1 = t1\n    s2 = t2\n    s3 = t3\n  }\n\n  t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n  t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n  t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n  t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n  t0 = t0 >>> 0\n  t1 = t1 >>> 0\n  t2 = t2 >>> 0\n  t3 = t3 >>> 0\n\n  return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n  // Compute double table\n  var d = new Array(256)\n  for (var j = 0; j < 256; j++) {\n    if (j < 128) {\n      d[j] = j << 1\n    } else {\n      d[j] = (j << 1) ^ 0x11b\n    }\n  }\n\n  var SBOX = []\n  var INV_SBOX = []\n  var SUB_MIX = [[], [], [], []]\n  var INV_SUB_MIX = [[], [], [], []]\n\n  // Walk GF(2^8)\n  var x = 0\n  var xi = 0\n  for (var i = 0; i < 256; ++i) {\n    // Compute sbox\n    var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n    sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n    SBOX[x] = sx\n    INV_SBOX[sx] = x\n\n    // Compute multiplication\n    var x2 = d[x]\n    var x4 = d[x2]\n    var x8 = d[x4]\n\n    // Compute sub bytes, mix columns tables\n    var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n    SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n    SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n    SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n    SUB_MIX[3][x] = t\n\n    // Compute inv sub bytes, inv mix columns tables\n    t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n    INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n    INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n    INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n    INV_SUB_MIX[3][sx] = t\n\n    if (x === 0) {\n      x = xi = 1\n    } else {\n      x = x2 ^ d[d[d[x8 ^ x2]]]\n      xi ^= d[d[xi]]\n    }\n  }\n\n  return {\n    SBOX: SBOX,\n    INV_SBOX: INV_SBOX,\n    SUB_MIX: SUB_MIX,\n    INV_SUB_MIX: INV_SUB_MIX\n  }\n})()\n\nfunction AES (key) {\n  this._key = asUInt32Array(key)\n  this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n  var keyWords = this._key\n  var keySize = keyWords.length\n  var nRounds = keySize + 6\n  var ksRows = (nRounds + 1) * 4\n\n  var keySchedule = []\n  for (var k = 0; k < keySize; k++) {\n    keySchedule[k] = keyWords[k]\n  }\n\n  for (k = keySize; k < ksRows; k++) {\n    var t = keySchedule[k - 1]\n\n    if (k % keySize === 0) {\n      t = (t << 8) | (t >>> 24)\n      t =\n        (G.SBOX[t >>> 24] << 24) |\n        (G.SBOX[(t >>> 16) & 0xff] << 16) |\n        (G.SBOX[(t >>> 8) & 0xff] << 8) |\n        (G.SBOX[t & 0xff])\n\n      t ^= RCON[(k / keySize) | 0] << 24\n    } else if (keySize > 6 && k % keySize === 4) {\n      t =\n        (G.SBOX[t >>> 24] << 24) |\n        (G.SBOX[(t >>> 16) & 0xff] << 16) |\n        (G.SBOX[(t >>> 8) & 0xff] << 8) |\n        (G.SBOX[t & 0xff])\n    }\n\n    keySchedule[k] = keySchedule[k - keySize] ^ t\n  }\n\n  var invKeySchedule = []\n  for (var ik = 0; ik < ksRows; ik++) {\n    var ksR = ksRows - ik\n    var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n    if (ik < 4 || ksR <= 4) {\n      invKeySchedule[ik] = tt\n    } else {\n      invKeySchedule[ik] =\n        G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n        G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n        G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n        G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n    }\n  }\n\n  this._nRounds = nRounds\n  this._keySchedule = keySchedule\n  this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n  M = asUInt32Array(M)\n  return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n  var out = this.encryptBlockRaw(M)\n  var buf = Buffer.allocUnsafe(16)\n  buf.writeUInt32BE(out[0], 0)\n  buf.writeUInt32BE(out[1], 4)\n  buf.writeUInt32BE(out[2], 8)\n  buf.writeUInt32BE(out[3], 12)\n  return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n  M = asUInt32Array(M)\n\n  // swap\n  var m1 = M[1]\n  M[1] = M[3]\n  M[3] = m1\n\n  var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n  var buf = Buffer.allocUnsafe(16)\n  buf.writeUInt32BE(out[0], 0)\n  buf.writeUInt32BE(out[3], 4)\n  buf.writeUInt32BE(out[2], 8)\n  buf.writeUInt32BE(out[1], 12)\n  return buf\n}\n\nAES.prototype.scrub = function () {\n  scrubVec(this._keySchedule)\n  scrubVec(this._invKeySchedule)\n  scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/aes.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/authCipher.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/authCipher.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar GHASH = __webpack_require__(/*! ./ghash */ \"./node_modules/browserify-aes/ghash.js\")\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\")\nvar incr32 = __webpack_require__(/*! ./incr32 */ \"./node_modules/browserify-aes/incr32.js\")\n\nfunction xorTest (a, b) {\n  var out = 0\n  if (a.length !== b.length) out++\n\n  var len = Math.min(a.length, b.length)\n  for (var i = 0; i < len; ++i) {\n    out += (a[i] ^ b[i])\n  }\n\n  return out\n}\n\nfunction calcIv (self, iv, ck) {\n  if (iv.length === 12) {\n    self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n    return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n  }\n  var ghash = new GHASH(ck)\n  var len = iv.length\n  var toPad = len % 16\n  ghash.update(iv)\n  if (toPad) {\n    toPad = 16 - toPad\n    ghash.update(Buffer.alloc(toPad, 0))\n  }\n  ghash.update(Buffer.alloc(8, 0))\n  var ivBits = len * 8\n  var tail = Buffer.alloc(8)\n  tail.writeUIntBE(ivBits, 0, 8)\n  ghash.update(tail)\n  self._finID = ghash.state\n  var out = Buffer.from(self._finID)\n  incr32(out)\n  return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n  Transform.call(this)\n\n  var h = Buffer.alloc(4, 0)\n\n  this._cipher = new aes.AES(key)\n  var ck = this._cipher.encryptBlock(h)\n  this._ghash = new GHASH(ck)\n  iv = calcIv(this, iv, ck)\n\n  this._prev = Buffer.from(iv)\n  this._cache = Buffer.allocUnsafe(0)\n  this._secCache = Buffer.allocUnsafe(0)\n  this._decrypt = decrypt\n  this._alen = 0\n  this._len = 0\n  this._mode = mode\n\n  this._authTag = null\n  this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n  if (!this._called && this._alen) {\n    var rump = 16 - (this._alen % 16)\n    if (rump < 16) {\n      rump = Buffer.alloc(rump, 0)\n      this._ghash.update(rump)\n    }\n  }\n\n  this._called = true\n  var out = this._mode.encrypt(this, chunk)\n  if (this._decrypt) {\n    this._ghash.update(chunk)\n  } else {\n    this._ghash.update(out)\n  }\n  this._len += chunk.length\n  return out\n}\n\nStreamCipher.prototype._final = function () {\n  if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n  var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n  if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n  this._authTag = tag\n  this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n  if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n  return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n  if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n  this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n  if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n  this._ghash.update(buf)\n  this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/authCipher.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/browser.js":
/*!************************************************!*\
  !*** ./node_modules/browserify-aes/browser.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var ciphers = __webpack_require__(/*! ./encrypter */ \"./node_modules/browserify-aes/encrypter.js\")\nvar deciphers = __webpack_require__(/*! ./decrypter */ \"./node_modules/browserify-aes/decrypter.js\")\nvar modes = __webpack_require__(/*! ./modes/list.json */ \"./node_modules/browserify-aes/modes/list.json\")\n\nfunction getCiphers () {\n  return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/browser.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/decrypter.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/decrypter.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\")\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\")\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction Decipher (mode, key, iv) {\n  Transform.call(this)\n\n  this._cache = new Splitter()\n  this._last = void 0\n  this._cipher = new aes.AES(key)\n  this._prev = Buffer.from(iv)\n  this._mode = mode\n  this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n  this._cache.add(data)\n  var chunk\n  var thing\n  var out = []\n  while ((chunk = this._cache.get(this._autopadding))) {\n    thing = this._mode.decrypt(this, chunk)\n    out.push(thing)\n  }\n  return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n  var chunk = this._cache.flush()\n  if (this._autopadding) {\n    return unpad(this._mode.decrypt(this, chunk))\n  } else if (chunk) {\n    throw new Error('data not multiple of block length')\n  }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n  this._autopadding = !!setTo\n  return this\n}\n\nfunction Splitter () {\n  this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n  this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n  var out\n  if (autoPadding) {\n    if (this.cache.length > 16) {\n      out = this.cache.slice(0, 16)\n      this.cache = this.cache.slice(16)\n      return out\n    }\n  } else {\n    if (this.cache.length >= 16) {\n      out = this.cache.slice(0, 16)\n      this.cache = this.cache.slice(16)\n      return out\n    }\n  }\n\n  return null\n}\n\nSplitter.prototype.flush = function () {\n  if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n  var padded = last[15]\n  if (padded < 1 || padded > 16) {\n    throw new Error('unable to decrypt data')\n  }\n  var i = -1\n  while (++i < padded) {\n    if (last[(i + (16 - padded))] !== padded) {\n      throw new Error('unable to decrypt data')\n    }\n  }\n  if (padded === 16) return\n\n  return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n  var config = MODES[suite.toLowerCase()]\n  if (!config) throw new TypeError('invalid suite type')\n\n  if (typeof iv === 'string') iv = Buffer.from(iv)\n  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n  if (typeof password === 'string') password = Buffer.from(password)\n  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n  if (config.type === 'stream') {\n    return new StreamCipher(config.module, password, iv, true)\n  } else if (config.type === 'auth') {\n    return new AuthCipher(config.module, password, iv, true)\n  }\n\n  return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n  var config = MODES[suite.toLowerCase()]\n  if (!config) throw new TypeError('invalid suite type')\n\n  var keys = ebtk(password, false, config.key, config.iv)\n  return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/decrypter.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/encrypter.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/encrypter.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var MODES = __webpack_require__(/*! ./modes */ \"./node_modules/browserify-aes/modes/index.js\")\nvar AuthCipher = __webpack_require__(/*! ./authCipher */ \"./node_modules/browserify-aes/authCipher.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar StreamCipher = __webpack_require__(/*! ./streamCipher */ \"./node_modules/browserify-aes/streamCipher.js\")\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction Cipher (mode, key, iv) {\n  Transform.call(this)\n\n  this._cache = new Splitter()\n  this._cipher = new aes.AES(key)\n  this._prev = Buffer.from(iv)\n  this._mode = mode\n  this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n  this._cache.add(data)\n  var chunk\n  var thing\n  var out = []\n\n  while ((chunk = this._cache.get())) {\n    thing = this._mode.encrypt(this, chunk)\n    out.push(thing)\n  }\n\n  return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n  var chunk = this._cache.flush()\n  if (this._autopadding) {\n    chunk = this._mode.encrypt(this, chunk)\n    this._cipher.scrub()\n    return chunk\n  }\n\n  if (!chunk.equals(PADDING)) {\n    this._cipher.scrub()\n    throw new Error('data not multiple of block length')\n  }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n  this._autopadding = !!setTo\n  return this\n}\n\nfunction Splitter () {\n  this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n  this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n  if (this.cache.length > 15) {\n    var out = this.cache.slice(0, 16)\n    this.cache = this.cache.slice(16)\n    return out\n  }\n  return null\n}\n\nSplitter.prototype.flush = function () {\n  var len = 16 - this.cache.length\n  var padBuff = Buffer.allocUnsafe(len)\n\n  var i = -1\n  while (++i < len) {\n    padBuff.writeUInt8(len, i)\n  }\n\n  return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n  var config = MODES[suite.toLowerCase()]\n  if (!config) throw new TypeError('invalid suite type')\n\n  if (typeof password === 'string') password = Buffer.from(password)\n  if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n  if (typeof iv === 'string') iv = Buffer.from(iv)\n  if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n  if (config.type === 'stream') {\n    return new StreamCipher(config.module, password, iv)\n  } else if (config.type === 'auth') {\n    return new AuthCipher(config.module, password, iv)\n  }\n\n  return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n  var config = MODES[suite.toLowerCase()]\n  if (!config) throw new TypeError('invalid suite type')\n\n  var keys = ebtk(password, false, config.key, config.iv)\n  return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/encrypter.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/ghash.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-aes/ghash.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n  return [\n    buf.readUInt32BE(0),\n    buf.readUInt32BE(4),\n    buf.readUInt32BE(8),\n    buf.readUInt32BE(12)\n  ]\n}\n\nfunction fromArray (out) {\n  var buf = Buffer.allocUnsafe(16)\n  buf.writeUInt32BE(out[0] >>> 0, 0)\n  buf.writeUInt32BE(out[1] >>> 0, 4)\n  buf.writeUInt32BE(out[2] >>> 0, 8)\n  buf.writeUInt32BE(out[3] >>> 0, 12)\n  return buf\n}\n\nfunction GHASH (key) {\n  this.h = key\n  this.state = Buffer.alloc(16, 0)\n  this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n  var i = -1\n  while (++i < block.length) {\n    this.state[i] ^= block[i]\n  }\n  this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n  var Vi = toArray(this.h)\n  var Zi = [0, 0, 0, 0]\n  var j, xi, lsbVi\n  var i = -1\n  while (++i < 128) {\n    xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n    if (xi) {\n      // Z_i+1 = Z_i ^ V_i\n      Zi[0] ^= Vi[0]\n      Zi[1] ^= Vi[1]\n      Zi[2] ^= Vi[2]\n      Zi[3] ^= Vi[3]\n    }\n\n    // Store the value of LSB(V_i)\n    lsbVi = (Vi[3] & 1) !== 0\n\n    // V_i+1 = V_i >> 1\n    for (j = 3; j > 0; j--) {\n      Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n    }\n    Vi[0] = Vi[0] >>> 1\n\n    // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n    if (lsbVi) {\n      Vi[0] = Vi[0] ^ (0xe1 << 24)\n    }\n  }\n  this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n  this.cache = Buffer.concat([this.cache, buf])\n  var chunk\n  while (this.cache.length >= 16) {\n    chunk = this.cache.slice(0, 16)\n    this.cache = this.cache.slice(16)\n    this.ghash(chunk)\n  }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n  if (this.cache.length) {\n    this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n  }\n\n  this.ghash(fromArray([0, abl, 0, bl]))\n  return this.state\n}\n\nmodule.exports = GHASH\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/ghash.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/incr32.js":
/*!***********************************************!*\
  !*** ./node_modules/browserify-aes/incr32.js ***!
  \***********************************************/
/***/ ((module) => {

eval("function incr32 (iv) {\n  var len = iv.length\n  var item\n  while (len--) {\n    item = iv.readUInt8(len)\n    if (item === 255) {\n      iv.writeUInt8(0, len)\n    } else {\n      item++\n      iv.writeUInt8(item, len)\n      break\n    }\n  }\n}\nmodule.exports = incr32\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/incr32.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cbc.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cbc.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\")\n\nexports.encrypt = function (self, block) {\n  var data = xor(block, self._prev)\n\n  self._prev = self._cipher.encryptBlock(data)\n  return self._prev\n}\n\nexports.decrypt = function (self, block) {\n  var pad = self._prev\n\n  self._prev = block\n  var out = self._cipher.decryptBlock(block)\n\n  return xor(out, pad)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/cbc.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\")\n\nfunction encryptStart (self, data, decrypt) {\n  var len = data.length\n  var out = xor(data, self._cache)\n  self._cache = self._cache.slice(len)\n  self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n  return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n  var out = Buffer.allocUnsafe(0)\n  var len\n\n  while (data.length) {\n    if (self._cache.length === 0) {\n      self._cache = self._cipher.encryptBlock(self._prev)\n      self._prev = Buffer.allocUnsafe(0)\n    }\n\n    if (self._cache.length <= data.length) {\n      len = self._cache.length\n      out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n      data = data.slice(len)\n    } else {\n      out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n      break\n    }\n  }\n\n  return out\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/cfb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb1.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb1.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nfunction encryptByte (self, byteParam, decrypt) {\n  var pad\n  var i = -1\n  var len = 8\n  var out = 0\n  var bit, value\n  while (++i < len) {\n    pad = self._cipher.encryptBlock(self._prev)\n    bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n    value = pad[0] ^ bit\n    out += ((value & 0x80) >> (i % 8))\n    self._prev = shiftIn(self._prev, decrypt ? bit : value)\n  }\n  return out\n}\n\nfunction shiftIn (buffer, value) {\n  var len = buffer.length\n  var i = -1\n  var out = Buffer.allocUnsafe(buffer.length)\n  buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n  while (++i < len) {\n    out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n  }\n\n  return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n  var len = chunk.length\n  var out = Buffer.allocUnsafe(len)\n  var i = -1\n\n  while (++i < len) {\n    out[i] = encryptByte(self, chunk[i], decrypt)\n  }\n\n  return out\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/cfb1.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/cfb8.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-aes/modes/cfb8.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nfunction encryptByte (self, byteParam, decrypt) {\n  var pad = self._cipher.encryptBlock(self._prev)\n  var out = pad[0] ^ byteParam\n\n  self._prev = Buffer.concat([\n    self._prev.slice(1),\n    Buffer.from([decrypt ? byteParam : out])\n  ])\n\n  return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n  var len = chunk.length\n  var out = Buffer.allocUnsafe(len)\n  var i = -1\n\n  while (++i < len) {\n    out[i] = encryptByte(self, chunk[i], decrypt)\n  }\n\n  return out\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/cfb8.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ctr.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ctr.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar incr32 = __webpack_require__(/*! ../incr32 */ \"./node_modules/browserify-aes/incr32.js\")\n\nfunction getBlock (self) {\n  var out = self._cipher.encryptBlockRaw(self._prev)\n  incr32(self._prev)\n  return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n  var chunkNum = Math.ceil(chunk.length / blockSize)\n  var start = self._cache.length\n  self._cache = Buffer.concat([\n    self._cache,\n    Buffer.allocUnsafe(chunkNum * blockSize)\n  ])\n  for (var i = 0; i < chunkNum; i++) {\n    var out = getBlock(self)\n    var offset = start + i * blockSize\n    self._cache.writeUInt32BE(out[0], offset + 0)\n    self._cache.writeUInt32BE(out[1], offset + 4)\n    self._cache.writeUInt32BE(out[2], offset + 8)\n    self._cache.writeUInt32BE(out[3], offset + 12)\n  }\n  var pad = self._cache.slice(0, chunk.length)\n  self._cache = self._cache.slice(chunk.length)\n  return xor(chunk, pad)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/ctr.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ecb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ecb.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("exports.encrypt = function (self, block) {\n  return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n  return self._cipher.decryptBlock(block)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/ecb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/index.js":
/*!****************************************************!*\
  !*** ./node_modules/browserify-aes/modes/index.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var modeModules = {\n  ECB: __webpack_require__(/*! ./ecb */ \"./node_modules/browserify-aes/modes/ecb.js\"),\n  CBC: __webpack_require__(/*! ./cbc */ \"./node_modules/browserify-aes/modes/cbc.js\"),\n  CFB: __webpack_require__(/*! ./cfb */ \"./node_modules/browserify-aes/modes/cfb.js\"),\n  CFB8: __webpack_require__(/*! ./cfb8 */ \"./node_modules/browserify-aes/modes/cfb8.js\"),\n  CFB1: __webpack_require__(/*! ./cfb1 */ \"./node_modules/browserify-aes/modes/cfb1.js\"),\n  OFB: __webpack_require__(/*! ./ofb */ \"./node_modules/browserify-aes/modes/ofb.js\"),\n  CTR: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\"),\n  GCM: __webpack_require__(/*! ./ctr */ \"./node_modules/browserify-aes/modes/ctr.js\")\n}\n\nvar modes = __webpack_require__(/*! ./list.json */ \"./node_modules/browserify-aes/modes/list.json\")\n\nfor (var key in modes) {\n  modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/index.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/list.json":
/*!*****************************************************!*\
  !*** ./node_modules/browserify-aes/modes/list.json ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"aes-128-ecb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-192-ecb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-256-ecb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":0,\"mode\":\"ECB\",\"type\":\"block\"},\"aes-128-cbc\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-192-cbc\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-256-cbc\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes128\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes192\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes256\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CBC\",\"type\":\"block\"},\"aes-128-cfb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-192-cfb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-256-cfb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB\",\"type\":\"stream\"},\"aes-128-cfb8\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-192-cfb8\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-256-cfb8\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB8\",\"type\":\"stream\"},\"aes-128-cfb1\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-192-cfb1\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-256-cfb1\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CFB1\",\"type\":\"stream\"},\"aes-128-ofb\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-192-ofb\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-256-ofb\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"OFB\",\"type\":\"stream\"},\"aes-128-ctr\":{\"cipher\":\"AES\",\"key\":128,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-192-ctr\":{\"cipher\":\"AES\",\"key\":192,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-256-ctr\":{\"cipher\":\"AES\",\"key\":256,\"iv\":16,\"mode\":\"CTR\",\"type\":\"stream\"},\"aes-128-gcm\":{\"cipher\":\"AES\",\"key\":128,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-192-gcm\":{\"cipher\":\"AES\",\"key\":192,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"},\"aes-256-gcm\":{\"cipher\":\"AES\",\"key\":256,\"iv\":12,\"mode\":\"GCM\",\"type\":\"auth\"}}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/list.json?");

/***/ }),

/***/ "./node_modules/browserify-aes/modes/ofb.js":
/*!**************************************************!*\
  !*** ./node_modules/browserify-aes/modes/ofb.js ***!
  \**************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar xor = __webpack_require__(/*! buffer-xor */ \"./node_modules/buffer-xor/index.js\")\n\nfunction getBlock (self) {\n  self._prev = self._cipher.encryptBlock(self._prev)\n  return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n  while (self._cache.length < chunk.length) {\n    self._cache = Buffer.concat([self._cache, getBlock(self)])\n  }\n\n  var pad = self._cache.slice(0, chunk.length)\n  self._cache = self._cache.slice(chunk.length)\n  return xor(chunk, pad)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/modes/ofb.js?");

/***/ }),

/***/ "./node_modules/browserify-aes/streamCipher.js":
/*!*****************************************************!*\
  !*** ./node_modules/browserify-aes/streamCipher.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var aes = __webpack_require__(/*! ./aes */ \"./node_modules/browserify-aes/aes.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar Transform = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n  Transform.call(this)\n\n  this._cipher = new aes.AES(key)\n  this._prev = Buffer.from(iv)\n  this._cache = Buffer.allocUnsafe(0)\n  this._secCache = Buffer.allocUnsafe(0)\n  this._decrypt = decrypt\n  this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n  return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n  this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-aes/streamCipher.js?");

/***/ }),

/***/ "./node_modules/browserify-cipher/browser.js":
/*!***************************************************!*\
  !*** ./node_modules/browserify-cipher/browser.js ***!
  \***************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var DES = __webpack_require__(/*! browserify-des */ \"./node_modules/browserify-des/index.js\")\nvar aes = __webpack_require__(/*! browserify-aes/browser */ \"./node_modules/browserify-aes/browser.js\")\nvar aesModes = __webpack_require__(/*! browserify-aes/modes */ \"./node_modules/browserify-aes/modes/index.js\")\nvar desModes = __webpack_require__(/*! browserify-des/modes */ \"./node_modules/browserify-des/modes.js\")\nvar ebtk = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\")\n\nfunction createCipher (suite, password) {\n  suite = suite.toLowerCase()\n\n  var keyLen, ivLen\n  if (aesModes[suite]) {\n    keyLen = aesModes[suite].key\n    ivLen = aesModes[suite].iv\n  } else if (desModes[suite]) {\n    keyLen = desModes[suite].key * 8\n    ivLen = desModes[suite].iv\n  } else {\n    throw new TypeError('invalid suite type')\n  }\n\n  var keys = ebtk(password, false, keyLen, ivLen)\n  return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n  suite = suite.toLowerCase()\n\n  var keyLen, ivLen\n  if (aesModes[suite]) {\n    keyLen = aesModes[suite].key\n    ivLen = aesModes[suite].iv\n  } else if (desModes[suite]) {\n    keyLen = desModes[suite].key * 8\n    ivLen = desModes[suite].iv\n  } else {\n    throw new TypeError('invalid suite type')\n  }\n\n  var keys = ebtk(password, false, keyLen, ivLen)\n  return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n  suite = suite.toLowerCase()\n  if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n  if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n  throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n  suite = suite.toLowerCase()\n  if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n  if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n  throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n  return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-cipher/browser.js?");

/***/ }),

/***/ "./node_modules/browserify-des/index.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-des/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var CipherBase = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar des = __webpack_require__(/*! des.js */ \"./node_modules/des.js/lib/des.js\")\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar modes = {\n  'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n  'des-ede3': des.EDE,\n  'des-ede-cbc': des.CBC.instantiate(des.EDE),\n  'des-ede': des.EDE,\n  'des-cbc': des.CBC.instantiate(des.DES),\n  'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n  CipherBase.call(this)\n  var modeName = opts.mode.toLowerCase()\n  var mode = modes[modeName]\n  var type\n  if (opts.decrypt) {\n    type = 'decrypt'\n  } else {\n    type = 'encrypt'\n  }\n  var key = opts.key\n  if (!Buffer.isBuffer(key)) {\n    key = Buffer.from(key)\n  }\n  if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n    key = Buffer.concat([key, key.slice(0, 8)])\n  }\n  var iv = opts.iv\n  if (!Buffer.isBuffer(iv)) {\n    iv = Buffer.from(iv)\n  }\n  this._des = mode.create({\n    key: key,\n    iv: iv,\n    type: type\n  })\n}\nDES.prototype._update = function (data) {\n  return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n  return Buffer.from(this._des.final())\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-des/index.js?");

/***/ }),

/***/ "./node_modules/browserify-des/modes.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-des/modes.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("exports[\"des-ecb\"] = {\n  key: 8,\n  iv: 0\n}\nexports[\"des-cbc\"] = exports.des = {\n  key: 8,\n  iv: 8\n}\nexports[\"des-ede3-cbc\"] = exports.des3 = {\n  key: 24,\n  iv: 8\n}\nexports[\"des-ede3\"] = {\n  key: 24,\n  iv: 0\n}\nexports[\"des-ede-cbc\"] = {\n  key: 16,\n  iv: 8\n}\nexports[\"des-ede\"] = {\n  key: 16,\n  iv: 0\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-des/modes.js?");

/***/ }),

/***/ "./node_modules/browserify-rsa/index.js":
/*!**********************************************!*\
  !*** ./node_modules/browserify-rsa/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\n\nfunction getr(priv) {\n\tvar len = priv.modulus.byteLength();\n\tvar r;\n\tdo {\n\t\tr = new BN(randomBytes(len));\n\t} while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2));\n\treturn r;\n}\n\nfunction blind(priv) {\n\tvar r = getr(priv);\n\tvar blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();\n\treturn { blinder: blinder, unblinder: r.invm(priv.modulus) };\n}\n\nfunction crt(msg, priv) {\n\tvar blinds = blind(priv);\n\tvar len = priv.modulus.byteLength();\n\tvar blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus);\n\tvar c1 = blinded.toRed(BN.mont(priv.prime1));\n\tvar c2 = blinded.toRed(BN.mont(priv.prime2));\n\tvar qinv = priv.coefficient;\n\tvar p = priv.prime1;\n\tvar q = priv.prime2;\n\tvar m1 = c1.redPow(priv.exponent1).fromRed();\n\tvar m2 = c2.redPow(priv.exponent2).fromRed();\n\tvar h = m1.isub(m2).imul(qinv).umod(p).imul(q);\n\treturn m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len);\n}\ncrt.getr = getr;\n\nmodule.exports = crt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-rsa/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/algos.js":
/*!***********************************************!*\
  !*** ./node_modules/browserify-sign/algos.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nmodule.exports = __webpack_require__(/*! ./browser/algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/algos.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/algorithms.json":
/*!**************************************************************!*\
  !*** ./node_modules/browserify-sign/browser/algorithms.json ***!
  \**************************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"sha224WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha224\",\"id\":\"302d300d06096086480165030402040500041c\"},\"sha256WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha256\",\"id\":\"3031300d060960864801650304020105000420\"},\"sha384WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha384\",\"id\":\"3041300d060960864801650304020205000430\"},\"sha512WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{\"sign\":\"ecdsa/rsa\",\"hash\":\"sha512\",\"id\":\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{\"sign\":\"rsa\",\"hash\":\"sha1\",\"id\":\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{\"sign\":\"ecdsa\",\"hash\":\"sha1\",\"id\":\"\"},\"sha256\":{\"sign\":\"ecdsa\",\"hash\":\"sha256\",\"id\":\"\"},\"sha224\":{\"sign\":\"ecdsa\",\"hash\":\"sha224\",\"id\":\"\"},\"sha384\":{\"sign\":\"ecdsa\",\"hash\":\"sha384\",\"id\":\"\"},\"sha512\":{\"sign\":\"ecdsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-SHA1\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA\":{\"sign\":\"dsa\",\"hash\":\"sha1\",\"id\":\"\"},\"DSA-WITH-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-SHA224\":{\"sign\":\"dsa\",\"hash\":\"sha224\",\"id\":\"\"},\"DSA-WITH-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-SHA256\":{\"sign\":\"dsa\",\"hash\":\"sha256\",\"id\":\"\"},\"DSA-WITH-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-SHA384\":{\"sign\":\"dsa\",\"hash\":\"sha384\",\"id\":\"\"},\"DSA-WITH-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-SHA512\":{\"sign\":\"dsa\",\"hash\":\"sha512\",\"id\":\"\"},\"DSA-RIPEMD160\":{\"sign\":\"dsa\",\"hash\":\"rmd160\",\"id\":\"\"},\"ripemd160WithRSA\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{\"sign\":\"rsa\",\"hash\":\"rmd160\",\"id\":\"3021300906052b2403020105000414\"},\"md5WithRSAEncryption\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{\"sign\":\"rsa\",\"hash\":\"md5\",\"id\":\"3020300c06082a864886f70d020505000410\"}}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/browser/algorithms.json?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/curves.json":
/*!**********************************************************!*\
  !*** ./node_modules/browserify-sign/browser/curves.json ***!
  \**********************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/browser/curves.json?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/index.js":
/*!*******************************************************!*\
  !*** ./node_modules/browserify-sign/browser/index.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\nvar stream = __webpack_require__(/*! readable-stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar sign = __webpack_require__(/*! ./sign */ \"./node_modules/browserify-sign/browser/sign.js\");\nvar verify = __webpack_require__(/*! ./verify */ \"./node_modules/browserify-sign/browser/verify.js\");\n\nvar algorithms = __webpack_require__(/*! ./algorithms.json */ \"./node_modules/browserify-sign/browser/algorithms.json\");\nObject.keys(algorithms).forEach(function (key) {\n  algorithms[key].id = Buffer.from(algorithms[key].id, 'hex');\n  algorithms[key.toLowerCase()] = algorithms[key];\n});\n\nfunction Sign(algorithm) {\n  stream.Writable.call(this);\n\n  var data = algorithms[algorithm];\n  if (!data) { throw new Error('Unknown message digest'); }\n\n  this._hashType = data.hash;\n  this._hash = createHash(data.hash);\n  this._tag = data.id;\n  this._signType = data.sign;\n}\ninherits(Sign, stream.Writable);\n\nSign.prototype._write = function _write(data, _, done) {\n  this._hash.update(data);\n  done();\n};\n\nSign.prototype.update = function update(data, enc) {\n  this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n  return this;\n};\n\nSign.prototype.sign = function signMethod(key, enc) {\n  this.end();\n  var hash = this._hash.digest();\n  var sig = sign(hash, key, this._hashType, this._signType, this._tag);\n\n  return enc ? sig.toString(enc) : sig;\n};\n\nfunction Verify(algorithm) {\n  stream.Writable.call(this);\n\n  var data = algorithms[algorithm];\n  if (!data) { throw new Error('Unknown message digest'); }\n\n  this._hash = createHash(data.hash);\n  this._tag = data.id;\n  this._signType = data.sign;\n}\ninherits(Verify, stream.Writable);\n\nVerify.prototype._write = function _write(data, _, done) {\n  this._hash.update(data);\n  done();\n};\n\nVerify.prototype.update = function update(data, enc) {\n  this._hash.update(typeof data === 'string' ? Buffer.from(data, enc) : data);\n\n  return this;\n};\n\nVerify.prototype.verify = function verifyMethod(key, sig, enc) {\n  var sigBuffer = typeof sig === 'string' ? Buffer.from(sig, enc) : sig;\n\n  this.end();\n  var hash = this._hash.digest();\n  return verify(sigBuffer, hash, key, this._signType, this._tag);\n};\n\nfunction createSign(algorithm) {\n  return new Sign(algorithm);\n}\n\nfunction createVerify(algorithm) {\n  return new Verify(algorithm);\n}\n\nmodule.exports = {\n  Sign: createSign,\n  Verify: createVerify,\n  createSign: createSign,\n  createVerify: createVerify\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/browser/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/sign.js":
/*!******************************************************!*\
  !*** ./node_modules/browserify-sign/browser/sign.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\nvar createHmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\");\nvar EC = (__webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec);\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nvar RSA_PKCS1_PADDING = 1;\n\nfunction sign(hash, key, hashType, signType, tag) {\n  var priv = parseKeys(key);\n  if (priv.curve) {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n    return ecSign(hash, priv);\n  } else if (priv.type === 'dsa') {\n    if (signType !== 'dsa') { throw new Error('wrong private key type'); }\n    return dsaSign(hash, priv, hashType);\n  }\n  if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong private key type'); }\n  if (key.padding !== undefined && key.padding !== RSA_PKCS1_PADDING) { throw new Error('illegal or unsupported padding mode'); }\n\n  hash = Buffer.concat([tag, hash]);\n  var len = priv.modulus.byteLength();\n  var pad = [0, 1];\n  while (hash.length + pad.length + 1 < len) { pad.push(0xff); }\n  pad.push(0x00);\n  var i = -1;\n  while (++i < hash.length) { pad.push(hash[i]); }\n\n  var out = crt(pad, priv);\n  return out;\n}\n\nfunction ecSign(hash, priv) {\n  var curveId = curves[priv.curve.join('.')];\n  if (!curveId) { throw new Error('unknown curve ' + priv.curve.join('.')); }\n\n  var curve = new EC(curveId);\n  var key = curve.keyFromPrivate(priv.privateKey);\n  var out = key.sign(hash);\n\n  return Buffer.from(out.toDER());\n}\n\nfunction dsaSign(hash, priv, algo) {\n  var x = priv.params.priv_key;\n  var p = priv.params.p;\n  var q = priv.params.q;\n  var g = priv.params.g;\n  var r = new BN(0);\n  var k;\n  var H = bits2int(hash, q).mod(q);\n  var s = false;\n  var kv = getKey(x, q, hash, algo);\n  while (s === false) {\n    k = makeKey(q, kv, algo);\n    r = makeR(g, k, p, q);\n    s = k.invm(q).imul(H.add(x.mul(r))).mod(q);\n    if (s.cmpn(0) === 0) {\n      s = false;\n      r = new BN(0);\n    }\n  }\n  return toDER(r, s);\n}\n\nfunction toDER(r, s) {\n  r = r.toArray();\n  s = s.toArray();\n\n  // Pad values\n  if (r[0] & 0x80) { r = [0].concat(r); }\n  if (s[0] & 0x80) { s = [0].concat(s); }\n\n  var total = r.length + s.length + 4;\n  var res = [\n    0x30, total, 0x02, r.length\n  ];\n  res = res.concat(r, [0x02, s.length], s);\n  return Buffer.from(res);\n}\n\nfunction getKey(x, q, hash, algo) {\n  x = Buffer.from(x.toArray());\n  if (x.length < q.byteLength()) {\n    var zeros = Buffer.alloc(q.byteLength() - x.length);\n    x = Buffer.concat([zeros, x]);\n  }\n  var hlen = hash.length;\n  var hbits = bits2octets(hash, q);\n  var v = Buffer.alloc(hlen);\n  v.fill(1);\n  var k = Buffer.alloc(hlen);\n  k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest();\n  v = createHmac(algo, k).update(v).digest();\n  k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest();\n  v = createHmac(algo, k).update(v).digest();\n  return { k: k, v: v };\n}\n\nfunction bits2int(obits, q) {\n  var bits = new BN(obits);\n  var shift = (obits.length << 3) - q.bitLength();\n  if (shift > 0) { bits.ishrn(shift); }\n  return bits;\n}\n\nfunction bits2octets(bits, q) {\n  bits = bits2int(bits, q);\n  bits = bits.mod(q);\n  var out = Buffer.from(bits.toArray());\n  if (out.length < q.byteLength()) {\n    var zeros = Buffer.alloc(q.byteLength() - out.length);\n    out = Buffer.concat([zeros, out]);\n  }\n  return out;\n}\n\nfunction makeKey(q, kv, algo) {\n  var t;\n  var k;\n\n  do {\n    t = Buffer.alloc(0);\n\n    while (t.length * 8 < q.bitLength()) {\n      kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n      t = Buffer.concat([t, kv.v]);\n    }\n\n    k = bits2int(t, q);\n    kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest();\n    kv.v = createHmac(algo, kv.k).update(kv.v).digest();\n  } while (k.cmp(q) !== -1);\n\n  return k;\n}\n\nfunction makeR(g, k, p, q) {\n  return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q);\n}\n\nmodule.exports = sign;\nmodule.exports.getKey = getKey;\nmodule.exports.makeKey = makeKey;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/browser/sign.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/browser/verify.js":
/*!********************************************************!*\
  !*** ./node_modules/browserify-sign/browser/verify.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/bn.js/lib/bn.js\");\nvar EC = (__webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\").ec);\nvar parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\");\nvar curves = __webpack_require__(/*! ./curves.json */ \"./node_modules/browserify-sign/browser/curves.json\");\n\nfunction verify(sig, hash, key, signType, tag) {\n  var pub = parseKeys(key);\n  if (pub.type === 'ec') {\n    // rsa keys can be interpreted as ecdsa ones in openssl\n    if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n    return ecVerify(sig, hash, pub);\n  } else if (pub.type === 'dsa') {\n    if (signType !== 'dsa') { throw new Error('wrong public key type'); }\n    return dsaVerify(sig, hash, pub);\n  }\n  if (signType !== 'rsa' && signType !== 'ecdsa/rsa') { throw new Error('wrong public key type'); }\n\n  hash = Buffer.concat([tag, hash]);\n  var len = pub.modulus.byteLength();\n  var pad = [1];\n  var padNum = 0;\n  while (hash.length + pad.length + 2 < len) {\n    pad.push(0xff);\n    padNum += 1;\n  }\n  pad.push(0x00);\n  var i = -1;\n  while (++i < hash.length) {\n    pad.push(hash[i]);\n  }\n  pad = Buffer.from(pad);\n  var red = BN.mont(pub.modulus);\n  sig = new BN(sig).toRed(red);\n\n  sig = sig.redPow(new BN(pub.publicExponent));\n  sig = Buffer.from(sig.fromRed().toArray());\n  var out = padNum < 8 ? 1 : 0;\n  len = Math.min(sig.length, pad.length);\n  if (sig.length !== pad.length) { out = 1; }\n\n  i = -1;\n  while (++i < len) { out |= sig[i] ^ pad[i]; }\n  return out === 0;\n}\n\nfunction ecVerify(sig, hash, pub) {\n  var curveId = curves[pub.data.algorithm.curve.join('.')];\n  if (!curveId) { throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.')); }\n\n  var curve = new EC(curveId);\n  var pubkey = pub.data.subjectPrivateKey.data;\n\n  return curve.verify(hash, sig, pubkey);\n}\n\nfunction dsaVerify(sig, hash, pub) {\n  var p = pub.data.p;\n  var q = pub.data.q;\n  var g = pub.data.g;\n  var y = pub.data.pub_key;\n  var unpacked = parseKeys.signature.decode(sig, 'der');\n  var s = unpacked.s;\n  var r = unpacked.r;\n  checkValue(s, q);\n  checkValue(r, q);\n  var montp = BN.mont(p);\n  var w = s.invm(q);\n  var v = g.toRed(montp)\n    .redPow(new BN(hash).mul(w).mod(q))\n    .fromRed()\n    .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n    .mod(p)\n    .mod(q);\n  return v.cmp(r) === 0;\n}\n\nfunction checkValue(b, q) {\n  if (b.cmpn(0) <= 0) { throw new Error('invalid sig'); }\n  if (b.cmp(q) >= 0) { throw new Error('invalid sig'); }\n}\n\nmodule.exports = verify;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/browser/verify.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/isarray/index.js":
/*!********************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/isarray/index.js ***!
  \********************************************************************/
/***/ ((module) => {

eval("var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n  return toString.call(arr) == '[object Array]';\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/isarray/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js":
/*!*****************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js ***!
  \*****************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) {\n    keys.push(key);\n  }return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\n\nutil.inherits(Duplex, Readable);\n\n{\n  // avoid scope creep, the keys array can then be collected\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\n\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n\n  Readable.call(this, options);\n  Writable.call(this, options);\n\n  if (options && options.readable === false) this.readable = false;\n\n  if (options && options.writable === false) this.writable = false;\n\n  this.allowHalfOpen = true;\n  if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n  this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // if we allow half-open state, or if the writable side ended,\n  // then we're ok.\n  if (this.allowHalfOpen || this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n  self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n  this.push(null);\n  this.end();\n\n  pna.nextTick(cb, err);\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js":
/*!**********************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \**********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n  Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js ***!
  \*******************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\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\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar isArray = __webpack_require__(/*! isarray */ \"./node_modules/browserify-sign/node_modules/isarray/index.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = (__webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter);\n\nvar EElistenerCount = function (emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer);\nvar OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar debugUtil = __webpack_require__(/*! util */ \"?593c\");\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function () {};\n}\n/*</replacement>*/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/BufferList */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  var hwm = options.highWaterMark;\n  var readableHwm = options.readableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \"./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder);\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\n\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  this._readableState = new ReadableState(options, this);\n\n  // legacy\n  this.readable = true;\n\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n\n  Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  get: function () {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  this.push(null);\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      stream.emit('error', er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n\n      if (addToFront) {\n        if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        stream.emit('error', new Error('stream.push() after EOF'));\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n    }\n  }\n\n  return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    stream.emit('data', chunk);\n    stream.read(0);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes.  This is to work around cases where hwm=0,\n// such as the repl.  Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n  return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \"./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder);\n  this._readableState.decoder = new StringDecoder(enc);\n  this._readableState.encoding = enc;\n  return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n\n  if (ret === null) {\n    state.needReadable = true;\n    n = 0;\n  } else {\n    state.length -= n;\n  }\n\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n\n  if (ret !== null) this.emit('data', ret);\n\n  return ret;\n};\n\nfunction onEofChunk(stream, state) {\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n\n  // emit 'readable' now to make sure it gets picked up.\n  emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n  }\n}\n\nfunction emitReadable_(stream) {\n  debug('emit readable');\n  stream.emit('readable');\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    pna.nextTick(maybeReadMore_, stream, state);\n  }\n}\n\nfunction maybeReadMore_(stream, state) {\n  var len = state.length;\n  while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;else len = state.length;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n\n  // If the user pushes more data while we're writing to dest then we'll end up\n  // in ondata again. However, we only want to increase awaitDrain once because\n  // dest will only emit one 'drain' event for the multiple writes.\n  // => Introduce a guard on increasing awaitDrain.\n  var increasedAwaitDrain = false;\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    increasedAwaitDrain = false;\n    var ret = dest.write(chunk);\n    if (false === ret && !increasedAwaitDrain) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n        increasedAwaitDrain = true;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n\n  return dest;\n};\n\nfunction pipeOnDrain(src) {\n  return function () {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\n\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = { hasUnpiped: false };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n\n    for (var i = 0; i < len; i++) {\n      dests[i].emit('unpipe', this, { hasUnpiped: false });\n    }return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n  dest.emit('unpipe', this, unpipeInfo);\n\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n\n  if (ev === 'data') {\n    // Start flowing on next tick if stream isn't explicitly paused\n    if (this._readableState.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    var state = this._readableState;\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.emittedReadable = false;\n      if (!state.reading) {\n        pna.nextTick(nReadingNextTick, this);\n      } else if (state.length) {\n        emitReadable(this);\n      }\n    }\n  }\n\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    state.flowing = true;\n    resume(this, state);\n  }\n  return this;\n};\n\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    pna.nextTick(resume_, stream, state);\n  }\n}\n\nfunction resume_(stream, state) {\n  if (!state.reading) {\n    debug('resume read 0');\n    stream.read(0);\n  }\n\n  state.resumeScheduled = false;\n  state.awaitDrain = 0;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (false !== this._readableState.flowing) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  return this;\n};\n\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n\n  var state = this._readableState;\n  var paused = false;\n\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n\n    _this.push(null);\n  });\n\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function (method) {\n        return function () {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n\n  return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._readableState.highWaterMark;\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = fromListPartial(n, state.buffer, state.decoder);\n  }\n\n  return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n  var ret;\n  if (n < list.head.data.length) {\n    // slice is the same for buffers and strings\n    ret = list.head.data.slice(0, n);\n    list.head.data = list.head.data.slice(n);\n  } else if (n === list.head.data.length) {\n    // first chunk is a perfect match\n    ret = list.shift();\n  } else {\n    // result spans more than one buffer\n    ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n  }\n  return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n  var p = list.head;\n  var c = 1;\n  var ret = p.data;\n  n -= ret.length;\n  while (p = p.next) {\n    var str = p.data;\n    var nb = n > str.length ? str.length : n;\n    if (nb === str.length) ret += str;else ret += str.slice(0, n);\n    n -= nb;\n    if (n === 0) {\n      if (nb === str.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = str.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n  var ret = Buffer.allocUnsafe(n);\n  var p = list.head;\n  var c = 1;\n  p.data.copy(ret);\n  n -= p.data.length;\n  while (p = p.next) {\n    var buf = p.data;\n    var nb = n > buf.length ? buf.length : n;\n    buf.copy(ret, ret.length - n, 0, nb);\n    n -= nb;\n    if (n === 0) {\n      if (nb === buf.length) {\n        ++c;\n        if (p.next) list.head = p.next;else list.head = list.tail = null;\n      } else {\n        list.head = p;\n        p.data = buf.slice(nb);\n      }\n      break;\n    }\n    ++c;\n  }\n  list.length -= c;\n  return ret;\n}\n\nfunction endReadable(stream) {\n  var state = stream._readableState;\n\n  // If we get here before consuming all the bytes, then that is a\n  // bug in node.  Should never happen.\n  if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n  if (!state.endEmitted) {\n    state.ended = true;\n    pna.nextTick(endReadableNT, state, stream);\n  }\n}\n\nfunction endReadableNT(state, stream) {\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n  }\n}\n\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js":
/*!********************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js ***!
  \********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n\n  var cb = ts.writecb;\n\n  if (!cb) {\n    return this.emit('error', new Error('write callback called multiple times'));\n  }\n\n  ts.writechunk = null;\n  ts.writecb = null;\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    this.push(data);\n\n  cb(er);\n\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\n\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n\n  Duplex.call(this, options);\n\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n  var _this = this;\n\n  if (typeof this._flush === 'function') {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n\n  if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n  var _this2 = this;\n\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n    _this2.emit('close');\n  });\n};\n\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n\n  if (data != null) // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n  if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n  return stream.push(null);\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js ***!
  \*******************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar util = Object.create(__webpack_require__(/*! core-util-is */ \"./node_modules/core-util-is/lib/util.js\"));\nutil.inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer);\nvar OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*</replacement>*/\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  var isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  var hwm = options.highWaterMark;\n  var writableHwm = options.writableHighWaterMark;\n  var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n  if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n  // cast to ints.\n  this.highWaterMark = Math.floor(this.highWaterMark);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function () {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function (object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function (object) {\n    return object instanceof this;\n  };\n}\n\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n  if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n    return new Writable(options);\n  }\n\n  this._writableState = new WritableState(options, this);\n\n  // legacy.\n  this.writable = true;\n\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n\n    if (typeof options.writev === 'function') this._writev = options.writev;\n\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n  var er = new Error('write after end');\n  // TODO: defer error events consistently everywhere, not just the cb\n  stream.emit('error', er);\n  pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var valid = true;\n  var er = false;\n\n  if (chunk === null) {\n    er = new TypeError('May not write null values to stream');\n  } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new TypeError('Invalid non-string/buffer chunk');\n  }\n  if (er) {\n    stream.emit('error', er);\n    pna.nextTick(cb, er);\n    valid = false;\n  }\n  return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n  if (typeof cb !== 'function') cb = nop;\n\n  if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n\n  return ret;\n};\n\nWritable.prototype.cork = function () {\n  var state = this._writableState;\n\n  state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n\n  if (state.corked) {\n    state.corked--;\n\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function () {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n\n  state.length += len;\n\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n\n  return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    pna.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    pna.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    stream.emit('error', er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\n\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n\n  onwriteStateUpdate(state);\n\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state);\n\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n\n    if (sync) {\n      /*<replacement>*/\n      asyncWrite(afterWrite, stream, state, finished, cb);\n      /*</replacement>*/\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      stream.emit('error', err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function') {\n      state.pendingcb++;\n      state.finalCalled = true;\n      pna.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\n\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n    }\n  }\n  return need;\n}\n\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  get: function () {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function (value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  this.end();\n  cb(err);\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js":
/*!******************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js ***!
  \******************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js\").Buffer);\nvar util = __webpack_require__(/*! util */ \"?cad2\");\n\nfunction copyBuffer(src, target, offset) {\n  src.copy(target, offset);\n}\n\nmodule.exports = function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n\n  BufferList.prototype.push = function push(v) {\n    var entry = { data: v, next: null };\n    if (this.length > 0) this.tail.next = entry;else this.head = entry;\n    this.tail = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.unshift = function unshift(v) {\n    var entry = { data: v, next: this.head };\n    if (this.length === 0) this.tail = entry;\n    this.head = entry;\n    ++this.length;\n  };\n\n  BufferList.prototype.shift = function shift() {\n    if (this.length === 0) return;\n    var ret = this.head.data;\n    if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n    --this.length;\n    return ret;\n  };\n\n  BufferList.prototype.clear = function clear() {\n    this.head = this.tail = null;\n    this.length = 0;\n  };\n\n  BufferList.prototype.join = function join(s) {\n    if (this.length === 0) return '';\n    var p = this.head;\n    var ret = '' + p.data;\n    while (p = p.next) {\n      ret += s + p.data;\n    }return ret;\n  };\n\n  BufferList.prototype.concat = function concat(n) {\n    if (this.length === 0) return Buffer.alloc(0);\n    var ret = Buffer.allocUnsafe(n >>> 0);\n    var p = this.head;\n    var i = 0;\n    while (p) {\n      copyBuffer(p.data, ret, i);\n      i += p.data.length;\n      p = p.next;\n    }\n    return ret;\n  };\n\n  return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n  module.exports.prototype[util.inspect.custom] = function () {\n    var obj = util.inspect({ length: this.length });\n    return this.constructor.name + ' ' + obj;\n  };\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/BufferList.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!***************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \***************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n/*<replacement>*/\n\nvar pna = __webpack_require__(/*! process-nextick-args */ \"./node_modules/process-nextick-args/index.js\");\n/*</replacement>*/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        pna.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        pna.nextTick(emitErrorNT, this, err);\n      }\n    }\n\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        pna.nextTick(emitErrorNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        pna.nextTick(emitErrorNT, _this, err);\n      }\n    } else if (cb) {\n      cb(err);\n    }\n  });\n\n  return this;\n}\n\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\n\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\n\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js":
/*!**********************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!
  \**********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js":
/*!*****************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js ***!
  \*****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js ***!
  \***************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js":
/*!****************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js ***!
  \****************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("// 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\n\n/*<replacement>*/\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js\").Buffer);\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n      return true;\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n      default:\n        if (retried) return; // undefined\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n    return nb;\n  }\n  return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n    return r;\n  }\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/string_decoder/lib/string_decoder.js?");

/***/ }),

/***/ "./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js":
/*!****************************************************************************************************!*\
  !*** ./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js ***!
  \****************************************************************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/browserify-sign/node_modules/string_decoder/node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/buffer-xor/index.js":
/*!******************************************!*\
  !*** ./node_modules/buffer-xor/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nmodule.exports = function xor (a, b) {\n  var length = Math.min(a.length, b.length)\n  var buffer = new Buffer(length)\n\n  for (var i = 0; i < length; ++i) {\n    buffer[i] = a[i] ^ b[i]\n  }\n\n  return buffer\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/buffer-xor/index.js?");

/***/ }),

/***/ "./node_modules/buffer/index.js":
/*!**************************************!*\
  !*** ./node_modules/buffer/index.js ***!
  \**************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/*!\n * The buffer module from node.js, for the browser.\n *\n * @author   Feross Aboukhadijeh <https://feross.org>\n * @license  MIT\n */\n/* eslint-disable no-proto */\n\n\n\nconst base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nconst ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nconst customInspectSymbol =\n  (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n    ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n    : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n *   === true    Use Uint8Array implementation (fastest)\n *   === false   Print warning and recommend using `buffer` v4.x which has an Object\n *               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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n    typeof console.error === 'function') {\n  console.error(\n    'This browser lacks typed array (Uint8Array) support which is required by ' +\n    '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n  )\n}\n\nfunction typedArraySupport () {\n  // Can typed array instances can be augmented?\n  try {\n    const arr = new Uint8Array(1)\n    const proto = { foo: function () { return 42 } }\n    Object.setPrototypeOf(proto, Uint8Array.prototype)\n    Object.setPrototypeOf(arr, proto)\n    return arr.foo() === 42\n  } catch (e) {\n    return false\n  }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.buffer\n  }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n  enumerable: true,\n  get: function () {\n    if (!Buffer.isBuffer(this)) return undefined\n    return this.byteOffset\n  }\n})\n\nfunction createBuffer (length) {\n  if (length > K_MAX_LENGTH) {\n    throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n  }\n  // Return an augmented `Uint8Array` instance\n  const buf = new Uint8Array(length)\n  Object.setPrototypeOf(buf, Buffer.prototype)\n  return buf\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  // Common case.\n  if (typeof arg === 'number') {\n    if (typeof encodingOrOffset === 'string') {\n      throw new TypeError(\n        'The \"string\" argument must be of type string. Received type number'\n      )\n    }\n    return allocUnsafe(arg)\n  }\n  return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n  if (typeof value === 'string') {\n    return fromString(value, encodingOrOffset)\n  }\n\n  if (ArrayBuffer.isView(value)) {\n    return fromArrayView(value)\n  }\n\n  if (value == null) {\n    throw new TypeError(\n      'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n      'or Array-like Object. Received type ' + (typeof value)\n    )\n  }\n\n  if (isInstance(value, ArrayBuffer) ||\n      (value && isInstance(value.buffer, ArrayBuffer))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof SharedArrayBuffer !== 'undefined' &&\n      (isInstance(value, SharedArrayBuffer) ||\n      (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n    return fromArrayBuffer(value, encodingOrOffset, length)\n  }\n\n  if (typeof value === 'number') {\n    throw new TypeError(\n      'The \"value\" argument must not be of type number. Received type number'\n    )\n  }\n\n  const valueOf = value.valueOf && value.valueOf()\n  if (valueOf != null && valueOf !== value) {\n    return Buffer.from(valueOf, encodingOrOffset, length)\n  }\n\n  const b = fromObject(value)\n  if (b) return b\n\n  if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n      typeof value[Symbol.toPrimitive] === 'function') {\n    return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n  }\n\n  throw new TypeError(\n    'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n    'or Array-like Object. Received type ' + (typeof value)\n  )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('\"size\" argument must be of type number')\n  } else if (size < 0) {\n    throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n  }\n}\n\nfunction alloc (size, fill, encoding) {\n  assertSize(size)\n  if (size <= 0) {\n    return createBuffer(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 interpreted as a start offset.\n    return typeof encoding === 'string'\n      ? createBuffer(size).fill(fill, encoding)\n      : createBuffer(size).fill(fill)\n  }\n  return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n  assertSize(size)\n  return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n  if (typeof encoding !== 'string' || encoding === '') {\n    encoding = 'utf8'\n  }\n\n  if (!Buffer.isEncoding(encoding)) {\n    throw new TypeError('Unknown encoding: ' + encoding)\n  }\n\n  const length = byteLength(string, encoding) | 0\n  let buf = createBuffer(length)\n\n  const actual = buf.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    buf = buf.slice(0, actual)\n  }\n\n  return buf\n}\n\nfunction fromArrayLike (array) {\n  const length = array.length < 0 ? 0 : checked(array.length) | 0\n  const buf = createBuffer(length)\n  for (let i = 0; i < length; i += 1) {\n    buf[i] = array[i] & 255\n  }\n  return buf\n}\n\nfunction fromArrayView (arrayView) {\n  if (isInstance(arrayView, Uint8Array)) {\n    const copy = new Uint8Array(arrayView)\n    return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n  }\n  return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n  if (byteOffset < 0 || array.byteLength < byteOffset) {\n    throw new RangeError('\"offset\" is outside of buffer bounds')\n  }\n\n  if (array.byteLength < byteOffset + (length || 0)) {\n    throw new RangeError('\"length\" is outside of buffer bounds')\n  }\n\n  let 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  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(buf, Buffer.prototype)\n\n  return buf\n}\n\nfunction fromObject (obj) {\n  if (Buffer.isBuffer(obj)) {\n    const len = checked(obj.length) | 0\n    const buf = createBuffer(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.length !== undefined) {\n    if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n      return createBuffer(0)\n    }\n    return fromArrayLike(obj)\n  }\n\n  if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n    return fromArrayLike(obj.data)\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 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 === true &&\n    b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n  if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n  if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n  if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n    throw new TypeError(\n      'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n    )\n  }\n\n  if (a === b) return 0\n\n  let x = a.length\n  let y = b.length\n\n  for (let 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 (!Array.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  let 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  const buffer = Buffer.allocUnsafe(length)\n  let pos = 0\n  for (i = 0; i < list.length; ++i) {\n    let buf = list[i]\n    if (isInstance(buf, Uint8Array)) {\n      if (pos + buf.length > buffer.length) {\n        if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n        buf.copy(buffer, pos)\n      } else {\n        Uint8Array.prototype.set.call(\n          buffer,\n          buf,\n          pos\n        )\n      }\n    } else if (!Buffer.isBuffer(buf)) {\n      throw new TypeError('\"list\" argument must be an Array of Buffers')\n    } else {\n      buf.copy(buffer, pos)\n    }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n    return string.byteLength\n  }\n  if (typeof string !== 'string') {\n    throw new TypeError(\n      'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n      'Received type ' + typeof string\n    )\n  }\n\n  const len = string.length\n  const mustMatch = (arguments.length > 2 && arguments[2] === true)\n  if (!mustMatch && len === 0) return 0\n\n  // Use a for loop to avoid recursion\n  let 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        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) {\n          return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n        }\n        encoding = ('' + encoding).toLowerCase()\n        loweredCase = true\n    }\n  }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n  let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n  const i = b[n]\n  b[n] = b[m]\n  b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n  const len = this.length\n  if (len % 2 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 16-bits')\n  }\n  for (let i = 0; i < len; i += 2) {\n    swap(this, i, i + 1)\n  }\n  return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n  const len = this.length\n  if (len % 4 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 32-bits')\n  }\n  for (let 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  const len = this.length\n  if (len % 8 !== 0) {\n    throw new RangeError('Buffer size must be a multiple of 64-bits')\n  }\n  for (let 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  const length = this.length\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.toLocaleString = Buffer.prototype.toString\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  let str = ''\n  const max = exports.INSPECT_MAX_BYTES\n  str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n  if (this.length > max) str += ' ... '\n  return '<Buffer ' + str + '>'\n}\nif (customInspectSymbol) {\n  Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n  if (isInstance(target, Uint8Array)) {\n    target = Buffer.from(target, target.offset, target.byteLength)\n  }\n  if (!Buffer.isBuffer(target)) {\n    throw new TypeError(\n      'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n      'Received type ' + (typeof target)\n    )\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  let x = thisEnd - thisStart\n  let y = end - start\n  const len = Math.min(x, y)\n\n  const thisCopy = this.slice(thisStart, thisEnd)\n  const targetCopy = target.slice(start, end)\n\n  for (let 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 (numberIsNaN(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 (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  let indexSize = 1\n  let arrLength = arr.length\n  let 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  let i\n  if (dir) {\n    let 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      let found = true\n      for (let 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  const 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  const strLen = string.length\n\n  if (length > strLen / 2) {\n    length = strLen / 2\n  }\n  let i\n  for (i = 0; i < length; ++i) {\n    const parsed = parseInt(string.substr(i * 2, 2), 16)\n    if (numberIsNaN(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 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  } else {\n    throw new Error(\n      'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n    )\n  }\n\n  const 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  let 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      case 'latin1':\n      case 'binary':\n        return asciiWrite(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  const res = []\n\n  let i = start\n  while (i < end) {\n    const firstByte = buf[i]\n    let codePoint = null\n    let bytesPerSequence = (firstByte > 0xEF)\n      ? 4\n      : (firstByte > 0xDF)\n          ? 3\n          : (firstByte > 0xBF)\n              ? 2\n              : 1\n\n    if (i + bytesPerSequence <= end) {\n      let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n  const 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  let res = ''\n  let 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  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i] & 0x7F)\n  }\n  return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n  let ret = ''\n  end = Math.min(buf.length, end)\n\n  for (let i = start; i < end; ++i) {\n    ret += String.fromCharCode(buf[i])\n  }\n  return ret\n}\n\nfunction hexSlice (buf, start, end) {\n  const len = buf.length\n\n  if (!start || start < 0) start = 0\n  if (!end || end < 0 || end > len) end = len\n\n  let out = ''\n  for (let i = start; i < end; ++i) {\n    out += hexSliceLookupTable[buf[i]]\n  }\n  return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n  const bytes = buf.slice(start, end)\n  let res = ''\n  // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n  for (let i = 0; i < bytes.length - 1; 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  const 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  const newBuf = this.subarray(start, end)\n  // Return an augmented `Uint8Array` instance\n  Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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  let val = this[offset]\n  let mul = 1\n  let i = 0\n  while (++i < byteLength && (mul *= 0x100)) {\n    val += this[offset + i] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUintBE =\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  let val = this[offset + --byteLength]\n  let mul = 1\n  while (byteLength > 0 && (mul *= 0x100)) {\n    val += this[offset + --byteLength] * mul\n  }\n\n  return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 1, this.length)\n  return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n  offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n  offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const lo = first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24\n\n  const hi = this[++offset] +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    last * 2 ** 24\n\n  return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const hi = first * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  const lo = this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last\n\n  return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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  let val = this[offset]\n  let mul = 1\n  let 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  let i = byteLength\n  let mul = 1\n  let 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  offset = offset >>> 0\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  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset] | (this[offset + 1] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n  offset = offset >>> 0\n  if (!noAssert) checkOffset(offset, 2, this.length)\n  const val = this[offset + 1] | (this[offset] << 8)\n  return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n  offset = offset >>> 0\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  offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = this[offset + 4] +\n    this[offset + 5] * 2 ** 8 +\n    this[offset + 6] * 2 ** 16 +\n    (last << 24) // Overflow\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(first +\n    this[++offset] * 2 ** 8 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n  offset = offset >>> 0\n  validateNumber(offset, 'offset')\n  const first = this[offset]\n  const last = this[offset + 7]\n  if (first === undefined || last === undefined) {\n    boundsError(offset, this.length - 8)\n  }\n\n  const val = (first << 24) + // Overflow\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    this[++offset]\n\n  return (BigInt(val) << BigInt(32)) +\n    BigInt(this[++offset] * 2 ** 24 +\n    this[++offset] * 2 ** 16 +\n    this[++offset] * 2 ** 8 +\n    last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n  offset = offset >>> 0\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  offset = offset >>> 0\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  offset = offset >>> 0\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  offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let mul = 1\n  let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  byteLength = byteLength >>> 0\n  if (!noAssert) {\n    const maxBytes = Math.pow(2, 8 * byteLength) - 1\n    checkInt(this, value, offset, byteLength, maxBytes, 0)\n  }\n\n  let i = byteLength - 1\n  let 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 =\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  this[offset] = (value & 0xff)\n  return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\n  return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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  this[offset + 3] = (value >>> 24)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 1] = (value >>> 8)\n  this[offset] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  lo = lo >> 8\n  buf[offset++] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  hi = hi >> 8\n  buf[offset++] = hi\n  return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n  checkIntBI(value, min, max, buf, offset, 7)\n\n  let lo = Number(value & BigInt(0xffffffff))\n  buf[offset + 7] = lo\n  lo = lo >> 8\n  buf[offset + 6] = lo\n  lo = lo >> 8\n  buf[offset + 5] = lo\n  lo = lo >> 8\n  buf[offset + 4] = lo\n  let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n  buf[offset + 3] = hi\n  hi = hi >> 8\n  buf[offset + 2] = hi\n  hi = hi >> 8\n  buf[offset + 1] = hi\n  hi = hi >> 8\n  buf[offset] = hi\n  return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n  value = +value\n  offset = offset >>> 0\n  if (!noAssert) {\n    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = 0\n  let mul = 1\n  let 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    const limit = Math.pow(2, (8 * byteLength) - 1)\n\n    checkInt(this, value, offset, byteLength, limit - 1, -limit)\n  }\n\n  let i = byteLength - 1\n  let mul = 1\n  let 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 (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  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\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  this[offset] = (value >>> 8)\n  this[offset + 1] = (value & 0xff)\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  this[offset] = (value & 0xff)\n  this[offset + 1] = (value >>> 8)\n  this[offset + 2] = (value >>> 16)\n  this[offset + 3] = (value >>> 24)\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  this[offset] = (value >>> 24)\n  this[offset + 1] = (value >>> 16)\n  this[offset + 2] = (value >>> 8)\n  this[offset + 3] = (value & 0xff)\n  return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n  return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n  return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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  value = +value\n  offset = offset >>> 0\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  value = +value\n  offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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  const len = end - start\n\n  if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n    // Use built-in when available, missing from IE11\n    this.copyWithin(targetStart, start, end)\n  } else {\n    Uint8Array.prototype.set.call(\n      target,\n      this.subarray(start, end),\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 (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    if (val.length === 1) {\n      const code = val.charCodeAt(0)\n      if ((encoding === 'utf8' && code < 128) ||\n          encoding === 'latin1') {\n        // Fast path: If `val` fits into a single byte, use that numeric value.\n        val = code\n      }\n    }\n  } else if (typeof val === 'number') {\n    val = val & 255\n  } else if (typeof val === 'boolean') {\n    val = Number(val)\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  let i\n  if (typeof val === 'number') {\n    for (i = start; i < end; ++i) {\n      this[i] = val\n    }\n  } else {\n    const bytes = Buffer.isBuffer(val)\n      ? val\n      : Buffer.from(val, encoding)\n    const len = bytes.length\n    if (len === 0) {\n      throw new TypeError('The value \"' + val +\n        '\" is invalid for argument \"value\"')\n    }\n    for (i = 0; i < end - start; ++i) {\n      this[i + start] = bytes[i % len]\n    }\n  }\n\n  return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n  errors[sym] = class NodeError extends Base {\n    constructor () {\n      super()\n\n      Object.defineProperty(this, 'message', {\n        value: getMessage.apply(this, arguments),\n        writable: true,\n        configurable: true\n      })\n\n      // Add the error code to the name to include it in the stack trace.\n      this.name = `${this.name} [${sym}]`\n      // Access the stack to generate the error message including the error code\n      // from the name.\n      this.stack // eslint-disable-line no-unused-expressions\n      // Reset the name to the actual name.\n      delete this.name\n    }\n\n    get code () {\n      return sym\n    }\n\n    set code (value) {\n      Object.defineProperty(this, 'code', {\n        configurable: true,\n        enumerable: true,\n        value,\n        writable: true\n      })\n    }\n\n    toString () {\n      return `${this.name} [${sym}]: ${this.message}`\n    }\n  }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n  function (name) {\n    if (name) {\n      return `${name} is outside of buffer bounds`\n    }\n\n    return 'Attempt to access memory outside buffer bounds'\n  }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n  function (name, actual) {\n    return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n  }, TypeError)\nE('ERR_OUT_OF_RANGE',\n  function (str, range, input) {\n    let msg = `The value of \"${str}\" is out of range.`\n    let received = input\n    if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n      received = addNumericalSeparator(String(input))\n    } else if (typeof input === 'bigint') {\n      received = String(input)\n      if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n        received = addNumericalSeparator(received)\n      }\n      received += 'n'\n    }\n    msg += ` It must be ${range}. Received ${received}`\n    return msg\n  }, RangeError)\n\nfunction addNumericalSeparator (val) {\n  let res = ''\n  let i = val.length\n  const start = val[0] === '-' ? 1 : 0\n  for (; i >= start + 4; i -= 3) {\n    res = `_${val.slice(i - 3, i)}${res}`\n  }\n  return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n  validateNumber(offset, 'offset')\n  if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n    boundsError(offset, buf.length - (byteLength + 1))\n  }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n  if (value > max || value < min) {\n    const n = typeof min === 'bigint' ? 'n' : ''\n    let range\n    if (byteLength > 3) {\n      if (min === 0 || min === BigInt(0)) {\n        range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n      } else {\n        range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n                `${(byteLength + 1) * 8 - 1}${n}`\n      }\n    } else {\n      range = `>= ${min}${n} and <= ${max}${n}`\n    }\n    throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n  }\n  checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n  if (typeof value !== 'number') {\n    throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n  }\n}\n\nfunction boundsError (value, length, type) {\n  if (Math.floor(value) !== value) {\n    validateNumber(value, type)\n    throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n  }\n\n  if (length < 0) {\n    throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n  }\n\n  throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n                                    `>= ${type ? 1 : 0} and <= ${length}`,\n                                    value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n  // Node takes equal signs as end of the Base64 encoding\n  str = str.split('=')[0]\n  // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n  str = str.trim().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 utf8ToBytes (string, units) {\n  units = units || Infinity\n  let codePoint\n  const length = string.length\n  let leadSurrogate = null\n  const bytes = []\n\n  for (let 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  const byteArray = []\n  for (let 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  let c, hi, lo\n  const byteArray = []\n  for (let 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  let i\n  for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n  return obj instanceof type ||\n    (obj != null && obj.constructor != null && obj.constructor.name != null &&\n      obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n  // For IE11 support\n  return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n  const alphabet = '0123456789abcdef'\n  const table = new Array(256)\n  for (let i = 0; i < 16; ++i) {\n    const i16 = i * 16\n    for (let j = 0; j < 16; ++j) {\n      table[i16 + j] = alphabet[i] + alphabet[j]\n    }\n  }\n  return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n  return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n  throw new Error('BigInt not supported')\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/buffer/index.js?");

/***/ }),

/***/ "./node_modules/cipher-base/index.js":
/*!*******************************************!*\
  !*** ./node_modules/cipher-base/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\nvar Transform = (__webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").Transform);\nvar StringDecoder = (__webpack_require__(/*! string_decoder */ \"./node_modules/string_decoder/index.js\").StringDecoder);\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nfunction CipherBase(hashMode) {\n\tTransform.call(this);\n\tthis.hashMode = typeof hashMode === 'string';\n\tif (this.hashMode) {\n\t\tthis[hashMode] = this._finalOrDigest;\n\t} else {\n\t\tthis['final'] = this._finalOrDigest;\n\t}\n\tif (this._final) {\n\t\tthis.__final = this._final;\n\t\tthis._final = null;\n\t}\n\tthis._decoder = null;\n\tthis._encoding = null;\n}\ninherits(CipherBase, Transform);\n\nvar useUint8Array = typeof Uint8Array !== 'undefined';\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined'\n\t&& typeof Uint8Array !== 'undefined'\n\t&& ArrayBuffer.isView\n\t&& (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT);\n\nfunction toBuffer(data, encoding) {\n\t/*\n\t * No need to do anything for exact instance\n\t * This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n\t */\n\tif (data instanceof Buffer) {\n\t\treturn data;\n\t}\n\n\t// Convert strings to Buffer\n\tif (typeof data === 'string') {\n\t\treturn Buffer.from(data, encoding);\n\t}\n\n\t/*\n\t * Wrap any TypedArray instances and DataViews\n\t * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n\t */\n\tif (useArrayBuffer && ArrayBuffer.isView(data)) {\n\t\t// Bug in Node.js <6.3.1, which treats this as out-of-bounds\n\t\tif (data.byteLength === 0) {\n\t\t\treturn Buffer.alloc(0);\n\t\t}\n\n\t\tvar res = Buffer.from(data.buffer, data.byteOffset, data.byteLength);\n\t\t/*\n\t\t * Recheck result size, as offset/length doesn't work on Node.js <5.10\n\t\t * We just go to Uint8Array case if this fails\n\t\t */\n\t\tif (res.byteLength === data.byteLength) {\n\t\t\treturn res;\n\t\t}\n\t}\n\n\t/*\n\t * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n\t * Doesn't make sense with other TypedArray instances\n\t */\n\tif (useUint8Array && data instanceof Uint8Array) {\n\t\treturn Buffer.from(data);\n\t}\n\n\t/*\n\t * Old Buffer polyfill on an engine that doesn't have TypedArray support\n\t * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n\t * Convert to our current Buffer implementation\n\t */\n\tif (\n\t\tBuffer.isBuffer(data)\n\t\t\t&& data.constructor\n\t\t\t&& typeof data.constructor.isBuffer === 'function'\n\t\t\t&& data.constructor.isBuffer(data)\n\t) {\n\t\treturn Buffer.from(data);\n\t}\n\n\tthrow new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.');\n}\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n\tvar bufferData = toBuffer(data, inputEnc); // asserts correct input type\n\tvar outData = this._update(bufferData);\n\tif (this.hashMode) {\n\t\treturn this;\n\t}\n\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc);\n\t}\n\n\treturn outData;\n};\n\nCipherBase.prototype.setAutoPadding = function () {};\nCipherBase.prototype.getAuthTag = function () {\n\tthrow new Error('trying to get auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAuthTag = function () {\n\tthrow new Error('trying to set auth tag in unsupported state');\n};\n\nCipherBase.prototype.setAAD = function () {\n\tthrow new Error('trying to set aad in unsupported state');\n};\n\nCipherBase.prototype._transform = function (data, _, next) {\n\tvar err;\n\ttry {\n\t\tif (this.hashMode) {\n\t\t\tthis._update(data);\n\t\t} else {\n\t\t\tthis.push(this._update(data));\n\t\t}\n\t} catch (e) {\n\t\terr = e;\n\t} finally {\n\t\tnext(err);\n\t}\n};\nCipherBase.prototype._flush = function (done) {\n\tvar err;\n\ttry {\n\t\tthis.push(this.__final());\n\t} catch (e) {\n\t\terr = e;\n\t}\n\n\tdone(err);\n};\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n\tvar outData = this.__final() || Buffer.alloc(0);\n\tif (outputEnc) {\n\t\toutData = this._toString(outData, outputEnc, true);\n\t}\n\treturn outData;\n};\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n\tif (!this._decoder) {\n\t\tthis._decoder = new StringDecoder(enc);\n\t\tthis._encoding = enc;\n\t}\n\n\tif (this._encoding !== enc) {\n\t\tthrow new Error('can’t switch encodings');\n\t}\n\n\tvar out = this._decoder.write(value);\n\tif (fin) {\n\t\tout += this._decoder.end();\n\t}\n\n\treturn out;\n};\n\nmodule.exports = CipherBase;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/cipher-base/index.js?");

/***/ }),

/***/ "./node_modules/core-util-is/lib/util.js":
/*!***********************************************!*\
  !*** ./node_modules/core-util-is/lib/util.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n  if (Array.isArray) {\n    return Array.isArray(arg);\n  }\n  return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n  return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer.isBuffer;\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/core-util-is/lib/util.js?");

/***/ }),

/***/ "./node_modules/create-ecdh/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-ecdh/browser.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar elliptic = __webpack_require__(/*! elliptic */ \"./node_modules/elliptic/lib/elliptic.js\")\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js\")\n\nmodule.exports = function createECDH (curve) {\n  return new ECDH(curve)\n}\n\nvar aliases = {\n  secp256k1: {\n    name: 'secp256k1',\n    byteLength: 32\n  },\n  secp224r1: {\n    name: 'p224',\n    byteLength: 28\n  },\n  prime256v1: {\n    name: 'p256',\n    byteLength: 32\n  },\n  prime192v1: {\n    name: 'p192',\n    byteLength: 24\n  },\n  ed25519: {\n    name: 'ed25519',\n    byteLength: 32\n  },\n  secp384r1: {\n    name: 'p384',\n    byteLength: 48\n  },\n  secp521r1: {\n    name: 'p521',\n    byteLength: 66\n  }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n  this.curveType = aliases[curve]\n  if (!this.curveType) {\n    this.curveType = {\n      name: curve\n    }\n  }\n  this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n  this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n  this.keys = this.curve.genKeyPair()\n  return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n  inenc = inenc || 'utf8'\n  if (!Buffer.isBuffer(other)) {\n    other = new Buffer(other, inenc)\n  }\n  var otherPub = this.curve.keyFromPublic(other).getPublic()\n  var out = otherPub.mul(this.keys.getPrivate()).getX()\n  return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n  var key = this.keys.getPublic(format === 'compressed', true)\n  if (format === 'hybrid') {\n    if (key[key.length - 1] % 2) {\n      key[0] = 7\n    } else {\n      key[0] = 6\n    }\n  }\n  return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n  return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n  enc = enc || 'utf8'\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc)\n  }\n  this.keys._importPublic(pub)\n  return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n  enc = enc || 'utf8'\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc)\n  }\n\n  var _priv = new BN(priv)\n  _priv = _priv.toString(16)\n  this.keys = this.curve.genKeyPair()\n  this.keys._importPrivate(_priv)\n  return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n  if (!Array.isArray(bn)) {\n    bn = bn.toArray()\n  }\n  var buf = new Buffer(bn)\n  if (len && buf.length < len) {\n    var zeros = new Buffer(len - buf.length)\n    zeros.fill(0)\n    buf = Buffer.concat([zeros, buf])\n  }\n  if (!enc) {\n    return buf\n  } else {\n    return buf.toString(enc)\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-ecdh/browser.js?");

/***/ }),

/***/ "./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js":
/*!***************************************************************!*\
  !*** ./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js ***!
  \***************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?4068\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-ecdh/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/create-hash/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-hash/browser.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\")\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\")\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\")\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\n\nfunction Hash (hash) {\n  Base.call(this, 'digest')\n\n  this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n  this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n  return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n  alg = alg.toLowerCase()\n  if (alg === 'md5') return new MD5()\n  if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n  return new Hash(sha(alg))\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-hash/browser.js?");

/***/ }),

/***/ "./node_modules/create-hash/md5.js":
/*!*****************************************!*\
  !*** ./node_modules/create-hash/md5.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\")\n\nmodule.exports = function (buffer) {\n  return new MD5().update(buffer).digest()\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-hash/md5.js?");

/***/ }),

/***/ "./node_modules/create-hmac/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/create-hmac/browser.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Legacy = __webpack_require__(/*! ./legacy */ \"./node_modules/create-hmac/legacy.js\")\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\")\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\")\n\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\")\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n  Base.call(this, 'digest')\n  if (typeof key === 'string') {\n    key = Buffer.from(key)\n  }\n\n  var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n  this._alg = alg\n  this._key = key\n  if (key.length > blocksize) {\n    var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n    key = hash.update(key).digest()\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize)\n  }\n\n  var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n  var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36\n    opad[i] = key[i] ^ 0x5C\n  }\n  this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n  this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n  this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n  var h = this._hash.digest()\n  var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n  return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n  alg = alg.toLowerCase()\n  if (alg === 'rmd160' || alg === 'ripemd160') {\n    return new Hmac('rmd160', key)\n  }\n  if (alg === 'md5') {\n    return new Legacy(md5, key)\n  }\n  return new Hmac(alg, key)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-hmac/browser.js?");

/***/ }),

/***/ "./node_modules/create-hmac/legacy.js":
/*!********************************************!*\
  !*** ./node_modules/create-hmac/legacy.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar Base = __webpack_require__(/*! cipher-base */ \"./node_modules/cipher-base/index.js\")\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n  Base.call(this, 'digest')\n  if (typeof key === 'string') {\n    key = Buffer.from(key)\n  }\n\n  this._alg = alg\n  this._key = key\n\n  if (key.length > blocksize) {\n    key = alg(key)\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize)\n  }\n\n  var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n  var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36\n    opad[i] = key[i] ^ 0x5C\n  }\n\n  this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n  this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n  var h = this._alg(Buffer.concat(this._hash))\n  return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/create-hmac/legacy.js?");

/***/ }),

/***/ "./node_modules/crypto-browserify/index.js":
/*!*************************************************!*\
  !*** ./node_modules/crypto-browserify/index.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\n// eslint-disable-next-line no-multi-assign\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\n\n// eslint-disable-next-line no-multi-assign\nexports.createHash = exports.Hash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\");\n\n// eslint-disable-next-line no-multi-assign\nexports.createHmac = exports.Hmac = __webpack_require__(/*! create-hmac */ \"./node_modules/create-hmac/browser.js\");\n\nvar algos = __webpack_require__(/*! browserify-sign/algos */ \"./node_modules/browserify-sign/algos.js\");\nvar algoKeys = Object.keys(algos);\nvar hashes = [\n\t'sha1',\n\t'sha224',\n\t'sha256',\n\t'sha384',\n\t'sha512',\n\t'md5',\n\t'rmd160'\n].concat(algoKeys);\n\nexports.getHashes = function () {\n\treturn hashes;\n};\n\nvar p = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\nexports.pbkdf2 = p.pbkdf2;\nexports.pbkdf2Sync = p.pbkdf2Sync;\n\nvar aes = __webpack_require__(/*! browserify-cipher */ \"./node_modules/browserify-cipher/browser.js\");\n\nexports.Cipher = aes.Cipher;\nexports.createCipher = aes.createCipher;\nexports.Cipheriv = aes.Cipheriv;\nexports.createCipheriv = aes.createCipheriv;\nexports.Decipher = aes.Decipher;\nexports.createDecipher = aes.createDecipher;\nexports.Decipheriv = aes.Decipheriv;\nexports.createDecipheriv = aes.createDecipheriv;\nexports.getCiphers = aes.getCiphers;\nexports.listCiphers = aes.listCiphers;\n\nvar dh = __webpack_require__(/*! diffie-hellman */ \"./node_modules/diffie-hellman/browser.js\");\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup;\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup;\nexports.getDiffieHellman = dh.getDiffieHellman;\nexports.createDiffieHellman = dh.createDiffieHellman;\nexports.DiffieHellman = dh.DiffieHellman;\n\nvar sign = __webpack_require__(/*! browserify-sign */ \"./node_modules/browserify-sign/browser/index.js\");\n\nexports.createSign = sign.createSign;\nexports.Sign = sign.Sign;\nexports.createVerify = sign.createVerify;\nexports.Verify = sign.Verify;\n\nexports.createECDH = __webpack_require__(/*! create-ecdh */ \"./node_modules/create-ecdh/browser.js\");\n\nvar publicEncrypt = __webpack_require__(/*! public-encrypt */ \"./node_modules/public-encrypt/browser.js\");\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt;\nexports.privateEncrypt = publicEncrypt.privateEncrypt;\nexports.publicDecrypt = publicEncrypt.publicDecrypt;\nexports.privateDecrypt = publicEncrypt.privateDecrypt;\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// [\n//   'createCredentials'\n// ].forEach(function (name) {\n//   exports[name] = function () {\n//     throw new Error('sorry, ' + name + ' is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n//   };\n// });\n\nvar rf = __webpack_require__(/*! randomfill */ \"./node_modules/randomfill/browser.js\");\n\nexports.randomFill = rf.randomFill;\nexports.randomFillSync = rf.randomFillSync;\n\nexports.createCredentials = function () {\n\tthrow new Error('sorry, createCredentials is not implemented yet\\nwe accept pull requests\\nhttps://github.com/browserify/crypto-browserify');\n};\n\nexports.constants = {\n\tDH_CHECK_P_NOT_SAFE_PRIME: 2,\n\tDH_CHECK_P_NOT_PRIME: 1,\n\tDH_UNABLE_TO_CHECK_GENERATOR: 4,\n\tDH_NOT_SUITABLE_GENERATOR: 8,\n\tNPN_ENABLED: 1,\n\tALPN_ENABLED: 1,\n\tRSA_PKCS1_PADDING: 1,\n\tRSA_SSLV23_PADDING: 2,\n\tRSA_NO_PADDING: 3,\n\tRSA_PKCS1_OAEP_PADDING: 4,\n\tRSA_X931_PADDING: 5,\n\tRSA_PKCS1_PSS_PADDING: 6,\n\tPOINT_CONVERSION_COMPRESSED: 2,\n\tPOINT_CONVERSION_UNCOMPRESSED: 4,\n\tPOINT_CONVERSION_HYBRID: 6\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/crypto-browserify/index.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des.js":
/*!****************************************!*\
  !*** ./node_modules/des.js/lib/des.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nexports.utils = __webpack_require__(/*! ./des/utils */ \"./node_modules/des.js/lib/des/utils.js\");\nexports.Cipher = __webpack_require__(/*! ./des/cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\nexports.DES = __webpack_require__(/*! ./des/des */ \"./node_modules/des.js/lib/des/des.js\");\nexports.CBC = __webpack_require__(/*! ./des/cbc */ \"./node_modules/des.js/lib/des/cbc.js\");\nexports.EDE = __webpack_require__(/*! ./des/ede */ \"./node_modules/des.js/lib/des/ede.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/cbc.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/cbc.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar proto = {};\n\nfunction CBCState(iv) {\n  assert.equal(iv.length, 8, 'Invalid IV length');\n\n  this.iv = new Array(8);\n  for (var i = 0; i < this.iv.length; i++)\n    this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n  function CBC(options) {\n    Base.call(this, options);\n    this._cbcInit();\n  }\n  inherits(CBC, Base);\n\n  var keys = Object.keys(proto);\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n    CBC.prototype[key] = proto[key];\n  }\n\n  CBC.create = function create(options) {\n    return new CBC(options);\n  };\n\n  return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n  var state = new CBCState(this.options.iv);\n  this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n  var state = this._cbcState;\n  var superProto = this.constructor.super_.prototype;\n\n  var iv = state.iv;\n  if (this.type === 'encrypt') {\n    for (var i = 0; i < this.blockSize; i++)\n      iv[i] ^= inp[inOff + i];\n\n    superProto._update.call(this, iv, 0, out, outOff);\n\n    for (var i = 0; i < this.blockSize; i++)\n      iv[i] = out[outOff + i];\n  } else {\n    superProto._update.call(this, inp, inOff, out, outOff);\n\n    for (var i = 0; i < this.blockSize; i++)\n      out[outOff + i] ^= iv[i];\n\n    for (var i = 0; i < this.blockSize; i++)\n      iv[i] = inp[inOff + i];\n  }\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des/cbc.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/cipher.js":
/*!***********************************************!*\
  !*** ./node_modules/des.js/lib/des/cipher.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\n\nfunction Cipher(options) {\n  this.options = options;\n\n  this.type = this.options.type;\n  this.blockSize = 8;\n  this._init();\n\n  this.buffer = new Array(this.blockSize);\n  this.bufferOff = 0;\n  this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n  // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n  if (data.length === 0)\n    return [];\n\n  if (this.type === 'decrypt')\n    return this._updateDecrypt(data);\n  else\n    return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n  // Append data to buffer\n  var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n  for (var i = 0; i < min; i++)\n    this.buffer[this.bufferOff + i] = data[off + i];\n  this.bufferOff += min;\n\n  // Shift next\n  return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n  this._update(this.buffer, 0, out, off);\n  this.bufferOff = 0;\n  return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n  var inputOff = 0;\n  var outputOff = 0;\n\n  var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n  var out = new Array(count * this.blockSize);\n\n  if (this.bufferOff !== 0) {\n    inputOff += this._buffer(data, inputOff);\n\n    if (this.bufferOff === this.buffer.length)\n      outputOff += this._flushBuffer(out, outputOff);\n  }\n\n  // Write blocks\n  var max = data.length - ((data.length - inputOff) % this.blockSize);\n  for (; inputOff < max; inputOff += this.blockSize) {\n    this._update(data, inputOff, out, outputOff);\n    outputOff += this.blockSize;\n  }\n\n  // Queue rest\n  for (; inputOff < data.length; inputOff++, this.bufferOff++)\n    this.buffer[this.bufferOff] = data[inputOff];\n\n  return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n  var inputOff = 0;\n  var outputOff = 0;\n\n  var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n  var out = new Array(count * this.blockSize);\n\n  // TODO(indutny): optimize it, this is far from optimal\n  for (; count > 0; count--) {\n    inputOff += this._buffer(data, inputOff);\n    outputOff += this._flushBuffer(out, outputOff);\n  }\n\n  // Buffer rest of the input\n  inputOff += this._buffer(data, inputOff);\n\n  return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n  var first;\n  if (buffer)\n    first = this.update(buffer);\n\n  var last;\n  if (this.type === 'encrypt')\n    last = this._finalEncrypt();\n  else\n    last = this._finalDecrypt();\n\n  if (first)\n    return first.concat(last);\n  else\n    return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n  if (off === 0)\n    return false;\n\n  while (off < buffer.length)\n    buffer[off++] = 0;\n\n  return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n  if (!this._pad(this.buffer, this.bufferOff))\n    return [];\n\n  var out = new Array(this.blockSize);\n  this._update(this.buffer, 0, out, 0);\n  return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n  return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n  assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n  var out = new Array(this.blockSize);\n  this._flushBuffer(out, 0);\n\n  return this._unpad(out);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des/cipher.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/des.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/des.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/des.js/lib/des/utils.js\");\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\n\nfunction DESState() {\n  this.tmp = new Array(2);\n  this.keys = null;\n}\n\nfunction DES(options) {\n  Cipher.call(this, options);\n\n  var state = new DESState();\n  this._desState = state;\n\n  this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n  return new DES(options);\n};\n\nvar shiftTable = [\n  1, 1, 2, 2, 2, 2, 2, 2,\n  1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n  state.keys = new Array(16 * 2);\n\n  assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n  var kL = utils.readUInt32BE(key, 0);\n  var kR = utils.readUInt32BE(key, 4);\n\n  utils.pc1(kL, kR, state.tmp, 0);\n  kL = state.tmp[0];\n  kR = state.tmp[1];\n  for (var i = 0; i < state.keys.length; i += 2) {\n    var shift = shiftTable[i >>> 1];\n    kL = utils.r28shl(kL, shift);\n    kR = utils.r28shl(kR, shift);\n    utils.pc2(kL, kR, state.keys, i);\n  }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n  var state = this._desState;\n\n  var l = utils.readUInt32BE(inp, inOff);\n  var r = utils.readUInt32BE(inp, inOff + 4);\n\n  // Initial Permutation\n  utils.ip(l, r, state.tmp, 0);\n  l = state.tmp[0];\n  r = state.tmp[1];\n\n  if (this.type === 'encrypt')\n    this._encrypt(state, l, r, state.tmp, 0);\n  else\n    this._decrypt(state, l, r, state.tmp, 0);\n\n  l = state.tmp[0];\n  r = state.tmp[1];\n\n  utils.writeUInt32BE(out, l, outOff);\n  utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n  if (this.padding === false) {\n    return false;\n  }\n\n  var value = buffer.length - off;\n  for (var i = off; i < buffer.length; i++)\n    buffer[i] = value;\n\n  return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n  if (this.padding === false) {\n    return buffer;\n  }\n\n  var pad = buffer[buffer.length - 1];\n  for (var i = buffer.length - pad; i < buffer.length; i++)\n    assert.equal(buffer[i], pad);\n\n  return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n  var l = lStart;\n  var r = rStart;\n\n  // Apply f() x16 times\n  for (var i = 0; i < state.keys.length; i += 2) {\n    var keyL = state.keys[i];\n    var keyR = state.keys[i + 1];\n\n    // f(r, k)\n    utils.expand(r, state.tmp, 0);\n\n    keyL ^= state.tmp[0];\n    keyR ^= state.tmp[1];\n    var s = utils.substitute(keyL, keyR);\n    var f = utils.permute(s);\n\n    var t = r;\n    r = (l ^ f) >>> 0;\n    l = t;\n  }\n\n  // Reverse Initial Permutation\n  utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n  var l = rStart;\n  var r = lStart;\n\n  // Apply f() x16 times\n  for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n    var keyL = state.keys[i];\n    var keyR = state.keys[i + 1];\n\n    // f(r, k)\n    utils.expand(l, state.tmp, 0);\n\n    keyL ^= state.tmp[0];\n    keyR ^= state.tmp[1];\n    var s = utils.substitute(keyL, keyR);\n    var f = utils.permute(s);\n\n    var t = l;\n    l = (r ^ f) >>> 0;\n    r = t;\n  }\n\n  // Reverse Initial Permutation\n  utils.rip(l, r, out, off);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des/des.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/ede.js":
/*!********************************************!*\
  !*** ./node_modules/des.js/lib/des/ede.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\nvar Cipher = __webpack_require__(/*! ./cipher */ \"./node_modules/des.js/lib/des/cipher.js\");\nvar DES = __webpack_require__(/*! ./des */ \"./node_modules/des.js/lib/des/des.js\");\n\nfunction EDEState(type, key) {\n  assert.equal(key.length, 24, 'Invalid key length');\n\n  var k1 = key.slice(0, 8);\n  var k2 = key.slice(8, 16);\n  var k3 = key.slice(16, 24);\n\n  if (type === 'encrypt') {\n    this.ciphers = [\n      DES.create({ type: 'encrypt', key: k1 }),\n      DES.create({ type: 'decrypt', key: k2 }),\n      DES.create({ type: 'encrypt', key: k3 })\n    ];\n  } else {\n    this.ciphers = [\n      DES.create({ type: 'decrypt', key: k3 }),\n      DES.create({ type: 'encrypt', key: k2 }),\n      DES.create({ type: 'decrypt', key: k1 })\n    ];\n  }\n}\n\nfunction EDE(options) {\n  Cipher.call(this, options);\n\n  var state = new EDEState(this.type, this.options.key);\n  this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n  return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n  var state = this._edeState;\n\n  state.ciphers[0]._update(inp, inOff, out, outOff);\n  state.ciphers[1]._update(out, outOff, out, outOff);\n  state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des/ede.js?");

/***/ }),

/***/ "./node_modules/des.js/lib/des/utils.js":
/*!**********************************************!*\
  !*** ./node_modules/des.js/lib/des/utils.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n  var res =  (bytes[0 + off] << 24) |\n             (bytes[1 + off] << 16) |\n             (bytes[2 + off] << 8) |\n             bytes[3 + off];\n  return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n  bytes[0 + off] = value >>> 24;\n  bytes[1 + off] = (value >>> 16) & 0xff;\n  bytes[2 + off] = (value >>> 8) & 0xff;\n  bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  for (var i = 6; i >= 0; i -= 2) {\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= (inR >>> (j + i)) & 1;\n    }\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= (inL >>> (j + i)) & 1;\n    }\n  }\n\n  for (var i = 6; i >= 0; i -= 2) {\n    for (var j = 1; j <= 25; j += 8) {\n      outR <<= 1;\n      outR |= (inR >>> (j + i)) & 1;\n    }\n    for (var j = 1; j <= 25; j += 8) {\n      outR <<= 1;\n      outR |= (inL >>> (j + i)) & 1;\n    }\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  for (var i = 0; i < 4; i++) {\n    for (var j = 24; j >= 0; j -= 8) {\n      outL <<= 1;\n      outL |= (inR >>> (j + i)) & 1;\n      outL <<= 1;\n      outL |= (inL >>> (j + i)) & 1;\n    }\n  }\n  for (var i = 4; i < 8; i++) {\n    for (var j = 24; j >= 0; j -= 8) {\n      outR <<= 1;\n      outR |= (inR >>> (j + i)) & 1;\n      outR <<= 1;\n      outR |= (inL >>> (j + i)) & 1;\n    }\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  // 7, 15, 23, 31, 39, 47, 55, 63\n  // 6, 14, 22, 30, 39, 47, 55, 63\n  // 5, 13, 21, 29, 39, 47, 55, 63\n  // 4, 12, 20, 28\n  for (var i = 7; i >= 5; i--) {\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= (inR >> (j + i)) & 1;\n    }\n    for (var j = 0; j <= 24; j += 8) {\n      outL <<= 1;\n      outL |= (inL >> (j + i)) & 1;\n    }\n  }\n  for (var j = 0; j <= 24; j += 8) {\n    outL <<= 1;\n    outL |= (inR >> (j + i)) & 1;\n  }\n\n  // 1, 9, 17, 25, 33, 41, 49, 57\n  // 2, 10, 18, 26, 34, 42, 50, 58\n  // 3, 11, 19, 27, 35, 43, 51, 59\n  // 36, 44, 52, 60\n  for (var i = 1; i <= 3; i++) {\n    for (var j = 0; j <= 24; j += 8) {\n      outR <<= 1;\n      outR |= (inR >> (j + i)) & 1;\n    }\n    for (var j = 0; j <= 24; j += 8) {\n      outR <<= 1;\n      outR |= (inL >> (j + i)) & 1;\n    }\n  }\n  for (var j = 0; j <= 24; j += 8) {\n    outR <<= 1;\n    outR |= (inL >> (j + i)) & 1;\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n  return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n  // inL => outL\n  14, 11, 17, 4, 27, 23, 25, 0,\n  13, 22, 7, 18, 5, 9, 16, 24,\n  2, 20, 12, 21, 1, 8, 15, 26,\n\n  // inR => outR\n  15, 4, 25, 19, 9, 1, 26, 16,\n  5, 11, 23, 8, 12, 7, 17, 0,\n  22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  var len = pc2table.length >>> 1;\n  for (var i = 0; i < len; i++) {\n    outL <<= 1;\n    outL |= (inL >>> pc2table[i]) & 0x1;\n  }\n  for (var i = len; i < pc2table.length; i++) {\n    outR <<= 1;\n    outR |= (inR >>> pc2table[i]) & 0x1;\n  }\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n  var outL = 0;\n  var outR = 0;\n\n  outL = ((r & 1) << 5) | (r >>> 27);\n  for (var i = 23; i >= 15; i -= 4) {\n    outL <<= 6;\n    outL |= (r >>> i) & 0x3f;\n  }\n  for (var i = 11; i >= 3; i -= 4) {\n    outR |= (r >>> i) & 0x3f;\n    outR <<= 6;\n  }\n  outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n  out[off + 0] = outL >>> 0;\n  out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n  14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n  3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n  4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n  15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n  15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n  9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n  0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n  5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n  10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n  1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n  13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n  11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n  7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n  1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n  10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n  15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n  2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n  8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n  4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n  15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n  12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n  0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n  9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n  7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n  4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n  3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n  1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n  10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n  13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n  10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n  7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n  0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n  var out = 0;\n  for (var i = 0; i < 4; i++) {\n    var b = (inL >>> (18 - i * 6)) & 0x3f;\n    var sb = sTable[i * 0x40 + b];\n\n    out <<= 4;\n    out |= sb;\n  }\n  for (var i = 0; i < 4; i++) {\n    var b = (inR >>> (18 - i * 6)) & 0x3f;\n    var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n    out <<= 4;\n    out |= sb;\n  }\n  return out >>> 0;\n};\n\nvar permuteTable = [\n  16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n  30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n  var out = 0;\n  for (var i = 0; i < permuteTable.length; i++) {\n    out <<= 1;\n    out |= (num >>> permuteTable[i]) & 0x1;\n  }\n  return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n  var str = num.toString(2);\n  while (str.length < size)\n    str = '0' + str;\n\n  var out = [];\n  for (var i = 0; i < size; i += group)\n    out.push(str.slice(i, i + group));\n  return out.join(' ');\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/des.js/lib/des/utils.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/browser.js":
/*!************************************************!*\
  !*** ./node_modules/diffie-hellman/browser.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar generatePrime = __webpack_require__(/*! ./lib/generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\")\nvar primes = __webpack_require__(/*! ./lib/primes.json */ \"./node_modules/diffie-hellman/lib/primes.json\")\n\nvar DH = __webpack_require__(/*! ./lib/dh */ \"./node_modules/diffie-hellman/lib/dh.js\")\n\nfunction getDiffieHellman (mod) {\n  var prime = new Buffer(primes[mod].prime, 'hex')\n  var gen = new Buffer(primes[mod].gen, 'hex')\n\n  return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n  'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n  if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n    return createDiffieHellman(prime, 'binary', enc, generator)\n  }\n\n  enc = enc || 'binary'\n  genc = genc || 'binary'\n  generator = generator || new Buffer([2])\n\n  if (!Buffer.isBuffer(generator)) {\n    generator = new Buffer(generator, genc)\n  }\n\n  if (typeof prime === 'number') {\n    return new DH(generatePrime(prime, generator), generator, true)\n  }\n\n  if (!Buffer.isBuffer(prime)) {\n    prime = new Buffer(prime, enc)\n  }\n\n  return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/diffie-hellman/browser.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/dh.js":
/*!***********************************************!*\
  !*** ./node_modules/diffie-hellman/lib/dh.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = __webpack_require__(/*! ./generatePrime */ \"./node_modules/diffie-hellman/lib/generatePrime.js\");\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(pub)) {\n    pub = new Buffer(pub, enc);\n  }\n  this._pub = new BN(pub);\n  return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(priv)) {\n    priv = new Buffer(priv, enc);\n  }\n  this._priv = new BN(priv);\n  return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n  var gen = generator.toString('hex');\n  var hex = [gen, prime.toString(16)].join('_');\n  if (hex in primeCache) {\n    return primeCache[hex];\n  }\n  var error = 0;\n\n  if (prime.isEven() ||\n    !primes.simpleSieve ||\n    !primes.fermatTest(prime) ||\n    !millerRabin.test(prime)) {\n    //not a prime so +1\n    error += 1;\n\n    if (gen === '02' || gen === '05') {\n      // we'd be able to check the generator\n      // it would fail so +8\n      error += 8;\n    } else {\n      //we wouldn't be able to test the generator\n      // so +4\n      error += 4;\n    }\n    primeCache[hex] = error;\n    return error;\n  }\n  if (!millerRabin.test(prime.shrn(1))) {\n    //not a safe prime\n    error += 2;\n  }\n  var rem;\n  switch (gen) {\n    case '02':\n      if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        // unsuidable generator\n        error += 8;\n      }\n      break;\n    case '05':\n      rem = prime.mod(TEN);\n      if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n        // prime mod 10 needs to equal 3 or 7\n        error += 8;\n      }\n      break;\n    default:\n      error += 4;\n  }\n  primeCache[hex] = error;\n  return error;\n}\n\nfunction DH(prime, generator, malleable) {\n  this.setGenerator(generator);\n  this.__prime = new BN(prime);\n  this._prime = BN.mont(this.__prime);\n  this._primeLen = prime.length;\n  this._pub = undefined;\n  this._priv = undefined;\n  this._primeCode = undefined;\n  if (malleable) {\n    this.setPublicKey = setPublicKey;\n    this.setPrivateKey = setPrivateKey;\n  } else {\n    this._primeCode = 8;\n  }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n  enumerable: true,\n  get: function () {\n    if (typeof this._primeCode !== 'number') {\n      this._primeCode = checkPrime(this.__prime, this.__gen);\n    }\n    return this._primeCode;\n  }\n});\nDH.prototype.generateKeys = function () {\n  if (!this._priv) {\n    this._priv = new BN(randomBytes(this._primeLen));\n  }\n  this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n  return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n  other = new BN(other);\n  other = other.toRed(this._prime);\n  var secret = other.redPow(this._priv).fromRed();\n  var out = new Buffer(secret.toArray());\n  var prime = this.getPrime();\n  if (out.length < prime.length) {\n    var front = new Buffer(prime.length - out.length);\n    front.fill(0);\n    out = Buffer.concat([front, out]);\n  }\n  return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n  return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n  return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n  return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n  return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n  enc = enc || 'utf8';\n  if (!Buffer.isBuffer(gen)) {\n    gen = new Buffer(gen, enc);\n  }\n  this.__gen = gen;\n  this._gen = new BN(gen);\n  return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n  var buf = new Buffer(bn.toArray());\n  if (!enc) {\n    return buf;\n  } else {\n    return buf.toString(enc);\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/diffie-hellman/lib/dh.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/generatePrime.js":
/*!**********************************************************!*\
  !*** ./node_modules/diffie-hellman/lib/generatePrime.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\");\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js\");\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = __webpack_require__(/*! miller-rabin */ \"./node_modules/miller-rabin/lib/mr.js\");\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n  if (primes !== null)\n    return primes;\n\n  var limit = 0x100000;\n  var res = [];\n  res[0] = 2;\n  for (var i = 1, k = 3; k < limit; k += 2) {\n    var sqrt = Math.ceil(Math.sqrt(k));\n    for (var j = 0; j < i && res[j] <= sqrt; j++)\n      if (k % res[j] === 0)\n        break;\n\n    if (i !== j && res[j] <= sqrt)\n      continue;\n\n    res[i++] = k;\n  }\n  primes = res;\n  return res;\n}\n\nfunction simpleSieve(p) {\n  var primes = _getPrimes();\n\n  for (var i = 0; i < primes.length; i++)\n    if (p.modn(primes[i]) === 0) {\n      if (p.cmpn(primes[i]) === 0) {\n        return true;\n      } else {\n        return false;\n      }\n    }\n\n  return true;\n}\n\nfunction fermatTest(p) {\n  var red = BN.mont(p);\n  return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n  if (bits < 16) {\n    // this is what openssl does\n    if (gen === 2 || gen === 5) {\n      return new BN([0x8c, 0x7b]);\n    } else {\n      return new BN([0x8c, 0x27]);\n    }\n  }\n  gen = new BN(gen);\n\n  var num, n2;\n\n  while (true) {\n    num = new BN(randomBytes(Math.ceil(bits / 8)));\n    while (num.bitLength() > bits) {\n      num.ishrn(1);\n    }\n    if (num.isEven()) {\n      num.iadd(ONE);\n    }\n    if (!num.testn(1)) {\n      num.iadd(TWO);\n    }\n    if (!gen.cmp(TWO)) {\n      while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n        num.iadd(FOUR);\n      }\n    } else if (!gen.cmp(FIVE)) {\n      while (num.mod(TEN).cmp(THREE)) {\n        num.iadd(FOUR);\n      }\n    }\n    n2 = num.shrn(1);\n    if (simpleSieve(n2) && simpleSieve(num) &&\n      fermatTest(n2) && fermatTest(num) &&\n      millerRabin.test(n2) && millerRabin.test(num)) {\n      return num;\n    }\n  }\n\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/diffie-hellman/lib/generatePrime.js?");

/***/ }),

/***/ "./node_modules/diffie-hellman/lib/primes.json":
/*!*****************************************************!*\
  !*** ./node_modules/diffie-hellman/lib/primes.json ***!
  \*****************************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"modp1\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},\"modp2\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},\"modp5\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},\"modp14\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},\"modp15\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},\"modp16\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},\"modp17\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},\"modp18\":{\"gen\":\"02\",\"prime\":\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/diffie-hellman/lib/primes.json?");

/***/ }),

/***/ "./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js":
/*!******************************************************************!*\
  !*** ./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js ***!
  \******************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?e7e4\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/diffie-hellman/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic.js":
/*!***********************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic.js ***!
  \***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar elliptic = exports;\n\nelliptic.version = (__webpack_require__(/*! ../package.json */ \"./node_modules/elliptic/package.json\").version);\nelliptic.utils = __webpack_require__(/*! ./elliptic/utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nelliptic.rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\nelliptic.curve = __webpack_require__(/*! ./elliptic/curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\nelliptic.curves = __webpack_require__(/*! ./elliptic/curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\n\n// Protocols\nelliptic.ec = __webpack_require__(/*! ./elliptic/ec */ \"./node_modules/elliptic/lib/elliptic/ec/index.js\");\nelliptic.eddsa = __webpack_require__(/*! ./elliptic/eddsa */ \"./node_modules/elliptic/lib/elliptic/eddsa/index.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/base.js":
/*!**********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/base.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curve/base.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/edwards.js":
/*!*************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/edwards.js ***!
  \*************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n  // NOTE: Important as we are creating point in Base.call()\n  this.twisted = (conf.a | 0) !== 1;\n  this.mOneA = this.twisted && (conf.a | 0) === -1;\n  this.extended = this.mOneA;\n\n  Base.call(this, 'edwards', conf);\n\n  this.a = new BN(conf.a, 16).umod(this.red.m);\n  this.a = this.a.toRed(this.red);\n  this.c = new BN(conf.c, 16).toRed(this.red);\n  this.c2 = this.c.redSqr();\n  this.d = new BN(conf.d, 16).toRed(this.red);\n  this.dd = this.d.redAdd(this.d);\n\n  assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n  this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n  if (this.mOneA)\n    return num.redNeg();\n  else\n    return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n  if (this.oneC)\n    return num;\n  else\n    return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n  return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n  x = new BN(x, 16);\n  if (!x.red)\n    x = x.toRed(this.red);\n\n  var x2 = x.redSqr();\n  var rhs = this.c2.redSub(this.a.redMul(x2));\n  var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n  var y2 = rhs.redMul(lhs.redInvm());\n  var y = y2.redSqrt();\n  if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n    throw new Error('invalid point');\n\n  var isOdd = y.fromRed().isOdd();\n  if (odd && !isOdd || !odd && isOdd)\n    y = y.redNeg();\n\n  return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n  y = new BN(y, 16);\n  if (!y.red)\n    y = y.toRed(this.red);\n\n  // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n  var y2 = y.redSqr();\n  var lhs = y2.redSub(this.c2);\n  var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n  var x2 = lhs.redMul(rhs.redInvm());\n\n  if (x2.cmp(this.zero) === 0) {\n    if (odd)\n      throw new Error('invalid point');\n    else\n      return this.point(this.zero, y);\n  }\n\n  var x = x2.redSqrt();\n  if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n    throw new Error('invalid point');\n\n  if (x.fromRed().isOdd() !== odd)\n    x = x.redNeg();\n\n  return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n  if (point.isInfinity())\n    return true;\n\n  // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n  point.normalize();\n\n  var x2 = point.x.redSqr();\n  var y2 = point.y.redSqr();\n  var lhs = x2.redMul(this.a).redAdd(y2);\n  var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n  return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n  Base.BasePoint.call(this, curve, 'projective');\n  if (x === null && y === null && z === null) {\n    this.x = this.curve.zero;\n    this.y = this.curve.one;\n    this.z = this.curve.one;\n    this.t = this.curve.zero;\n    this.zOne = true;\n  } else {\n    this.x = new BN(x, 16);\n    this.y = new BN(y, 16);\n    this.z = z ? new BN(z, 16) : this.curve.one;\n    this.t = t && new BN(t, 16);\n    if (!this.x.red)\n      this.x = this.x.toRed(this.curve.red);\n    if (!this.y.red)\n      this.y = this.y.toRed(this.curve.red);\n    if (!this.z.red)\n      this.z = this.z.toRed(this.curve.red);\n    if (this.t && !this.t.red)\n      this.t = this.t.toRed(this.curve.red);\n    this.zOne = this.z === this.curve.one;\n\n    // Use extended coordinates\n    if (this.curve.extended && !this.t) {\n      this.t = this.x.redMul(this.y);\n      if (!this.zOne)\n        this.t = this.t.redMul(this.z.redInvm());\n    }\n  }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n  return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n  return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n  return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity())\n    return '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n      ' y: ' + this.y.fromRed().toString(16, 2) +\n      ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n  // XXX This code assumes that zero is always zero in red\n  return this.x.cmpn(0) === 0 &&\n    (this.y.cmp(this.z) === 0 ||\n    (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n  //     #doubling-dbl-2008-hwcd\n  // 4M + 4S\n\n  // A = X1^2\n  var a = this.x.redSqr();\n  // B = Y1^2\n  var b = this.y.redSqr();\n  // C = 2 * Z1^2\n  var c = this.z.redSqr();\n  c = c.redIAdd(c);\n  // D = a * A\n  var d = this.curve._mulA(a);\n  // E = (X1 + Y1)^2 - A - B\n  var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n  // G = D + B\n  var g = d.redAdd(b);\n  // F = G - C\n  var f = g.redSub(c);\n  // H = D - B\n  var h = d.redSub(b);\n  // X3 = E * F\n  var nx = e.redMul(f);\n  // Y3 = G * H\n  var ny = g.redMul(h);\n  // T3 = E * H\n  var nt = e.redMul(h);\n  // Z3 = F * G\n  var nz = f.redMul(g);\n  return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n  //     #doubling-dbl-2008-bbjlp\n  //     #doubling-dbl-2007-bl\n  // and others\n  // Generally 3M + 4S or 2M + 4S\n\n  // B = (X1 + Y1)^2\n  var b = this.x.redAdd(this.y).redSqr();\n  // C = X1^2\n  var c = this.x.redSqr();\n  // D = Y1^2\n  var d = this.y.redSqr();\n\n  var nx;\n  var ny;\n  var nz;\n  var e;\n  var h;\n  var j;\n  if (this.curve.twisted) {\n    // E = a * C\n    e = this.curve._mulA(c);\n    // F = E + D\n    var f = e.redAdd(d);\n    if (this.zOne) {\n      // X3 = (B - C - D) * (F - 2)\n      nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n      // Y3 = F * (E - D)\n      ny = f.redMul(e.redSub(d));\n      // Z3 = F^2 - 2 * F\n      nz = f.redSqr().redSub(f).redSub(f);\n    } else {\n      // H = Z1^2\n      h = this.z.redSqr();\n      // J = F - 2 * H\n      j = f.redSub(h).redISub(h);\n      // X3 = (B-C-D)*J\n      nx = b.redSub(c).redISub(d).redMul(j);\n      // Y3 = F * (E - D)\n      ny = f.redMul(e.redSub(d));\n      // Z3 = F * J\n      nz = f.redMul(j);\n    }\n  } else {\n    // E = C + D\n    e = c.redAdd(d);\n    // H = (c * Z1)^2\n    h = this.curve._mulC(this.z).redSqr();\n    // J = E - 2 * H\n    j = e.redSub(h).redSub(h);\n    // X3 = c * (B - E) * J\n    nx = this.curve._mulC(b.redISub(e)).redMul(j);\n    // Y3 = c * E * (C - D)\n    ny = this.curve._mulC(e).redMul(c.redISub(d));\n    // Z3 = E * J\n    nz = e.redMul(j);\n  }\n  return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n  if (this.isInfinity())\n    return this;\n\n  // Double in extended coordinates\n  if (this.curve.extended)\n    return this._extDbl();\n  else\n    return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n  //     #addition-add-2008-hwcd-3\n  // 8M\n\n  // A = (Y1 - X1) * (Y2 - X2)\n  var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n  // B = (Y1 + X1) * (Y2 + X2)\n  var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n  // C = T1 * k * T2\n  var c = this.t.redMul(this.curve.dd).redMul(p.t);\n  // D = Z1 * 2 * Z2\n  var d = this.z.redMul(p.z.redAdd(p.z));\n  // E = B - A\n  var e = b.redSub(a);\n  // F = D - C\n  var f = d.redSub(c);\n  // G = D + C\n  var g = d.redAdd(c);\n  // H = B + A\n  var h = b.redAdd(a);\n  // X3 = E * F\n  var nx = e.redMul(f);\n  // Y3 = G * H\n  var ny = g.redMul(h);\n  // T3 = E * H\n  var nt = e.redMul(h);\n  // Z3 = F * G\n  var nz = f.redMul(g);\n  return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n  // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n  //     #addition-add-2008-bbjlp\n  //     #addition-add-2007-bl\n  // 10M + 1S\n\n  // A = Z1 * Z2\n  var a = this.z.redMul(p.z);\n  // B = A^2\n  var b = a.redSqr();\n  // C = X1 * X2\n  var c = this.x.redMul(p.x);\n  // D = Y1 * Y2\n  var d = this.y.redMul(p.y);\n  // E = d * C * D\n  var e = this.curve.d.redMul(c).redMul(d);\n  // F = B - E\n  var f = b.redSub(e);\n  // G = B + E\n  var g = b.redAdd(e);\n  // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n  var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n  var nx = a.redMul(f).redMul(tmp);\n  var ny;\n  var nz;\n  if (this.curve.twisted) {\n    // Y3 = A * G * (D - a * C)\n    ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n    // Z3 = F * G\n    nz = f.redMul(g);\n  } else {\n    // Y3 = A * G * (D - C)\n    ny = a.redMul(g).redMul(d.redSub(c));\n    // Z3 = c * F * G\n    nz = this.curve._mulC(f).redMul(g);\n  }\n  return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n  if (this.isInfinity())\n    return p;\n  if (p.isInfinity())\n    return this;\n\n  if (this.curve.extended)\n    return this._extAdd(p);\n  else\n    return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n  if (this._hasDoubles(k))\n    return this.curve._fixedNafMul(this, k);\n  else\n    return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n  return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n  return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n  if (this.zOne)\n    return this;\n\n  // Normalize coordinates\n  var zi = this.z.redInvm();\n  this.x = this.x.redMul(zi);\n  this.y = this.y.redMul(zi);\n  if (this.t)\n    this.t = this.t.redMul(zi);\n  this.z = this.curve.one;\n  this.zOne = true;\n  return this;\n};\n\nPoint.prototype.neg = function neg() {\n  return this.curve.point(this.x.redNeg(),\n    this.y,\n    this.z,\n    this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n  this.normalize();\n  return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n  this.normalize();\n  return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n  return this === other ||\n         this.getX().cmp(other.getX()) === 0 &&\n         this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n  var rx = x.toRed(this.curve.red).redMul(this.z);\n  if (this.x.cmp(rx) === 0)\n    return true;\n\n  var xc = x.clone();\n  var t = this.curve.redN.redMul(this.z);\n  for (;;) {\n    xc.iadd(this.curve.n);\n    if (xc.cmp(this.curve.p) >= 0)\n      return false;\n\n    rx.redIAdd(t);\n    if (this.x.cmp(rx) === 0)\n      return true;\n  }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curve/edwards.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/index.js ***!
  \***********************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar curve = exports;\n\ncurve.base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\ncurve.short = __webpack_require__(/*! ./short */ \"./node_modules/elliptic/lib/elliptic/curve/short.js\");\ncurve.mont = __webpack_require__(/*! ./mont */ \"./node_modules/elliptic/lib/elliptic/curve/mont.js\");\ncurve.edwards = __webpack_require__(/*! ./edwards */ \"./node_modules/elliptic/lib/elliptic/curve/edwards.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curve/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/mont.js":
/*!**********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/mont.js ***!
  \**********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\n\nfunction MontCurve(conf) {\n  Base.call(this, 'mont', conf);\n\n  this.a = new BN(conf.a, 16).toRed(this.red);\n  this.b = new BN(conf.b, 16).toRed(this.red);\n  this.i4 = new BN(4).toRed(this.red).redInvm();\n  this.two = new BN(2).toRed(this.red);\n  this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n  var x = point.normalize().x;\n  var x2 = x.redSqr();\n  var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n  var y = rhs.redSqrt();\n\n  return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n  Base.BasePoint.call(this, curve, 'projective');\n  if (x === null && z === null) {\n    this.x = this.curve.one;\n    this.z = this.curve.zero;\n  } else {\n    this.x = new BN(x, 16);\n    this.z = new BN(z, 16);\n    if (!this.x.red)\n      this.x = this.x.toRed(this.curve.red);\n    if (!this.z.red)\n      this.z = this.z.toRed(this.curve.red);\n  }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n  return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n  return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n  return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n  // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n  return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n  return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n  if (this.isInfinity())\n    return '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n      ' z: ' + this.z.fromRed().toString(16, 2) + '>';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n  // XXX This code assumes that zero is always zero in red\n  return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n  // 2M + 2S + 4A\n\n  // A = X1 + Z1\n  var a = this.x.redAdd(this.z);\n  // AA = A^2\n  var aa = a.redSqr();\n  // B = X1 - Z1\n  var b = this.x.redSub(this.z);\n  // BB = B^2\n  var bb = b.redSqr();\n  // C = AA - BB\n  var c = aa.redSub(bb);\n  // X3 = AA * BB\n  var nx = aa.redMul(bb);\n  // Z3 = C * (BB + A24 * C)\n  var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n  return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n  // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n  // 4M + 2S + 6A\n\n  // A = X2 + Z2\n  var a = this.x.redAdd(this.z);\n  // B = X2 - Z2\n  var b = this.x.redSub(this.z);\n  // C = X3 + Z3\n  var c = p.x.redAdd(p.z);\n  // D = X3 - Z3\n  var d = p.x.redSub(p.z);\n  // DA = D * A\n  var da = d.redMul(a);\n  // CB = C * B\n  var cb = c.redMul(b);\n  // X5 = Z1 * (DA + CB)^2\n  var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n  // Z5 = X1 * (DA - CB)^2\n  var nz = diff.x.redMul(da.redISub(cb).redSqr());\n  return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n  var t = k.clone();\n  var a = this; // (N / 2) * Q + Q\n  var b = this.curve.point(null, null); // (N / 2) * Q\n  var c = this; // Q\n\n  for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n    bits.push(t.andln(1));\n\n  for (var i = bits.length - 1; i >= 0; i--) {\n    if (bits[i] === 0) {\n      // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n      a = a.diffAdd(b, c);\n      // N * Q = 2 * ((N / 2) * Q + Q))\n      b = b.dbl();\n    } else {\n      // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n      b = a.diffAdd(b, c);\n      // N * Q + Q = 2 * ((N / 2) * Q + Q)\n      a = a.dbl();\n    }\n  }\n  return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n  throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n  return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n  this.x = this.x.redMul(this.z.redInvm());\n  this.z = this.curve.one;\n  return this;\n};\n\nPoint.prototype.getX = function getX() {\n  // Normalize coordinates\n  this.normalize();\n\n  return this.x.fromRed();\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curve/mont.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curve/short.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curve/short.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\nvar Base = __webpack_require__(/*! ./base */ \"./node_modules/elliptic/lib/elliptic/curve/base.js\");\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 '<EC Point Infinity>';\n  return '<EC Point x: ' + this.x.fromRed().toString(16, 2) +\n      ' y: ' + this.y.fromRed().toString(16, 2) + '>';\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 '<EC JPoint Infinity>';\n  return '<EC JPoint x: ' + this.x.toString(16, 2) +\n      ' y: ' + this.y.toString(16, 2) +\n      ' z: ' + this.z.toString(16, 2) + '>';\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curve/short.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/curves.js":
/*!******************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/curves.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar curves = exports;\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\nvar curve = __webpack_require__(/*! ./curve */ \"./node_modules/elliptic/lib/elliptic/curve/index.js\");\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\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 = __webpack_require__(/*! ./precomputed/secp256k1 */ \"./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js\");\n} catch (e) {\n  pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n  type: 'short',\n  prime: 'k256',\n  p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n  a: '0',\n  b: '7',\n  n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n  h: '1',\n  hash: hash.sha256,\n\n  // Precomputed endomorphism\n  beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n  lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n  basis: [\n    {\n      a: '3086d221a7d46bcde86c90e49284eb15',\n      b: '-e4437ed6010e88286f547fa90abfe4c3',\n    },\n    {\n      a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n      b: '3086d221a7d46bcde86c90e49284eb15',\n    },\n  ],\n\n  gRed: false,\n  g: [\n    '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n    '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n    pre,\n  ],\n});\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/curves.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/index.js":
/*!********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/index.js ***!
  \********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar HmacDRBG = __webpack_require__(/*! hmac-drbg */ \"./node_modules/hmac-drbg/lib/hmac-drbg.js\");\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\nvar rand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\nvar assert = utils.assert;\n\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/ec/key.js\");\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/ec/signature.js\");\n\nfunction EC(options) {\n  if (!(this instanceof EC))\n    return new EC(options);\n\n  // Shortcut `elliptic.ec(curve-name)`\n  if (typeof options === 'string') {\n    assert(Object.prototype.hasOwnProperty.call(curves, options),\n      'Unknown curve ' + options);\n\n    options = curves[options];\n  }\n\n  // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n  if (options instanceof curves.PresetCurve)\n    options = { curve: options };\n\n  this.curve = options.curve.curve;\n  this.n = this.curve.n;\n  this.nh = this.n.ushrn(1);\n  this.g = this.curve.g;\n\n  // Point on curve\n  this.g = options.curve.g;\n  this.g.precompute(options.curve.n.bitLength() + 1);\n\n  // Hash for function for DRBG\n  this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n  return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n  return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n  return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n  if (!options)\n    options = {};\n\n  // Instantiate Hmac_DRBG\n  var drbg = new HmacDRBG({\n    hash: this.hash,\n    pers: options.pers,\n    persEnc: options.persEnc || 'utf8',\n    entropy: options.entropy || rand(this.hash.hmacStrength),\n    entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n    nonce: this.n.toArray(),\n  });\n\n  var bytes = this.n.byteLength();\n  var ns2 = this.n.sub(new BN(2));\n  for (;;) {\n    var priv = new BN(drbg.generate(bytes));\n    if (priv.cmp(ns2) > 0)\n      continue;\n\n    priv.iaddn(1);\n    return this.keyFromPrivate(priv);\n  }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly, bitLength) {\n  var byteLength;\n  if (BN.isBN(msg) || typeof msg === 'number') {\n    msg = new BN(msg, 16);\n    byteLength = msg.byteLength();\n  } else if (typeof msg === 'object') {\n    // BN assumes an array-like input and asserts length\n    byteLength = msg.length;\n    msg = new BN(msg, 16);\n  } else {\n    // BN converts the value to string\n    var str = msg.toString();\n    // HEX encoding\n    byteLength = (str.length + 1) >>> 1;\n    msg = new BN(str, 16);\n  }\n  // Allow overriding\n  if (typeof bitLength !== 'number') {\n    bitLength = byteLength * 8;\n  }\n  var delta = bitLength - this.n.bitLength();\n  if (delta > 0)\n    msg = msg.ushrn(delta);\n  if (!truncOnly && msg.cmp(this.n) >= 0)\n    return msg.sub(this.n);\n  else\n    return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n  if (typeof enc === 'object') {\n    options = enc;\n    enc = null;\n  }\n  if (!options)\n    options = {};\n\n  if (typeof msg !== 'string' && typeof msg !== 'number' && !BN.isBN(msg)) {\n    assert(typeof msg === 'object' && msg && typeof msg.length === 'number',\n      'Expected message to be an array-like, a hex string, or a BN instance');\n    assert((msg.length >>> 0) === msg.length); // non-negative 32-bit integer\n    for (var i = 0; i < msg.length; i++) assert((msg[i] & 255) === msg[i]);\n  }\n\n  key = this.keyFromPrivate(key, enc);\n  msg = this._truncateToN(msg, false, options.msgBitLength);\n\n  // Would fail further checks, but let's make the error message clear\n  assert(!msg.isNeg(), 'Can not sign a negative message');\n\n  // Zero-extend key to provide enough entropy\n  var bytes = this.n.byteLength();\n  var bkey = key.getPrivate().toArray('be', bytes);\n\n  // Zero-extend nonce to have the same byte size as N\n  var nonce = msg.toArray('be', bytes);\n\n  // Recheck nonce to be bijective to msg\n  assert((new BN(nonce)).eq(msg), 'Can not sign message');\n\n  // Instantiate Hmac_DRBG\n  var drbg = new HmacDRBG({\n    hash: this.hash,\n    entropy: bkey,\n    nonce: nonce,\n    pers: options.pers,\n    persEnc: options.persEnc || 'utf8',\n  });\n\n  // Number of bytes to generate\n  var ns1 = this.n.sub(new BN(1));\n\n  for (var iter = 0; ; iter++) {\n    var k = options.k ?\n      options.k(iter) :\n      new BN(drbg.generate(this.n.byteLength()));\n    k = this._truncateToN(k, true);\n    if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n      continue;\n\n    var kp = this.g.mul(k);\n    if (kp.isInfinity())\n      continue;\n\n    var kpX = kp.getX();\n    var r = kpX.umod(this.n);\n    if (r.cmpn(0) === 0)\n      continue;\n\n    var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n    s = s.umod(this.n);\n    if (s.cmpn(0) === 0)\n      continue;\n\n    var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n                        (kpX.cmp(r) !== 0 ? 2 : 0);\n\n    // Use complement of `s`, if it is > `n / 2`\n    if (options.canonical && s.cmp(this.nh) > 0) {\n      s = this.n.sub(s);\n      recoveryParam ^= 1;\n    }\n\n    return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n  }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc, options) {\n  if (!options)\n    options = {};\n\n  msg = this._truncateToN(msg, false, options.msgBitLength);\n  key = this.keyFromPublic(key, enc);\n  signature = new Signature(signature, 'hex');\n\n  // Perform primitive values validation\n  var r = signature.r;\n  var s = signature.s;\n  if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n    return false;\n  if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n    return false;\n\n  // Validate signature\n  var sinv = s.invm(this.n);\n  var u1 = sinv.mul(msg).umod(this.n);\n  var u2 = sinv.mul(r).umod(this.n);\n  var p;\n\n  if (!this.curve._maxwellTrick) {\n    p = this.g.mulAdd(u1, key.getPublic(), u2);\n    if (p.isInfinity())\n      return false;\n\n    return p.getX().umod(this.n).cmp(r) === 0;\n  }\n\n  // NOTE: Greg Maxwell's trick, inspired by:\n  // https://git.io/vad3K\n\n  p = this.g.jmulAdd(u1, key.getPublic(), u2);\n  if (p.isInfinity())\n    return false;\n\n  // Compare `p.x` of Jacobian point with `r`,\n  // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n  // inverse of `p.z^2`\n  return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n  assert((3 & j) === j, 'The recovery param is more than two bits');\n  signature = new Signature(signature, enc);\n\n  var n = this.n;\n  var e = new BN(msg);\n  var r = signature.r;\n  var s = signature.s;\n\n  // A set LSB signifies that the y-coordinate is odd\n  var isYOdd = j & 1;\n  var isSecondKey = j >> 1;\n  if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n    throw new Error('Unable to find sencond key candinate');\n\n  // 1.1. Let x = r + jn.\n  if (isSecondKey)\n    r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n  else\n    r = this.curve.pointFromX(r, isYOdd);\n\n  var rInv = signature.r.invm(n);\n  var s1 = n.sub(e).mul(rInv).umod(n);\n  var s2 = s.mul(rInv).umod(n);\n\n  // 1.6.1 Compute Q = r^-1 (sR -  eG)\n  //               Q = r^-1 (sR + -eG)\n  return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n  signature = new Signature(signature, enc);\n  if (signature.recoveryParam !== null)\n    return signature.recoveryParam;\n\n  for (var i = 0; i < 4; i++) {\n    var Qprime;\n    try {\n      Qprime = this.recoverPubKey(e, signature, i);\n    } catch (e) {\n      continue;\n    }\n\n    if (Qprime.eq(Q))\n      return i;\n  }\n  throw new Error('Unable to find valid recovery factor');\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/ec/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/key.js":
/*!******************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/key.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n  this.ec = ec;\n  this.priv = null;\n  this.pub = null;\n\n  // KeyPair(ec, { priv: ..., pub: ... })\n  if (options.priv)\n    this._importPrivate(options.priv, options.privEnc);\n  if (options.pub)\n    this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n  if (pub instanceof KeyPair)\n    return pub;\n\n  return new KeyPair(ec, {\n    pub: pub,\n    pubEnc: enc,\n  });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n  if (priv instanceof KeyPair)\n    return priv;\n\n  return new KeyPair(ec, {\n    priv: priv,\n    privEnc: enc,\n  });\n};\n\nKeyPair.prototype.validate = function validate() {\n  var pub = this.getPublic();\n\n  if (pub.isInfinity())\n    return { result: false, reason: 'Invalid public key' };\n  if (!pub.validate())\n    return { result: false, reason: 'Public key is not a point' };\n  if (!pub.mul(this.ec.curve.n).isInfinity())\n    return { result: false, reason: 'Public key * N != O' };\n\n  return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n  // compact is optional argument\n  if (typeof compact === 'string') {\n    enc = compact;\n    compact = null;\n  }\n\n  if (!this.pub)\n    this.pub = this.ec.g.mul(this.priv);\n\n  if (!enc)\n    return this.pub;\n\n  return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n  if (enc === 'hex')\n    return this.priv.toString(16, 2);\n  else\n    return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n  this.priv = new BN(key, enc || 16);\n\n  // Ensure that the priv won't be bigger than n, otherwise we may fail\n  // in fixed multiplication method\n  this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n  if (key.x || key.y) {\n    // Montgomery points only have an `x` coordinate.\n    // Weierstrass/Edwards points on the other hand have both `x` and\n    // `y` coordinates.\n    if (this.ec.curve.type === 'mont') {\n      assert(key.x, 'Need x coordinate');\n    } else if (this.ec.curve.type === 'short' ||\n               this.ec.curve.type === 'edwards') {\n      assert(key.x && key.y, 'Need both x and y coordinate');\n    }\n    this.pub = this.ec.curve.point(key.x, key.y);\n    return;\n  }\n  this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n  if(!pub.validate()) {\n    assert(pub.validate(), 'public point not validated');\n  }\n  return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n  return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature, options) {\n  return this.ec.verify(msg, signature, this, undefined, options);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n  return '<Key priv: ' + (this.priv && this.priv.toString(16, 2)) +\n         ' pub: ' + (this.pub && this.pub.inspect()) + ' >';\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/ec/key.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/ec/signature.js":
/*!************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/ec/signature.js ***!
  \************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n  if (options instanceof Signature)\n    return options;\n\n  if (this._importDER(options, enc))\n    return;\n\n  assert(options.r && options.s, 'Signature without r or s');\n  this.r = new BN(options.r, 16);\n  this.s = new BN(options.s, 16);\n  if (options.recoveryParam === undefined)\n    this.recoveryParam = null;\n  else\n    this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n  this.place = 0;\n}\n\nfunction getLength(buf, p) {\n  var initial = buf[p.place++];\n  if (!(initial & 0x80)) {\n    return initial;\n  }\n  var octetLen = initial & 0xf;\n\n  // Indefinite length or overflow\n  if (octetLen === 0 || octetLen > 4) {\n    return false;\n  }\n\n  if(buf[p.place] === 0x00) {\n    return false;\n  }\n\n  var val = 0;\n  for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n    val <<= 8;\n    val |= buf[off];\n    val >>>= 0;\n  }\n\n  // Leading zeroes\n  if (val <= 0x7f) {\n    return false;\n  }\n\n  p.place = off;\n  return val;\n}\n\nfunction rmPadding(buf) {\n  var i = 0;\n  var len = buf.length - 1;\n  while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n    i++;\n  }\n  if (i === 0) {\n    return buf;\n  }\n  return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n  data = utils.toArray(data, enc);\n  var p = new Position();\n  if (data[p.place++] !== 0x30) {\n    return false;\n  }\n  var len = getLength(data, p);\n  if (len === false) {\n    return false;\n  }\n  if ((len + p.place) !== data.length) {\n    return false;\n  }\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var rlen = getLength(data, p);\n  if (rlen === false) {\n    return false;\n  }\n  if ((data[p.place] & 128) !== 0) {\n    return false;\n  }\n  var r = data.slice(p.place, rlen + p.place);\n  p.place += rlen;\n  if (data[p.place++] !== 0x02) {\n    return false;\n  }\n  var slen = getLength(data, p);\n  if (slen === false) {\n    return false;\n  }\n  if (data.length !== slen + p.place) {\n    return false;\n  }\n  if ((data[p.place] & 128) !== 0) {\n    return false;\n  }\n  var s = data.slice(p.place, slen + p.place);\n  if (r[0] === 0) {\n    if (r[1] & 0x80) {\n      r = r.slice(1);\n    } else {\n      // Leading zeroes\n      return false;\n    }\n  }\n  if (s[0] === 0) {\n    if (s[1] & 0x80) {\n      s = s.slice(1);\n    } else {\n      // Leading zeroes\n      return false;\n    }\n  }\n\n  this.r = new BN(r);\n  this.s = new BN(s);\n  this.recoveryParam = null;\n\n  return true;\n};\n\nfunction constructLength(arr, len) {\n  if (len < 0x80) {\n    arr.push(len);\n    return;\n  }\n  var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n  arr.push(octets | 0x80);\n  while (--octets) {\n    arr.push((len >>> (octets << 3)) & 0xff);\n  }\n  arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n  var r = this.r.toArray();\n  var s = this.s.toArray();\n\n  // Pad values\n  if (r[0] & 0x80)\n    r = [ 0 ].concat(r);\n  // Pad values\n  if (s[0] & 0x80)\n    s = [ 0 ].concat(s);\n\n  r = rmPadding(r);\n  s = rmPadding(s);\n\n  while (!s[0] && !(s[1] & 0x80)) {\n    s = s.slice(1);\n  }\n  var arr = [ 0x02 ];\n  constructLength(arr, r.length);\n  arr = arr.concat(r);\n  arr.push(0x02);\n  constructLength(arr, s.length);\n  var backHalf = arr.concat(s);\n  var res = [ 0x30 ];\n  constructLength(res, backHalf.length);\n  res = res.concat(backHalf);\n  return utils.encode(res, enc);\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/ec/signature.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/index.js":
/*!***********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/index.js ***!
  \***********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\nvar curves = __webpack_require__(/*! ../curves */ \"./node_modules/elliptic/lib/elliptic/curves.js\");\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = __webpack_require__(/*! ./key */ \"./node_modules/elliptic/lib/elliptic/eddsa/key.js\");\nvar Signature = __webpack_require__(/*! ./signature */ \"./node_modules/elliptic/lib/elliptic/eddsa/signature.js\");\n\nfunction EDDSA(curve) {\n  assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n  if (!(this instanceof EDDSA))\n    return new EDDSA(curve);\n\n  curve = curves[curve].curve;\n  this.curve = curve;\n  this.g = curve.g;\n  this.g.precompute(curve.n.bitLength() + 1);\n\n  this.pointClass = curve.point().constructor;\n  this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n  this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n  message = parseBytes(message);\n  var key = this.keyFromSecret(secret);\n  var r = this.hashInt(key.messagePrefix(), message);\n  var R = this.g.mul(r);\n  var Rencoded = this.encodePoint(R);\n  var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n    .mul(key.priv());\n  var S = r.add(s_).umod(this.curve.n);\n  return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n  message = parseBytes(message);\n  sig = this.makeSignature(sig);\n  if (sig.S().gte(sig.eddsa.curve.n) || sig.S().isNeg()) {\n    return false;\n  }\n  var key = this.keyFromPublic(pub);\n  var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n  var SG = this.g.mul(sig.S());\n  var RplusAh = sig.R().add(key.pub().mul(h));\n  return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n  var hash = this.hash();\n  for (var i = 0; i < arguments.length; i++)\n    hash.update(arguments[i]);\n  return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n  return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n  return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n  if (sig instanceof Signature)\n    return sig;\n  return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n  var enc = point.getY().toArray('le', this.encodingLength);\n  enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n  return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n  bytes = utils.parseBytes(bytes);\n\n  var lastIx = bytes.length - 1;\n  var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n  var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n  var y = utils.intFromLE(normed);\n  return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n  return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n  return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n  return val instanceof this.pointClass;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/eddsa/index.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/key.js":
/*!*********************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/key.js ***!
  \*********************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array<Byte>} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array<Byte>} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n  this.eddsa = eddsa;\n  this._secret = parseBytes(params.secret);\n  if (eddsa.isPoint(params.pub))\n    this._pub = params.pub;\n  else\n    this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n  if (pub instanceof KeyPair)\n    return pub;\n  return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n  if (secret instanceof KeyPair)\n    return secret;\n  return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n  return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n  return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n  if (this._pubBytes)\n    return this.eddsa.decodePoint(this._pubBytes);\n  return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n  var eddsa = this.eddsa;\n  var hash = this.hash();\n  var lastIx = eddsa.encodingLength - 1;\n\n  var a = hash.slice(0, eddsa.encodingLength);\n  a[0] &= 248;\n  a[lastIx] &= 127;\n  a[lastIx] |= 64;\n\n  return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n  return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n  return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n  return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n  assert(this._secret, 'KeyPair can only verify');\n  return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n  return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n  assert(this._secret, 'KeyPair is public only');\n  return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n  return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/eddsa/key.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/eddsa/signature.js":
/*!***************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/eddsa/signature.js ***!
  \***************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/elliptic/lib/elliptic/utils.js\");\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array<Bytes>|Object} sig -\n* @param {Array<Bytes>|Point} [sig.R] - R point as Point or bytes\n* @param {Array<Bytes>|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array<Bytes>} [sig.Rencoded] - R point encoded\n* @param {Array<Bytes>} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n  this.eddsa = eddsa;\n\n  if (typeof sig !== 'object')\n    sig = parseBytes(sig);\n\n  if (Array.isArray(sig)) {\n    assert(sig.length === eddsa.encodingLength * 2, 'Signature has invalid size');\n    sig = {\n      R: sig.slice(0, eddsa.encodingLength),\n      S: sig.slice(eddsa.encodingLength),\n    };\n  }\n\n  assert(sig.R && sig.S, 'Signature without R or S');\n\n  if (eddsa.isPoint(sig.R))\n    this._R = sig.R;\n  if (sig.S instanceof BN)\n    this._S = sig.S;\n\n  this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n  this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n  return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n  return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n  return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n  return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n  return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n  return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/eddsa/signature.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js":
/*!*********************************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js ***!
  \*********************************************************************/
/***/ ((module) => {

eval("module.exports = {\n  doubles: {\n    step: 4,\n    points: [\n      [\n        'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n        'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n      ],\n      [\n        '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n        '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n      ],\n      [\n        '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n        'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n      ],\n      [\n        '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n        '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n      ],\n      [\n        '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n        '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n      ],\n      [\n        '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n        '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n      ],\n      [\n        'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n        '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n      ],\n      [\n        '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n        'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n      ],\n      [\n        'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n        '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n      ],\n      [\n        'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n        'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n      ],\n      [\n        'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n        '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n      ],\n      [\n        '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n        '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n      ],\n      [\n        '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n        '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n      ],\n      [\n        '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n        '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n      ],\n      [\n        '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n        '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n      ],\n      [\n        '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n        '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n      ],\n      [\n        '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n        '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n      ],\n      [\n        '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n        '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n      ],\n      [\n        '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n        'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n      ],\n      [\n        'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n        '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n      ],\n      [\n        'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n        '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n      ],\n      [\n        '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n        '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n      ],\n      [\n        '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n        '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n      ],\n      [\n        'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n        '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n      ],\n      [\n        '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n        'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n      ],\n      [\n        'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n        '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n      ],\n      [\n        'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n        'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n      ],\n      [\n        'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n        '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n      ],\n      [\n        'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n        'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n      ],\n      [\n        'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n        '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n      ],\n      [\n        '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n        'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n      ],\n      [\n        '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n        '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n      ],\n      [\n        'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n        '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n      ],\n      [\n        '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n        'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n      ],\n      [\n        'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n        '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n      ],\n      [\n        'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n        '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n      ],\n      [\n        'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n        'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n      ],\n      [\n        '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n        '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n      ],\n      [\n        '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n        '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n      ],\n      [\n        '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n        'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n      ],\n      [\n        '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n        '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n      ],\n      [\n        'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n        '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n      ],\n      [\n        '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n        '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n      ],\n      [\n        '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n        'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n      ],\n      [\n        '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n        '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n      ],\n      [\n        'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n        '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n      ],\n      [\n        '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n        'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n      ],\n      [\n        'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n        'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n      ],\n      [\n        'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n        '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n      ],\n      [\n        '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n        'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n      ],\n      [\n        '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n        'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n      ],\n      [\n        'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n        '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n      ],\n      [\n        'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n        '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n      ],\n      [\n        'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n        '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n      ],\n      [\n        '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n        'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n      ],\n      [\n        '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n        '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n      ],\n      [\n        'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n        'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n      ],\n      [\n        '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n        'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n      ],\n      [\n        '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n        '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n      ],\n      [\n        '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n        '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n      ],\n      [\n        'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n        'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n      ],\n      [\n        '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n        '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n      ],\n      [\n        '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n        '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n      ],\n      [\n        'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n        '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n      ],\n      [\n        'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n        'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n      ],\n    ],\n  },\n  naf: {\n    wnd: 7,\n    points: [\n      [\n        'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n        '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n      ],\n      [\n        '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n        'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n      ],\n      [\n        '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n        '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n      ],\n      [\n        'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n        'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n      ],\n      [\n        '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n        'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n      ],\n      [\n        'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n        'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n      ],\n      [\n        'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n        '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n      ],\n      [\n        'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n        '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n      ],\n      [\n        '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n        '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n      ],\n      [\n        '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n        '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n      ],\n      [\n        '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n        '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n      ],\n      [\n        '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n        '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n      ],\n      [\n        'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n        'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n      ],\n      [\n        'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n        '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n      ],\n      [\n        '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n        'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n      ],\n      [\n        '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n        'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n      ],\n      [\n        '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n        '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n      ],\n      [\n        '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n        '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n      ],\n      [\n        '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n        '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n      ],\n      [\n        '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n        'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n      ],\n      [\n        'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n        'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n      ],\n      [\n        '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n        '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n      ],\n      [\n        '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n        '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n      ],\n      [\n        'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n        'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n      ],\n      [\n        '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n        '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n      ],\n      [\n        'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n        'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n      ],\n      [\n        'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n        'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n      ],\n      [\n        '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n        '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n      ],\n      [\n        '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n        '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n      ],\n      [\n        '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n        '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n      ],\n      [\n        'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n        '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n      ],\n      [\n        '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n        '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n      ],\n      [\n        'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n        '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n      ],\n      [\n        '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n        'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n      ],\n      [\n        '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n        'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n      ],\n      [\n        'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n        'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n      ],\n      [\n        '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n        '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n      ],\n      [\n        '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n        'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n      ],\n      [\n        'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n        'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n      ],\n      [\n        '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n        '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n      ],\n      [\n        '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n        'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n      ],\n      [\n        '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n        '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n      ],\n      [\n        '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n        'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n      ],\n      [\n        'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n        '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n      ],\n      [\n        '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n        '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n      ],\n      [\n        '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n        'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n      ],\n      [\n        '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n        'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n      ],\n      [\n        'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n        'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n      ],\n      [\n        'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n        'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n      ],\n      [\n        '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n        '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n      ],\n      [\n        '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n        '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n      ],\n      [\n        'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n        '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n      ],\n      [\n        'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n        'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n      ],\n      [\n        '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n        '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n      ],\n      [\n        '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n        '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n      ],\n      [\n        'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n        '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n      ],\n      [\n        '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n        '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n      ],\n      [\n        'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n        'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n      ],\n      [\n        '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n        'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n      ],\n      [\n        '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n        '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n      ],\n      [\n        'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n        '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n      ],\n      [\n        'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n        '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n      ],\n      [\n        '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n        '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n      ],\n      [\n        '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n        '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n      ],\n      [\n        '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n        'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n      ],\n      [\n        '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n        'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n      ],\n      [\n        '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n        '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n      ],\n      [\n        '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n        '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n      ],\n      [\n        '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n        '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n      ],\n      [\n        '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n        'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n      ],\n      [\n        'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n        'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n      ],\n      [\n        '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n        'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n      ],\n      [\n        'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n        '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n      ],\n      [\n        'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n        '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n      ],\n      [\n        'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n        '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n      ],\n      [\n        'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n        '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n      ],\n      [\n        '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n        'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n      ],\n      [\n        '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n        '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n      ],\n      [\n        '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n        'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n      ],\n      [\n        'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n        'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n      ],\n      [\n        'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n        '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n      ],\n      [\n        'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n        'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n      ],\n      [\n        'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n        '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n      ],\n      [\n        '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n        '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n      ],\n      [\n        'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n        '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n      ],\n      [\n        'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n        '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n      ],\n      [\n        '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n        '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n      ],\n      [\n        '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n        'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n      ],\n      [\n        'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n        '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n      ],\n      [\n        'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n        '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n      ],\n      [\n        'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n        '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n      ],\n      [\n        '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n        '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n      ],\n      [\n        'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n        'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n      ],\n      [\n        '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n        'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n      ],\n      [\n        'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n        'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n      ],\n      [\n        'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n        '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n      ],\n      [\n        '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n        'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n      ],\n      [\n        'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n        '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n      ],\n      [\n        'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n        '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n      ],\n      [\n        'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n        '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n      ],\n      [\n        '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n        'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n      ],\n      [\n        '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n        'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n      ],\n      [\n        'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n        '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n      ],\n      [\n        '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n        'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n      ],\n      [\n        '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n        '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n      ],\n      [\n        '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n        'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n      ],\n      [\n        'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n        'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n      ],\n      [\n        '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n        'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n      ],\n      [\n        '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n        '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n      ],\n      [\n        '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n        'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n      ],\n      [\n        '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n        '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n      ],\n      [\n        'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n        'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n      ],\n      [\n        '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n        '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n      ],\n      [\n        'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n        '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n      ],\n      [\n        '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n        '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n      ],\n      [\n        'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n        'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n      ],\n      [\n        'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n        '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n      ],\n      [\n        'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n        'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n      ],\n      [\n        '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n        'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n      ],\n      [\n        '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n        '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n      ],\n      [\n        '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n        'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n      ],\n      [\n        '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n        '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n      ],\n      [\n        '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n        '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n      ],\n      [\n        '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n        'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n      ],\n      [\n        '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n        '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n      ],\n      [\n        '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n        '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n      ],\n      [\n        '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n        '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n      ],\n    ],\n  },\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js?");

/***/ }),

/***/ "./node_modules/elliptic/lib/elliptic/utils.js":
/*!*****************************************************!*\
  !*** ./node_modules/elliptic/lib/elliptic/utils.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = exports;\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/elliptic/node_modules/bn.js/lib/bn.js\");\nvar minAssert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\nvar minUtils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n  var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n  var i;\n  for (i = 0; i < naf.length; i += 1) {\n    naf[i] = 0;\n  }\n\n  var ws = 1 << (w + 1);\n  var k = num.clone();\n\n  for (i = 0; i < naf.length; i++) {\n    var z;\n    var mod = k.andln(ws - 1);\n    if (k.isOdd()) {\n      if (mod > (ws >> 1) - 1)\n        z = (ws >> 1) - mod;\n      else\n        z = mod;\n      k.isubn(z);\n    } else {\n      z = 0;\n    }\n\n    naf[i] = z;\n    k.iushrn(1);\n  }\n\n  return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n  var jsf = [\n    [],\n    [],\n  ];\n\n  k1 = k1.clone();\n  k2 = k2.clone();\n  var d1 = 0;\n  var d2 = 0;\n  var m8;\n  while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n    // First phase\n    var m14 = (k1.andln(3) + d1) & 3;\n    var m24 = (k2.andln(3) + d2) & 3;\n    if (m14 === 3)\n      m14 = -1;\n    if (m24 === 3)\n      m24 = -1;\n    var u1;\n    if ((m14 & 1) === 0) {\n      u1 = 0;\n    } else {\n      m8 = (k1.andln(7) + d1) & 7;\n      if ((m8 === 3 || m8 === 5) && m24 === 2)\n        u1 = -m14;\n      else\n        u1 = m14;\n    }\n    jsf[0].push(u1);\n\n    var u2;\n    if ((m24 & 1) === 0) {\n      u2 = 0;\n    } else {\n      m8 = (k2.andln(7) + d2) & 7;\n      if ((m8 === 3 || m8 === 5) && m14 === 2)\n        u2 = -m24;\n      else\n        u2 = m24;\n    }\n    jsf[1].push(u2);\n\n    // Second phase\n    if (2 * d1 === u1 + 1)\n      d1 = 1 - d1;\n    if (2 * d2 === u2 + 1)\n      d2 = 1 - d2;\n    k1.iushrn(1);\n    k2.iushrn(1);\n  }\n\n  return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n  var key = '_' + name;\n  obj.prototype[name] = function cachedProperty() {\n    return this[key] !== undefined ? this[key] :\n      this[key] = computer.call(this);\n  };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n  return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n    bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n  return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/lib/elliptic/utils.js?");

/***/ }),

/***/ "./node_modules/elliptic/node_modules/bn.js/lib/bn.js":
/*!************************************************************!*\
  !*** ./node_modules/elliptic/node_modules/bn.js/lib/bn.js ***!
  \************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?7bec\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/elliptic/package.json":
/*!********************************************!*\
  !*** ./node_modules/elliptic/package.json ***!
  \********************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"name\":\"elliptic\",\"version\":\"6.6.1\",\"description\":\"EC cryptography\",\"main\":\"lib/elliptic.js\",\"files\":[\"lib\"],\"scripts\":{\"lint\":\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",\"unit\":\"istanbul test _mocha --reporter=spec test/index.js\",\"test\":\"npm run lint && npm run unit\",\"version\":\"grunt dist && git add dist/\"},\"repository\":{\"type\":\"git\",\"url\":\"git@github.com:indutny/elliptic\"},\"keywords\":[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],\"author\":\"Fedor Indutny <fedor@indutny.com>\",\"license\":\"MIT\",\"bugs\":{\"url\":\"https://github.com/indutny/elliptic/issues\"},\"homepage\":\"https://github.com/indutny/elliptic\",\"devDependencies\":{\"brfs\":\"^2.0.2\",\"coveralls\":\"^3.1.0\",\"eslint\":\"^7.6.0\",\"grunt\":\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",\"istanbul\":\"^0.4.5\",\"mocha\":\"^8.0.1\"},\"dependencies\":{\"bn.js\":\"^4.11.9\",\"brorand\":\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",\"inherits\":\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/elliptic/package.json?");

/***/ }),

/***/ "./node_modules/events/events.js":
/*!***************************************!*\
  !*** ./node_modules/events/events.js ***!
  \***************************************/
/***/ ((module) => {

"use strict";
eval("// 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\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/events/events.js?");

/***/ }),

/***/ "./node_modules/evp_bytestokey/index.js":
/*!**********************************************!*\
  !*** ./node_modules/evp_bytestokey/index.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar MD5 = __webpack_require__(/*! md5.js */ \"./node_modules/md5.js/index.js\")\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n  if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n  if (salt) {\n    if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n    if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n  }\n\n  var keyLen = keyBits / 8\n  var key = Buffer.alloc(keyLen)\n  var iv = Buffer.alloc(ivLen || 0)\n  var tmp = Buffer.alloc(0)\n\n  while (keyLen > 0 || ivLen > 0) {\n    var hash = new MD5()\n    hash.update(tmp)\n    hash.update(password)\n    if (salt) hash.update(salt)\n    tmp = hash.digest()\n\n    var used = 0\n\n    if (keyLen > 0) {\n      var keyStart = key.length - keyLen\n      used = Math.min(keyLen, tmp.length)\n      tmp.copy(key, keyStart, 0, used)\n      keyLen -= used\n    }\n\n    if (used < tmp.length && ivLen > 0) {\n      var ivStart = iv.length - ivLen\n      var length = Math.min(ivLen, tmp.length - used)\n      tmp.copy(iv, ivStart, used, used + length)\n      ivLen -= length\n    }\n  }\n\n  tmp.fill(0)\n  return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/evp_bytestokey/index.js?");

/***/ }),

/***/ "./node_modules/fraction.js/fraction.js":
/*!**********************************************!*\
  !*** ./node_modules/fraction.js/fraction.js ***!
  \**********************************************/
/***/ (function(module, exports) {

eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * @license Fraction.js v4.0.1 09/09/2015\n * http://www.xarg.org/2014/03/rational-numbers-in-javascript/\n *\n * Copyright (c) 2015, Robert Eisele (robert@xarg.org)\n * Dual licensed under the MIT or GPL Version 2 licenses.\n **/\n\n\n/**\n *\n * This class offers the possibility to calculate fractions.\n * You can pass a fraction in different formats. Either as array, as double, as string or as an integer.\n *\n * Array/Object form\n * [ 0 => <nominator>, 1 => <denominator> ]\n * [ n => <nominator>, d => <denominator> ]\n *\n * Integer form\n * - Single integer value\n *\n * Double form\n * - Single double value\n *\n * String form\n * 123.456 - a simple double\n * 123/456 - a string fraction\n * 123.'456' - a double with repeating decimal places\n * 123.(456) - synonym\n * 123.45'6' - a double with repeating last place\n * 123.45(6) - synonym\n *\n * Example:\n *\n * var f = new Fraction(\"9.4'31'\");\n * f.mul([-4, 3]).div(4.9);\n *\n */\n\n(function (root) {\n\n  \"use strict\";\n\n  // Maximum search depth for cyclic rational numbers. 2000 should be more than enough.\n  // Example: 1/7 = 0.(142857) has 6 repeating decimal places.\n  // If MAX_CYCLE_LEN gets reduced, long cycles will not be detected and toString() only gets the first 10 digits\n  var MAX_CYCLE_LEN = 2000;\n\n  // Parsed data to avoid calling \"new\" all the time\n  var P = {\n    \"s\": 1,\n    \"n\": 0,\n    \"d\": 1\n  };\n\n  function createError(name) {\n    var errorConstructor = function () {\n      var temp = Error.apply(this, arguments);\n      temp.name = this.name = name;\n      this.stack = temp.stack;\n      this.message = temp.message;\n    };\n\n    var IntermediateInheritor = function () {};\n    IntermediateInheritor.prototype = Error.prototype;\n    errorConstructor.prototype = new IntermediateInheritor();\n\n    return errorConstructor;\n  }\n\n  var DivisionByZero = Fraction['DivisionByZero'] = createError('DivisionByZero');\n  var InvalidParameter = Fraction['InvalidParameter'] = createError('InvalidParameter');\n\n  function assign(n, s) {\n\n    if (isNaN(n = parseInt(n, 10))) {\n      throwInvalidParam();\n    }\n    return n * s;\n  }\n\n  function throwInvalidParam() {\n    throw new InvalidParameter();\n  }\n\n  var parse = function (p1, p2) {\n\n    var n = 0, d = 1, s = 1;\n    var v = 0, w = 0, x = 0, y = 1, z = 1;\n\n    var A = 0, B = 1;\n    var C = 1, D = 1;\n\n    var N = 10000000;\n    var M;\n\n    if (p1 === undefined || p1 === null) {\n      /* void */\n    } else if (p2 !== undefined) {\n      n = p1;\n      d = p2;\n      s = n * d;\n    } else\n      switch (typeof p1) {\n\n        case \"object\":\n        {\n          if (\"d\" in p1 && \"n\" in p1) {\n            n = p1[\"n\"];\n            d = p1[\"d\"];\n            if (\"s\" in p1)\n              n*= p1[\"s\"];\n          } else if (0 in p1) {\n            n = p1[0];\n            if (1 in p1)\n              d = p1[1];\n          } else {\n            throwInvalidParam();\n          }\n          s = n * d;\n          break;\n        }\n        case \"number\":\n        {\n          if (p1 < 0) {\n            s = p1;\n            p1 = -p1;\n          }\n\n          if (p1 % 1 === 0) {\n            n = p1;\n          } else if (p1 > 0) { // check for != 0, scale would become NaN (log(0)), which converges really slow\n\n            if (p1 >= 1) {\n              z = Math.pow(10, Math.floor(1 + Math.log(p1) / Math.LN10));\n              p1/= z;\n            }\n\n            // Using Farey Sequences\n            // http://www.johndcook.com/blog/2010/10/20/best-rational-approximation/\n\n            while (B <= N && D <= N) {\n              M = (A + C) / (B + D);\n\n              if (p1 === M) {\n                if (B + D <= N) {\n                  n = A + C;\n                  d = B + D;\n                } else if (D > B) {\n                  n = C;\n                  d = D;\n                } else {\n                  n = A;\n                  d = B;\n                }\n                break;\n\n              } else {\n\n                if (p1 > M) {\n                  A+= C;\n                  B+= D;\n                } else {\n                  C+= A;\n                  D+= B;\n                }\n\n                if (B > N) {\n                  n = C;\n                  d = D;\n                } else {\n                  n = A;\n                  d = B;\n                }\n              }\n            }\n            n*= z;\n          } else if (isNaN(p1) || isNaN(p2)) {\n            d = n = NaN;\n          }\n          break;\n        }\n        case \"string\":\n        {\n          B = p1.match(/\\d+|./g);\n\n          if (B[A] === '-') {// Check for minus sign at the beginning\n            s = -1;\n            A++;\n          } else if (B[A] === '+') {// Check for plus sign at the beginning\n            A++;\n          }\n\n          if (B.length === A + 1) { // Check if it's just a simple number \"1234\"\n            w = assign(B[A++], s);\n          } else if (B[A + 1] === '.' || B[A] === '.') { // Check if it's a decimal number\n\n            if (B[A] !== '.') { // Handle 0.5 and .5\n              v = assign(B[A++], s);\n            }\n            A++;\n\n            // Check for decimal places\n            if (A + 1 === B.length || B[A + 1] === '(' && B[A + 3] === ')' || B[A + 1] === \"'\" && B[A + 3] === \"'\") {\n              w = assign(B[A], s);\n              y = Math.pow(10, B[A].length);\n              A++;\n            }\n\n            // Check for repeating places\n            if (B[A] === '(' && B[A + 2] === ')' || B[A] === \"'\" && B[A + 2] === \"'\") {\n              x = assign(B[A + 1], s);\n              z = Math.pow(10, B[A + 1].length) - 1;\n              A+= 3;\n            }\n\n          } else if (B[A + 1] === '/' || B[A + 1] === ':') { // Check for a simple fraction \"123/456\" or \"123:456\"\n            w = assign(B[A], s);\n            y = assign(B[A + 2], 1);\n            A+= 3;\n          } else if (B[A + 3] === '/' && B[A + 1] === ' ') { // Check for a complex fraction \"123 1/2\"\n            v = assign(B[A], s);\n            w = assign(B[A + 2], s);\n            y = assign(B[A + 4], 1);\n            A+= 5;\n          }\n\n          if (B.length <= A) { // Check for more tokens on the stack\n            d = y * z;\n            s = /* void */\n                    n = x + d * v + z * w;\n            break;\n          }\n\n          /* Fall through on error */\n        }\n        default:\n          throwInvalidParam();\n      }\n\n    if (d === 0) {\n      throw new DivisionByZero();\n    }\n\n    P[\"s\"] = s < 0 ? -1 : 1;\n    P[\"n\"] = Math.abs(n);\n    P[\"d\"] = Math.abs(d);\n  };\n\n  var modpow = function (b, e, m) {\n\n    for (var r = 1; e > 0; b = (b * b) % m, e >>= 1) {\n\n      if (e & 1) {\n        r = (r * b) % m;\n      }\n    }\n    return r;\n  };\n\n  var cycleLen = function (n, d) {\n\n    for (; d % 2 === 0;\n            d/= 2) {}\n\n    for (; d % 5 === 0;\n            d/= 5) {}\n\n    if (d === 1) // Catch non-cyclic numbers\n      return 0;\n\n    // If we would like to compute really large numbers quicker, we could make use of Fermat's little theorem:\n    // 10^(d-1) % d == 1\n    // However, we don't need such large numbers and MAX_CYCLE_LEN should be the capstone,\n    // as we want to translate the numbers to strings.\n\n    var rem = 10 % d;\n\n    for (var t = 1; rem !== 1; t++) {\n      rem = rem * 10 % d;\n\n      if (t > MAX_CYCLE_LEN)\n        return 0; // Returning 0 here means that we don't print it as a cyclic number. It's likely that the answer is `d-1`\n    }\n    return t;\n  };\n\n  var cycleStart = function (n, d, len) {\n\n    var rem1 = 1;\n    var rem2 = modpow(10, len, d);\n\n    for (var t = 0; t < 300; t++) { // s < ~log10(Number.MAX_VALUE)\n      // Solve 10^s == 10^(s+t) (mod d)\n\n      if (rem1 === rem2)\n        return t;\n\n      rem1 = rem1 * 10 % d;\n      rem2 = rem2 * 10 % d;\n    }\n    return 0;\n  };\n\n  var gcd = function (a, b) {\n\n    if (!a) return b;\n    if (!b) return a;\n\n    while (1) {\n      a%= b;\n      if (!a) return b;\n      b%= a;\n      if (!b) return a;\n    }\n  };\n\n  /**\n   * Module constructor\n   *\n   * @constructor\n   * @param {number|Fraction} a\n   * @param {number=} b\n   */\n  function Fraction(a, b) {\n\n    if (!(this instanceof Fraction)) {\n      return new Fraction(a, b);\n    }\n\n    parse(a, b);\n\n    if (Fraction['REDUCE']) {\n      a = gcd(P[\"d\"], P[\"n\"]); // Abuse a\n    } else {\n      a = 1;\n    }\n\n    this[\"s\"] = P[\"s\"];\n    this[\"n\"] = P[\"n\"] / a;\n    this[\"d\"] = P[\"d\"] / a;\n  }\n\n  /**\n   * Boolean global variable to be able to disable automatic reduction of the fraction\n   *\n   */\n  Fraction['REDUCE'] = 1;\n\n  Fraction.prototype = {\n\n    \"s\": 1,\n    \"n\": 0,\n    \"d\": 1,\n\n    /**\n     * Calculates the absolute value\n     *\n     * Ex: new Fraction(-4).abs() => 4\n     **/\n    \"abs\": function () {\n\n      return new Fraction(this[\"n\"], this[\"d\"]);\n    },\n\n    /**\n     * Inverts the sign of the current fraction\n     *\n     * Ex: new Fraction(-4).neg() => 4\n     **/\n    \"neg\": function () {\n\n      return new Fraction(-this[\"s\"] * this[\"n\"], this[\"d\"]);\n    },\n\n    /**\n     * Adds two rational numbers\n     *\n     * Ex: new Fraction({n: 2, d: 3}).add(\"14.9\") => 467 / 30\n     **/\n    \"add\": function (a, b) {\n\n      parse(a, b);\n      return new Fraction(\n              this[\"s\"] * this[\"n\"] * P[\"d\"] + P[\"s\"] * this[\"d\"] * P[\"n\"],\n              this[\"d\"] * P[\"d\"]\n              );\n    },\n\n    /**\n     * Subtracts two rational numbers\n     *\n     * Ex: new Fraction({n: 2, d: 3}).add(\"14.9\") => -427 / 30\n     **/\n    \"sub\": function (a, b) {\n\n      parse(a, b);\n      return new Fraction(\n              this[\"s\"] * this[\"n\"] * P[\"d\"] - P[\"s\"] * this[\"d\"] * P[\"n\"],\n              this[\"d\"] * P[\"d\"]\n              );\n    },\n\n    /**\n     * Multiplies two rational numbers\n     *\n     * Ex: new Fraction(\"-17.(345)\").mul(3) => 5776 / 111\n     **/\n    \"mul\": function (a, b) {\n\n      parse(a, b);\n      return new Fraction(\n              this[\"s\"] * P[\"s\"] * this[\"n\"] * P[\"n\"],\n              this[\"d\"] * P[\"d\"]\n              );\n    },\n\n    /**\n     * Divides two rational numbers\n     *\n     * Ex: new Fraction(\"-17.(345)\").inverse().div(3)\n     **/\n    \"div\": function (a, b) {\n\n      parse(a, b);\n      return new Fraction(\n              this[\"s\"] * P[\"s\"] * this[\"n\"] * P[\"d\"],\n              this[\"d\"] * P[\"n\"]\n              );\n    },\n\n    /**\n     * Clones the actual object\n     *\n     * Ex: new Fraction(\"-17.(345)\").clone()\n     **/\n    \"clone\": function () {\n      return new Fraction(this);\n    },\n\n    /**\n     * Calculates the modulo of two rational numbers - a more precise fmod\n     *\n     * Ex: new Fraction('4.(3)').mod([7, 8]) => (13/3) % (7/8) = (5/6)\n     **/\n    \"mod\": function (a, b) {\n\n      if (isNaN(this['n']) || isNaN(this['d'])) {\n        return new Fraction(NaN);\n      }\n\n      if (a === undefined) {\n        return new Fraction(this[\"s\"] * this[\"n\"] % this[\"d\"], 1);\n      }\n\n      parse(a, b);\n      if (0 === P[\"n\"] && 0 === this[\"d\"]) {\n        Fraction(0, 0); // Throw DivisionByZero\n      }\n\n      /*\n       * First silly attempt, kinda slow\n       *\n       return that[\"sub\"]({\n       \"n\": num[\"n\"] * Math.floor((this.n / this.d) / (num.n / num.d)),\n       \"d\": num[\"d\"],\n       \"s\": this[\"s\"]\n       });*/\n\n      /*\n       * New attempt: a1 / b1 = a2 / b2 * q + r\n       * => b2 * a1 = a2 * b1 * q + b1 * b2 * r\n       * => (b2 * a1 % a2 * b1) / (b1 * b2)\n       */\n      return new Fraction(\n              (this[\"s\"] * P[\"d\"] * this[\"n\"]) % (P[\"n\"] * this[\"d\"]),\n              P[\"d\"] * this[\"d\"]\n              );\n    },\n\n    /**\n     * Calculates the fractional gcd of two rational numbers\n     *\n     * Ex: new Fraction(5,8).gcd(3,7) => 1/56\n     */\n    \"gcd\": function (a, b) {\n\n      parse(a, b);\n\n      // gcd(a / b, c / d) = gcd(a, c) / lcm(b, d)\n\n      return new Fraction(gcd(P[\"n\"], this[\"n\"]), P[\"d\"] * this[\"d\"] / gcd(P[\"d\"], this[\"d\"]));\n    },\n\n    /**\n     * Calculates the fractional lcm of two rational numbers\n     *\n     * Ex: new Fraction(5,8).lcm(3,7) => 15\n     */\n    \"lcm\": function (a, b) {\n\n      parse(a, b);\n\n      // lcm(a / b, c / d) = lcm(a, c) / gcd(b, d)\n\n      if (P[\"n\"] === 0 && this[\"n\"] === 0) {\n        return new Fraction;\n      }\n      return new Fraction(P[\"n\"] * this[\"n\"] / gcd(P[\"n\"], this[\"n\"]), gcd(P[\"d\"], this[\"d\"]));\n    },\n\n    /**\n     * Calculates the ceil of a rational number\n     *\n     * Ex: new Fraction('4.(3)').ceil() => (5 / 1)\n     **/\n    \"ceil\": function (places) {\n\n      places = Math.pow(10, places || 0);\n\n      if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n        return new Fraction(NaN);\n      }\n      return new Fraction(Math.ceil(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n    },\n\n    /**\n     * Calculates the floor of a rational number\n     *\n     * Ex: new Fraction('4.(3)').floor() => (4 / 1)\n     **/\n    \"floor\": function (places) {\n\n      places = Math.pow(10, places || 0);\n\n      if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n        return new Fraction(NaN);\n      }\n      return new Fraction(Math.floor(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n    },\n\n    /**\n     * Rounds a rational numbers\n     *\n     * Ex: new Fraction('4.(3)').round() => (4 / 1)\n     **/\n    \"round\": function (places) {\n\n      places = Math.pow(10, places || 0);\n\n      if (isNaN(this[\"n\"]) || isNaN(this[\"d\"])) {\n        return new Fraction(NaN);\n      }\n      return new Fraction(Math.round(places * this[\"s\"] * this[\"n\"] / this[\"d\"]), places);\n    },\n\n    /**\n     * Gets the inverse of the fraction, means numerator and denumerator are exchanged\n     *\n     * Ex: new Fraction([-3, 4]).inverse() => -4 / 3\n     **/\n    \"inverse\": function () {\n\n      return new Fraction(this[\"s\"] * this[\"d\"], this[\"n\"]);\n    },\n\n    /**\n     * Calculates the fraction to some integer exponent\n     *\n     * Ex: new Fraction(-1,2).pow(-3) => -8\n     */\n    \"pow\": function (m) {\n\n      if (m < 0) {\n        return new Fraction(Math.pow(this['s'] * this[\"d\"], -m), Math.pow(this[\"n\"], -m));\n      } else {\n        return new Fraction(Math.pow(this['s'] * this[\"n\"], m), Math.pow(this[\"d\"], m));\n      }\n    },\n\n    /**\n     * Check if two rational numbers are the same\n     *\n     * Ex: new Fraction(19.6).equals([98, 5]);\n     **/\n    \"equals\": function (a, b) {\n\n      parse(a, b);\n      return this[\"s\"] * this[\"n\"] * P[\"d\"] === P[\"s\"] * P[\"n\"] * this[\"d\"]; // Same as compare() === 0\n    },\n\n    /**\n     * Check if two rational numbers are the same\n     *\n     * Ex: new Fraction(19.6).equals([98, 5]);\n     **/\n    \"compare\": function (a, b) {\n\n      parse(a, b);\n      var t = (this[\"s\"] * this[\"n\"] * P[\"d\"] - P[\"s\"] * P[\"n\"] * this[\"d\"]);\n      return (0 < t) - (t < 0);\n    },\n\n    /**\n     * Check if two rational numbers are divisible\n     *\n     * Ex: new Fraction(19.6).divisible(1.5);\n     */\n    \"divisible\": function (a, b) {\n\n      parse(a, b);\n      return !(!(P[\"n\"] * this[\"d\"]) || ((this[\"n\"] * P[\"d\"]) % (P[\"n\"] * this[\"d\"])));\n    },\n\n    /**\n     * Returns a decimal representation of the fraction\n     *\n     * Ex: new Fraction(\"100.'91823'\").valueOf() => 100.91823918239183\n     **/\n    'valueOf': function () {\n\n      return this[\"s\"] * this[\"n\"] / this[\"d\"];\n    },\n\n    /**\n     * Returns a string-fraction representation of a Fraction object\n     *\n     * Ex: new Fraction(\"1.'3'\").toFraction() => \"4 1/3\"\n     **/\n    'toFraction': function (excludeWhole) {\n\n      var whole, str = \"\";\n      var n = this[\"n\"];\n      var d = this[\"d\"];\n      if (this[\"s\"] < 0) {\n        str+= '-';\n      }\n\n      if (d === 1) {\n        str+= n;\n      } else {\n\n        if (excludeWhole && (whole = Math.floor(n / d)) > 0) {\n          str+= whole;\n          str+= \" \";\n          n%= d;\n        }\n\n        str+= n;\n        str+= '/';\n        str+= d;\n      }\n      return str;\n    },\n\n    /**\n     * Returns a latex representation of a Fraction object\n     *\n     * Ex: new Fraction(\"1.'3'\").toLatex() => \"\\frac{4}{3}\"\n     **/\n    'toLatex': function (excludeWhole) {\n\n      var whole, str = \"\";\n      var n = this[\"n\"];\n      var d = this[\"d\"];\n      if (this[\"s\"] < 0) {\n        str+= '-';\n      }\n\n      if (d === 1) {\n        str+= n;\n      } else {\n\n        if (excludeWhole && (whole = Math.floor(n / d)) > 0) {\n          str+= whole;\n          n%= d;\n        }\n\n        str+= \"\\\\frac{\";\n        str+= n;\n        str+= '}{';\n        str+= d;\n        str+= '}';\n      }\n      return str;\n    },\n\n    /**\n     * Returns an array of continued fraction elements\n     *\n     * Ex: new Fraction(\"7/8\").toContinued() => [0,1,7]\n     */\n    'toContinued': function () {\n\n      var t;\n      var a = this['n'];\n      var b = this['d'];\n      var res = [];\n\n      do {\n        res.push(Math.floor(a / b));\n        t = a % b;\n        a = b;\n        b = t;\n      } while (a !== 1);\n\n      return res;\n    },\n\n    /**\n     * Creates a string representation of a fraction with all digits\n     *\n     * Ex: new Fraction(\"100.'91823'\").toString() => \"100.(91823)\"\n     **/\n    'toString': function () {\n\n      var g;\n      var N = this[\"n\"];\n      var D = this[\"d\"];\n\n      if (isNaN(N) || isNaN(D)) {\n        return \"NaN\";\n      }\n\n      if (!Fraction['REDUCE']) {\n        g = gcd(N, D);\n        N/= g;\n        D/= g;\n      }\n\n      var dec = 15; // 15 = decimal places when no repitation\n\n      var cycLen = cycleLen(N, D); // Cycle length\n      var cycOff = cycleStart(N, D, cycLen); // Cycle start\n\n      var str = this['s'] === -1 ? \"-\" : \"\";\n\n      str+= N / D | 0;\n\n      N%= D;\n      N*= 10;\n\n      if (N)\n        str+= \".\";\n\n      if (cycLen) {\n\n        for (var i = cycOff; i--; ) {\n          str+= N / D | 0;\n          N%= D;\n          N*= 10;\n        }\n        str+= \"(\";\n        for (var i = cycLen; i--; ) {\n          str+= N / D | 0;\n          N%= D;\n          N*= 10;\n        }\n        str+= \")\";\n      } else {\n        for (var i = dec; N && i--; ) {\n          str+= N / D | 0;\n          N%= D;\n          N*= 10;\n        }\n      }\n      return str;\n    }\n  };\n\n  if (true) {\n    !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {\n      return Fraction;\n    }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n  } else {}\n\n})(this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/fraction.js/fraction.js?");

/***/ }),

/***/ "./node_modules/hash-base/index.js":
/*!*****************************************!*\
  !*** ./node_modules/hash-base/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar Transform = (__webpack_require__(/*! stream */ \"./node_modules/stream-browserify/index.js\").Transform)\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\n\nfunction HashBase (blockSize) {\n  Transform.call(this)\n\n  this._block = Buffer.allocUnsafe(blockSize)\n  this._blockSize = blockSize\n  this._blockOffset = 0\n  this._length = [0, 0, 0, 0]\n\n  this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n  var error = null\n  try {\n    this.update(chunk, encoding)\n  } catch (err) {\n    error = err\n  }\n\n  callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n  var error = null\n  try {\n    this.push(this.digest())\n  } catch (err) {\n    error = err\n  }\n\n  callback(error)\n}\n\nvar useUint8Array = typeof Uint8Array !== 'undefined'\nvar useArrayBuffer = typeof ArrayBuffer !== 'undefined' &&\n  typeof Uint8Array !== 'undefined' &&\n  ArrayBuffer.isView &&\n  (Buffer.prototype instanceof Uint8Array || Buffer.TYPED_ARRAY_SUPPORT)\n\nfunction toBuffer (data, encoding) {\n  // No need to do anything for exact instance\n  // This is only valid when safe-buffer.Buffer === buffer.Buffer, i.e. when Buffer.from/Buffer.alloc existed\n  if (data instanceof Buffer) return data\n\n  // Convert strings to Buffer\n  if (typeof data === 'string') return Buffer.from(data, encoding)\n\n  /*\n   * Wrap any TypedArray instances and DataViews\n   * Makes sense only on engines with full TypedArray support -- let Buffer detect that\n   */\n  if (useArrayBuffer && ArrayBuffer.isView(data)) {\n    if (data.byteLength === 0) return Buffer.alloc(0) // Bug in Node.js <6.3.1, which treats this as out-of-bounds\n    var res = Buffer.from(data.buffer, data.byteOffset, data.byteLength)\n    // Recheck result size, as offset/length doesn't work on Node.js <5.10\n    // We just go to Uint8Array case if this fails\n    if (res.byteLength === data.byteLength) return res\n  }\n\n  /*\n   * Uint8Array in engines where Buffer.from might not work with ArrayBuffer, just copy over\n   * Doesn't make sense with other TypedArray instances\n   */\n  if (useUint8Array && data instanceof Uint8Array) return Buffer.from(data)\n\n  /*\n   * Old Buffer polyfill on an engine that doesn't have TypedArray support\n   * Also, this is from a different Buffer polyfill implementation then we have, as instanceof check failed\n   * Convert to our current Buffer implementation\n   */\n  if (\n    Buffer.isBuffer(data) &&\n    data.constructor &&\n    typeof data.constructor.isBuffer === 'function' &&\n    data.constructor.isBuffer(data)\n  ) {\n    return Buffer.from(data)\n  }\n\n  throw new TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')\n}\n\nHashBase.prototype.update = function (data, encoding) {\n  if (this._finalized) throw new Error('Digest already called')\n\n  data = toBuffer(data, encoding) // asserts correct input type\n\n  // consume data\n  var block = this._block\n  var offset = 0\n  while (this._blockOffset + data.length - offset >= this._blockSize) {\n    for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n    this._update()\n    this._blockOffset = 0\n  }\n  while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n  // update length\n  for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n    this._length[j] += carry\n    carry = (this._length[j] / 0x0100000000) | 0\n    if (carry > 0) this._length[j] -= 0x0100000000 * carry\n  }\n\n  return this\n}\n\nHashBase.prototype._update = function () {\n  throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n  if (this._finalized) throw new Error('Digest already called')\n  this._finalized = true\n\n  var digest = this._digest()\n  if (encoding !== undefined) digest = digest.toString(encoding)\n\n  // reset state\n  this._block.fill(0)\n  this._blockOffset = 0\n  for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n  return digest\n}\n\nHashBase.prototype._digest = function () {\n  throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash-base/index.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash.js":
/*!******************************************!*\
  !*** ./node_modules/hash.js/lib/hash.js ***!
  \******************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("var hash = exports;\n\nhash.utils = __webpack_require__(/*! ./hash/utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nhash.common = __webpack_require__(/*! ./hash/common */ \"./node_modules/hash.js/lib/hash/common.js\");\nhash.sha = __webpack_require__(/*! ./hash/sha */ \"./node_modules/hash.js/lib/hash/sha.js\");\nhash.ripemd = __webpack_require__(/*! ./hash/ripemd */ \"./node_modules/hash.js/lib/hash/ripemd.js\");\nhash.hmac = __webpack_require__(/*! ./hash/hmac */ \"./node_modules/hash.js/lib/hash/hmac.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/common.js":
/*!*************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/common.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/common.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/hmac.js":
/*!***********************************************!*\
  !*** ./node_modules/hash.js/lib/hash/hmac.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/hmac.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/ripemd.js":
/*!*************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/ripemd.js ***!
  \*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ./utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar common = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/common.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/ripemd.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha.js":
/*!**********************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nexports.sha1 = __webpack_require__(/*! ./sha/1 */ \"./node_modules/hash.js/lib/hash/sha/1.js\");\nexports.sha224 = __webpack_require__(/*! ./sha/224 */ \"./node_modules/hash.js/lib/hash/sha/224.js\");\nexports.sha256 = __webpack_require__(/*! ./sha/256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\nexports.sha384 = __webpack_require__(/*! ./sha/384 */ \"./node_modules/hash.js/lib/hash/sha/384.js\");\nexports.sha512 = __webpack_require__(/*! ./sha/512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/1.js":
/*!************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/1.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/1.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/224.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/224.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar SHA256 = __webpack_require__(/*! ./256 */ \"./node_modules/hash.js/lib/hash/sha/256.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/224.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/256.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/256.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\nvar shaCommon = __webpack_require__(/*! ./common */ \"./node_modules/hash.js/lib/hash/sha/common.js\");\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/256.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/384.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/384.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\n\nvar SHA512 = __webpack_require__(/*! ./512 */ \"./node_modules/hash.js/lib/hash/sha/512.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/384.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/512.js":
/*!**************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/512.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\nvar common = __webpack_require__(/*! ../common */ \"./node_modules/hash.js/lib/hash/common.js\");\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/512.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/sha/common.js":
/*!*****************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/sha/common.js ***!
  \*****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar utils = __webpack_require__(/*! ../utils */ \"./node_modules/hash.js/lib/hash/utils.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/sha/common.js?");

/***/ }),

/***/ "./node_modules/hash.js/lib/hash/utils.js":
/*!************************************************!*\
  !*** ./node_modules/hash.js/lib/hash/utils.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\n\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hash.js/lib/hash/utils.js?");

/***/ }),

/***/ "./node_modules/hmac-drbg/lib/hmac-drbg.js":
/*!*************************************************!*\
  !*** ./node_modules/hmac-drbg/lib/hmac-drbg.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar hash = __webpack_require__(/*! hash.js */ \"./node_modules/hash.js/lib/hash.js\");\nvar utils = __webpack_require__(/*! minimalistic-crypto-utils */ \"./node_modules/minimalistic-crypto-utils/lib/utils.js\");\nvar assert = __webpack_require__(/*! minimalistic-assert */ \"./node_modules/minimalistic-assert/index.js\");\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/hmac-drbg/lib/hmac-drbg.js?");

/***/ }),

/***/ "./node_modules/ieee754/index.js":
/*!***************************************!*\
  !*** ./node_modules/ieee754/index.js ***!
  \***************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ieee754/index.js?");

/***/ }),

/***/ "./node_modules/inherits/inherits_browser.js":
/*!***************************************************!*\
  !*** ./node_modules/inherits/inherits_browser.js ***!
  \***************************************************/
/***/ ((module) => {

eval("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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/inherits/inherits_browser.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/address-error.js":
/*!*******************************************************!*\
  !*** ./node_modules/ip-address/dist/address-error.js ***!
  \*******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AddressError = void 0;\nclass AddressError extends Error {\n    constructor(message, parseMessage) {\n        super(message);\n        this.name = 'AddressError';\n        if (parseMessage !== null) {\n            this.parseMessage = parseMessage;\n        }\n    }\n}\nexports.AddressError = AddressError;\n//# sourceMappingURL=address-error.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/address-error.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/common.js":
/*!************************************************!*\
  !*** ./node_modules/ip-address/dist/common.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isCorrect = exports.isInSubnet = void 0;\nfunction isInSubnet(address) {\n    if (this.subnetMask < address.subnetMask) {\n        return false;\n    }\n    if (this.mask(address.subnetMask) === address.mask()) {\n        return true;\n    }\n    return false;\n}\nexports.isInSubnet = isInSubnet;\nfunction isCorrect(defaultBits) {\n    return function () {\n        if (this.addressMinusSuffix !== this.correctForm()) {\n            return false;\n        }\n        if (this.subnetMask === defaultBits && !this.parsedSubnet) {\n            return true;\n        }\n        return this.parsedSubnet === String(this.subnetMask);\n    };\n}\nexports.isCorrect = isCorrect;\n//# sourceMappingURL=common.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/common.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/ip-address.js":
/*!****************************************************!*\
  !*** ./node_modules/ip-address/dist/ip-address.js ***!
  \****************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.v6 = exports.AddressError = exports.Address6 = exports.Address4 = void 0;\nconst ipv4_1 = __webpack_require__(/*! ./ipv4 */ \"./node_modules/ip-address/dist/ipv4.js\");\nObject.defineProperty(exports, \"Address4\", ({ enumerable: true, get: function () { return ipv4_1.Address4; } }));\nconst ipv6_1 = __webpack_require__(/*! ./ipv6 */ \"./node_modules/ip-address/dist/ipv6.js\");\nObject.defineProperty(exports, \"Address6\", ({ enumerable: true, get: function () { return ipv6_1.Address6; } }));\nconst address_error_1 = __webpack_require__(/*! ./address-error */ \"./node_modules/ip-address/dist/address-error.js\");\nObject.defineProperty(exports, \"AddressError\", ({ enumerable: true, get: function () { return address_error_1.AddressError; } }));\nconst helpers = __importStar(__webpack_require__(/*! ./v6/helpers */ \"./node_modules/ip-address/dist/v6/helpers.js\"));\nexports.v6 = { helpers };\n//# sourceMappingURL=ip-address.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/ip-address.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/ipv4.js":
/*!**********************************************!*\
  !*** ./node_modules/ip-address/dist/ipv4.js ***!
  \**********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable no-param-reassign */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.Address4 = void 0;\nconst common = __importStar(__webpack_require__(/*! ./common */ \"./node_modules/ip-address/dist/common.js\"));\nconst constants = __importStar(__webpack_require__(/*! ./v4/constants */ \"./node_modules/ip-address/dist/v4/constants.js\"));\nconst address_error_1 = __webpack_require__(/*! ./address-error */ \"./node_modules/ip-address/dist/address-error.js\");\nconst jsbn_1 = __webpack_require__(/*! jsbn */ \"./node_modules/jsbn/index.js\");\nconst sprintf_js_1 = __webpack_require__(/*! sprintf-js */ \"./node_modules/sprintf-js/src/sprintf.js\");\n/**\n * Represents an IPv4 address\n * @class Address4\n * @param {string} address - An IPv4 address string\n */\nclass Address4 {\n    constructor(address) {\n        this.groups = constants.GROUPS;\n        this.parsedAddress = [];\n        this.parsedSubnet = '';\n        this.subnet = '/32';\n        this.subnetMask = 32;\n        this.v4 = true;\n        /**\n         * Returns true if the address is correct, false otherwise\n         * @memberof Address4\n         * @instance\n         * @returns {Boolean}\n         */\n        this.isCorrect = common.isCorrect(constants.BITS);\n        /**\n         * Returns true if the given address is in the subnet of the current address\n         * @memberof Address4\n         * @instance\n         * @returns {boolean}\n         */\n        this.isInSubnet = common.isInSubnet;\n        this.address = address;\n        const subnet = constants.RE_SUBNET_STRING.exec(address);\n        if (subnet) {\n            this.parsedSubnet = subnet[0].replace('/', '');\n            this.subnetMask = parseInt(this.parsedSubnet, 10);\n            this.subnet = `/${this.subnetMask}`;\n            if (this.subnetMask < 0 || this.subnetMask > constants.BITS) {\n                throw new address_error_1.AddressError('Invalid subnet mask.');\n            }\n            address = address.replace(constants.RE_SUBNET_STRING, '');\n        }\n        this.addressMinusSuffix = address;\n        this.parsedAddress = this.parse(address);\n    }\n    static isValid(address) {\n        try {\n            // eslint-disable-next-line no-new\n            new Address4(address);\n            return true;\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    /*\n     * Parses a v4 address\n     */\n    parse(address) {\n        const groups = address.split('.');\n        if (!address.match(constants.RE_ADDRESS)) {\n            throw new address_error_1.AddressError('Invalid IPv4 address.');\n        }\n        return groups;\n    }\n    /**\n     * Returns the correct form of an address\n     * @memberof Address4\n     * @instance\n     * @returns {String}\n     */\n    correctForm() {\n        return this.parsedAddress.map((part) => parseInt(part, 10)).join('.');\n    }\n    /**\n     * Converts a hex string to an IPv4 address object\n     * @memberof Address4\n     * @static\n     * @param {string} hex - a hex string to convert\n     * @returns {Address4}\n     */\n    static fromHex(hex) {\n        const padded = hex.replace(/:/g, '').padStart(8, '0');\n        const groups = [];\n        let i;\n        for (i = 0; i < 8; i += 2) {\n            const h = padded.slice(i, i + 2);\n            groups.push(parseInt(h, 16));\n        }\n        return new Address4(groups.join('.'));\n    }\n    /**\n     * Converts an integer into a IPv4 address object\n     * @memberof Address4\n     * @static\n     * @param {integer} integer - a number to convert\n     * @returns {Address4}\n     */\n    static fromInteger(integer) {\n        return Address4.fromHex(integer.toString(16));\n    }\n    /**\n     * Return an address from in-addr.arpa form\n     * @memberof Address4\n     * @static\n     * @param {string} arpaFormAddress - an 'in-addr.arpa' form ipv4 address\n     * @returns {Adress4}\n     * @example\n     * var address = Address4.fromArpa(42.2.0.192.in-addr.arpa.)\n     * address.correctForm(); // '192.0.2.42'\n     */\n    static fromArpa(arpaFormAddress) {\n        // remove ending \".in-addr.arpa.\" or just \".\"\n        const leader = arpaFormAddress.replace(/(\\.in-addr\\.arpa)?\\.$/, '');\n        const address = leader.split('.').reverse().join('.');\n        return new Address4(address);\n    }\n    /**\n     * Converts an IPv4 address object to a hex string\n     * @memberof Address4\n     * @instance\n     * @returns {String}\n     */\n    toHex() {\n        return this.parsedAddress.map((part) => (0, sprintf_js_1.sprintf)('%02x', parseInt(part, 10))).join(':');\n    }\n    /**\n     * Converts an IPv4 address object to an array of bytes\n     * @memberof Address4\n     * @instance\n     * @returns {Array}\n     */\n    toArray() {\n        return this.parsedAddress.map((part) => parseInt(part, 10));\n    }\n    /**\n     * Converts an IPv4 address object to an IPv6 address group\n     * @memberof Address4\n     * @instance\n     * @returns {String}\n     */\n    toGroup6() {\n        const output = [];\n        let i;\n        for (i = 0; i < constants.GROUPS; i += 2) {\n            const hex = (0, sprintf_js_1.sprintf)('%02x%02x', parseInt(this.parsedAddress[i], 10), parseInt(this.parsedAddress[i + 1], 10));\n            output.push((0, sprintf_js_1.sprintf)('%x', parseInt(hex, 16)));\n        }\n        return output.join(':');\n    }\n    /**\n     * Returns the address as a BigInteger\n     * @memberof Address4\n     * @instance\n     * @returns {BigInteger}\n     */\n    bigInteger() {\n        return new jsbn_1.BigInteger(this.parsedAddress.map((n) => (0, sprintf_js_1.sprintf)('%02x', parseInt(n, 10))).join(''), 16);\n    }\n    /**\n     * Helper function getting start address.\n     * @memberof Address4\n     * @instance\n     * @returns {BigInteger}\n     */\n    _startAddress() {\n        return new jsbn_1.BigInteger(this.mask() + '0'.repeat(constants.BITS - this.subnetMask), 2);\n    }\n    /**\n     * The first address in the range given by this address' subnet.\n     * Often referred to as the Network Address.\n     * @memberof Address4\n     * @instance\n     * @returns {Address4}\n     */\n    startAddress() {\n        return Address4.fromBigInteger(this._startAddress());\n    }\n    /**\n     * The first host address in the range given by this address's subnet ie\n     * the first address after the Network Address\n     * @memberof Address4\n     * @instance\n     * @returns {Address4}\n     */\n    startAddressExclusive() {\n        const adjust = new jsbn_1.BigInteger('1');\n        return Address4.fromBigInteger(this._startAddress().add(adjust));\n    }\n    /**\n     * Helper function getting end address.\n     * @memberof Address4\n     * @instance\n     * @returns {BigInteger}\n     */\n    _endAddress() {\n        return new jsbn_1.BigInteger(this.mask() + '1'.repeat(constants.BITS - this.subnetMask), 2);\n    }\n    /**\n     * The last address in the range given by this address' subnet\n     * Often referred to as the Broadcast\n     * @memberof Address4\n     * @instance\n     * @returns {Address4}\n     */\n    endAddress() {\n        return Address4.fromBigInteger(this._endAddress());\n    }\n    /**\n     * The last host address in the range given by this address's subnet ie\n     * the last address prior to the Broadcast Address\n     * @memberof Address4\n     * @instance\n     * @returns {Address4}\n     */\n    endAddressExclusive() {\n        const adjust = new jsbn_1.BigInteger('1');\n        return Address4.fromBigInteger(this._endAddress().subtract(adjust));\n    }\n    /**\n     * Converts a BigInteger to a v4 address object\n     * @memberof Address4\n     * @static\n     * @param {BigInteger} bigInteger - a BigInteger to convert\n     * @returns {Address4}\n     */\n    static fromBigInteger(bigInteger) {\n        return Address4.fromInteger(parseInt(bigInteger.toString(), 10));\n    }\n    /**\n     * Returns the first n bits of the address, defaulting to the\n     * subnet mask\n     * @memberof Address4\n     * @instance\n     * @returns {String}\n     */\n    mask(mask) {\n        if (mask === undefined) {\n            mask = this.subnetMask;\n        }\n        return this.getBitsBase2(0, mask);\n    }\n    /**\n     * Returns the bits in the given range as a base-2 string\n     * @memberof Address4\n     * @instance\n     * @returns {string}\n     */\n    getBitsBase2(start, end) {\n        return this.binaryZeroPad().slice(start, end);\n    }\n    /**\n     * Return the reversed ip6.arpa form of the address\n     * @memberof Address4\n     * @param {Object} options\n     * @param {boolean} options.omitSuffix - omit the \"in-addr.arpa\" suffix\n     * @instance\n     * @returns {String}\n     */\n    reverseForm(options) {\n        if (!options) {\n            options = {};\n        }\n        const reversed = this.correctForm().split('.').reverse().join('.');\n        if (options.omitSuffix) {\n            return reversed;\n        }\n        return (0, sprintf_js_1.sprintf)('%s.in-addr.arpa.', reversed);\n    }\n    /**\n     * Returns true if the given address is a multicast address\n     * @memberof Address4\n     * @instance\n     * @returns {boolean}\n     */\n    isMulticast() {\n        return this.isInSubnet(new Address4('224.0.0.0/4'));\n    }\n    /**\n     * Returns a zero-padded base-2 string representation of the address\n     * @memberof Address4\n     * @instance\n     * @returns {string}\n     */\n    binaryZeroPad() {\n        return this.bigInteger().toString(2).padStart(constants.BITS, '0');\n    }\n    /**\n     * Groups an IPv4 address for inclusion at the end of an IPv6 address\n     * @returns {String}\n     */\n    groupForV6() {\n        const segments = this.parsedAddress;\n        return this.address.replace(constants.RE_ADDRESS, (0, sprintf_js_1.sprintf)('<span class=\"hover-group group-v4 group-6\">%s</span>.<span class=\"hover-group group-v4 group-7\">%s</span>', segments.slice(0, 2).join('.'), segments.slice(2, 4).join('.')));\n    }\n}\nexports.Address4 = Address4;\n//# sourceMappingURL=ipv4.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/ipv4.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/ipv6.js":
/*!**********************************************!*\
  !*** ./node_modules/ip-address/dist/ipv6.js ***!
  \**********************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\n/* eslint-disable prefer-destructuring */\n/* eslint-disable no-param-reassign */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.Address6 = void 0;\nconst common = __importStar(__webpack_require__(/*! ./common */ \"./node_modules/ip-address/dist/common.js\"));\nconst constants4 = __importStar(__webpack_require__(/*! ./v4/constants */ \"./node_modules/ip-address/dist/v4/constants.js\"));\nconst constants6 = __importStar(__webpack_require__(/*! ./v6/constants */ \"./node_modules/ip-address/dist/v6/constants.js\"));\nconst helpers = __importStar(__webpack_require__(/*! ./v6/helpers */ \"./node_modules/ip-address/dist/v6/helpers.js\"));\nconst ipv4_1 = __webpack_require__(/*! ./ipv4 */ \"./node_modules/ip-address/dist/ipv4.js\");\nconst regular_expressions_1 = __webpack_require__(/*! ./v6/regular-expressions */ \"./node_modules/ip-address/dist/v6/regular-expressions.js\");\nconst address_error_1 = __webpack_require__(/*! ./address-error */ \"./node_modules/ip-address/dist/address-error.js\");\nconst jsbn_1 = __webpack_require__(/*! jsbn */ \"./node_modules/jsbn/index.js\");\nconst sprintf_js_1 = __webpack_require__(/*! sprintf-js */ \"./node_modules/sprintf-js/src/sprintf.js\");\nfunction assert(condition) {\n    if (!condition) {\n        throw new Error('Assertion failed.');\n    }\n}\nfunction addCommas(number) {\n    const r = /(\\d+)(\\d{3})/;\n    while (r.test(number)) {\n        number = number.replace(r, '$1,$2');\n    }\n    return number;\n}\nfunction spanLeadingZeroes4(n) {\n    n = n.replace(/^(0{1,})([1-9]+)$/, '<span class=\"parse-error\">$1</span>$2');\n    n = n.replace(/^(0{1,})(0)$/, '<span class=\"parse-error\">$1</span>$2');\n    return n;\n}\n/*\n * A helper function to compact an array\n */\nfunction compact(address, slice) {\n    const s1 = [];\n    const s2 = [];\n    let i;\n    for (i = 0; i < address.length; i++) {\n        if (i < slice[0]) {\n            s1.push(address[i]);\n        }\n        else if (i > slice[1]) {\n            s2.push(address[i]);\n        }\n    }\n    return s1.concat(['compact']).concat(s2);\n}\nfunction paddedHex(octet) {\n    return (0, sprintf_js_1.sprintf)('%04x', parseInt(octet, 16));\n}\nfunction unsignByte(b) {\n    // eslint-disable-next-line no-bitwise\n    return b & 0xff;\n}\n/**\n * Represents an IPv6 address\n * @class Address6\n * @param {string} address - An IPv6 address string\n * @param {number} [groups=8] - How many octets to parse\n * @example\n * var address = new Address6('2001::/32');\n */\nclass Address6 {\n    constructor(address, optionalGroups) {\n        this.addressMinusSuffix = '';\n        this.parsedSubnet = '';\n        this.subnet = '/128';\n        this.subnetMask = 128;\n        this.v4 = false;\n        this.zone = '';\n        // #region Attributes\n        /**\n         * Returns true if the given address is in the subnet of the current address\n         * @memberof Address6\n         * @instance\n         * @returns {boolean}\n         */\n        this.isInSubnet = common.isInSubnet;\n        /**\n         * Returns true if the address is correct, false otherwise\n         * @memberof Address6\n         * @instance\n         * @returns {boolean}\n         */\n        this.isCorrect = common.isCorrect(constants6.BITS);\n        if (optionalGroups === undefined) {\n            this.groups = constants6.GROUPS;\n        }\n        else {\n            this.groups = optionalGroups;\n        }\n        this.address = address;\n        const subnet = constants6.RE_SUBNET_STRING.exec(address);\n        if (subnet) {\n            this.parsedSubnet = subnet[0].replace('/', '');\n            this.subnetMask = parseInt(this.parsedSubnet, 10);\n            this.subnet = `/${this.subnetMask}`;\n            if (Number.isNaN(this.subnetMask) ||\n                this.subnetMask < 0 ||\n                this.subnetMask > constants6.BITS) {\n                throw new address_error_1.AddressError('Invalid subnet mask.');\n            }\n            address = address.replace(constants6.RE_SUBNET_STRING, '');\n        }\n        else if (/\\//.test(address)) {\n            throw new address_error_1.AddressError('Invalid subnet mask.');\n        }\n        const zone = constants6.RE_ZONE_STRING.exec(address);\n        if (zone) {\n            this.zone = zone[0];\n            address = address.replace(constants6.RE_ZONE_STRING, '');\n        }\n        this.addressMinusSuffix = address;\n        this.parsedAddress = this.parse(this.addressMinusSuffix);\n    }\n    static isValid(address) {\n        try {\n            // eslint-disable-next-line no-new\n            new Address6(address);\n            return true;\n        }\n        catch (e) {\n            return false;\n        }\n    }\n    /**\n     * Convert a BigInteger to a v6 address object\n     * @memberof Address6\n     * @static\n     * @param {BigInteger} bigInteger - a BigInteger to convert\n     * @returns {Address6}\n     * @example\n     * var bigInteger = new BigInteger('1000000000000');\n     * var address = Address6.fromBigInteger(bigInteger);\n     * address.correctForm(); // '::e8:d4a5:1000'\n     */\n    static fromBigInteger(bigInteger) {\n        const hex = bigInteger.toString(16).padStart(32, '0');\n        const groups = [];\n        let i;\n        for (i = 0; i < constants6.GROUPS; i++) {\n            groups.push(hex.slice(i * 4, (i + 1) * 4));\n        }\n        return new Address6(groups.join(':'));\n    }\n    /**\n     * Convert a URL (with optional port number) to an address object\n     * @memberof Address6\n     * @static\n     * @param {string} url - a URL with optional port number\n     * @example\n     * var addressAndPort = Address6.fromURL('http://[ffff::]:8080/foo/');\n     * addressAndPort.address.correctForm(); // 'ffff::'\n     * addressAndPort.port; // 8080\n     */\n    static fromURL(url) {\n        let host;\n        let port = null;\n        let result;\n        // If we have brackets parse them and find a port\n        if (url.indexOf('[') !== -1 && url.indexOf(']:') !== -1) {\n            result = constants6.RE_URL_WITH_PORT.exec(url);\n            if (result === null) {\n                return {\n                    error: 'failed to parse address with port',\n                    address: null,\n                    port: null,\n                };\n            }\n            host = result[1];\n            port = result[2];\n            // If there's a URL extract the address\n        }\n        else if (url.indexOf('/') !== -1) {\n            // Remove the protocol prefix\n            url = url.replace(/^[a-z0-9]+:\\/\\//, '');\n            // Parse the address\n            result = constants6.RE_URL.exec(url);\n            if (result === null) {\n                return {\n                    error: 'failed to parse address from URL',\n                    address: null,\n                    port: null,\n                };\n            }\n            host = result[1];\n            // Otherwise just assign the URL to the host and let the library parse it\n        }\n        else {\n            host = url;\n        }\n        // If there's a port convert it to an integer\n        if (port) {\n            port = parseInt(port, 10);\n            // squelch out of range ports\n            if (port < 0 || port > 65536) {\n                port = null;\n            }\n        }\n        else {\n            // Standardize `undefined` to `null`\n            port = null;\n        }\n        return {\n            address: new Address6(host),\n            port,\n        };\n    }\n    /**\n     * Create an IPv6-mapped address given an IPv4 address\n     * @memberof Address6\n     * @static\n     * @param {string} address - An IPv4 address string\n     * @returns {Address6}\n     * @example\n     * var address = Address6.fromAddress4('192.168.0.1');\n     * address.correctForm(); // '::ffff:c0a8:1'\n     * address.to4in6(); // '::ffff:192.168.0.1'\n     */\n    static fromAddress4(address) {\n        const address4 = new ipv4_1.Address4(address);\n        const mask6 = constants6.BITS - (constants4.BITS - address4.subnetMask);\n        return new Address6(`::ffff:${address4.correctForm()}/${mask6}`);\n    }\n    /**\n     * Return an address from ip6.arpa form\n     * @memberof Address6\n     * @static\n     * @param {string} arpaFormAddress - an 'ip6.arpa' form address\n     * @returns {Adress6}\n     * @example\n     * var address = Address6.fromArpa(e.f.f.f.3.c.2.6.f.f.f.e.6.6.8.e.1.0.6.7.9.4.e.c.0.0.0.0.1.0.0.2.ip6.arpa.)\n     * address.correctForm(); // '2001:0:ce49:7601:e866:efff:62c3:fffe'\n     */\n    static fromArpa(arpaFormAddress) {\n        // remove ending \".ip6.arpa.\" or just \".\"\n        let address = arpaFormAddress.replace(/(\\.ip6\\.arpa)?\\.$/, '');\n        const semicolonAmount = 7;\n        // correct ip6.arpa form with ending removed will be 63 characters\n        if (address.length !== 63) {\n            throw new address_error_1.AddressError(\"Invalid 'ip6.arpa' form.\");\n        }\n        const parts = address.split('.').reverse();\n        for (let i = semicolonAmount; i > 0; i--) {\n            const insertIndex = i * 4;\n            parts.splice(insertIndex, 0, ':');\n        }\n        address = parts.join('');\n        return new Address6(address);\n    }\n    /**\n     * Return the Microsoft UNC transcription of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String} the Microsoft UNC transcription of the address\n     */\n    microsoftTranscription() {\n        return (0, sprintf_js_1.sprintf)('%s.ipv6-literal.net', this.correctForm().replace(/:/g, '-'));\n    }\n    /**\n     * Return the first n bits of the address, defaulting to the subnet mask\n     * @memberof Address6\n     * @instance\n     * @param {number} [mask=subnet] - the number of bits to mask\n     * @returns {String} the first n bits of the address as a string\n     */\n    mask(mask = this.subnetMask) {\n        return this.getBitsBase2(0, mask);\n    }\n    /**\n     * Return the number of possible subnets of a given size in the address\n     * @memberof Address6\n     * @instance\n     * @param {number} [size=128] - the subnet size\n     * @returns {String}\n     */\n    // TODO: probably useful to have a numeric version of this too\n    possibleSubnets(subnetSize = 128) {\n        const availableBits = constants6.BITS - this.subnetMask;\n        const subnetBits = Math.abs(subnetSize - constants6.BITS);\n        const subnetPowers = availableBits - subnetBits;\n        if (subnetPowers < 0) {\n            return '0';\n        }\n        return addCommas(new jsbn_1.BigInteger('2', 10).pow(subnetPowers).toString(10));\n    }\n    /**\n     * Helper function getting start address.\n     * @memberof Address6\n     * @instance\n     * @returns {BigInteger}\n     */\n    _startAddress() {\n        return new jsbn_1.BigInteger(this.mask() + '0'.repeat(constants6.BITS - this.subnetMask), 2);\n    }\n    /**\n     * The first address in the range given by this address' subnet\n     * Often referred to as the Network Address.\n     * @memberof Address6\n     * @instance\n     * @returns {Address6}\n     */\n    startAddress() {\n        return Address6.fromBigInteger(this._startAddress());\n    }\n    /**\n     * The first host address in the range given by this address's subnet ie\n     * the first address after the Network Address\n     * @memberof Address6\n     * @instance\n     * @returns {Address6}\n     */\n    startAddressExclusive() {\n        const adjust = new jsbn_1.BigInteger('1');\n        return Address6.fromBigInteger(this._startAddress().add(adjust));\n    }\n    /**\n     * Helper function getting end address.\n     * @memberof Address6\n     * @instance\n     * @returns {BigInteger}\n     */\n    _endAddress() {\n        return new jsbn_1.BigInteger(this.mask() + '1'.repeat(constants6.BITS - this.subnetMask), 2);\n    }\n    /**\n     * The last address in the range given by this address' subnet\n     * Often referred to as the Broadcast\n     * @memberof Address6\n     * @instance\n     * @returns {Address6}\n     */\n    endAddress() {\n        return Address6.fromBigInteger(this._endAddress());\n    }\n    /**\n     * The last host address in the range given by this address's subnet ie\n     * the last address prior to the Broadcast Address\n     * @memberof Address6\n     * @instance\n     * @returns {Address6}\n     */\n    endAddressExclusive() {\n        const adjust = new jsbn_1.BigInteger('1');\n        return Address6.fromBigInteger(this._endAddress().subtract(adjust));\n    }\n    /**\n     * Return the scope of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    getScope() {\n        let scope = constants6.SCOPES[this.getBits(12, 16).intValue()];\n        if (this.getType() === 'Global unicast' && scope !== 'Link local') {\n            scope = 'Global';\n        }\n        return scope || 'Unknown';\n    }\n    /**\n     * Return the type of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    getType() {\n        for (const subnet of Object.keys(constants6.TYPES)) {\n            if (this.isInSubnet(new Address6(subnet))) {\n                return constants6.TYPES[subnet];\n            }\n        }\n        return 'Global unicast';\n    }\n    /**\n     * Return the bits in the given range as a BigInteger\n     * @memberof Address6\n     * @instance\n     * @returns {BigInteger}\n     */\n    getBits(start, end) {\n        return new jsbn_1.BigInteger(this.getBitsBase2(start, end), 2);\n    }\n    /**\n     * Return the bits in the given range as a base-2 string\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    getBitsBase2(start, end) {\n        return this.binaryZeroPad().slice(start, end);\n    }\n    /**\n     * Return the bits in the given range as a base-16 string\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    getBitsBase16(start, end) {\n        const length = end - start;\n        if (length % 4 !== 0) {\n            throw new Error('Length of bits to retrieve must be divisible by four');\n        }\n        return this.getBits(start, end)\n            .toString(16)\n            .padStart(length / 4, '0');\n    }\n    /**\n     * Return the bits that are set past the subnet mask length\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    getBitsPastSubnet() {\n        return this.getBitsBase2(this.subnetMask, constants6.BITS);\n    }\n    /**\n     * Return the reversed ip6.arpa form of the address\n     * @memberof Address6\n     * @param {Object} options\n     * @param {boolean} options.omitSuffix - omit the \"ip6.arpa\" suffix\n     * @instance\n     * @returns {String}\n     */\n    reverseForm(options) {\n        if (!options) {\n            options = {};\n        }\n        const characters = Math.floor(this.subnetMask / 4);\n        const reversed = this.canonicalForm()\n            .replace(/:/g, '')\n            .split('')\n            .slice(0, characters)\n            .reverse()\n            .join('.');\n        if (characters > 0) {\n            if (options.omitSuffix) {\n                return reversed;\n            }\n            return (0, sprintf_js_1.sprintf)('%s.ip6.arpa.', reversed);\n        }\n        if (options.omitSuffix) {\n            return '';\n        }\n        return 'ip6.arpa.';\n    }\n    /**\n     * Return the correct form of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    correctForm() {\n        let i;\n        let groups = [];\n        let zeroCounter = 0;\n        const zeroes = [];\n        for (i = 0; i < this.parsedAddress.length; i++) {\n            const value = parseInt(this.parsedAddress[i], 16);\n            if (value === 0) {\n                zeroCounter++;\n            }\n            if (value !== 0 && zeroCounter > 0) {\n                if (zeroCounter > 1) {\n                    zeroes.push([i - zeroCounter, i - 1]);\n                }\n                zeroCounter = 0;\n            }\n        }\n        // Do we end with a string of zeroes?\n        if (zeroCounter > 1) {\n            zeroes.push([this.parsedAddress.length - zeroCounter, this.parsedAddress.length - 1]);\n        }\n        const zeroLengths = zeroes.map((n) => n[1] - n[0] + 1);\n        if (zeroes.length > 0) {\n            const index = zeroLengths.indexOf(Math.max(...zeroLengths));\n            groups = compact(this.parsedAddress, zeroes[index]);\n        }\n        else {\n            groups = this.parsedAddress;\n        }\n        for (i = 0; i < groups.length; i++) {\n            if (groups[i] !== 'compact') {\n                groups[i] = parseInt(groups[i], 16).toString(16);\n            }\n        }\n        let correct = groups.join(':');\n        correct = correct.replace(/^compact$/, '::');\n        correct = correct.replace(/^compact|compact$/, ':');\n        correct = correct.replace(/compact/, '');\n        return correct;\n    }\n    /**\n     * Return a zero-padded base-2 string representation of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     * @example\n     * var address = new Address6('2001:4860:4001:803::1011');\n     * address.binaryZeroPad();\n     * // '0010000000000001010010000110000001000000000000010000100000000011\n     * //  0000000000000000000000000000000000000000000000000001000000010001'\n     */\n    binaryZeroPad() {\n        return this.bigInteger().toString(2).padStart(constants6.BITS, '0');\n    }\n    // TODO: Improve the semantics of this helper function\n    parse4in6(address) {\n        const groups = address.split(':');\n        const lastGroup = groups.slice(-1)[0];\n        const address4 = lastGroup.match(constants4.RE_ADDRESS);\n        if (address4) {\n            this.parsedAddress4 = address4[0];\n            this.address4 = new ipv4_1.Address4(this.parsedAddress4);\n            for (let i = 0; i < this.address4.groups; i++) {\n                if (/^0[0-9]+/.test(this.address4.parsedAddress[i])) {\n                    throw new address_error_1.AddressError(\"IPv4 addresses can't have leading zeroes.\", address.replace(constants4.RE_ADDRESS, this.address4.parsedAddress.map(spanLeadingZeroes4).join('.')));\n                }\n            }\n            this.v4 = true;\n            groups[groups.length - 1] = this.address4.toGroup6();\n            address = groups.join(':');\n        }\n        return address;\n    }\n    // TODO: Make private?\n    parse(address) {\n        address = this.parse4in6(address);\n        const badCharacters = address.match(constants6.RE_BAD_CHARACTERS);\n        if (badCharacters) {\n            throw new address_error_1.AddressError((0, sprintf_js_1.sprintf)('Bad character%s detected in address: %s', badCharacters.length > 1 ? 's' : '', badCharacters.join('')), address.replace(constants6.RE_BAD_CHARACTERS, '<span class=\"parse-error\">$1</span>'));\n        }\n        const badAddress = address.match(constants6.RE_BAD_ADDRESS);\n        if (badAddress) {\n            throw new address_error_1.AddressError((0, sprintf_js_1.sprintf)('Address failed regex: %s', badAddress.join('')), address.replace(constants6.RE_BAD_ADDRESS, '<span class=\"parse-error\">$1</span>'));\n        }\n        let groups = [];\n        const halves = address.split('::');\n        if (halves.length === 2) {\n            let first = halves[0].split(':');\n            let last = halves[1].split(':');\n            if (first.length === 1 && first[0] === '') {\n                first = [];\n            }\n            if (last.length === 1 && last[0] === '') {\n                last = [];\n            }\n            const remaining = this.groups - (first.length + last.length);\n            if (!remaining) {\n                throw new address_error_1.AddressError('Error parsing groups');\n            }\n            this.elidedGroups = remaining;\n            this.elisionBegin = first.length;\n            this.elisionEnd = first.length + this.elidedGroups;\n            groups = groups.concat(first);\n            for (let i = 0; i < remaining; i++) {\n                groups.push('0');\n            }\n            groups = groups.concat(last);\n        }\n        else if (halves.length === 1) {\n            groups = address.split(':');\n            this.elidedGroups = 0;\n        }\n        else {\n            throw new address_error_1.AddressError('Too many :: groups found');\n        }\n        groups = groups.map((group) => (0, sprintf_js_1.sprintf)('%x', parseInt(group, 16)));\n        if (groups.length !== this.groups) {\n            throw new address_error_1.AddressError('Incorrect number of groups found');\n        }\n        return groups;\n    }\n    /**\n     * Return the canonical form of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    canonicalForm() {\n        return this.parsedAddress.map(paddedHex).join(':');\n    }\n    /**\n     * Return the decimal form of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    decimal() {\n        return this.parsedAddress.map((n) => (0, sprintf_js_1.sprintf)('%05d', parseInt(n, 16))).join(':');\n    }\n    /**\n     * Return the address as a BigInteger\n     * @memberof Address6\n     * @instance\n     * @returns {BigInteger}\n     */\n    bigInteger() {\n        return new jsbn_1.BigInteger(this.parsedAddress.map(paddedHex).join(''), 16);\n    }\n    /**\n     * Return the last two groups of this address as an IPv4 address string\n     * @memberof Address6\n     * @instance\n     * @returns {Address4}\n     * @example\n     * var address = new Address6('2001:4860:4001::1825:bf11');\n     * address.to4().correctForm(); // '24.37.191.17'\n     */\n    to4() {\n        const binary = this.binaryZeroPad().split('');\n        return ipv4_1.Address4.fromHex(new jsbn_1.BigInteger(binary.slice(96, 128).join(''), 2).toString(16));\n    }\n    /**\n     * Return the v4-in-v6 form of the address\n     * @memberof Address6\n     * @instance\n     * @returns {String}\n     */\n    to4in6() {\n        const address4 = this.to4();\n        const address6 = new Address6(this.parsedAddress.slice(0, 6).join(':'), 6);\n        const correct = address6.correctForm();\n        let infix = '';\n        if (!/:$/.test(correct)) {\n            infix = ':';\n        }\n        return correct + infix + address4.address;\n    }\n    /**\n     * Return an object containing the Teredo properties of the address\n     * @memberof Address6\n     * @instance\n     * @returns {Object}\n     */\n    inspectTeredo() {\n        /*\n        - Bits 0 to 31 are set to the Teredo prefix (normally 2001:0000::/32).\n        - Bits 32 to 63 embed the primary IPv4 address of the Teredo server that\n          is used.\n        - Bits 64 to 79 can be used to define some flags. Currently only the\n          higher order bit is used; it is set to 1 if the Teredo client is\n          located behind a cone NAT, 0 otherwise. For Microsoft's Windows Vista\n          and Windows Server 2008 implementations, more bits are used. In those\n          implementations, the format for these 16 bits is \"CRAAAAUG AAAAAAAA\",\n          where \"C\" remains the \"Cone\" flag. The \"R\" bit is reserved for future\n          use. The \"U\" bit is for the Universal/Local flag (set to 0). The \"G\" bit\n          is Individual/Group flag (set to 0). The A bits are set to a 12-bit\n          randomly generated number chosen by the Teredo client to introduce\n          additional protection for the Teredo node against IPv6-based scanning\n          attacks.\n        - Bits 80 to 95 contains the obfuscated UDP port number. This is the\n          port number that is mapped by the NAT to the Teredo client with all\n          bits inverted.\n        - Bits 96 to 127 contains the obfuscated IPv4 address. This is the\n          public IPv4 address of the NAT with all bits inverted.\n        */\n        const prefix = this.getBitsBase16(0, 32);\n        const udpPort = this.getBits(80, 96).xor(new jsbn_1.BigInteger('ffff', 16)).toString();\n        const server4 = ipv4_1.Address4.fromHex(this.getBitsBase16(32, 64));\n        const client4 = ipv4_1.Address4.fromHex(this.getBits(96, 128).xor(new jsbn_1.BigInteger('ffffffff', 16)).toString(16));\n        const flags = this.getBits(64, 80);\n        const flagsBase2 = this.getBitsBase2(64, 80);\n        const coneNat = flags.testBit(15);\n        const reserved = flags.testBit(14);\n        const groupIndividual = flags.testBit(8);\n        const universalLocal = flags.testBit(9);\n        const nonce = new jsbn_1.BigInteger(flagsBase2.slice(2, 6) + flagsBase2.slice(8, 16), 2).toString(10);\n        return {\n            prefix: (0, sprintf_js_1.sprintf)('%s:%s', prefix.slice(0, 4), prefix.slice(4, 8)),\n            server4: server4.address,\n            client4: client4.address,\n            flags: flagsBase2,\n            coneNat,\n            microsoft: {\n                reserved,\n                universalLocal,\n                groupIndividual,\n                nonce,\n            },\n            udpPort,\n        };\n    }\n    /**\n     * Return an object containing the 6to4 properties of the address\n     * @memberof Address6\n     * @instance\n     * @returns {Object}\n     */\n    inspect6to4() {\n        /*\n        - Bits 0 to 15 are set to the 6to4 prefix (2002::/16).\n        - Bits 16 to 48 embed the IPv4 address of the 6to4 gateway that is used.\n        */\n        const prefix = this.getBitsBase16(0, 16);\n        const gateway = ipv4_1.Address4.fromHex(this.getBitsBase16(16, 48));\n        return {\n            prefix: (0, sprintf_js_1.sprintf)('%s', prefix.slice(0, 4)),\n            gateway: gateway.address,\n        };\n    }\n    /**\n     * Return a v6 6to4 address from a v6 v4inv6 address\n     * @memberof Address6\n     * @instance\n     * @returns {Address6}\n     */\n    to6to4() {\n        if (!this.is4()) {\n            return null;\n        }\n        const addr6to4 = [\n            '2002',\n            this.getBitsBase16(96, 112),\n            this.getBitsBase16(112, 128),\n            '',\n            '/16',\n        ].join(':');\n        return new Address6(addr6to4);\n    }\n    /**\n     * Return a byte array\n     * @memberof Address6\n     * @instance\n     * @returns {Array}\n     */\n    toByteArray() {\n        const byteArray = this.bigInteger().toByteArray();\n        // work around issue where `toByteArray` returns a leading 0 element\n        if (byteArray.length === 17 && byteArray[0] === 0) {\n            return byteArray.slice(1);\n        }\n        return byteArray;\n    }\n    /**\n     * Return an unsigned byte array\n     * @memberof Address6\n     * @instance\n     * @returns {Array}\n     */\n    toUnsignedByteArray() {\n        return this.toByteArray().map(unsignByte);\n    }\n    /**\n     * Convert a byte array to an Address6 object\n     * @memberof Address6\n     * @static\n     * @returns {Address6}\n     */\n    static fromByteArray(bytes) {\n        return this.fromUnsignedByteArray(bytes.map(unsignByte));\n    }\n    /**\n     * Convert an unsigned byte array to an Address6 object\n     * @memberof Address6\n     * @static\n     * @returns {Address6}\n     */\n    static fromUnsignedByteArray(bytes) {\n        const BYTE_MAX = new jsbn_1.BigInteger('256', 10);\n        let result = new jsbn_1.BigInteger('0', 10);\n        let multiplier = new jsbn_1.BigInteger('1', 10);\n        for (let i = bytes.length - 1; i >= 0; i--) {\n            result = result.add(multiplier.multiply(new jsbn_1.BigInteger(bytes[i].toString(10), 10)));\n            multiplier = multiplier.multiply(BYTE_MAX);\n        }\n        return Address6.fromBigInteger(result);\n    }\n    /**\n     * Returns true if the address is in the canonical form, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    isCanonical() {\n        return this.addressMinusSuffix === this.canonicalForm();\n    }\n    /**\n     * Returns true if the address is a link local address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    isLinkLocal() {\n        // Zeroes are required, i.e. we can't check isInSubnet with 'fe80::/10'\n        if (this.getBitsBase2(0, 64) ===\n            '1111111010000000000000000000000000000000000000000000000000000000') {\n            return true;\n        }\n        return false;\n    }\n    /**\n     * Returns true if the address is a multicast address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    isMulticast() {\n        return this.getType() === 'Multicast';\n    }\n    /**\n     * Returns true if the address is a v4-in-v6 address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    is4() {\n        return this.v4;\n    }\n    /**\n     * Returns true if the address is a Teredo address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    isTeredo() {\n        return this.isInSubnet(new Address6('2001::/32'));\n    }\n    /**\n     * Returns true if the address is a 6to4 address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    is6to4() {\n        return this.isInSubnet(new Address6('2002::/16'));\n    }\n    /**\n     * Returns true if the address is a loopback address, false otherwise\n     * @memberof Address6\n     * @instance\n     * @returns {boolean}\n     */\n    isLoopback() {\n        return this.getType() === 'Loopback';\n    }\n    // #endregion\n    // #region HTML\n    /**\n     * @returns {String} the address in link form with a default port of 80\n     */\n    href(optionalPort) {\n        if (optionalPort === undefined) {\n            optionalPort = '';\n        }\n        else {\n            optionalPort = (0, sprintf_js_1.sprintf)(':%s', optionalPort);\n        }\n        return (0, sprintf_js_1.sprintf)('http://[%s]%s/', this.correctForm(), optionalPort);\n    }\n    /**\n     * @returns {String} a link suitable for conveying the address via a URL hash\n     */\n    link(options) {\n        if (!options) {\n            options = {};\n        }\n        if (options.className === undefined) {\n            options.className = '';\n        }\n        if (options.prefix === undefined) {\n            options.prefix = '/#address=';\n        }\n        if (options.v4 === undefined) {\n            options.v4 = false;\n        }\n        let formFunction = this.correctForm;\n        if (options.v4) {\n            formFunction = this.to4in6;\n        }\n        if (options.className) {\n            return (0, sprintf_js_1.sprintf)('<a href=\"%1$s%2$s\" class=\"%3$s\">%2$s</a>', options.prefix, formFunction.call(this), options.className);\n        }\n        return (0, sprintf_js_1.sprintf)('<a href=\"%1$s%2$s\">%2$s</a>', options.prefix, formFunction.call(this));\n    }\n    /**\n     * Groups an address\n     * @returns {String}\n     */\n    group() {\n        if (this.elidedGroups === 0) {\n            // The simple case\n            return helpers.simpleGroup(this.address).join(':');\n        }\n        assert(typeof this.elidedGroups === 'number');\n        assert(typeof this.elisionBegin === 'number');\n        // The elided case\n        const output = [];\n        const [left, right] = this.address.split('::');\n        if (left.length) {\n            output.push(...helpers.simpleGroup(left));\n        }\n        else {\n            output.push('');\n        }\n        const classes = ['hover-group'];\n        for (let i = this.elisionBegin; i < this.elisionBegin + this.elidedGroups; i++) {\n            classes.push((0, sprintf_js_1.sprintf)('group-%d', i));\n        }\n        output.push((0, sprintf_js_1.sprintf)('<span class=\"%s\"></span>', classes.join(' ')));\n        if (right.length) {\n            output.push(...helpers.simpleGroup(right, this.elisionEnd));\n        }\n        else {\n            output.push('');\n        }\n        if (this.is4()) {\n            assert(this.address4 instanceof ipv4_1.Address4);\n            output.pop();\n            output.push(this.address4.groupForV6());\n        }\n        return output.join(':');\n    }\n    // #endregion\n    // #region Regular expressions\n    /**\n     * Generate a regular expression string that can be used to find or validate\n     * all variations of this address\n     * @memberof Address6\n     * @instance\n     * @param {boolean} substringSearch\n     * @returns {string}\n     */\n    regularExpressionString(substringSearch = false) {\n        let output = [];\n        // TODO: revisit why this is necessary\n        const address6 = new Address6(this.correctForm());\n        if (address6.elidedGroups === 0) {\n            // The simple case\n            output.push((0, regular_expressions_1.simpleRegularExpression)(address6.parsedAddress));\n        }\n        else if (address6.elidedGroups === constants6.GROUPS) {\n            // A completely elided address\n            output.push((0, regular_expressions_1.possibleElisions)(constants6.GROUPS));\n        }\n        else {\n            // A partially elided address\n            const halves = address6.address.split('::');\n            if (halves[0].length) {\n                output.push((0, regular_expressions_1.simpleRegularExpression)(halves[0].split(':')));\n            }\n            assert(typeof address6.elidedGroups === 'number');\n            output.push((0, regular_expressions_1.possibleElisions)(address6.elidedGroups, halves[0].length !== 0, halves[1].length !== 0));\n            if (halves[1].length) {\n                output.push((0, regular_expressions_1.simpleRegularExpression)(halves[1].split(':')));\n            }\n            output = [output.join(':')];\n        }\n        if (!substringSearch) {\n            output = [\n                '(?=^|',\n                regular_expressions_1.ADDRESS_BOUNDARY,\n                '|[^\\\\w\\\\:])(',\n                ...output,\n                ')(?=[^\\\\w\\\\:]|',\n                regular_expressions_1.ADDRESS_BOUNDARY,\n                '|$)',\n            ];\n        }\n        return output.join('');\n    }\n    /**\n     * Generate a regular expression that can be used to find or validate all\n     * variations of this address.\n     * @memberof Address6\n     * @instance\n     * @param {boolean} substringSearch\n     * @returns {RegExp}\n     */\n    regularExpression(substringSearch = false) {\n        return new RegExp(this.regularExpressionString(substringSearch), 'i');\n    }\n}\nexports.Address6 = Address6;\n//# sourceMappingURL=ipv6.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/ipv6.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/v4/constants.js":
/*!******************************************************!*\
  !*** ./node_modules/ip-address/dist/v4/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RE_SUBNET_STRING = exports.RE_ADDRESS = exports.GROUPS = exports.BITS = void 0;\nexports.BITS = 32;\nexports.GROUPS = 4;\nexports.RE_ADDRESS = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/g;\nexports.RE_SUBNET_STRING = /\\/\\d{1,2}$/;\n//# sourceMappingURL=constants.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/v4/constants.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/v6/constants.js":
/*!******************************************************!*\
  !*** ./node_modules/ip-address/dist/v6/constants.js ***!
  \******************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.RE_URL_WITH_PORT = exports.RE_URL = exports.RE_ZONE_STRING = exports.RE_SUBNET_STRING = exports.RE_BAD_ADDRESS = exports.RE_BAD_CHARACTERS = exports.TYPES = exports.SCOPES = exports.GROUPS = exports.BITS = void 0;\nexports.BITS = 128;\nexports.GROUPS = 8;\n/**\n * Represents IPv6 address scopes\n * @memberof Address6\n * @static\n */\nexports.SCOPES = {\n    0: 'Reserved',\n    1: 'Interface local',\n    2: 'Link local',\n    4: 'Admin local',\n    5: 'Site local',\n    8: 'Organization local',\n    14: 'Global',\n    15: 'Reserved',\n};\n/**\n * Represents IPv6 address types\n * @memberof Address6\n * @static\n */\nexports.TYPES = {\n    'ff01::1/128': 'Multicast (All nodes on this interface)',\n    'ff01::2/128': 'Multicast (All routers on this interface)',\n    'ff02::1/128': 'Multicast (All nodes on this link)',\n    'ff02::2/128': 'Multicast (All routers on this link)',\n    'ff05::2/128': 'Multicast (All routers in this site)',\n    'ff02::5/128': 'Multicast (OSPFv3 AllSPF routers)',\n    'ff02::6/128': 'Multicast (OSPFv3 AllDR routers)',\n    'ff02::9/128': 'Multicast (RIP routers)',\n    'ff02::a/128': 'Multicast (EIGRP routers)',\n    'ff02::d/128': 'Multicast (PIM routers)',\n    'ff02::16/128': 'Multicast (MLDv2 reports)',\n    'ff01::fb/128': 'Multicast (mDNSv6)',\n    'ff02::fb/128': 'Multicast (mDNSv6)',\n    'ff05::fb/128': 'Multicast (mDNSv6)',\n    'ff02::1:2/128': 'Multicast (All DHCP servers and relay agents on this link)',\n    'ff05::1:2/128': 'Multicast (All DHCP servers and relay agents in this site)',\n    'ff02::1:3/128': 'Multicast (All DHCP servers on this link)',\n    'ff05::1:3/128': 'Multicast (All DHCP servers in this site)',\n    '::/128': 'Unspecified',\n    '::1/128': 'Loopback',\n    'ff00::/8': 'Multicast',\n    'fe80::/10': 'Link-local unicast',\n};\n/**\n * A regular expression that matches bad characters in an IPv6 address\n * @memberof Address6\n * @static\n */\nexports.RE_BAD_CHARACTERS = /([^0-9a-f:/%])/gi;\n/**\n * A regular expression that matches an incorrect IPv6 address\n * @memberof Address6\n * @static\n */\nexports.RE_BAD_ADDRESS = /([0-9a-f]{5,}|:{3,}|[^:]:$|^:[^:]|\\/$)/gi;\n/**\n * A regular expression that matches an IPv6 subnet\n * @memberof Address6\n * @static\n */\nexports.RE_SUBNET_STRING = /\\/\\d{1,3}(?=%|$)/;\n/**\n * A regular expression that matches an IPv6 zone\n * @memberof Address6\n * @static\n */\nexports.RE_ZONE_STRING = /%.*$/;\nexports.RE_URL = new RegExp(/^\\[{0,1}([0-9a-f:]+)\\]{0,1}/);\nexports.RE_URL_WITH_PORT = new RegExp(/\\[([0-9a-f:]+)\\]:([0-9]{1,5})/);\n//# sourceMappingURL=constants.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/v6/constants.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/v6/helpers.js":
/*!****************************************************!*\
  !*** ./node_modules/ip-address/dist/v6/helpers.js ***!
  \****************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.simpleGroup = exports.spanLeadingZeroes = exports.spanAll = exports.spanAllZeroes = void 0;\nconst sprintf_js_1 = __webpack_require__(/*! sprintf-js */ \"./node_modules/sprintf-js/src/sprintf.js\");\n/**\n * @returns {String} the string with all zeroes contained in a <span>\n */\nfunction spanAllZeroes(s) {\n    return s.replace(/(0+)/g, '<span class=\"zero\">$1</span>');\n}\nexports.spanAllZeroes = spanAllZeroes;\n/**\n * @returns {String} the string with each character contained in a <span>\n */\nfunction spanAll(s, offset = 0) {\n    const letters = s.split('');\n    return letters\n        .map((n, i) => (0, sprintf_js_1.sprintf)('<span class=\"digit value-%s position-%d\">%s</span>', n, i + offset, spanAllZeroes(n)) // XXX Use #base-2 .value-0 instead?\n    )\n        .join('');\n}\nexports.spanAll = spanAll;\nfunction spanLeadingZeroesSimple(group) {\n    return group.replace(/^(0+)/, '<span class=\"zero\">$1</span>');\n}\n/**\n * @returns {String} the string with leading zeroes contained in a <span>\n */\nfunction spanLeadingZeroes(address) {\n    const groups = address.split(':');\n    return groups.map((g) => spanLeadingZeroesSimple(g)).join(':');\n}\nexports.spanLeadingZeroes = spanLeadingZeroes;\n/**\n * Groups an address\n * @returns {String} a grouped address\n */\nfunction simpleGroup(addressString, offset = 0) {\n    const groups = addressString.split(':');\n    return groups.map((g, i) => {\n        if (/group-v4/.test(g)) {\n            return g;\n        }\n        return (0, sprintf_js_1.sprintf)('<span class=\"hover-group group-%d\">%s</span>', i + offset, spanLeadingZeroesSimple(g));\n    });\n}\nexports.simpleGroup = simpleGroup;\n//# sourceMappingURL=helpers.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/v6/helpers.js?");

/***/ }),

/***/ "./node_modules/ip-address/dist/v6/regular-expressions.js":
/*!****************************************************************!*\
  !*** ./node_modules/ip-address/dist/v6/regular-expressions.js ***!
  \****************************************************************/
/***/ (function(__unused_webpack_module, exports, __webpack_require__) {

"use strict";
eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n    if (k2 === undefined) k2 = k;\n    var desc = Object.getOwnPropertyDescriptor(m, k);\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n    }\n    Object.defineProperty(o, k2, desc);\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.possibleElisions = exports.simpleRegularExpression = exports.ADDRESS_BOUNDARY = exports.padGroup = exports.groupPossibilities = void 0;\nconst v6 = __importStar(__webpack_require__(/*! ./constants */ \"./node_modules/ip-address/dist/v6/constants.js\"));\nconst sprintf_js_1 = __webpack_require__(/*! sprintf-js */ \"./node_modules/sprintf-js/src/sprintf.js\");\nfunction groupPossibilities(possibilities) {\n    return (0, sprintf_js_1.sprintf)('(%s)', possibilities.join('|'));\n}\nexports.groupPossibilities = groupPossibilities;\nfunction padGroup(group) {\n    if (group.length < 4) {\n        return (0, sprintf_js_1.sprintf)('0{0,%d}%s', 4 - group.length, group);\n    }\n    return group;\n}\nexports.padGroup = padGroup;\nexports.ADDRESS_BOUNDARY = '[^A-Fa-f0-9:]';\nfunction simpleRegularExpression(groups) {\n    const zeroIndexes = [];\n    groups.forEach((group, i) => {\n        const groupInteger = parseInt(group, 16);\n        if (groupInteger === 0) {\n            zeroIndexes.push(i);\n        }\n    });\n    // You can technically elide a single 0, this creates the regular expressions\n    // to match that eventuality\n    const possibilities = zeroIndexes.map((zeroIndex) => groups\n        .map((group, i) => {\n        if (i === zeroIndex) {\n            const elision = i === 0 || i === v6.GROUPS - 1 ? ':' : '';\n            return groupPossibilities([padGroup(group), elision]);\n        }\n        return padGroup(group);\n    })\n        .join(':'));\n    // The simplest case\n    possibilities.push(groups.map(padGroup).join(':'));\n    return groupPossibilities(possibilities);\n}\nexports.simpleRegularExpression = simpleRegularExpression;\nfunction possibleElisions(elidedGroups, moreLeft, moreRight) {\n    const left = moreLeft ? '' : ':';\n    const right = moreRight ? '' : ':';\n    const possibilities = [];\n    // 1. elision of everything (::)\n    if (!moreLeft && !moreRight) {\n        possibilities.push('::');\n    }\n    // 2. complete elision of the middle\n    if (moreLeft && moreRight) {\n        possibilities.push('');\n    }\n    if ((moreRight && !moreLeft) || (!moreRight && moreLeft)) {\n        // 3. complete elision of one side\n        possibilities.push(':');\n    }\n    // 4. elision from the left side\n    possibilities.push((0, sprintf_js_1.sprintf)('%s(:0{1,4}){1,%d}', left, elidedGroups - 1));\n    // 5. elision from the right side\n    possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){1,%d}%s', elidedGroups - 1, right));\n    // 6. no elision\n    possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){%d}0{1,4}', elidedGroups - 1));\n    // 7. elision (including sloppy elision) from the middle\n    for (let groups = 1; groups < elidedGroups - 1; groups++) {\n        for (let position = 1; position < elidedGroups - groups; position++) {\n            possibilities.push((0, sprintf_js_1.sprintf)('(0{1,4}:){%d}:(0{1,4}:){%d}0{1,4}', position, elidedGroups - position - groups - 1));\n        }\n    }\n    return groupPossibilities(possibilities);\n}\nexports.possibleElisions = possibleElisions;\n//# sourceMappingURL=regular-expressions.js.map\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ip-address/dist/v6/regular-expressions.js?");

/***/ }),

/***/ "./node_modules/jsbn/index.js":
/*!************************************!*\
  !*** ./node_modules/jsbn/index.js ***!
  \************************************/
/***/ (function(module, exports) {

eval("(function(){\n\n    // Copyright (c) 2005  Tom Wu\n    // All Rights Reserved.\n    // See \"LICENSE\" for details.\n\n    // Basic JavaScript BN library - subset useful for RSA encryption.\n\n    // Bits per digit\n    var dbits;\n\n    // JavaScript engine analysis\n    var canary = 0xdeadbeefcafe;\n    var j_lm = ((canary&0xffffff)==0xefcafe);\n\n    // (public) Constructor\n    function BigInteger(a,b,c) {\n      if(a != null)\n        if(\"number\" == typeof a) this.fromNumber(a,b,c);\n        else if(b == null && \"string\" != typeof a) this.fromString(a,256);\n        else this.fromString(a,b);\n    }\n\n    // return new, unset BigInteger\n    function nbi() { return new BigInteger(null); }\n\n    // am: Compute w_j += (x*this_i), propagate carries,\n    // c is initial carry, returns final carry.\n    // c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n    // We need to select the fastest one that works in this environment.\n\n    // am1: use a single mult and divide to get the high bits,\n    // max digit bits should be 26 because\n    // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n    function am1(i,x,w,j,c,n) {\n      while(--n >= 0) {\n        var v = x*this[i++]+w[j]+c;\n        c = Math.floor(v/0x4000000);\n        w[j++] = v&0x3ffffff;\n      }\n      return c;\n    }\n    // am2 avoids a big mult-and-extract completely.\n    // Max digit bits should be <= 30 because we do bitwise ops\n    // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n    function am2(i,x,w,j,c,n) {\n      var xl = x&0x7fff, xh = x>>15;\n      while(--n >= 0) {\n        var l = this[i]&0x7fff;\n        var h = this[i++]>>15;\n        var m = xh*l+h*xl;\n        l = xl*l+((m&0x7fff)<<15)+w[j]+(c&0x3fffffff);\n        c = (l>>>30)+(m>>>15)+xh*h+(c>>>30);\n        w[j++] = l&0x3fffffff;\n      }\n      return c;\n    }\n    // Alternately, set max digit bits to 28 since some\n    // browsers slow down when dealing with 32-bit numbers.\n    function am3(i,x,w,j,c,n) {\n      var xl = x&0x3fff, xh = x>>14;\n      while(--n >= 0) {\n        var l = this[i]&0x3fff;\n        var h = this[i++]>>14;\n        var m = xh*l+h*xl;\n        l = xl*l+((m&0x3fff)<<14)+w[j]+c;\n        c = (l>>28)+(m>>14)+xh*h;\n        w[j++] = l&0xfffffff;\n      }\n      return c;\n    }\n    var inBrowser = typeof navigator !== \"undefined\";\n    if(inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n      BigInteger.prototype.am = am2;\n      dbits = 30;\n    }\n    else if(inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n      BigInteger.prototype.am = am1;\n      dbits = 26;\n    }\n    else { // Mozilla/Netscape seems to prefer am3\n      BigInteger.prototype.am = am3;\n      dbits = 28;\n    }\n\n    BigInteger.prototype.DB = dbits;\n    BigInteger.prototype.DM = ((1<<dbits)-1);\n    BigInteger.prototype.DV = (1<<dbits);\n\n    var BI_FP = 52;\n    BigInteger.prototype.FV = Math.pow(2,BI_FP);\n    BigInteger.prototype.F1 = BI_FP-dbits;\n    BigInteger.prototype.F2 = 2*dbits-BI_FP;\n\n    // Digit conversions\n    var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\n    var BI_RC = new Array();\n    var rr,vv;\n    rr = \"0\".charCodeAt(0);\n    for(vv = 0; vv <= 9; ++vv) BI_RC[rr++] = vv;\n    rr = \"a\".charCodeAt(0);\n    for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\n    rr = \"A\".charCodeAt(0);\n    for(vv = 10; vv < 36; ++vv) BI_RC[rr++] = vv;\n\n    function int2char(n) { return BI_RM.charAt(n); }\n    function intAt(s,i) {\n      var c = BI_RC[s.charCodeAt(i)];\n      return (c==null)?-1:c;\n    }\n\n    // (protected) copy this to r\n    function bnpCopyTo(r) {\n      for(var i = this.t-1; i >= 0; --i) r[i] = this[i];\n      r.t = this.t;\n      r.s = this.s;\n    }\n\n    // (protected) set from integer value x, -DV <= x < DV\n    function bnpFromInt(x) {\n      this.t = 1;\n      this.s = (x<0)?-1:0;\n      if(x > 0) this[0] = x;\n      else if(x < -1) this[0] = x+this.DV;\n      else this.t = 0;\n    }\n\n    // return bigint initialized to value\n    function nbv(i) { var r = nbi(); r.fromInt(i); return r; }\n\n    // (protected) set from string and radix\n    function bnpFromString(s,b) {\n      var k;\n      if(b == 16) k = 4;\n      else if(b == 8) k = 3;\n      else if(b == 256) k = 8; // byte array\n      else if(b == 2) k = 1;\n      else if(b == 32) k = 5;\n      else if(b == 4) k = 2;\n      else { this.fromRadix(s,b); return; }\n      this.t = 0;\n      this.s = 0;\n      var i = s.length, mi = false, sh = 0;\n      while(--i >= 0) {\n        var x = (k==8)?s[i]&0xff:intAt(s,i);\n        if(x < 0) {\n          if(s.charAt(i) == \"-\") mi = true;\n          continue;\n        }\n        mi = false;\n        if(sh == 0)\n          this[this.t++] = x;\n        else if(sh+k > this.DB) {\n          this[this.t-1] |= (x&((1<<(this.DB-sh))-1))<<sh;\n          this[this.t++] = (x>>(this.DB-sh));\n        }\n        else\n          this[this.t-1] |= x<<sh;\n        sh += k;\n        if(sh >= this.DB) sh -= this.DB;\n      }\n      if(k == 8 && (s[0]&0x80) != 0) {\n        this.s = -1;\n        if(sh > 0) this[this.t-1] |= ((1<<(this.DB-sh))-1)<<sh;\n      }\n      this.clamp();\n      if(mi) BigInteger.ZERO.subTo(this,this);\n    }\n\n    // (protected) clamp off excess high words\n    function bnpClamp() {\n      var c = this.s&this.DM;\n      while(this.t > 0 && this[this.t-1] == c) --this.t;\n    }\n\n    // (public) return string representation in given radix\n    function bnToString(b) {\n      if(this.s < 0) return \"-\"+this.negate().toString(b);\n      var k;\n      if(b == 16) k = 4;\n      else if(b == 8) k = 3;\n      else if(b == 2) k = 1;\n      else if(b == 32) k = 5;\n      else if(b == 4) k = 2;\n      else return this.toRadix(b);\n      var km = (1<<k)-1, d, m = false, r = \"\", i = this.t;\n      var p = this.DB-(i*this.DB)%k;\n      if(i-- > 0) {\n        if(p < this.DB && (d = this[i]>>p) > 0) { m = true; r = int2char(d); }\n        while(i >= 0) {\n          if(p < k) {\n            d = (this[i]&((1<<p)-1))<<(k-p);\n            d |= this[--i]>>(p+=this.DB-k);\n          }\n          else {\n            d = (this[i]>>(p-=k))&km;\n            if(p <= 0) { p += this.DB; --i; }\n          }\n          if(d > 0) m = true;\n          if(m) r += int2char(d);\n        }\n      }\n      return m?r:\"0\";\n    }\n\n    // (public) -this\n    function bnNegate() { var r = nbi(); BigInteger.ZERO.subTo(this,r); return r; }\n\n    // (public) |this|\n    function bnAbs() { return (this.s<0)?this.negate():this; }\n\n    // (public) return + if this > a, - if this < a, 0 if equal\n    function bnCompareTo(a) {\n      var r = this.s-a.s;\n      if(r != 0) return r;\n      var i = this.t;\n      r = i-a.t;\n      if(r != 0) return (this.s<0)?-r:r;\n      while(--i >= 0) if((r=this[i]-a[i]) != 0) return r;\n      return 0;\n    }\n\n    // returns bit length of the integer x\n    function nbits(x) {\n      var r = 1, t;\n      if((t=x>>>16) != 0) { x = t; r += 16; }\n      if((t=x>>8) != 0) { x = t; r += 8; }\n      if((t=x>>4) != 0) { x = t; r += 4; }\n      if((t=x>>2) != 0) { x = t; r += 2; }\n      if((t=x>>1) != 0) { x = t; r += 1; }\n      return r;\n    }\n\n    // (public) return the number of bits in \"this\"\n    function bnBitLength() {\n      if(this.t <= 0) return 0;\n      return this.DB*(this.t-1)+nbits(this[this.t-1]^(this.s&this.DM));\n    }\n\n    // (protected) r = this << n*DB\n    function bnpDLShiftTo(n,r) {\n      var i;\n      for(i = this.t-1; i >= 0; --i) r[i+n] = this[i];\n      for(i = n-1; i >= 0; --i) r[i] = 0;\n      r.t = this.t+n;\n      r.s = this.s;\n    }\n\n    // (protected) r = this >> n*DB\n    function bnpDRShiftTo(n,r) {\n      for(var i = n; i < this.t; ++i) r[i-n] = this[i];\n      r.t = Math.max(this.t-n,0);\n      r.s = this.s;\n    }\n\n    // (protected) r = this << n\n    function bnpLShiftTo(n,r) {\n      var bs = n%this.DB;\n      var cbs = this.DB-bs;\n      var bm = (1<<cbs)-1;\n      var ds = Math.floor(n/this.DB), c = (this.s<<bs)&this.DM, i;\n      for(i = this.t-1; i >= 0; --i) {\n        r[i+ds+1] = (this[i]>>cbs)|c;\n        c = (this[i]&bm)<<bs;\n      }\n      for(i = ds-1; i >= 0; --i) r[i] = 0;\n      r[ds] = c;\n      r.t = this.t+ds+1;\n      r.s = this.s;\n      r.clamp();\n    }\n\n    // (protected) r = this >> n\n    function bnpRShiftTo(n,r) {\n      r.s = this.s;\n      var ds = Math.floor(n/this.DB);\n      if(ds >= this.t) { r.t = 0; return; }\n      var bs = n%this.DB;\n      var cbs = this.DB-bs;\n      var bm = (1<<bs)-1;\n      r[0] = this[ds]>>bs;\n      for(var i = ds+1; i < this.t; ++i) {\n        r[i-ds-1] |= (this[i]&bm)<<cbs;\n        r[i-ds] = this[i]>>bs;\n      }\n      if(bs > 0) r[this.t-ds-1] |= (this.s&bm)<<cbs;\n      r.t = this.t-ds;\n      r.clamp();\n    }\n\n    // (protected) r = this - a\n    function bnpSubTo(a,r) {\n      var i = 0, c = 0, m = Math.min(a.t,this.t);\n      while(i < m) {\n        c += this[i]-a[i];\n        r[i++] = c&this.DM;\n        c >>= this.DB;\n      }\n      if(a.t < this.t) {\n        c -= a.s;\n        while(i < this.t) {\n          c += this[i];\n          r[i++] = c&this.DM;\n          c >>= this.DB;\n        }\n        c += this.s;\n      }\n      else {\n        c += this.s;\n        while(i < a.t) {\n          c -= a[i];\n          r[i++] = c&this.DM;\n          c >>= this.DB;\n        }\n        c -= a.s;\n      }\n      r.s = (c<0)?-1:0;\n      if(c < -1) r[i++] = this.DV+c;\n      else if(c > 0) r[i++] = c;\n      r.t = i;\n      r.clamp();\n    }\n\n    // (protected) r = this * a, r != this,a (HAC 14.12)\n    // \"this\" should be the larger one if appropriate.\n    function bnpMultiplyTo(a,r) {\n      var x = this.abs(), y = a.abs();\n      var i = x.t;\n      r.t = i+y.t;\n      while(--i >= 0) r[i] = 0;\n      for(i = 0; i < y.t; ++i) r[i+x.t] = x.am(0,y[i],r,i,0,x.t);\n      r.s = 0;\n      r.clamp();\n      if(this.s != a.s) BigInteger.ZERO.subTo(r,r);\n    }\n\n    // (protected) r = this^2, r != this (HAC 14.16)\n    function bnpSquareTo(r) {\n      var x = this.abs();\n      var i = r.t = 2*x.t;\n      while(--i >= 0) r[i] = 0;\n      for(i = 0; i < x.t-1; ++i) {\n        var c = x.am(i,x[i],r,2*i,0,1);\n        if((r[i+x.t]+=x.am(i+1,2*x[i],r,2*i+1,c,x.t-i-1)) >= x.DV) {\n          r[i+x.t] -= x.DV;\n          r[i+x.t+1] = 1;\n        }\n      }\n      if(r.t > 0) r[r.t-1] += x.am(i,x[i],r,2*i,0,1);\n      r.s = 0;\n      r.clamp();\n    }\n\n    // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n    // r != q, this != m.  q or r may be null.\n    function bnpDivRemTo(m,q,r) {\n      var pm = m.abs();\n      if(pm.t <= 0) return;\n      var pt = this.abs();\n      if(pt.t < pm.t) {\n        if(q != null) q.fromInt(0);\n        if(r != null) this.copyTo(r);\n        return;\n      }\n      if(r == null) r = nbi();\n      var y = nbi(), ts = this.s, ms = m.s;\n      var nsh = this.DB-nbits(pm[pm.t-1]);   // normalize modulus\n      if(nsh > 0) { pm.lShiftTo(nsh,y); pt.lShiftTo(nsh,r); }\n      else { pm.copyTo(y); pt.copyTo(r); }\n      var ys = y.t;\n      var y0 = y[ys-1];\n      if(y0 == 0) return;\n      var yt = y0*(1<<this.F1)+((ys>1)?y[ys-2]>>this.F2:0);\n      var d1 = this.FV/yt, d2 = (1<<this.F1)/yt, e = 1<<this.F2;\n      var i = r.t, j = i-ys, t = (q==null)?nbi():q;\n      y.dlShiftTo(j,t);\n      if(r.compareTo(t) >= 0) {\n        r[r.t++] = 1;\n        r.subTo(t,r);\n      }\n      BigInteger.ONE.dlShiftTo(ys,t);\n      t.subTo(y,y);  // \"negative\" y so we can replace sub with am later\n      while(y.t < ys) y[y.t++] = 0;\n      while(--j >= 0) {\n        // Estimate quotient digit\n        var qd = (r[--i]==y0)?this.DM:Math.floor(r[i]*d1+(r[i-1]+e)*d2);\n        if((r[i]+=y.am(0,qd,r,j,0,ys)) < qd) {   // Try it out\n          y.dlShiftTo(j,t);\n          r.subTo(t,r);\n          while(r[i] < --qd) r.subTo(t,r);\n        }\n      }\n      if(q != null) {\n        r.drShiftTo(ys,q);\n        if(ts != ms) BigInteger.ZERO.subTo(q,q);\n      }\n      r.t = ys;\n      r.clamp();\n      if(nsh > 0) r.rShiftTo(nsh,r); // Denormalize remainder\n      if(ts < 0) BigInteger.ZERO.subTo(r,r);\n    }\n\n    // (public) this mod a\n    function bnMod(a) {\n      var r = nbi();\n      this.abs().divRemTo(a,null,r);\n      if(this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r,r);\n      return r;\n    }\n\n    // Modular reduction using \"classic\" algorithm\n    function Classic(m) { this.m = m; }\n    function cConvert(x) {\n      if(x.s < 0 || x.compareTo(this.m) >= 0) return x.mod(this.m);\n      else return x;\n    }\n    function cRevert(x) { return x; }\n    function cReduce(x) { x.divRemTo(this.m,null,x); }\n    function cMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n    function cSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n    Classic.prototype.convert = cConvert;\n    Classic.prototype.revert = cRevert;\n    Classic.prototype.reduce = cReduce;\n    Classic.prototype.mulTo = cMulTo;\n    Classic.prototype.sqrTo = cSqrTo;\n\n    // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n    // justification:\n    //         xy == 1 (mod m)\n    //         xy =  1+km\n    //   xy(2-xy) = (1+km)(1-km)\n    // x[y(2-xy)] = 1-k^2m^2\n    // x[y(2-xy)] == 1 (mod m^2)\n    // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n    // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n    // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n    function bnpInvDigit() {\n      if(this.t < 1) return 0;\n      var x = this[0];\n      if((x&1) == 0) return 0;\n      var y = x&3;       // y == 1/x mod 2^2\n      y = (y*(2-(x&0xf)*y))&0xf; // y == 1/x mod 2^4\n      y = (y*(2-(x&0xff)*y))&0xff;   // y == 1/x mod 2^8\n      y = (y*(2-(((x&0xffff)*y)&0xffff)))&0xffff;    // y == 1/x mod 2^16\n      // last step - calculate inverse mod DV directly;\n      // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n      y = (y*(2-x*y%this.DV))%this.DV;       // y == 1/x mod 2^dbits\n      // we really want the negative inverse, and -DV < y < DV\n      return (y>0)?this.DV-y:-y;\n    }\n\n    // Montgomery reduction\n    function Montgomery(m) {\n      this.m = m;\n      this.mp = m.invDigit();\n      this.mpl = this.mp&0x7fff;\n      this.mph = this.mp>>15;\n      this.um = (1<<(m.DB-15))-1;\n      this.mt2 = 2*m.t;\n    }\n\n    // xR mod m\n    function montConvert(x) {\n      var r = nbi();\n      x.abs().dlShiftTo(this.m.t,r);\n      r.divRemTo(this.m,null,r);\n      if(x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r,r);\n      return r;\n    }\n\n    // x/R mod m\n    function montRevert(x) {\n      var r = nbi();\n      x.copyTo(r);\n      this.reduce(r);\n      return r;\n    }\n\n    // x = x/R mod m (HAC 14.32)\n    function montReduce(x) {\n      while(x.t <= this.mt2) // pad x so am has enough room later\n        x[x.t++] = 0;\n      for(var i = 0; i < this.m.t; ++i) {\n        // faster way of calculating u0 = x[i]*mp mod DV\n        var j = x[i]&0x7fff;\n        var u0 = (j*this.mpl+(((j*this.mph+(x[i]>>15)*this.mpl)&this.um)<<15))&x.DM;\n        // use am to combine the multiply-shift-add into one call\n        j = i+this.m.t;\n        x[j] += this.m.am(0,u0,x,i,0,this.m.t);\n        // propagate carry\n        while(x[j] >= x.DV) { x[j] -= x.DV; x[++j]++; }\n      }\n      x.clamp();\n      x.drShiftTo(this.m.t,x);\n      if(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n    }\n\n    // r = \"x^2/R mod m\"; x != r\n    function montSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n    // r = \"xy/R mod m\"; x,y != r\n    function montMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n    Montgomery.prototype.convert = montConvert;\n    Montgomery.prototype.revert = montRevert;\n    Montgomery.prototype.reduce = montReduce;\n    Montgomery.prototype.mulTo = montMulTo;\n    Montgomery.prototype.sqrTo = montSqrTo;\n\n    // (protected) true iff this is even\n    function bnpIsEven() { return ((this.t>0)?(this[0]&1):this.s) == 0; }\n\n    // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n    function bnpExp(e,z) {\n      if(e > 0xffffffff || e < 1) return BigInteger.ONE;\n      var r = nbi(), r2 = nbi(), g = z.convert(this), i = nbits(e)-1;\n      g.copyTo(r);\n      while(--i >= 0) {\n        z.sqrTo(r,r2);\n        if((e&(1<<i)) > 0) z.mulTo(r2,g,r);\n        else { var t = r; r = r2; r2 = t; }\n      }\n      return z.revert(r);\n    }\n\n    // (public) this^e % m, 0 <= e < 2^32\n    function bnModPowInt(e,m) {\n      var z;\n      if(e < 256 || m.isEven()) z = new Classic(m); else z = new Montgomery(m);\n      return this.exp(e,z);\n    }\n\n    // protected\n    BigInteger.prototype.copyTo = bnpCopyTo;\n    BigInteger.prototype.fromInt = bnpFromInt;\n    BigInteger.prototype.fromString = bnpFromString;\n    BigInteger.prototype.clamp = bnpClamp;\n    BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n    BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n    BigInteger.prototype.lShiftTo = bnpLShiftTo;\n    BigInteger.prototype.rShiftTo = bnpRShiftTo;\n    BigInteger.prototype.subTo = bnpSubTo;\n    BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n    BigInteger.prototype.squareTo = bnpSquareTo;\n    BigInteger.prototype.divRemTo = bnpDivRemTo;\n    BigInteger.prototype.invDigit = bnpInvDigit;\n    BigInteger.prototype.isEven = bnpIsEven;\n    BigInteger.prototype.exp = bnpExp;\n\n    // public\n    BigInteger.prototype.toString = bnToString;\n    BigInteger.prototype.negate = bnNegate;\n    BigInteger.prototype.abs = bnAbs;\n    BigInteger.prototype.compareTo = bnCompareTo;\n    BigInteger.prototype.bitLength = bnBitLength;\n    BigInteger.prototype.mod = bnMod;\n    BigInteger.prototype.modPowInt = bnModPowInt;\n\n    // \"constants\"\n    BigInteger.ZERO = nbv(0);\n    BigInteger.ONE = nbv(1);\n\n    // Copyright (c) 2005-2009  Tom Wu\n    // All Rights Reserved.\n    // See \"LICENSE\" for details.\n\n    // Extended JavaScript BN functions, required for RSA private ops.\n\n    // Version 1.1: new BigInteger(\"0\", 10) returns \"proper\" zero\n    // Version 1.2: square() API, isProbablePrime fix\n\n    // (public)\n    function bnClone() { var r = nbi(); this.copyTo(r); return r; }\n\n    // (public) return value as integer\n    function bnIntValue() {\n      if(this.s < 0) {\n        if(this.t == 1) return this[0]-this.DV;\n        else if(this.t == 0) return -1;\n      }\n      else if(this.t == 1) return this[0];\n      else if(this.t == 0) return 0;\n      // assumes 16 < DB < 32\n      return ((this[1]&((1<<(32-this.DB))-1))<<this.DB)|this[0];\n    }\n\n    // (public) return value as byte\n    function bnByteValue() { return (this.t==0)?this.s:(this[0]<<24)>>24; }\n\n    // (public) return value as short (assumes DB>=16)\n    function bnShortValue() { return (this.t==0)?this.s:(this[0]<<16)>>16; }\n\n    // (protected) return x s.t. r^x < DV\n    function bnpChunkSize(r) { return Math.floor(Math.LN2*this.DB/Math.log(r)); }\n\n    // (public) 0 if this == 0, 1 if this > 0\n    function bnSigNum() {\n      if(this.s < 0) return -1;\n      else if(this.t <= 0 || (this.t == 1 && this[0] <= 0)) return 0;\n      else return 1;\n    }\n\n    // (protected) convert to radix string\n    function bnpToRadix(b) {\n      if(b == null) b = 10;\n      if(this.signum() == 0 || b < 2 || b > 36) return \"0\";\n      var cs = this.chunkSize(b);\n      var a = Math.pow(b,cs);\n      var d = nbv(a), y = nbi(), z = nbi(), r = \"\";\n      this.divRemTo(d,y,z);\n      while(y.signum() > 0) {\n        r = (a+z.intValue()).toString(b).substr(1) + r;\n        y.divRemTo(d,y,z);\n      }\n      return z.intValue().toString(b) + r;\n    }\n\n    // (protected) convert from radix string\n    function bnpFromRadix(s,b) {\n      this.fromInt(0);\n      if(b == null) b = 10;\n      var cs = this.chunkSize(b);\n      var d = Math.pow(b,cs), mi = false, j = 0, w = 0;\n      for(var i = 0; i < s.length; ++i) {\n        var x = intAt(s,i);\n        if(x < 0) {\n          if(s.charAt(i) == \"-\" && this.signum() == 0) mi = true;\n          continue;\n        }\n        w = b*w+x;\n        if(++j >= cs) {\n          this.dMultiply(d);\n          this.dAddOffset(w,0);\n          j = 0;\n          w = 0;\n        }\n      }\n      if(j > 0) {\n        this.dMultiply(Math.pow(b,j));\n        this.dAddOffset(w,0);\n      }\n      if(mi) BigInteger.ZERO.subTo(this,this);\n    }\n\n    // (protected) alternate constructor\n    function bnpFromNumber(a,b,c) {\n      if(\"number\" == typeof b) {\n        // new BigInteger(int,int,RNG)\n        if(a < 2) this.fromInt(1);\n        else {\n          this.fromNumber(a,c);\n          if(!this.testBit(a-1))    // force MSB set\n            this.bitwiseTo(BigInteger.ONE.shiftLeft(a-1),op_or,this);\n          if(this.isEven()) this.dAddOffset(1,0); // force odd\n          while(!this.isProbablePrime(b)) {\n            this.dAddOffset(2,0);\n            if(this.bitLength() > a) this.subTo(BigInteger.ONE.shiftLeft(a-1),this);\n          }\n        }\n      }\n      else {\n        // new BigInteger(int,RNG)\n        var x = new Array(), t = a&7;\n        x.length = (a>>3)+1;\n        b.nextBytes(x);\n        if(t > 0) x[0] &= ((1<<t)-1); else x[0] = 0;\n        this.fromString(x,256);\n      }\n    }\n\n    // (public) convert to bigendian byte array\n    function bnToByteArray() {\n      var i = this.t, r = new Array();\n      r[0] = this.s;\n      var p = this.DB-(i*this.DB)%8, d, k = 0;\n      if(i-- > 0) {\n        if(p < this.DB && (d = this[i]>>p) != (this.s&this.DM)>>p)\n          r[k++] = d|(this.s<<(this.DB-p));\n        while(i >= 0) {\n          if(p < 8) {\n            d = (this[i]&((1<<p)-1))<<(8-p);\n            d |= this[--i]>>(p+=this.DB-8);\n          }\n          else {\n            d = (this[i]>>(p-=8))&0xff;\n            if(p <= 0) { p += this.DB; --i; }\n          }\n          if((d&0x80) != 0) d |= -256;\n          if(k == 0 && (this.s&0x80) != (d&0x80)) ++k;\n          if(k > 0 || d != this.s) r[k++] = d;\n        }\n      }\n      return r;\n    }\n\n    function bnEquals(a) { return(this.compareTo(a)==0); }\n    function bnMin(a) { return(this.compareTo(a)<0)?this:a; }\n    function bnMax(a) { return(this.compareTo(a)>0)?this:a; }\n\n    // (protected) r = this op a (bitwise)\n    function bnpBitwiseTo(a,op,r) {\n      var i, f, m = Math.min(a.t,this.t);\n      for(i = 0; i < m; ++i) r[i] = op(this[i],a[i]);\n      if(a.t < this.t) {\n        f = a.s&this.DM;\n        for(i = m; i < this.t; ++i) r[i] = op(this[i],f);\n        r.t = this.t;\n      }\n      else {\n        f = this.s&this.DM;\n        for(i = m; i < a.t; ++i) r[i] = op(f,a[i]);\n        r.t = a.t;\n      }\n      r.s = op(this.s,a.s);\n      r.clamp();\n    }\n\n    // (public) this & a\n    function op_and(x,y) { return x&y; }\n    function bnAnd(a) { var r = nbi(); this.bitwiseTo(a,op_and,r); return r; }\n\n    // (public) this | a\n    function op_or(x,y) { return x|y; }\n    function bnOr(a) { var r = nbi(); this.bitwiseTo(a,op_or,r); return r; }\n\n    // (public) this ^ a\n    function op_xor(x,y) { return x^y; }\n    function bnXor(a) { var r = nbi(); this.bitwiseTo(a,op_xor,r); return r; }\n\n    // (public) this & ~a\n    function op_andnot(x,y) { return x&~y; }\n    function bnAndNot(a) { var r = nbi(); this.bitwiseTo(a,op_andnot,r); return r; }\n\n    // (public) ~this\n    function bnNot() {\n      var r = nbi();\n      for(var i = 0; i < this.t; ++i) r[i] = this.DM&~this[i];\n      r.t = this.t;\n      r.s = ~this.s;\n      return r;\n    }\n\n    // (public) this << n\n    function bnShiftLeft(n) {\n      var r = nbi();\n      if(n < 0) this.rShiftTo(-n,r); else this.lShiftTo(n,r);\n      return r;\n    }\n\n    // (public) this >> n\n    function bnShiftRight(n) {\n      var r = nbi();\n      if(n < 0) this.lShiftTo(-n,r); else this.rShiftTo(n,r);\n      return r;\n    }\n\n    // return index of lowest 1-bit in x, x < 2^31\n    function lbit(x) {\n      if(x == 0) return -1;\n      var r = 0;\n      if((x&0xffff) == 0) { x >>= 16; r += 16; }\n      if((x&0xff) == 0) { x >>= 8; r += 8; }\n      if((x&0xf) == 0) { x >>= 4; r += 4; }\n      if((x&3) == 0) { x >>= 2; r += 2; }\n      if((x&1) == 0) ++r;\n      return r;\n    }\n\n    // (public) returns index of lowest 1-bit (or -1 if none)\n    function bnGetLowestSetBit() {\n      for(var i = 0; i < this.t; ++i)\n        if(this[i] != 0) return i*this.DB+lbit(this[i]);\n      if(this.s < 0) return this.t*this.DB;\n      return -1;\n    }\n\n    // return number of 1 bits in x\n    function cbit(x) {\n      var r = 0;\n      while(x != 0) { x &= x-1; ++r; }\n      return r;\n    }\n\n    // (public) return number of set bits\n    function bnBitCount() {\n      var r = 0, x = this.s&this.DM;\n      for(var i = 0; i < this.t; ++i) r += cbit(this[i]^x);\n      return r;\n    }\n\n    // (public) true iff nth bit is set\n    function bnTestBit(n) {\n      var j = Math.floor(n/this.DB);\n      if(j >= this.t) return(this.s!=0);\n      return((this[j]&(1<<(n%this.DB)))!=0);\n    }\n\n    // (protected) this op (1<<n)\n    function bnpChangeBit(n,op) {\n      var r = BigInteger.ONE.shiftLeft(n);\n      this.bitwiseTo(r,op,r);\n      return r;\n    }\n\n    // (public) this | (1<<n)\n    function bnSetBit(n) { return this.changeBit(n,op_or); }\n\n    // (public) this & ~(1<<n)\n    function bnClearBit(n) { return this.changeBit(n,op_andnot); }\n\n    // (public) this ^ (1<<n)\n    function bnFlipBit(n) { return this.changeBit(n,op_xor); }\n\n    // (protected) r = this + a\n    function bnpAddTo(a,r) {\n      var i = 0, c = 0, m = Math.min(a.t,this.t);\n      while(i < m) {\n        c += this[i]+a[i];\n        r[i++] = c&this.DM;\n        c >>= this.DB;\n      }\n      if(a.t < this.t) {\n        c += a.s;\n        while(i < this.t) {\n          c += this[i];\n          r[i++] = c&this.DM;\n          c >>= this.DB;\n        }\n        c += this.s;\n      }\n      else {\n        c += this.s;\n        while(i < a.t) {\n          c += a[i];\n          r[i++] = c&this.DM;\n          c >>= this.DB;\n        }\n        c += a.s;\n      }\n      r.s = (c<0)?-1:0;\n      if(c > 0) r[i++] = c;\n      else if(c < -1) r[i++] = this.DV+c;\n      r.t = i;\n      r.clamp();\n    }\n\n    // (public) this + a\n    function bnAdd(a) { var r = nbi(); this.addTo(a,r); return r; }\n\n    // (public) this - a\n    function bnSubtract(a) { var r = nbi(); this.subTo(a,r); return r; }\n\n    // (public) this * a\n    function bnMultiply(a) { var r = nbi(); this.multiplyTo(a,r); return r; }\n\n    // (public) this^2\n    function bnSquare() { var r = nbi(); this.squareTo(r); return r; }\n\n    // (public) this / a\n    function bnDivide(a) { var r = nbi(); this.divRemTo(a,r,null); return r; }\n\n    // (public) this % a\n    function bnRemainder(a) { var r = nbi(); this.divRemTo(a,null,r); return r; }\n\n    // (public) [this/a,this%a]\n    function bnDivideAndRemainder(a) {\n      var q = nbi(), r = nbi();\n      this.divRemTo(a,q,r);\n      return new Array(q,r);\n    }\n\n    // (protected) this *= n, this >= 0, 1 < n < DV\n    function bnpDMultiply(n) {\n      this[this.t] = this.am(0,n-1,this,0,0,this.t);\n      ++this.t;\n      this.clamp();\n    }\n\n    // (protected) this += n << w words, this >= 0\n    function bnpDAddOffset(n,w) {\n      if(n == 0) return;\n      while(this.t <= w) this[this.t++] = 0;\n      this[w] += n;\n      while(this[w] >= this.DV) {\n        this[w] -= this.DV;\n        if(++w >= this.t) this[this.t++] = 0;\n        ++this[w];\n      }\n    }\n\n    // A \"null\" reducer\n    function NullExp() {}\n    function nNop(x) { return x; }\n    function nMulTo(x,y,r) { x.multiplyTo(y,r); }\n    function nSqrTo(x,r) { x.squareTo(r); }\n\n    NullExp.prototype.convert = nNop;\n    NullExp.prototype.revert = nNop;\n    NullExp.prototype.mulTo = nMulTo;\n    NullExp.prototype.sqrTo = nSqrTo;\n\n    // (public) this^e\n    function bnPow(e) { return this.exp(e,new NullExp()); }\n\n    // (protected) r = lower n words of \"this * a\", a.t <= n\n    // \"this\" should be the larger one if appropriate.\n    function bnpMultiplyLowerTo(a,n,r) {\n      var i = Math.min(this.t+a.t,n);\n      r.s = 0; // assumes a,this >= 0\n      r.t = i;\n      while(i > 0) r[--i] = 0;\n      var j;\n      for(j = r.t-this.t; i < j; ++i) r[i+this.t] = this.am(0,a[i],r,i,0,this.t);\n      for(j = Math.min(a.t,n); i < j; ++i) this.am(0,a[i],r,i,0,n-i);\n      r.clamp();\n    }\n\n    // (protected) r = \"this * a\" without lower n words, n > 0\n    // \"this\" should be the larger one if appropriate.\n    function bnpMultiplyUpperTo(a,n,r) {\n      --n;\n      var i = r.t = this.t+a.t-n;\n      r.s = 0; // assumes a,this >= 0\n      while(--i >= 0) r[i] = 0;\n      for(i = Math.max(n-this.t,0); i < a.t; ++i)\n        r[this.t+i-n] = this.am(n-i,a[i],r,0,0,this.t+i-n);\n      r.clamp();\n      r.drShiftTo(1,r);\n    }\n\n    // Barrett modular reduction\n    function Barrett(m) {\n      // setup Barrett\n      this.r2 = nbi();\n      this.q3 = nbi();\n      BigInteger.ONE.dlShiftTo(2*m.t,this.r2);\n      this.mu = this.r2.divide(m);\n      this.m = m;\n    }\n\n    function barrettConvert(x) {\n      if(x.s < 0 || x.t > 2*this.m.t) return x.mod(this.m);\n      else if(x.compareTo(this.m) < 0) return x;\n      else { var r = nbi(); x.copyTo(r); this.reduce(r); return r; }\n    }\n\n    function barrettRevert(x) { return x; }\n\n    // x = x mod m (HAC 14.42)\n    function barrettReduce(x) {\n      x.drShiftTo(this.m.t-1,this.r2);\n      if(x.t > this.m.t+1) { x.t = this.m.t+1; x.clamp(); }\n      this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3);\n      this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);\n      while(x.compareTo(this.r2) < 0) x.dAddOffset(1,this.m.t+1);\n      x.subTo(this.r2,x);\n      while(x.compareTo(this.m) >= 0) x.subTo(this.m,x);\n    }\n\n    // r = x^2 mod m; x != r\n    function barrettSqrTo(x,r) { x.squareTo(r); this.reduce(r); }\n\n    // r = x*y mod m; x,y != r\n    function barrettMulTo(x,y,r) { x.multiplyTo(y,r); this.reduce(r); }\n\n    Barrett.prototype.convert = barrettConvert;\n    Barrett.prototype.revert = barrettRevert;\n    Barrett.prototype.reduce = barrettReduce;\n    Barrett.prototype.mulTo = barrettMulTo;\n    Barrett.prototype.sqrTo = barrettSqrTo;\n\n    // (public) this^e % m (HAC 14.85)\n    function bnModPow(e,m) {\n      var i = e.bitLength(), k, r = nbv(1), z;\n      if(i <= 0) return r;\n      else if(i < 18) k = 1;\n      else if(i < 48) k = 3;\n      else if(i < 144) k = 4;\n      else if(i < 768) k = 5;\n      else k = 6;\n      if(i < 8)\n        z = new Classic(m);\n      else if(m.isEven())\n        z = new Barrett(m);\n      else\n        z = new Montgomery(m);\n\n      // precomputation\n      var g = new Array(), n = 3, k1 = k-1, km = (1<<k)-1;\n      g[1] = z.convert(this);\n      if(k > 1) {\n        var g2 = nbi();\n        z.sqrTo(g[1],g2);\n        while(n <= km) {\n          g[n] = nbi();\n          z.mulTo(g2,g[n-2],g[n]);\n          n += 2;\n        }\n      }\n\n      var j = e.t-1, w, is1 = true, r2 = nbi(), t;\n      i = nbits(e[j])-1;\n      while(j >= 0) {\n        if(i >= k1) w = (e[j]>>(i-k1))&km;\n        else {\n          w = (e[j]&((1<<(i+1))-1))<<(k1-i);\n          if(j > 0) w |= e[j-1]>>(this.DB+i-k1);\n        }\n\n        n = k;\n        while((w&1) == 0) { w >>= 1; --n; }\n        if((i -= n) < 0) { i += this.DB; --j; }\n        if(is1) {    // ret == 1, don't bother squaring or multiplying it\n          g[w].copyTo(r);\n          is1 = false;\n        }\n        else {\n          while(n > 1) { z.sqrTo(r,r2); z.sqrTo(r2,r); n -= 2; }\n          if(n > 0) z.sqrTo(r,r2); else { t = r; r = r2; r2 = t; }\n          z.mulTo(r2,g[w],r);\n        }\n\n        while(j >= 0 && (e[j]&(1<<i)) == 0) {\n          z.sqrTo(r,r2); t = r; r = r2; r2 = t;\n          if(--i < 0) { i = this.DB-1; --j; }\n        }\n      }\n      return z.revert(r);\n    }\n\n    // (public) gcd(this,a) (HAC 14.54)\n    function bnGCD(a) {\n      var x = (this.s<0)?this.negate():this.clone();\n      var y = (a.s<0)?a.negate():a.clone();\n      if(x.compareTo(y) < 0) { var t = x; x = y; y = t; }\n      var i = x.getLowestSetBit(), g = y.getLowestSetBit();\n      if(g < 0) return x;\n      if(i < g) g = i;\n      if(g > 0) {\n        x.rShiftTo(g,x);\n        y.rShiftTo(g,y);\n      }\n      while(x.signum() > 0) {\n        if((i = x.getLowestSetBit()) > 0) x.rShiftTo(i,x);\n        if((i = y.getLowestSetBit()) > 0) y.rShiftTo(i,y);\n        if(x.compareTo(y) >= 0) {\n          x.subTo(y,x);\n          x.rShiftTo(1,x);\n        }\n        else {\n          y.subTo(x,y);\n          y.rShiftTo(1,y);\n        }\n      }\n      if(g > 0) y.lShiftTo(g,y);\n      return y;\n    }\n\n    // (protected) this % n, n < 2^26\n    function bnpModInt(n) {\n      if(n <= 0) return 0;\n      var d = this.DV%n, r = (this.s<0)?n-1:0;\n      if(this.t > 0)\n        if(d == 0) r = this[0]%n;\n        else for(var i = this.t-1; i >= 0; --i) r = (d*r+this[i])%n;\n      return r;\n    }\n\n    // (public) 1/this % m (HAC 14.61)\n    function bnModInverse(m) {\n      var ac = m.isEven();\n      if((this.isEven() && ac) || m.signum() == 0) return BigInteger.ZERO;\n      var u = m.clone(), v = this.clone();\n      var a = nbv(1), b = nbv(0), c = nbv(0), d = nbv(1);\n      while(u.signum() != 0) {\n        while(u.isEven()) {\n          u.rShiftTo(1,u);\n          if(ac) {\n            if(!a.isEven() || !b.isEven()) { a.addTo(this,a); b.subTo(m,b); }\n            a.rShiftTo(1,a);\n          }\n          else if(!b.isEven()) b.subTo(m,b);\n          b.rShiftTo(1,b);\n        }\n        while(v.isEven()) {\n          v.rShiftTo(1,v);\n          if(ac) {\n            if(!c.isEven() || !d.isEven()) { c.addTo(this,c); d.subTo(m,d); }\n            c.rShiftTo(1,c);\n          }\n          else if(!d.isEven()) d.subTo(m,d);\n          d.rShiftTo(1,d);\n        }\n        if(u.compareTo(v) >= 0) {\n          u.subTo(v,u);\n          if(ac) a.subTo(c,a);\n          b.subTo(d,b);\n        }\n        else {\n          v.subTo(u,v);\n          if(ac) c.subTo(a,c);\n          d.subTo(b,d);\n        }\n      }\n      if(v.compareTo(BigInteger.ONE) != 0) return BigInteger.ZERO;\n      if(d.compareTo(m) >= 0) return d.subtract(m);\n      if(d.signum() < 0) d.addTo(m,d); else return d;\n      if(d.signum() < 0) return d.add(m); else return d;\n    }\n\n    var lowprimes = [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997];\n    var lplim = (1<<26)/lowprimes[lowprimes.length-1];\n\n    // (public) test primality with certainty >= 1-.5^t\n    function bnIsProbablePrime(t) {\n      var i, x = this.abs();\n      if(x.t == 1 && x[0] <= lowprimes[lowprimes.length-1]) {\n        for(i = 0; i < lowprimes.length; ++i)\n          if(x[0] == lowprimes[i]) return true;\n        return false;\n      }\n      if(x.isEven()) return false;\n      i = 1;\n      while(i < lowprimes.length) {\n        var m = lowprimes[i], j = i+1;\n        while(j < lowprimes.length && m < lplim) m *= lowprimes[j++];\n        m = x.modInt(m);\n        while(i < j) if(m%lowprimes[i++] == 0) return false;\n      }\n      return x.millerRabin(t);\n    }\n\n    // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n    function bnpMillerRabin(t) {\n      var n1 = this.subtract(BigInteger.ONE);\n      var k = n1.getLowestSetBit();\n      if(k <= 0) return false;\n      var r = n1.shiftRight(k);\n      t = (t+1)>>1;\n      if(t > lowprimes.length) t = lowprimes.length;\n      var a = nbi();\n      for(var i = 0; i < t; ++i) {\n        //Pick bases at random, instead of starting at 2\n        a.fromInt(lowprimes[Math.floor(Math.random()*lowprimes.length)]);\n        var y = a.modPow(r,this);\n        if(y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n          var j = 1;\n          while(j++ < k && y.compareTo(n1) != 0) {\n            y = y.modPowInt(2,this);\n            if(y.compareTo(BigInteger.ONE) == 0) return false;\n          }\n          if(y.compareTo(n1) != 0) return false;\n        }\n      }\n      return true;\n    }\n\n    // protected\n    BigInteger.prototype.chunkSize = bnpChunkSize;\n    BigInteger.prototype.toRadix = bnpToRadix;\n    BigInteger.prototype.fromRadix = bnpFromRadix;\n    BigInteger.prototype.fromNumber = bnpFromNumber;\n    BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n    BigInteger.prototype.changeBit = bnpChangeBit;\n    BigInteger.prototype.addTo = bnpAddTo;\n    BigInteger.prototype.dMultiply = bnpDMultiply;\n    BigInteger.prototype.dAddOffset = bnpDAddOffset;\n    BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n    BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n    BigInteger.prototype.modInt = bnpModInt;\n    BigInteger.prototype.millerRabin = bnpMillerRabin;\n\n    // public\n    BigInteger.prototype.clone = bnClone;\n    BigInteger.prototype.intValue = bnIntValue;\n    BigInteger.prototype.byteValue = bnByteValue;\n    BigInteger.prototype.shortValue = bnShortValue;\n    BigInteger.prototype.signum = bnSigNum;\n    BigInteger.prototype.toByteArray = bnToByteArray;\n    BigInteger.prototype.equals = bnEquals;\n    BigInteger.prototype.min = bnMin;\n    BigInteger.prototype.max = bnMax;\n    BigInteger.prototype.and = bnAnd;\n    BigInteger.prototype.or = bnOr;\n    BigInteger.prototype.xor = bnXor;\n    BigInteger.prototype.andNot = bnAndNot;\n    BigInteger.prototype.not = bnNot;\n    BigInteger.prototype.shiftLeft = bnShiftLeft;\n    BigInteger.prototype.shiftRight = bnShiftRight;\n    BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n    BigInteger.prototype.bitCount = bnBitCount;\n    BigInteger.prototype.testBit = bnTestBit;\n    BigInteger.prototype.setBit = bnSetBit;\n    BigInteger.prototype.clearBit = bnClearBit;\n    BigInteger.prototype.flipBit = bnFlipBit;\n    BigInteger.prototype.add = bnAdd;\n    BigInteger.prototype.subtract = bnSubtract;\n    BigInteger.prototype.multiply = bnMultiply;\n    BigInteger.prototype.divide = bnDivide;\n    BigInteger.prototype.remainder = bnRemainder;\n    BigInteger.prototype.divideAndRemainder = bnDivideAndRemainder;\n    BigInteger.prototype.modPow = bnModPow;\n    BigInteger.prototype.modInverse = bnModInverse;\n    BigInteger.prototype.pow = bnPow;\n    BigInteger.prototype.gcd = bnGCD;\n    BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n\n    // JSBN-specific extension\n    BigInteger.prototype.square = bnSquare;\n\n    // Expose the Barrett function\n    BigInteger.prototype.Barrett = Barrett\n\n    // BigInteger interfaces not implemented in jsbn:\n\n    // BigInteger(int signum, byte[] magnitude)\n    // double doubleValue()\n    // float floatValue()\n    // int hashCode()\n    // long longValue()\n    // static BigInteger valueOf(long val)\n\n    // Random number generator - requires a PRNG backend, e.g. prng4.js\n\n    // For best results, put code like\n    // <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>\n    // in your main HTML document.\n\n    var rng_state;\n    var rng_pool;\n    var rng_pptr;\n\n    // Mix in a 32-bit integer into the pool\n    function rng_seed_int(x) {\n      rng_pool[rng_pptr++] ^= x & 255;\n      rng_pool[rng_pptr++] ^= (x >> 8) & 255;\n      rng_pool[rng_pptr++] ^= (x >> 16) & 255;\n      rng_pool[rng_pptr++] ^= (x >> 24) & 255;\n      if(rng_pptr >= rng_psize) rng_pptr -= rng_psize;\n    }\n\n    // Mix in the current time (w/milliseconds) into the pool\n    function rng_seed_time() {\n      rng_seed_int(new Date().getTime());\n    }\n\n    // Initialize the pool with junk if needed.\n    if(rng_pool == null) {\n      rng_pool = new Array();\n      rng_pptr = 0;\n      var t;\n      if(typeof window !== \"undefined\" && window.crypto) {\n        if (window.crypto.getRandomValues) {\n          // Use webcrypto if available\n          var ua = new Uint8Array(32);\n          window.crypto.getRandomValues(ua);\n          for(t = 0; t < 32; ++t)\n            rng_pool[rng_pptr++] = ua[t];\n        }\n        else if(navigator.appName == \"Netscape\" && navigator.appVersion < \"5\") {\n          // Extract entropy (256 bits) from NS4 RNG if available\n          var z = window.crypto.random(32);\n          for(t = 0; t < z.length; ++t)\n            rng_pool[rng_pptr++] = z.charCodeAt(t) & 255;\n        }\n      }\n      while(rng_pptr < rng_psize) {  // extract some randomness from Math.random()\n        t = Math.floor(65536 * Math.random());\n        rng_pool[rng_pptr++] = t >>> 8;\n        rng_pool[rng_pptr++] = t & 255;\n      }\n      rng_pptr = 0;\n      rng_seed_time();\n      //rng_seed_int(window.screenX);\n      //rng_seed_int(window.screenY);\n    }\n\n    function rng_get_byte() {\n      if(rng_state == null) {\n        rng_seed_time();\n        rng_state = prng_newstate();\n        rng_state.init(rng_pool);\n        for(rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr)\n          rng_pool[rng_pptr] = 0;\n        rng_pptr = 0;\n        //rng_pool = null;\n      }\n      // TODO: allow reseeding after first request\n      return rng_state.next();\n    }\n\n    function rng_get_bytes(ba) {\n      var i;\n      for(i = 0; i < ba.length; ++i) ba[i] = rng_get_byte();\n    }\n\n    function SecureRandom() {}\n\n    SecureRandom.prototype.nextBytes = rng_get_bytes;\n\n    // prng4.js - uses Arcfour as a PRNG\n\n    function Arcfour() {\n      this.i = 0;\n      this.j = 0;\n      this.S = new Array();\n    }\n\n    // Initialize arcfour context from key, an array of ints, each from [0..255]\n    function ARC4init(key) {\n      var i, j, t;\n      for(i = 0; i < 256; ++i)\n        this.S[i] = i;\n      j = 0;\n      for(i = 0; i < 256; ++i) {\n        j = (j + this.S[i] + key[i % key.length]) & 255;\n        t = this.S[i];\n        this.S[i] = this.S[j];\n        this.S[j] = t;\n      }\n      this.i = 0;\n      this.j = 0;\n    }\n\n    function ARC4next() {\n      var t;\n      this.i = (this.i + 1) & 255;\n      this.j = (this.j + this.S[this.i]) & 255;\n      t = this.S[this.i];\n      this.S[this.i] = this.S[this.j];\n      this.S[this.j] = t;\n      return this.S[(t + this.S[this.i]) & 255];\n    }\n\n    Arcfour.prototype.init = ARC4init;\n    Arcfour.prototype.next = ARC4next;\n\n    // Plug in your RNG constructor here\n    function prng_newstate() {\n      return new Arcfour();\n    }\n\n    // Pool size must be a multiple of 4 and greater than 32.\n    // An array of bytes the size of the pool will be passed to init()\n    var rng_psize = 256;\n\n    if (true) {\n        exports = module.exports = {\n            default: BigInteger,\n            BigInteger: BigInteger,\n            SecureRandom: SecureRandom,\n        };\n    } else {}\n\n}).call(this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/jsbn/index.js?");

/***/ }),

/***/ "./node_modules/json-bigint/index.js":
/*!*******************************************!*\
  !*** ./node_modules/json-bigint/index.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var json_stringify = (__webpack_require__(/*! ./lib/stringify.js */ \"./node_modules/json-bigint/lib/stringify.js\").stringify);\nvar json_parse     = __webpack_require__(/*! ./lib/parse.js */ \"./node_modules/json-bigint/lib/parse.js\");\n\nmodule.exports = function(options) {\n    return  {\n        parse: json_parse(options),\n        stringify: json_stringify\n    }\n};\n//create the default method members with no options applied for backwards compatibility\nmodule.exports.parse = json_parse();\nmodule.exports.stringify = json_stringify;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/json-bigint/index.js?");

/***/ }),

/***/ "./node_modules/json-bigint/lib/parse.js":
/*!***********************************************!*\
  !*** ./node_modules/json-bigint/lib/parse.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var BigNumber = null;\n\n// regexpxs extracted from\n// (c) BSD-3-Clause\n// https://github.com/fastify/secure-json-parse/graphs/contributors and https://github.com/hapijs/bourne/graphs/contributors\n\nconst suspectProtoRx = /(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])/;\nconst suspectConstructorRx = /(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)/;\n\n/*\n    json_parse.js\n    2012-06-20\n\n    Public Domain.\n\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n    This file creates a json_parse function.\n    During create you can (optionally) specify some behavioural switches\n\n        require('json-bigint')(options)\n\n            The optional options parameter holds switches that drive certain\n            aspects of the parsing process:\n            * options.strict = true will warn about duplicate-key usage in the json.\n              The default (strict = false) will silently ignore those and overwrite\n              values for keys that are in duplicate use.\n\n    The resulting function follows this signature:\n        json_parse(text, reviver)\n            This method parses a JSON text to produce an object or array.\n            It can throw a SyntaxError exception.\n\n            The optional reviver parameter is a function that can filter and\n            transform the results. It receives each of the keys and values,\n            and its return value is used instead of the original value.\n            If it returns what it received, then the structure is not modified.\n            If it returns undefined then the member is deleted.\n\n            Example:\n\n            // Parse the text. Values that look like ISO date strings will\n            // be converted to Date objects.\n\n            myData = json_parse(text, function (key, value) {\n                var a;\n                if (typeof value === 'string') {\n                    a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n                    if (a) {\n                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n                            +a[5], +a[6]));\n                    }\n                }\n                return value;\n            });\n\n    This is a reference implementation. You are free to copy, modify, or\n    redistribute.\n\n    This code should be minified before deployment.\n    See http://javascript.crockford.com/jsmin.html\n\n    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n    NOT CONTROL.\n*/\n\n/*members \"\", \"\\\"\", \"\\/\", \"\\\\\", at, b, call, charAt, f, fromCharCode,\n    hasOwnProperty, message, n, name, prototype, push, r, t, text\n*/\n\nvar json_parse = function (options) {\n  'use strict';\n\n  // This is a function that can parse a JSON text, producing a JavaScript\n  // data structure. It is a simple, recursive descent parser. It does not use\n  // eval or regular expressions, so it can be used as a model for implementing\n  // a JSON parser in other languages.\n\n  // We are defining the function inside of another function to avoid creating\n  // global variables.\n\n  // Default options one can override by passing options to the parse()\n  var _options = {\n    strict: false, // not being strict means do not generate syntax errors for \"duplicate key\"\n    storeAsString: false, // toggles whether the values should be stored as BigNumber (default) or a string\n    alwaysParseAsBig: false, // toggles whether all numbers should be Big\n    useNativeBigInt: false, // toggles whether to use native BigInt instead of bignumber.js\n    protoAction: 'error',\n    constructorAction: 'error',\n  };\n\n  // If there are options, then use them to override the default _options\n  if (options !== undefined && options !== null) {\n    if (options.strict === true) {\n      _options.strict = true;\n    }\n    if (options.storeAsString === true) {\n      _options.storeAsString = true;\n    }\n    _options.alwaysParseAsBig =\n      options.alwaysParseAsBig === true ? options.alwaysParseAsBig : false;\n    _options.useNativeBigInt =\n      options.useNativeBigInt === true ? options.useNativeBigInt : false;\n\n    if (typeof options.constructorAction !== 'undefined') {\n      if (\n        options.constructorAction === 'error' ||\n        options.constructorAction === 'ignore' ||\n        options.constructorAction === 'preserve'\n      ) {\n        _options.constructorAction = options.constructorAction;\n      } else {\n        throw new Error(\n          `Incorrect value for constructorAction option, must be \"error\", \"ignore\" or undefined but passed ${options.constructorAction}`\n        );\n      }\n    }\n\n    if (typeof options.protoAction !== 'undefined') {\n      if (\n        options.protoAction === 'error' ||\n        options.protoAction === 'ignore' ||\n        options.protoAction === 'preserve'\n      ) {\n        _options.protoAction = options.protoAction;\n      } else {\n        throw new Error(\n          `Incorrect value for protoAction option, must be \"error\", \"ignore\" or undefined but passed ${options.protoAction}`\n        );\n      }\n    }\n  }\n\n  var at, // The index of the current character\n    ch, // The current character\n    escapee = {\n      '\"': '\"',\n      '\\\\': '\\\\',\n      '/': '/',\n      b: '\\b',\n      f: '\\f',\n      n: '\\n',\n      r: '\\r',\n      t: '\\t',\n    },\n    text,\n    error = function (m) {\n      // Call error when something is wrong.\n\n      throw {\n        name: 'SyntaxError',\n        message: m,\n        at: at,\n        text: text,\n      };\n    },\n    next = function (c) {\n      // If a c parameter is provided, verify that it matches the current character.\n\n      if (c && c !== ch) {\n        error(\"Expected '\" + c + \"' instead of '\" + ch + \"'\");\n      }\n\n      // Get the next character. When there are no more characters,\n      // return the empty string.\n\n      ch = text.charAt(at);\n      at += 1;\n      return ch;\n    },\n    number = function () {\n      // Parse a number value.\n\n      var number,\n        string = '';\n\n      if (ch === '-') {\n        string = '-';\n        next('-');\n      }\n      while (ch >= '0' && ch <= '9') {\n        string += ch;\n        next();\n      }\n      if (ch === '.') {\n        string += '.';\n        while (next() && ch >= '0' && ch <= '9') {\n          string += ch;\n        }\n      }\n      if (ch === 'e' || ch === 'E') {\n        string += ch;\n        next();\n        if (ch === '-' || ch === '+') {\n          string += ch;\n          next();\n        }\n        while (ch >= '0' && ch <= '9') {\n          string += ch;\n          next();\n        }\n      }\n      number = +string;\n      if (!isFinite(number)) {\n        error('Bad number');\n      } else {\n        if (BigNumber == null) BigNumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n        //if (number > 9007199254740992 || number < -9007199254740992)\n        // Bignumber has stricter check: everything with length > 15 digits disallowed\n        if (string.length > 15)\n          return _options.storeAsString\n            ? string\n            : _options.useNativeBigInt\n            ? BigInt(string)\n            : new BigNumber(string);\n        else\n          return !_options.alwaysParseAsBig\n            ? number\n            : _options.useNativeBigInt\n            ? BigInt(number)\n            : new BigNumber(number);\n      }\n    },\n    string = function () {\n      // Parse a string value.\n\n      var hex,\n        i,\n        string = '',\n        uffff;\n\n      // When parsing for string values, we must look for \" and \\ characters.\n\n      if (ch === '\"') {\n        var startAt = at;\n        while (next()) {\n          if (ch === '\"') {\n            if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n            next();\n            return string;\n          }\n          if (ch === '\\\\') {\n            if (at - 1 > startAt) string += text.substring(startAt, at - 1);\n            next();\n            if (ch === 'u') {\n              uffff = 0;\n              for (i = 0; i < 4; i += 1) {\n                hex = parseInt(next(), 16);\n                if (!isFinite(hex)) {\n                  break;\n                }\n                uffff = uffff * 16 + hex;\n              }\n              string += String.fromCharCode(uffff);\n            } else if (typeof escapee[ch] === 'string') {\n              string += escapee[ch];\n            } else {\n              break;\n            }\n            startAt = at;\n          }\n        }\n      }\n      error('Bad string');\n    },\n    white = function () {\n      // Skip whitespace.\n\n      while (ch && ch <= ' ') {\n        next();\n      }\n    },\n    word = function () {\n      // true, false, or null.\n\n      switch (ch) {\n        case 't':\n          next('t');\n          next('r');\n          next('u');\n          next('e');\n          return true;\n        case 'f':\n          next('f');\n          next('a');\n          next('l');\n          next('s');\n          next('e');\n          return false;\n        case 'n':\n          next('n');\n          next('u');\n          next('l');\n          next('l');\n          return null;\n      }\n      error(\"Unexpected '\" + ch + \"'\");\n    },\n    value, // Place holder for the value function.\n    array = function () {\n      // Parse an array value.\n\n      var array = [];\n\n      if (ch === '[') {\n        next('[');\n        white();\n        if (ch === ']') {\n          next(']');\n          return array; // empty array\n        }\n        while (ch) {\n          array.push(value());\n          white();\n          if (ch === ']') {\n            next(']');\n            return array;\n          }\n          next(',');\n          white();\n        }\n      }\n      error('Bad array');\n    },\n    object = function () {\n      // Parse an object value.\n\n      var key,\n        object = Object.create(null);\n\n      if (ch === '{') {\n        next('{');\n        white();\n        if (ch === '}') {\n          next('}');\n          return object; // empty object\n        }\n        while (ch) {\n          key = string();\n          white();\n          next(':');\n          if (\n            _options.strict === true &&\n            Object.hasOwnProperty.call(object, key)\n          ) {\n            error('Duplicate key \"' + key + '\"');\n          }\n\n          if (suspectProtoRx.test(key) === true) {\n            if (_options.protoAction === 'error') {\n              error('Object contains forbidden prototype property');\n            } else if (_options.protoAction === 'ignore') {\n              value();\n            } else {\n              object[key] = value();\n            }\n          } else if (suspectConstructorRx.test(key) === true) {\n            if (_options.constructorAction === 'error') {\n              error('Object contains forbidden constructor property');\n            } else if (_options.constructorAction === 'ignore') {\n              value();\n            } else {\n              object[key] = value();\n            }\n          } else {\n            object[key] = value();\n          }\n\n          white();\n          if (ch === '}') {\n            next('}');\n            return object;\n          }\n          next(',');\n          white();\n        }\n      }\n      error('Bad object');\n    };\n\n  value = function () {\n    // Parse a JSON value. It could be an object, an array, a string, a number,\n    // or a word.\n\n    white();\n    switch (ch) {\n      case '{':\n        return object();\n      case '[':\n        return array();\n      case '\"':\n        return string();\n      case '-':\n        return number();\n      default:\n        return ch >= '0' && ch <= '9' ? number() : word();\n    }\n  };\n\n  // Return the json_parse function. It will have access to all of the above\n  // functions and variables.\n\n  return function (source, reviver) {\n    var result;\n\n    text = source + '';\n    at = 0;\n    ch = ' ';\n    result = value();\n    white();\n    if (ch) {\n      error('Syntax error');\n    }\n\n    // If there is a reviver function, we recursively walk the new structure,\n    // passing each name/value pair to the reviver function for possible\n    // transformation, starting with a temporary root object that holds the result\n    // in an empty key. If there is not a reviver function, we simply return the\n    // result.\n\n    return typeof reviver === 'function'\n      ? (function walk(holder, key) {\n          var k,\n            v,\n            value = holder[key];\n          if (value && typeof value === 'object') {\n            Object.keys(value).forEach(function (k) {\n              v = walk(value, k);\n              if (v !== undefined) {\n                value[k] = v;\n              } else {\n                delete value[k];\n              }\n            });\n          }\n          return reviver.call(holder, key, value);\n        })({ '': result }, '')\n      : result;\n  };\n};\n\nmodule.exports = json_parse;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/json-bigint/lib/parse.js?");

/***/ }),

/***/ "./node_modules/json-bigint/lib/stringify.js":
/*!***************************************************!*\
  !*** ./node_modules/json-bigint/lib/stringify.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var BigNumber = __webpack_require__(/*! bignumber.js */ \"./node_modules/bignumber.js/bignumber.js\");\n\n/*\n    json2.js\n    2013-05-26\n\n    Public Domain.\n\n    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.\n\n    See http://www.JSON.org/js.html\n\n\n    This code should be minified before deployment.\n    See http://javascript.crockford.com/jsmin.html\n\n    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO\n    NOT CONTROL.\n\n\n    This file creates a global JSON object containing two methods: stringify\n    and parse.\n\n        JSON.stringify(value, replacer, space)\n            value       any JavaScript value, usually an object or array.\n\n            replacer    an optional parameter that determines how object\n                        values are stringified for objects. It can be a\n                        function or an array of strings.\n\n            space       an optional parameter that specifies the indentation\n                        of nested structures. If it is omitted, the text will\n                        be packed without extra whitespace. If it is a number,\n                        it will specify the number of spaces to indent at each\n                        level. If it is a string (such as '\\t' or '&nbsp;'),\n                        it contains the characters used to indent at each level.\n\n            This method produces a JSON text from a JavaScript value.\n\n            When an object value is found, if the object contains a toJSON\n            method, its toJSON method will be called and the result will be\n            stringified. A toJSON method does not serialize: it returns the\n            value represented by the name/value pair that should be serialized,\n            or undefined if nothing should be serialized. The toJSON method\n            will be passed the key associated with the value, and this will be\n            bound to the value\n\n            For example, this would serialize Dates as ISO strings.\n\n                Date.prototype.toJSON = function (key) {\n                    function f(n) {\n                        // Format integers to have at least two digits.\n                        return n < 10 ? '0' + n : n;\n                    }\n\n                    return this.getUTCFullYear()   + '-' +\n                         f(this.getUTCMonth() + 1) + '-' +\n                         f(this.getUTCDate())      + 'T' +\n                         f(this.getUTCHours())     + ':' +\n                         f(this.getUTCMinutes())   + ':' +\n                         f(this.getUTCSeconds())   + 'Z';\n                };\n\n            You can provide an optional replacer method. It will be passed the\n            key and value of each member, with this bound to the containing\n            object. The value that is returned from your method will be\n            serialized. If your method returns undefined, then the member will\n            be excluded from the serialization.\n\n            If the replacer parameter is an array of strings, then it will be\n            used to select the members to be serialized. It filters the results\n            such that only members with keys listed in the replacer array are\n            stringified.\n\n            Values that do not have JSON representations, such as undefined or\n            functions, will not be serialized. Such values in objects will be\n            dropped; in arrays they will be replaced with null. You can use\n            a replacer function to replace those with JSON values.\n            JSON.stringify(undefined) returns undefined.\n\n            The optional space parameter produces a stringification of the\n            value that is filled with line breaks and indentation to make it\n            easier to read.\n\n            If the space parameter is a non-empty string, then that string will\n            be used for indentation. If the space parameter is a number, then\n            the indentation will be that many spaces.\n\n            Example:\n\n            text = JSON.stringify(['e', {pluribus: 'unum'}]);\n            // text is '[\"e\",{\"pluribus\":\"unum\"}]'\n\n\n            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\\t');\n            // text is '[\\n\\t\"e\",\\n\\t{\\n\\t\\t\"pluribus\": \"unum\"\\n\\t}\\n]'\n\n            text = JSON.stringify([new Date()], function (key, value) {\n                return this[key] instanceof Date ?\n                    'Date(' + this[key] + ')' : value;\n            });\n            // text is '[\"Date(---current time---)\"]'\n\n\n        JSON.parse(text, reviver)\n            This method parses a JSON text to produce an object or array.\n            It can throw a SyntaxError exception.\n\n            The optional reviver parameter is a function that can filter and\n            transform the results. It receives each of the keys and values,\n            and its return value is used instead of the original value.\n            If it returns what it received, then the structure is not modified.\n            If it returns undefined then the member is deleted.\n\n            Example:\n\n            // Parse the text. Values that look like ISO date strings will\n            // be converted to Date objects.\n\n            myData = JSON.parse(text, function (key, value) {\n                var a;\n                if (typeof value === 'string') {\n                    a =\n/^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n                    if (a) {\n                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],\n                            +a[5], +a[6]));\n                    }\n                }\n                return value;\n            });\n\n            myData = JSON.parse('[\"Date(09/09/2001)\"]', function (key, value) {\n                var d;\n                if (typeof value === 'string' &&\n                        value.slice(0, 5) === 'Date(' &&\n                        value.slice(-1) === ')') {\n                    d = new Date(value.slice(5, -1));\n                    if (d) {\n                        return d;\n                    }\n                }\n                return value;\n            });\n\n\n    This is a reference implementation. You are free to copy, modify, or\n    redistribute.\n*/\n\n/*jslint evil: true, regexp: true */\n\n/*members \"\", \"\\b\", \"\\t\", \"\\n\", \"\\f\", \"\\r\", \"\\\"\", JSON, \"\\\\\", apply,\n    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,\n    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,\n    lastIndex, length, parse, prototype, push, replace, slice, stringify,\n    test, toJSON, toString, valueOf\n*/\n\n\n// Create a JSON object only if one does not already exist. We create the\n// methods in a closure to avoid creating global variables.\n\nvar JSON = module.exports;\n\n(function () {\n    'use strict';\n\n    function f(n) {\n        // Format integers to have at least two digits.\n        return n < 10 ? '0' + n : n;\n    }\n\n    var cx = /[\\u0000\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n        escapable = /[\\\\\\\"\\x00-\\x1f\\x7f-\\x9f\\u00ad\\u0600-\\u0604\\u070f\\u17b4\\u17b5\\u200c-\\u200f\\u2028-\\u202f\\u2060-\\u206f\\ufeff\\ufff0-\\uffff]/g,\n        gap,\n        indent,\n        meta = {    // table of character substitutions\n            '\\b': '\\\\b',\n            '\\t': '\\\\t',\n            '\\n': '\\\\n',\n            '\\f': '\\\\f',\n            '\\r': '\\\\r',\n            '\"' : '\\\\\"',\n            '\\\\': '\\\\\\\\'\n        },\n        rep;\n\n\n    function quote(string) {\n\n// If the string contains no control characters, no quote characters, and no\n// backslash characters, then we can safely slap some quotes around it.\n// Otherwise we must also replace the offending characters with safe escape\n// sequences.\n\n        escapable.lastIndex = 0;\n        return escapable.test(string) ? '\"' + string.replace(escapable, function (a) {\n            var c = meta[a];\n            return typeof c === 'string'\n                ? c\n                : '\\\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);\n        }) + '\"' : '\"' + string + '\"';\n    }\n\n\n    function str(key, holder) {\n\n// Produce a string from holder[key].\n\n        var i,          // The loop counter.\n            k,          // The member key.\n            v,          // The member value.\n            length,\n            mind = gap,\n            partial,\n            value = holder[key],\n            isBigNumber = value != null && (value instanceof BigNumber || BigNumber.isBigNumber(value));\n\n// If the value has a toJSON method, call it to obtain a replacement value.\n\n        if (value && typeof value === 'object' &&\n                typeof value.toJSON === 'function') {\n            value = value.toJSON(key);\n        }\n\n// If we were called with a replacer function, then call the replacer to\n// obtain a replacement value.\n\n        if (typeof rep === 'function') {\n            value = rep.call(holder, key, value);\n        }\n\n// What happens next depends on the value's type.\n\n        switch (typeof value) {\n        case 'string':\n            if (isBigNumber) {\n                return value;\n            } else {\n                return quote(value);\n            }\n\n        case 'number':\n\n// JSON numbers must be finite. Encode non-finite numbers as null.\n\n            return isFinite(value) ? String(value) : 'null';\n\n        case 'boolean':\n        case 'null':\n        case 'bigint':\n\n// If the value is a boolean or null, convert it to a string. Note:\n// typeof null does not produce 'null'. The case is included here in\n// the remote chance that this gets fixed someday.\n\n            return String(value);\n\n// If the type is 'object', we might be dealing with an object or an array or\n// null.\n\n        case 'object':\n\n// Due to a specification blunder in ECMAScript, typeof null is 'object',\n// so watch out for that case.\n\n            if (!value) {\n                return 'null';\n            }\n\n// Make an array to hold the partial results of stringifying this object value.\n\n            gap += indent;\n            partial = [];\n\n// Is the value an array?\n\n            if (Object.prototype.toString.apply(value) === '[object Array]') {\n\n// The value is an array. Stringify every element. Use null as a placeholder\n// for non-JSON values.\n\n                length = value.length;\n                for (i = 0; i < length; i += 1) {\n                    partial[i] = str(i, value) || 'null';\n                }\n\n// Join all of the elements together, separated with commas, and wrap them in\n// brackets.\n\n                v = partial.length === 0\n                    ? '[]'\n                    : gap\n                    ? '[\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + ']'\n                    : '[' + partial.join(',') + ']';\n                gap = mind;\n                return v;\n            }\n\n// If the replacer is an array, use it to select the members to be stringified.\n\n            if (rep && typeof rep === 'object') {\n                length = rep.length;\n                for (i = 0; i < length; i += 1) {\n                    if (typeof rep[i] === 'string') {\n                        k = rep[i];\n                        v = str(k, value);\n                        if (v) {\n                            partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                        }\n                    }\n                }\n            } else {\n\n// Otherwise, iterate through all of the keys in the object.\n\n                Object.keys(value).forEach(function(k) {\n                    var v = str(k, value);\n                    if (v) {\n                        partial.push(quote(k) + (gap ? ': ' : ':') + v);\n                    }\n                });\n            }\n\n// Join all of the member texts together, separated with commas,\n// and wrap them in braces.\n\n            v = partial.length === 0\n                ? '{}'\n                : gap\n                ? '{\\n' + gap + partial.join(',\\n' + gap) + '\\n' + mind + '}'\n                : '{' + partial.join(',') + '}';\n            gap = mind;\n            return v;\n        }\n    }\n\n// If the JSON object does not yet have a stringify method, give it one.\n\n    if (typeof JSON.stringify !== 'function') {\n        JSON.stringify = function (value, replacer, space) {\n\n// The stringify method takes a value and an optional replacer, and an optional\n// space parameter, and returns a JSON text. The replacer can be a function\n// that can replace values, or an array of strings that will select the keys.\n// A default replacer method can be provided. Use of the space parameter can\n// produce text that is more easily readable.\n\n            var i;\n            gap = '';\n            indent = '';\n\n// If the space parameter is a number, make an indent string containing that\n// many spaces.\n\n            if (typeof space === 'number') {\n                for (i = 0; i < space; i += 1) {\n                    indent += ' ';\n                }\n\n// If the space parameter is a string, it will be used as the indent string.\n\n            } else if (typeof space === 'string') {\n                indent = space;\n            }\n\n// If there is a replacer, it must be a function or an array.\n// Otherwise, throw an error.\n\n            rep = replacer;\n            if (replacer && typeof replacer !== 'function' &&\n                    (typeof replacer !== 'object' ||\n                    typeof replacer.length !== 'number')) {\n                throw new Error('JSON.stringify');\n            }\n\n// Make a fake root object containing our value under the key of ''.\n// Return the result of stringifying the value.\n\n            return str('', {'': value});\n        };\n    }\n}());\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/json-bigint/lib/stringify.js?");

/***/ }),

/***/ "./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js":
/*!*************************************************************************!*\
  !*** ./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js ***!
  \*************************************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("var __dirname = \"/\";\n/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(A){function I(A){\"use strict\";var I;void 0===(I=A)&&(I={});var g=I;\"object\"!=typeof g.sodium&&(\"object\"==typeof __webpack_require__.g?g=__webpack_require__.g:\"object\"==typeof window&&(g=window));var C=I;return I.ready=new Promise((function(A,I){(B=C).onAbort=I,B.print=function(A){},B.printErr=function(A){},B.onRuntimeInitialized=function(){try{B._crypto_secretbox_keybytes(),A()}catch(A){I(A)}},B.useBackupModule=function(){return new Promise((function(A,I){(B={}).onAbort=I,B.onRuntimeInitialized=function(){Object.keys(C).forEach((function(A){\"getRandomValue\"!==A&&delete C[A]})),Object.keys(B).forEach((function(A){C[A]=B[A]})),A()};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=__webpack_require__(/*! fs */ \"?0b9d\"),c=__webpack_require__(/*! path */ \"?5b1a\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2), true&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var e,y={Memory:function(A){this.buffer=new ArrayBuffer(65536*A.initial)},Module:function(A){},Instance:function(A,I){this.exports=function(A){for(var I,g=new Uint8Array(123),C=25;C>=0;--C)g[48+C]=52+C,g[65+C]=C,g[97+C]=26+C;function B(A,I,C){for(var B,Q,i=0,o=I,E=C.length,a=I+(3*E>>2)-(\"=\"==C[E-2])-(\"=\"==C[E-1]);i<E;i+=4)B=g[C.charCodeAt(i+1)],Q=g[C.charCodeAt(i+2)],A[o++]=g[C.charCodeAt(i)]<<2|B>>4,o<a&&(A[o++]=B<<4|Q>>2),o<a&&(A[o++]=Q<<6|g[C.charCodeAt(i+3)])}function Q(){throw new Error(\"abort\")}return g[43]=62,g[47]=63,function(A){var g=new ArrayBuffer(50331648),C=new Int8Array(g),i=(new Int16Array(g),new Int32Array(g)),o=new Uint8Array(g),E=(new Uint16Array(g),new Uint32Array(g)),a=(new Float32Array(g),new Float64Array(g),Math.imul),_=(Math.fround,Math.abs,Math.clz32),c=(Math.min,Math.max,Math.floor,Math.ceil,Math.trunc,Math.sqrt,A.a),t=c.a,r=c.b,e=c.c,y=c.d,s=103696,h=0,D=0,f=0;function p(A,I){var g,B,Q,i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;rA=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,yA=a=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,gA=o[I+104|0]|o[I+105|0]<<8|o[I+106|0]<<16|o[I+107|0]<<24,sA=a=o[I+108|0]|o[I+109|0]<<8|o[I+110|0]<<16|o[I+111|0]<<24,a=o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24,j=o[I+64|0]|o[I+65|0]<<8|o[I+66|0]<<16|o[I+67|0]<<24,BA=a,NA=a=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,N=a,EA=o[I+120|0]|o[I+121|0]<<8|o[I+122|0]<<16|o[I+123|0]<<24,pA=a=o[I+124|0]|o[I+125|0]<<8|o[I+126|0]<<16|o[I+127|0]<<24,Q=a=o[I+92|0]|o[I+93|0]<<8|o[I+94|0]<<16|o[I+95|0]<<24,g=o[I+88|0]|o[I+89|0]<<8|o[I+90|0]<<16|o[I+91|0]<<24,z=a,oA=o[I+80|0]|o[I+81|0]<<8|o[I+82|0]<<16|o[I+83|0]<<24,DA=a=o[I+84|0]|o[I+85|0]<<8|o[I+86|0]<<16|o[I+87|0]<<24,X=a,QA=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=(_A=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)+N|0,P=(aA=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)+(cA=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24)|0,a=(o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24)+(aA>>>0>P>>>0?a+1|0:a)|0,a=(QA=(_=P)>>>0>(P=P+QA|0)>>>0?a+1|0:a)+yA|0,iA=eA=P+rA|0,eA=a=eA>>>0<P>>>0?a+1|0:a,P=UI(P^(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24)^-79577749,QA^(o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)^528734635,32),kA=a=f,a=a+1013904242|0,QA=P,V=a=(P=P-23791573|0)>>>0<4271175723?a+1|0:a,_A=UI(P^aA,a^_A,40),a=(a=eA)+(eA=f)|0,aA=UI(QA^(h=aA=_A+iA|0),kA^(D=h>>>0<_A>>>0?a+1|0:a),48),a=V+(R=f)|0,k=a=(aA=P+(p=aA)|0)>>>0<P>>>0?a+1|0:a,aA=a=UI(_A^(n=aA),eA^a,1),V=P=f,eA=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,kA=a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,tA=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,P=(_A=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)+(QA=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24)|0,a=(GA=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)+(KA=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)|0,a=(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24)+(P>>>0<QA>>>0?a+1|0:a)|0,a=kA+(iA=(_=P)>>>0>(P=P+tA|0)>>>0?a+1|0:a)|0,a=(tA=P+eA|0)>>>0<P>>>0?a+1|0:a,_=UI(P^(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)^725511199,iA^(o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24)^-1694144372,32),e=UI(QA^(c=_-2067093701|0),KA^(x=(J=P=f)-((_>>>0<2067093701)+1150833018|0)|0),40),a=(L=f)+a|0,a=(Y=(F=P=e+tA|0)>>>0<e>>>0?a+1|0:a)+V|0,a=(F>>>0>(P=F+aA|0)>>>0?a+1|0:a)+X|0,a=(QA=(t=P)>>>0>(P=P+oA|0)>>>0?a+1|0:a)+z|0,l=z=P+g|0,s=a=z>>>0<P>>>0?a+1|0:a,w=aA,wA=V,V=P,iA=QA,aA=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,P=a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,KA=a=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i=QA=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,X=a,a=(FA=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)+(r=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)|0,a=i+((z=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)>>>0>(t=z+(QA=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)|0)>>>0?a+1|0:a)|0,a=(tA=(X=t+X|0)>>>0<t>>>0?a+1|0:a)+P|0,fA=t=X+aA|0,t=a=t>>>0<X>>>0?a+1|0:a,y=z,z=UI(X^(o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)^-1377402159,tA^(o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24)^1359893119,32),tA=a=f,a=a+1779033703|0,X=z,U=a=(z=z-205731576|0)>>>0<4089235720?a+1|0:a,r=UI(y^(S=z),a^r,40),a=(m=f)+t|0,y=UI(X^(t=z=r+fA|0),tA^(G=r>>>0>t>>>0?a+1|0:a),48),a=UI(y^V,(T=f)^iA,32),W=z=f,u=a,B=a=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,tA=fA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,K=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,z=(iA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24)+(X=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)|0,a=(SA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24)+(d=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)|0,a=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)+(z>>>0<X>>>0?a+1|0:a)|0,a=B+(V=(M=z)>>>0>(z=K+z|0)>>>0?a+1|0:a)|0,a=(K=z+tA|0)>>>0<z>>>0?a+1|0:a,V=UI(z^(o[A+88|0]|o[A+89|0]<<8|o[A+90|0]<<16|o[A+91|0]<<24)^327033209,V^(o[A+92|0]|o[A+93|0]<<8|o[A+94|0]<<16|o[A+95|0]<<24)^1541459225,32),X=UI(X^(tA=V+1595750129|0),(M=d)^(d=(b=z=f)-((V>>>0<2699217167)+1521486533|0)|0),40),a=(IA=f)+a|0,z=UI((K=z=X+K|0)^V,b^(M=K>>>0<X>>>0?a+1|0:a),48),a=d+($=f)|0,H=a=(z=tA+(d=z)|0)>>>0<tA>>>0?a+1|0:a,a=W+a|0,O=w^(V=u+(b=z)|0),w=a=V>>>0<b>>>0?a+1|0:a,tA=UI(O,a^wA,40),a=(wA=f)+s|0,z=UI(l=u^(s=z=tA+l|0),W^(u=s>>>0<tA>>>0?a+1|0:a),48),a=w+(CA=f)|0,W=a=(w=V+(l=z)|0)>>>0<V>>>0?a+1|0:a,z=(v=UI(w^tA,wA^a,1))+(V=o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)|0,a=(hA=f)+(wA=o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)|0,nA=z,q=z>>>0<V>>>0?a+1|0:a,Z=sA,z=o[I+96|0]|o[I+97|0]<<8|o[I+98|0]<<16|o[I+99|0]<<24,tA=a=o[I+100|0]|o[I+101|0]<<8|o[I+102|0]<<16|o[I+103|0]<<24,X=(a=h)+(h=UI(b^X,H^IA,1))|0,a=(b=f)+D|0,a=(h>>>0>X>>>0?a+1|0:a)+tA|0,a=(D=(D=X)>>>0>(X=z+X|0)>>>0?a+1|0:a)+Z|0,O=H=X+gA|0,H=a=H>>>0<X>>>0?a+1|0:a,F=UI(_^F,Y^J,48),Y=a=UI(F^X,(J=f)^D,32),a=U+T|0,a=(IA=X=f)+(S=(X=y+S|0)>>>0<y>>>0?a+1|0:a)|0,U=a=(D=X)>>>0>(y=D+Y|0)>>>0?a+1|0:a,h=UI(y^h,b^a,40),a=(T=f)+H|0,a=(b=h>>>0>(H=X=h+O|0)>>>0?a+1|0:a)+q|0,a=(_=H>>>0>(X=H+nA|0)>>>0?a+1|0:a)+pA|0,nA=q=X+EA|0,q=a=q>>>0<X>>>0?a+1|0:a,O=X,Z=_,X=o[I+116|0]|o[I+117|0]<<8|o[I+118|0]<<16|o[I+119|0]<<24,I=o[I+112|0]|o[I+113|0]<<8|o[I+114|0]<<16|o[I+115|0]<<24,r=UI(r^D,S^m,1),a=(m=f)+M|0,a=((_=r+K|0)>>>0<r>>>0?a+1|0:a)+X|0,a=(D=(S=_)>>>0>(_=I+_|0)>>>0?a+1|0:a)+pA|0,MA=S=_+EA|0,S=a=S>>>0<_>>>0?a+1|0:a,a=UI(_^p,D^R,32),AA=_=f,p=a,D=_,a=J+x|0,F=_=c+F|0,K=a=_>>>0<c>>>0?a+1|0:a,a=a+D|0,M=_=_+p|0,R=a=F>>>0>_>>>0?a+1|0:a,D=UI(_^r,m^a,40),a=(m=f)+S|0,p=UI((_=D+MA|0)^p,AA^(c=_>>>0<D>>>0?a+1|0:a),48),a=UI(p^O,(MA=f)^Z,32),AA=r=f,S=a,O=r,e=UI(e^F,K^L,1),a=G+(F=f)|0,a=((r=t)>>>0>(t=t+e|0)>>>0?a+1|0:a)+BA|0,a=(t=(r=t+j|0)>>>0<t>>>0?a+1|0:a)+wA|0,Z=G=r+V|0,G=a=G>>>0<r>>>0?a+1|0:a,K=e,r=UI(r^d,t^$,32),a=(d=f)+k|0,n=UI(K^(t=e=r+n|0),(k=r>>>0>t>>>0?a+1|0:a)^F,40),a=($=f)+G|0,F=e=n+Z|0,e=UI(r^e,d^(G=e>>>0<n>>>0?a+1|0:a),48),a=k+(E=f)|0,k=e,d=a=(e=t+e|0)>>>0<t>>>0?a+1|0:a,a=a+O|0,a=(K=e)>>>0>(e=e+S|0)>>>0?a+1|0:a,O=e,e^=v,v=a,r=UI(e,hA^a,40),a=(hA=f)+q|0,q=e=r+nA|0,a=Q+(Z=r>>>0>e>>>0?a+1|0:a)|0,nA=e=e+g|0,J=a=e>>>0<g>>>0?a+1|0:a,e=_,x=gA,L=sA,_=UI(Y^H,b^IA,48),a=U+(IA=f)|0,Y=_,U=a=(t=y+_|0)>>>0<y>>>0?a+1|0:a,_=UI(t^h,T^a,1),a=(y=f)+L|0,a=((h=_+x|0)>>>0<_>>>0?a+1|0:a)+c|0,a=SA+(e=(c=e+h|0)>>>0<h>>>0?a+1|0:a)|0,H=h=c+iA|0,h=a=h>>>0<iA>>>0?a+1|0:a,c=UI(c^k,e^E,32),a=W+(b=f)|0,k=c,w=a=(c=w+c|0)>>>0<w>>>0?a+1|0:a,e=UI(_^c,a^y,40),a=(a=h)+(h=f)|0,y=_=e+H|0,_=UI(_^k,b^(H=_>>>0<e>>>0?a+1|0:a),48),a=w+(T=f)|0,b=_,W=a=(w=c+_|0)>>>0<c>>>0?a+1|0:a,_=UI(e^w,h^a,1),a=(h=f)+J|0,a=B+(e=(c=_+nA|0)>>>0<_>>>0?a+1|0:a)|0,nA=k=c+fA|0,k=a=k>>>0<fA>>>0?a+1|0:a,J=_,x=h,a=R+MA|0,a=(_=p+M|0)>>>0<p>>>0?a+1|0:a,p=_,M=a,a=UI(_^D,m^a,1),D=h=f,_=a,a=G+X|0,a=((F=I+F|0)>>>0<I>>>0?a+1|0:a)+h|0,a=DA+(F=(h=_+F|0)>>>0<F>>>0?a+1|0:a)|0,R=G=h+oA|0,G=a=G>>>0<oA>>>0?a+1|0:a,h=UI(h^l,F^CA,32),a=U+(l=f)|0,F=h,U=a=(U=t)>>>0>(t=t+h|0)>>>0?a+1|0:a,h=UI(_^t,a^D,40),a=(m=f)+G|0,D=_=h+R|0,_=UI(G=_^F,l^(F=_>>>0<h>>>0?a+1|0:a),48),a=U+(CA=f)|0,U=_,G=_=t+_|0,l=a=_>>>0<t>>>0?a+1|0:a,R=c,L=e,_=UI(n^K,d^$,1),a=(t=f)+N|0,a=u+((c=_+cA|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(e=(c=c+s|0)>>>0<s>>>0?a+1|0:a)|0,u=s=c+j|0,s=a=s>>>0<c>>>0?a+1|0:a,n=_,_=(c=UI(c^Y,e^IA,32))+p|0,a=(p=f)+M|0,e=_,t=UI(_^n,(Y=_>>>0<c>>>0?a+1|0:a)^t,40),a=(IA=f)+s|0,s=_=t+u|0,K=UI(_^c,p^(u=_>>>0<t>>>0?a+1|0:a),48),c=UI(K^R,(a=L)^(L=f),32),a=(R=f)+l|0,p=_=c+G|0,n=UI(_^J,(M=_>>>0<c>>>0?a+1|0:a)^x,40),a=(J=f)+k|0,k=_=n+nA|0,_=UI(_^c,R^(d=_>>>0<n>>>0?a+1|0:a),48),a=M+($=f)|0,M=_,R=a=(c=p)>>>0>(p=p+_|0)>>>0?a+1|0:a,_=UI(p^n,J^a,1),a=pA+(nA=f)|0,J=_,MA=_=EA+_|0,n=a=_>>>0<EA>>>0?a+1|0:a,c=rA,_=UI(h^G,m^l,1),a=H+(h=f)|0,a=((G=y)>>>0>(y=_+y|0)>>>0?a+1|0:a)+yA|0,a=(G=(c=c+y|0)>>>0<y>>>0?a+1|0:a)+kA|0,x=y=c+eA|0,H=a=y>>>0<c>>>0?a+1|0:a,l=_,y=UI(S^q,Z^AA,48),a=UI(y^c,(m=f)^G,32),AA=_=f,S=a,c=_,a=Y+L|0,a=(_=e+K|0)>>>0<e>>>0?a+1|0:a,e=_,Y=a,a=a+c|0,G=_=_+S|0,K=a=e>>>0>_>>>0?a+1|0:a,c=UI(_^l,a^h,40),a=(a=H)+(H=f)|0,l=_=c+x|0,q=a=_>>>0<c>>>0?a+1|0:a,a=a+n|0,Z=a=(h=_+MA|0)>>>0<_>>>0?a+1|0:a,n=a,_=UI(t^e,Y^IA,1),a=P+(t=f)|0,a=F+((e=_+aA|0)>>>0<aA>>>0?a+1|0:a)|0,a=tA+(D=(e=e+D|0)>>>0<D>>>0?a+1|0:a)|0,x=F=e+z|0,F=a=F>>>0<z>>>0?a+1|0:a,Y=_,a=UI(e^b,D^T,32),L=_=f,e=a,D=_,a=m+v|0,b=_=y+O|0,v=a=_>>>0<y>>>0?a+1|0:a,a=a+D|0,a=(y=_+e|0)>>>0<_>>>0?a+1|0:a,_=y^Y,Y=a,D=UI(_,a^t,40),a=(T=f)+F|0,t=_=D+x|0,O=UI(_^e,L^(F=_>>>0<D>>>0?a+1|0:a),48),a=UI(O^h,(IA=f)^n,32),MA=_=f,x=a,n=_,_=UI(r^b,v^hA,1),a=u+(r=f)|0,a=FA+((e=_+s|0)>>>0<s>>>0?a+1|0:a)|0,a=(s=(e=e+QA|0)>>>0<QA>>>0?a+1|0:a)+GA|0,b=u=e+_A|0,u=a=u>>>0<e>>>0?a+1|0:a,e=UI(e^U,s^CA,32),a=W+(v=f)|0,U=e,s=r,r=a=(e=w+e|0)>>>0<w>>>0?a+1|0:a,s=UI(_^e,s^a,40),a=(CA=f)+u|0,w=_=s+b|0,_=UI(b=_^U,v^(U=_>>>0<s>>>0?a+1|0:a),48),a=r+(m=f)|0,r=_,u=_=e+_|0,b=a=_>>>0<e>>>0?a+1|0:a,a=a+n|0,W=a=(n=_+x|0)>>>0<_>>>0?a+1|0:a,e=UI(n^J,nA^a,40),a=Z+(v=f)|0,a=((_=e+h|0)>>>0<h>>>0?a+1|0:a)+sA|0,h=_,Z=_=_+gA|0,J=a=h>>>0>_>>>0?a+1|0:a,L=BA,h=UI(S^l,q^AA,48),a=(hA=f)+K|0,S=_=h+G|0,a=UI(_^c,(G=_>>>0<h>>>0?a+1|0:a)^H,1),H=c=f,_=a,a=F+Q|0,a=((t=t+g|0)>>>0<g>>>0?a+1|0:a)+c|0,a=(t=(c=_+t|0)>>>0<t>>>0?a+1|0:a)+L|0,K=F=c+j|0,F=a=F>>>0<c>>>0?a+1|0:a,c=UI(c^r,t^m,32),a=R+(l=f)|0,p=a=(r=c+p|0)>>>0<p>>>0?a+1|0:a,t=UI(_^r,a^H,40),a=(q=f)+F|0,F=_=t+K|0,c=UI(_^c,l^(H=_>>>0<t>>>0?a+1|0:a),48),a=p+(K=f)|0,l=a=(p=c+r|0)>>>0<r>>>0?a+1|0:a,_=UI(t^p,q^a,1),a=(q=f)+J|0,a=wA+((r=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=(t=(r=r+V|0)>>>0<V>>>0?a+1|0:a)+N|0,nA=N=r+cA|0,N=a=N>>>0<r>>>0?a+1|0:a,R=_,L=r,m=t,r=rA,_=UI(s^u,b^CA,1),a=d+(s=f)|0,a=((t=k)>>>0>(k=_+k|0)>>>0?a+1|0:a)+yA|0,a=GA+(t=(r=r+k|0)>>>0<k>>>0?a+1|0:a)|0,d=k=r+_A|0,u=a=k>>>0<_A>>>0?a+1|0:a,k=_,t=a=UI(r^h,t^hA,32),a=Y+IA|0,a=(b=_=f)+(y=(_=y+O|0)>>>0<y>>>0?a+1|0:a)|0,Y=a=(h=_+t|0)>>>0<_>>>0?a+1|0:a,k=UI(h^k,a^s,40),a=(IA=f)+u|0,u=UI(d=(r=k+d|0)^t,b^(t=r>>>0<k>>>0?a+1|0:a),48),a=UI(u^L,(CA=f)^m,32),hA=s=f,d=a,b=s,_=UI(_^D,y^T,1),a=tA+(s=f)|0,a=U+((y=_+z|0)>>>0<z>>>0?a+1|0:a)|0,a=FA+(w=(y=y+w|0)>>>0<w>>>0?a+1|0:a)|0,L=D=y+QA|0,D=a=D>>>0<QA>>>0?a+1|0:a,U=_,O=s,y=UI(y^M,w^$,32),a=(M=f)+G|0,s=_=y+S|0,w=UI(_^U,(S=_>>>0<y>>>0?a+1|0:a)^O,40),a=(T=f)+D|0,U=_=w+L|0,_=UI(_^y,M^(G=_>>>0<w>>>0?a+1|0:a),48),a=S+(L=f)|0,D=_,S=_=s+_|0,M=a=_>>>0<s>>>0?a+1|0:a,a=a+b|0,b=_=_+d|0,y=q,q=a=S>>>0>_>>>0?a+1|0:a,y=UI(_^R,y^a,40),a=(a=N)+(N=f)|0,O=_=y+nA|0,R=a=_>>>0<y>>>0?a+1|0:a,s=t,_=UI(x^Z,J^MA,48),a=W+($=f)|0,W=_,t=(_=n+_|0)^e,e=a=_>>>0<n>>>0?a+1|0:a,t=UI(t,a^v,1),a=(v=f)+s|0,a=B+((r=t+r|0)>>>0<t>>>0?a+1|0:a)|0,a=(s=(r=r+fA|0)>>>0<fA>>>0?a+1|0:a)+P|0,Z=n=r+aA|0,n=a=n>>>0<r>>>0?a+1|0:a,r=UI(r^D,s^L,32),a=l+(J=f)|0,l=r,p=a=(s=p+r|0)>>>0<p>>>0?a+1|0:a,t=UI(t^s,v^a,40),a=(a=n)+(n=f)|0,D=r=t+Z|0,r=UI(x=r^l,J^(l=r>>>0<t>>>0?a+1|0:a),48),a=p+(nA=f)|0,v=r,Z=a=(p=s+r|0)>>>0<s>>>0?a+1|0:a,r=UI(t^p,n^a,1),a=(n=f)+R|0,a=Q+((t=r+O|0)>>>0<r>>>0?a+1|0:a)|0,a=X+(s=(t=t+g|0)>>>0<g>>>0?a+1|0:a)|0,MA=J=I+t|0,J=a=J>>>0<I>>>0?a+1|0:a,x=r,L=n,n=t,m=s,r=UI(w^S,M^T,1),a=(s=f)+H|0,a=DA+((t=r+F|0)>>>0<r>>>0?a+1|0:a)|0,a=(w=(t=t+oA|0)>>>0<oA>>>0?a+1|0:a)+X|0,H=F=I+t|0,F=a=F>>>0<t>>>0?a+1|0:a,S=r,t=a=UI(t^W,w^$,32),w=r=f,a=Y+CA|0,Y=a=(r=h+u|0)>>>0<h>>>0?a+1|0:a,a=a+w|0,a=(h=r)>>>0>(r=r+t|0)>>>0?a+1|0:a,u=r,r^=S,S=a,s=UI(r,a^s,40),a=(T=f)+F|0,w=UI(F=(r=s+H|0)^t,w^(t=r>>>0<s>>>0?a+1|0:a),48),a=UI(w^n,(a=m)^(m=f),32),$=n=f,F=a,H=e,e=c,a=UI(h^k,Y^IA,1),M=c=f,h=a,a=G+kA|0,a=((k=U+eA|0)>>>0<eA>>>0?a+1|0:a)+c|0,k=a=(c=h+k|0)>>>0<k>>>0?a+1|0:a,e=UI(c^e,a^K,32),a=(a=H)+(H=f)|0,h=UI((_=e+_|0)^h,M^(Y=_>>>0<e>>>0?a+1|0:a),40),a=k+(IA=f)|0,U=h,a=SA+((G=c)>>>0>(c=c+h|0)>>>0?a+1|0:a)|0,G=a=(h=c+iA|0)>>>0<iA>>>0?a+1|0:a,c=UI(e^h,H^a,48),a=Y+(CA=f)|0,K=_,e=c,Y=_=_+c|0,H=a=K>>>0>_>>>0?a+1|0:a,a=a+n|0,K=a=(n=_+F|0)>>>0<_>>>0?a+1|0:a,_=(k=UI(n^x,a^L,40))+MA|0,a=(MA=f)+J|0,M=_,W=_>>>0<k>>>0?a+1|0:a,_=UI(d^O,R^hA,48),a=(d=f)+q|0,b=c=_+b|0,x=N,N=a=c>>>0<_>>>0?a+1|0:a,a=UI(c^y,x^a,1),O=c=f,y=a,a=t+B|0,a=((r=r+fA|0)>>>0<fA>>>0?a+1|0:a)+c|0,a=wA+(r=(c=r+y|0)>>>0<r>>>0?a+1|0:a)|0,R=t=c+V|0,t=a=t>>>0<V>>>0?a+1|0:a,c=UI(c^e,r^CA,32),a=Z+(J=f)|0,q=c,c=(e=p+c|0)^y,y=a=e>>>0<p>>>0?a+1|0:a,r=UI(c,O^a,40),a=(a=t)+(t=f)|0,O=c=r+R|0,c=UI(p=c^q,J^(q=c>>>0<r>>>0?a+1|0:a),48),a=y+(CA=f)|0,Z=c,e=a=(c=e+c|0)>>>0<e>>>0?a+1|0:a,r=UI(c^r,t^a,1),a=(p=f)+W|0,a=pA+((t=r+M|0)>>>0<r>>>0?a+1|0:a)|0,a=(y=(t=t+EA|0)>>>0<EA>>>0?a+1|0:a)+BA|0,AA=R=t+j|0,R=a=R>>>0<t>>>0?a+1|0:a,J=r,x=t,L=y,r=UI(U^Y,H^IA,1),a=(H=f)+sA|0,a=l+(r>>>0>(t=r+gA|0)>>>0?a+1|0:a)|0,y=a=(t=t+D|0)>>>0<D>>>0?a+1|0:a,a=UI(_^t,a^d,32),d=_=f,D=a,a=S+m|0,a=(_=w+u|0)>>>0<w>>>0?a+1|0:a,w=_,Y=a,a=d+a|0,S=_=_+D|0,U=a=w>>>0>_>>>0?a+1|0:a,_=UI(_^r,H^a,40),a=y+(m=f)|0,u=_,a=tA+((_=t+_|0)>>>0<t>>>0?a+1|0:a)|0,a=(_=_+z|0)>>>0<z>>>0?a+1|0:a,H=_,_^=D,D=a,y=UI(_,d^a,48),a=UI(y^x,(a=L)^(L=f),32),IA=_=f,d=a,l=_,_=UI(s^w,Y^T,1),a=kA+(t=f)|0,a=G+((r=_+eA|0)>>>0<eA>>>0?a+1|0:a)|0,a=(s=(r=r+h|0)>>>0<h>>>0?a+1|0:a)+P|0,G=w=r+aA|0,w=a=w>>>0<r>>>0?a+1|0:a,h=_,Y=t,_=(r=UI(r^v,s^nA,32))+b|0,a=(b=f)+N|0,t=_,s=UI(s=_^h,(h=_>>>0<r>>>0?a+1|0:a)^Y,40),a=(T=f)+w|0,w=_=s+G|0,r=UI(_^r,b^(N=_>>>0<s>>>0?a+1|0:a),48),a=h+(Y=f)|0,G=_=r+t|0,b=a=_>>>0<t>>>0?a+1|0:a,a=a+l|0,l=a=(h=_+d|0)>>>0<_>>>0?a+1|0:a,t=UI(h^J,a^p,40),a=(v=f)+R|0,R=_=t+AA|0,J=a=_>>>0<t>>>0?a+1|0:a,_=c,p=e,e=r,c=UI(F^M,W^$,48),a=K+(AA=f)|0,F=c,n=a=(r=n+c|0)>>>0<n>>>0?a+1|0:a,a=UI(r^k,MA^a,1),K=c=f,k=a,a=D+NA|0,a=((D=H+cA|0)>>>0<cA>>>0?a+1|0:a)+c|0,D=a=(c=D+k|0)>>>0<D>>>0?a+1|0:a,e=UI(c^e,a^Y,32),a=(H=f)+p|0,k=UI((_=e+_|0)^k,K^(p=_>>>0<e>>>0?a+1|0:a),40),a=D+(M=f)|0,a=FA+((D=c)>>>0>(c=c+k|0)>>>0?a+1|0:a)|0,Y=a=(D=c+QA|0)>>>0<QA>>>0?a+1|0:a,c=UI(e^D,H^a,48),a=p+($=f)|0,H=c,K=a=(p=_+c|0)>>>0<_>>>0?a+1|0:a,_=UI(p^k,M^a,1),a=(k=f)+J|0,a=DA+((c=_+R|0)>>>0<_>>>0?a+1|0:a)|0,a=pA+(e=(c=c+oA|0)>>>0<oA>>>0?a+1|0:a)|0,hA=M=c+EA|0,M=a=M>>>0<EA>>>0?a+1|0:a,W=_,x=c,_=UI(s^G,b^T,1),a=(s=f)+q|0,a=GA+((c=_+O|0)>>>0<_>>>0?a+1|0:a)|0,a=SA+(G=(c=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,O=b=c+iA|0,b=a=b>>>0<iA>>>0?a+1|0:a,q=_,a=UI(c^F,G^AA,32),AA=_=f,c=a,a=U+L|0,S=_=y+S|0,F=a=_>>>0<y>>>0?a+1|0:a,a=AA+a|0,U=a=(y=_+c|0)>>>0<_>>>0?a+1|0:a,s=UI(y^q,a^s,40),a=(L=f)+b|0,G=_=s+O|0,q=UI(_^c,AA^(b=_>>>0<s>>>0?a+1|0:a),48),a=UI(q^x,(AA=f)^e,32),T=_=f,O=a,e=_,c=rA,_=UI(S^u,F^m,1),a=N+(F=f)|0,a=((S=w)>>>0>(w=_+w|0)>>>0?a+1|0:a)+yA|0,a=DA+(w=(c=c+w|0)>>>0<w>>>0?a+1|0:a)|0,S=N=c+oA|0,N=a=N>>>0<oA>>>0?a+1|0:a,c=UI(c^Z,w^CA,32),a=n+(u=f)|0,n=c,a=(c=r+c|0)>>>0<r>>>0?a+1|0:a,r=F,F=a,r=UI(_^c,r^a,40),a=(m=f)+N|0,w=_=r+S|0,_=UI(_^n,u^(N=_>>>0<r>>>0?a+1|0:a),48),a=F+(x=f)|0,F=_,S=_=c+_|0,u=a=_>>>0<c>>>0?a+1|0:a,a=a+e|0,a=(n=_+O|0)>>>0<_>>>0?a+1|0:a,_=n^W,W=a,k=UI(_,a^k,40),a=(CA=f)+M|0,M=_=k+hA|0,Z=_>>>0<k>>>0?a+1|0:a,_=UI(d^R,J^IA,48),a=l+(IA=f)|0,d=_,a=(_=h+_|0)>>>0<h>>>0?a+1|0:a,h=_,l=a,a=UI(_^t,a^v,1),v=_=f,e=a,a=b+wA|0,a=((c=G+V|0)>>>0<V>>>0?a+1|0:a)+_|0,a=FA+(c=(_=c+e|0)>>>0<c>>>0?a+1|0:a)|0,G=t=_+QA|0,t=a=t>>>0<QA>>>0?a+1|0:a,_=UI(_^F,c^x,32),a=K+(b=f)|0,F=_,p=a=(c=p+_|0)>>>0<p>>>0?a+1|0:a,e=UI(c^e,v^a,40),a=(v=f)+t|0,G=_=e+G|0,_=UI(t=_^F,b^(F=_>>>0<e>>>0?a+1|0:a),48),a=p+(hA=f)|0,p=_,K=a=(t=c+_|0)>>>0<c>>>0?a+1|0:a,_=UI(t^e,v^a,1),a=(b=f)+Z|0,a=kA+((c=_+M|0)>>>0<_>>>0?a+1|0:a)|0,a=(e=(c=c+eA|0)>>>0<eA>>>0?a+1|0:a)+sA|0,nA=v=c+gA|0,v=a=v>>>0<c>>>0?a+1|0:a,R=_,J=c,x=e,_=UI(r^S,m^u,1),a=GA+(e=f)|0,a=Y+((c=_+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=NA+(r=(c=c+D|0)>>>0<D>>>0?a+1|0:a)|0,u=D=c+cA|0,D=a=D>>>0<cA>>>0?a+1|0:a,Y=_,S=e,a=UI(c^d,r^IA,32),d=_=f,r=a,c=_,a=U+AA|0,a=(_=y+q|0)>>>0<y>>>0?a+1|0:a,y=_,U=a,a=a+c|0,a=(e=_+r|0)>>>0<_>>>0?a+1|0:a,_=e^Y,Y=a,_=UI(_,a^S,40),a=(a=D)+(D=f)|0,S=c=_+u|0,u=a=c>>>0<_>>>0?a+1|0:a,d=UI(c^r,d^a,48),a=UI(d^J,(a=x)^(x=f),32),m=c=f,q=a,c=UI(y^s,U^L,1),a=(y=f)+yA|0,a=N+((r=c+rA|0)>>>0<c>>>0?a+1|0:a)|0,a=B+(s=(r=r+w|0)>>>0<w>>>0?a+1|0:a)|0,L=w=r+fA|0,w=a=w>>>0<fA>>>0?a+1|0:a,N=c,U=y,r=UI(r^H,s^$,32),a=(H=f)+l|0,y=c=r+h|0,c=(s=UI(c^N,(h=c>>>0<r>>>0?a+1|0:a)^U,40))+L|0,a=(L=f)+w|0,N=c,c=UI(c^r,H^(U=c>>>0<s>>>0?a+1|0:a),48),a=h+(AA=f)|0,H=c,l=c=y+c|0,J=a=c>>>0<y>>>0?a+1|0:a,a=m+a|0,a=(r=c+q|0)>>>0<c>>>0?a+1|0:a,c=b,b=a,y=UI(r^R,c^a,40),a=(IA=f)+v|0,w=c=y+nA|0,a=UI(c^q,m^(v=c>>>0<y>>>0?a+1|0:a),48),m=c=f,q=a,c=_,a=Y+x|0,Y=_=e+d|0,d=a=_>>>0<e>>>0?a+1|0:a,a=UI(_^c,a^D,1),e=c=f,_=a,a=U+Q|0,a=((h=N+g|0)>>>0<g>>>0?a+1|0:a)+c|0,a=tA+(h=(c=_+h|0)>>>0<h>>>0?a+1|0:a)|0,x=D=c+z|0,D=a=D>>>0<z>>>0?a+1|0:a,N=_,U=e,_=UI(M^O,Z^T,48),a=W+(T=f)|0,M=_,a=(_=n+_|0)>>>0<n>>>0?a+1|0:a,n=_,c=UI(c^p,h^hA,32),W=a,a=a+(O=f)|0,e=_=c+_|0,h=UI(_^N,(p=_>>>0<c>>>0?a+1|0:a)^U,40),a=(Z=f)+D|0,D=_=h+x|0,_=UI(_^c,O^(N=_>>>0<h>>>0?a+1|0:a),48),a=p+($=f)|0,U=_,O=a=(p=e+_|0)>>>0<e>>>0?a+1|0:a,_=UI(h^p,Z^a,1),a=FA+(x=f)|0,Z=_,hA=_=QA+_|0,e=a=_>>>0<QA>>>0?a+1|0:a,_=UI(k^n,W^CA,1),a=(h=f)+u|0,a=SA+((c=_+S|0)>>>0<_>>>0?a+1|0:a)|0,a=BA+(n=(c=c+iA|0)>>>0<iA>>>0?a+1|0:a)|0,W=k=c+j|0,k=a=k>>>0<j>>>0?a+1|0:a,S=h,c=UI(c^H,n^AA,32),a=K+(AA=f)|0,u=c,a=(h=t+c|0)>>>0<t>>>0?a+1|0:a,t=S,S=a,n=UI(_^h,t^a,40),a=(CA=f)+k|0,H=_=n+W|0,a=(K=_>>>0<n>>>0?a+1|0:a)+e|0,k=a=(e=_+hA|0)>>>0<_>>>0?a+1|0:a,W=a=UI(e^q,a^m,32),R=_=f,_=UI(s^l,J^L,1),a=(t=f)+F|0,a=X+((c=_+G|0)>>>0<_>>>0?a+1|0:a)|0,a=(s=(c=I+c|0)>>>0<I>>>0?a+1|0:a)+P|0,J=F=c+aA|0,F=a=F>>>0<c>>>0?a+1|0:a,G=_,l=t,c=UI(c^M,s^T,32),a=(M=f)+d|0,t=_=c+Y|0,_=(s=UI(_^G,(Y=_>>>0<c>>>0?a+1|0:a)^l,40))+J|0,a=(J=f)+F|0,F=_,_=UI(_^c,M^(G=_>>>0<s>>>0?a+1|0:a),48),a=Y+(T=f)|0,Y=_,M=a=(_=t+_|0)>>>0<t>>>0?a+1|0:a,a=a+R|0,d=a=(t=_)>>>0>(_=_+W|0)>>>0?a+1|0:a,c=UI(_^Z,x^a,40),a=k+(x=f)|0,l=c,a=Q+((c=e+c|0)>>>0<e>>>0?a+1|0:a)|0,Z=c=c+g|0,e=c^W,W=a=c>>>0<g>>>0?a+1|0:a,c=UI(e,R^a,48),a=d+(R=f)|0,d=a=(k=_+c|0)>>>0<_>>>0?a+1|0:a,_=a=UI(k^l,x^a,1),l=e=f,e=UI(t^s,M^J,1),a=N+(s=f)|0,a=SA+((t=e+D|0)>>>0<D>>>0?a+1|0:a)|0,a=DA+(D=(t=t+iA|0)>>>0<iA>>>0?a+1|0:a)|0,x=N=t+oA|0,N=a=N>>>0<oA>>>0?a+1|0:a,M=e,J=s,a=b+m|0,a=(e=r+q|0)>>>0<r>>>0?a+1|0:a,b=e,u=UI(H^u,K^AA,48),s=UI(t^u,D^(AA=f),32),H=a,a=a+(hA=f)|0,D=e=s+e|0,e=UI(e^M,(K=e>>>0<s>>>0?a+1|0:a)^J,40),a=(M=f)+N|0,J=a=(r=e+x|0)>>>0<e>>>0?a+1|0:a,a=a+l|0,a=B+((q=r)>>>0>(r=_+r|0)>>>0?a+1|0:a)|0,a=(t=(r=r+fA|0)>>>0<fA>>>0?a+1|0:a)+yA|0,nA=N=r+rA|0,x=a=N>>>0<r>>>0?a+1|0:a,L=_,m=r,a=UI(y^b,H^IA,1),y=r=f,_=a,a=G+GA|0,a=((N=F+_A|0)>>>0<_A>>>0?a+1|0:a)+r|0,a=tA+(N=(r=_+N|0)>>>0<N>>>0?a+1|0:a)|0,H=F=r+z|0,F=a=F>>>0<z>>>0?a+1|0:a,G=_,a=UI(r^U,N^$,32),b=_=f,r=a,N=_,a=S+AA|0,S=_=h+u|0,U=a=_>>>0<h>>>0?a+1|0:a,a=a+N|0,a=(h=_+r|0)>>>0<_>>>0?a+1|0:a,_=h^G;G=a,N=UI(_,a^y,40),a=(AA=f)+F|0,u=UI(F=(_=N+H|0)^r,b^(r=_>>>0<N>>>0?a+1|0:a),48),a=UI(a=u^m,(m=f)^t,32),IA=t=f,H=a,F=t,t=UI(n^S,U^CA,1),a=BA+(n=f)|0,a=v+((y=t+j|0)>>>0<j>>>0?a+1|0:a)|0,a=kA+(w=(y=y+w|0)>>>0<w>>>0?a+1|0:a)|0,U=S=y+eA|0,S=a=S>>>0<eA>>>0?a+1|0:a,y=UI(y^Y,w^T,32),a=O+(b=f)|0,Y=y,p=a=(y=p+y|0)>>>0<p>>>0?a+1|0:a,w=UI(t^y,a^n,40),a=(T=f)+S|0,n=t=w+U|0,t=UI(S=t^Y,b^(Y=t>>>0<w>>>0?a+1|0:a),48),a=p+($=f)|0,S=t,U=t=y+t|0,b=a=t>>>0<y>>>0?a+1|0:a,a=a+F|0,a=(y=t+H|0)>>>0<t>>>0?a+1|0:a,t=l,l=a,p=UI(y^L,t^a,40),a=(v=f)+x|0,F=t=p+nA|0,t=UI(x=t^H,IA^(H=t>>>0<p>>>0?a+1|0:a),48),a=l+(IA=f)|0,l=t,y=a=(t=y+t|0)>>>0<y>>>0?a+1|0:a,v=a=UI(t^p,v^a,1),CA=a,O=p=f,p=r,r=e,e=UI(s^q,J^hA,48),a=K+(hA=f)|0,K=e,a=(e=D+e|0)>>>0<D>>>0?a+1|0:a,D=_,_=r^e,r=a,_=UI(_,a^M,1),a=(M=f)+p|0,a=NA+(_>>>0>(s=D+_|0)>>>0?a+1|0:a)|0,a=sA+(D=(s=s+cA|0)>>>0<cA>>>0?a+1|0:a)|0,q=p=s+gA|0,p=a=p>>>0<gA>>>0?a+1|0:a,s=UI(s^S,D^$,32),a=d+(J=f)|0,S=a=(D=s+k|0)>>>0<k>>>0?a+1|0:a,k=UI(_^D,M^a,40),a=($=f)+p|0,M=_=k+q|0,s=UI(_^s,J^(d=_>>>0<k>>>0?a+1|0:a),48),a=S+(q=f)|0,J=_=s+D|0,S=_,x=a=_>>>0<D>>>0?a+1|0:a,D=e,p=r,a=G+m|0,a=(_=h+u|0)>>>0<h>>>0?a+1|0:a,h=_,_^=N,N=a,a=UI(_,AA^a,1),L=_=f,G=a,r=a,a=Y+P|0,a=((e=n+aA|0)>>>0<aA>>>0?a+1|0:a)+_|0,n=a=(_=e)>>>0>(e=r+e|0)>>>0?a+1|0:a,r=UI(c^e,a^R,32),a=(a=p)+(p=f)|0,u=_=r+D|0,c=UI(c=_^G,L^(G=_>>>0<r>>>0?a+1|0:a),40),a=n+(R=f)|0,a=wA+((_=c+e|0)>>>0<e>>>0?a+1|0:a)|0,L=a=(D=_+V|0)>>>0<V>>>0?a+1|0:a,p=UI(r^D,p^a,48),nA=a=f,_=UI(w^U,b^T,1),a=(r=f)+W|0,a=pA+((e=_+Z|0)>>>0<_>>>0?a+1|0:a)|0,a=X+(w=(e=e+EA|0)>>>0<EA>>>0?a+1|0:a)|0,W=n=I+e|0,U=a=n>>>0<I>>>0?a+1|0:a,b=_,n=UI(e^K,w^hA,32),a=(T=f)+N|0,N=_=n+h|0,e=UI(_^b,(K=_>>>0<n>>>0?a+1|0:a)^r,40),a=(a=U)+(U=f)|0,b=_=e+W|0,W=a=_>>>0<e>>>0?a+1|0:a,r=a,a=X+O|0,a=((w=I+v|0)>>>0<I>>>0?a+1|0:a)+r|0,Y=a=(r=_+w|0)>>>0<w>>>0?a+1|0:a,_=UI(r^p,nA^a,32),a=(v=f)+x|0,h=UI((w=_+S|0)^CA,(a=w>>>0<_>>>0?a+1|0:a)^O,40),O=a,a=sA+(S=f)|0,a=Y+((Z=h+gA|0)>>>0<gA>>>0?a+1|0:a)|0,a=(Y=r+Z|0)>>>0<r>>>0?a+1|0:a,r=v,v=a,r=UI(_^Y,r^a,48),a=(a=O)+(O=f)|0,_=h^(w=r+w|0),h=a=w>>>0<r>>>0?a+1|0:a,Z=a=UI(_,a^S,1),CA=a,m=_=f,S=t,AA=y,t=e,e=UI(n^b,W^T,48),a=K+(b=f)|0,n=_=e+N|0,N=a=_>>>0<N>>>0?a+1|0:a,t=UI(_^t,a^U,1),a=(W=f)+NA|0,a=L+((_=t+cA|0)>>>0<t>>>0?a+1|0:a)|0,D=a=(y=_+D|0)>>>0<D>>>0?a+1|0:a,_=UI(y^s,a^q,32),a=(U=f)+AA|0,S=s=_+S|0,K=a=s>>>0<_>>>0?a+1|0:a,t=UI(t^s,a^W,40),a=DA+(hA=f)|0,W=t,a=D+((t=oA+t|0)>>>0<oA>>>0?a+1|0:a)|0,y=a=(t=t+y|0)>>>0<y>>>0?a+1|0:a,s=UI(_^t,a^U,48),a=(a=K)+(K=f)|0,q=_=s+S|0,U=_,L=a=_>>>0<s>>>0?a+1|0:a,a=G+nA|0,S=(_=p+u|0)^c,c=a=_>>>0<p>>>0?a+1|0:a,a=UI(S,a^R,1),R=D=f,S=a,a=d+tA|0,a=((p=M+z|0)>>>0<z>>>0?a+1|0:a)+D|0,G=a=(G=p)>>>0>(p=p+S|0)>>>0?a+1|0:a,u=D=UI(p^l,IA^a,32),M=a=f,a=a+N|0,d=D=D+n|0,l=a=u>>>0>D>>>0?a+1|0:a,D=UI(D^S,R^a,40),a=yA+(R=f)|0,a=G+((n=D+rA|0)>>>0<rA>>>0?a+1|0:a)|0,n=a=(S=p)>>>0>(p=p+n|0)>>>0?a+1|0:a,S=UI(p^u,a^M,48),IA=a=f,N=a,k=UI(k^J,x^$,1),G=a=f,u=e,a=a+P|0,a=H+((e=k+aA|0)>>>0<aA>>>0?a+1|0:a)|0,a=(e=e+F|0)>>>0<F>>>0?a+1|0:a,F=e^u,u=a,F=UI(F,a^b,32),a=($=f)+c|0,H=_=F+_|0,c=UI(_^k,(c=G)^(G=_>>>0<F>>>0?a+1|0:a),40),a=pA+(M=f)|0,a=u+((_=c+EA|0)>>>0<EA>>>0?a+1|0:a)|0,u=_=_+e|0,b=a=_>>>0<e>>>0?a+1|0:a,e=a,a=m+SA|0,a=((k=Z+iA|0)>>>0<iA>>>0?a+1|0:a)+e|0,Z=a=(e=_+k|0)>>>0<k>>>0?a+1|0:a,_=UI(e^S,a^N,32),a=(J=f)+L|0,N=UI((k=_+U|0)^CA,(a=k>>>0<_>>>0?a+1|0:a)^m,40),x=U=f,m=a,a=U+kA|0,a=Z+((U=N+eA|0)>>>0<eA>>>0?a+1|0:a)|0,Z=a=(U=e+U|0)>>>0<e>>>0?a+1|0:a,e=UI(_^U,a^J,48),a=(J=f)+m|0,_=(k=e+k|0)^N,N=a=k>>>0<e>>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=w,T=s,s=c,c=UI(F^u,b^$,48),a=(F=f)+G|0,G=_=c+H|0,u=a=_>>>0<c>>>0?a+1|0:a,s=UI(_^s,a^M,1),a=(M=f)+FA|0,a=((_=s+QA|0)>>>0<s>>>0?a+1|0:a)+n|0,p=a=(w=_+p|0)>>>0<_>>>0?a+1|0:a,_=UI(w^T,a^K,32),a=(n=f)+h|0,H=h=_+AA|0,K=a=h>>>0<_>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=B+(T=f)|0,M=s,a=p+((s=fA+s|0)>>>0<fA>>>0?a+1|0:a)|0,b=a=(h=s+w|0)>>>0<w>>>0?a+1|0:a,s=UI(_^h,a^n,48),a=(a=K)+(K=f)|0,H=_=s+H|0,AA=a=_>>>0<s>>>0?a+1|0:a,p=r,w=t,a=l+IA|0,r=a=(_=S+d|0)>>>0<S>>>0?a+1|0:a,t=UI(_^D,a^R,1),a=(D=f)+BA|0,a=((n=t+j|0)>>>0<t>>>0?a+1|0:a)+y|0,y=UI(p^(w=w+n|0),(a=w>>>0<n>>>0?a+1|0:a)^O,32),n=a,S=t,a=(p=f)+u|0,a=(t=y+G|0)>>>0<y>>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^D,40),a=Q+(u=f)|0,a=((D=t+g|0)>>>0<g>>>0?a+1|0:a)+n|0,d=a=(n=D)>>>0>(D=D+w|0)>>>0?a+1|0:a,p=UI(y^D,a^p,48),IA=a=f,w=a,y=UI(q^W,L^hA,1),l=a=f,W=r,a=a+wA|0,a=v+((r=y+V|0)>>>0<V>>>0?a+1|0:a)|0,n=F,F=a=(r=r+Y|0)>>>0<Y>>>0?a+1|0:a,n=UI(c^r,n^a,32),a=($=f)+W|0,Y=_=n+_|0,c=UI(_^y,(c=l)^(l=_>>>0<n>>>0?a+1|0:a),40),a=GA+(W=f)|0,a=F+((_=c+_A|0)>>>0<_A>>>0?a+1|0:a)|0,v=_=_+r|0,q=a=_>>>0<r>>>0?a+1|0:a,r=a,a=m+tA|0,a=((y=z+x|0)>>>0<z>>>0?a+1|0:a)+r|0,F=a=(r=_+y|0)>>>0<y>>>0?a+1|0:a,_=UI(r^p,a^w,32),a=(O=f)+AA|0,w=UI((y=_+H|0)^x,(a=y>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=P+(R=f)|0,a=F+((L=w+aA|0)>>>0<aA>>>0?a+1|0:a)|0,a=(F=r+L|0)>>>0<r>>>0?a+1|0:a,r=O,O=a,r=UI(_^F,r^a,48),a=(a=x)+(x=f)|0,_=(y=r+y|0)^w,w=a=y>>>0<r>>>0?a+1|0:a,R=a=UI(_,a^R,1),L=_=f,m=s,s=c,c=UI(n^v,q^$,48),a=(a=l)+(l=f)|0,Y=_=c+Y|0,n=W,W=a=_>>>0<c>>>0?a+1|0:a,s=UI(_^s,n^a,1),a=(v=f)+kA|0,a=d+((_=s+eA|0)>>>0<s>>>0?a+1|0:a)|0,n=D,D=_+D|0,_=K,K=a=n>>>0>D>>>0?a+1|0:a,_=UI(D^m,_^a,32),a=(a=N)+(N=f)|0,d=a=(n=_+k|0)>>>0<_>>>0?a+1|0:a,k=n,s=UI(s^n,a^v,40),a=wA+($=f)|0,v=s,a=K+((s=V+s|0)>>>0<V>>>0?a+1|0:a)|0,K=a=(n=s+D|0)>>>0<D>>>0?a+1|0:a,s=UI(_^n,a^N,48),a=(a=d)+(d=f)|0,q=_=s+k|0,m=a=_>>>0<s>>>0?a+1|0:a,k=e,a=S+IA|0,e=a=(_=p+G|0)>>>0<p>>>0?a+1|0:a,t=UI(_^t,a^u,1),a=sA+(p=f)|0,a=b+((D=t+gA|0)>>>0<gA>>>0?a+1|0:a)|0,S=(D=h+D|0)^k,k=a=D>>>0<h>>>0?a+1|0:a,h=UI(S,a^J,32),N=a=f,S=t,a=a+W|0,a=(t=h+Y|0)>>>0<h>>>0?a+1|0:a,G=t,t^=S,S=a,t=UI(t,a^p,40),a=Q+(u=f)|0,a=k+((p=t+g|0)>>>0<g>>>0?a+1|0:a)|0,b=a=(p=D+p|0)>>>0<D>>>0?a+1|0:a,k=UI(h^p,a^N,48),IA=a=f,D=a,h=UI(M^H,T^AA,1),Y=a=f,H=e,a=a+B|0,a=Z+((e=h+fA|0)>>>0<fA>>>0?a+1|0:a)|0,U=a=(e=e+U|0)>>>0<U>>>0?a+1|0:a,N=UI(c^e,a^l,32),a=(CA=f)+H|0,H=_=N+_|0,c=UI(_^h,(M=_>>>0<N>>>0?a+1|0:a)^Y,40),a=X+(l=f)|0,a=U+((_=I+c|0)>>>0<I>>>0?a+1|0:a)|0,U=_=_+e|0,W=a=_>>>0<e>>>0?a+1|0:a,e=a,a=L+pA|0,a=((h=R+EA|0)>>>0<EA>>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0<h>>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+m|0,D=UI((h=_+q|0)^R,(a=h>>>0<_>>>0?a+1|0:a)^L,40),J=a,a=NA+(R=f)|0,a=Y+((L=D+cA|0)>>>0<cA>>>0?a+1|0:a)|0,a=(Y=e+L|0)>>>0<e>>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=J)+(J=f)|0,_=(h=e+h|0)^D,D=a=h>>>0<e>>>0?a+1|0:a,R=a=UI(_,a^R,1),hA=a,L=_=f,AA=y,T=s,y=c,c=UI(N^U,W^CA,48),a=(N=f)+M|0,U=_=c+H|0,H=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^l,1),a=(l=f)+yA|0,a=b+((_=y+rA|0)>>>0<y>>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0<p>>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(M=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=FA+(CA=f)|0,b=y,a=p+((y=QA+y|0)>>>0<QA>>>0?a+1|0:a)|0,p=y+s|0,y=M,M=a=p>>>0<s>>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0<y>>>0?a+1|0:a,s=r,a=S+IA|0,r=a=(_=k+G|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^u,1),a=(k=f)+GA|0,a=K+((w=t+_A|0)>>>0<t>>>0?a+1|0:a)|0,s=UI(s^(w=w+n|0),(a=w>>>0<n>>>0?a+1|0:a)^x,32),S=n=f,n=a,G=t,a=S+H|0,a=(t=s+U|0)>>>0<s>>>0?a+1|0:a,U=t,t^=G,G=a,t=UI(t,a^k,40),a=DA+(u=f)|0,a=((k=t+oA|0)>>>0<oA>>>0?a+1|0:a)+n|0,K=S,S=a=(n=w+k|0)>>>0<k>>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,m^$,1),H=a=f,K=r,a=a+BA|0,a=O+((r=s+j|0)>>>0<j>>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0<F>>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+K|0,K=_=N+_|0,c=UI(_^s,(c=H)^(H=_>>>0<N>>>0?a+1|0:a),40),a=SA+(v=f)|0,a=F+((_=c+iA|0)>>>0<iA>>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0<r>>>0?a+1|0:a,r=a,a=L+Q|0,a=((s=R+g|0)>>>0<g>>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0<s>>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^hA,(a=s>>>0<_>>>0?a+1|0:a)^L,40),L=a,a=kA+(x=f)|0,a=F+((m=w+eA|0)>>>0<eA>>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0<r>>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0<r>>>0?a+1|0:a,x=a=UI(_,a^x,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+H|0,H=_=c+K|0,K=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+FA|0,a=S+((_=y+QA|0)>>>0<y>>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0<n>>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=BA+($=f)|0,v=y,a=n+((y=j+y|0)>>>0<j>>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0<h>>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0<y>>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+U|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^u,1),a=SA+(k=f)|0,a=M+((D=t+iA|0)>>>0<iA>>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0<p>>>0?a+1|0:a,h=UI(h^D,a^J,32),U=a=f,G=t,a=a+K|0,a=(t=h+H|0)>>>0<h>>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=pA+(H=f)|0,a=p+((k=t+EA|0)>>>0<EA>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0<D>>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+X|0,a=Z+((e=I+h|0)>>>0<I>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0<Y>>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0<N>>>0?a+1|0:a),40),a=wA+(b=f)|0,a=Y+((_=c+V|0)>>>0<V>>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0<e>>>0?a+1|0:a,e=a,a=m+sA|0,a=((h=x+gA|0)>>>0<gA>>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0<h>>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^x,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=B+(J=f)|0,a=Y+((m=D+fA|0)>>>0<fA>>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0<e>>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0<e>>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+tA|0,a=U+((_=y+z|0)>>>0<y>>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0<p>>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=GA+(CA=f)|0,b=y,a=p+((y=_A+y|0)>>>0<_A>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0<s>>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0<y>>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+DA|0,a=S+((w=t+oA|0)>>>0<t>>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0<n>>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0<s>>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=yA+(H=f)|0,a=n+((k=t+rA|0)>>>0<rA>>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0<w>>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+P|0,a=R+((r=s+aA|0)>>>0<aA>>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0<F>>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0<N>>>0?a+1|0:a),40),a=NA+(v=f)|0,a=F+((_=c+cA|0)>>>0<cA>>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0<r>>>0?a+1|0:a,r=a,a=m+B|0,a=((s=J+fA|0)>>>0<fA>>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0<s>>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=SA+(J=f)|0,a=F+((m=w+iA|0)>>>0<iA>>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0<r>>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0<r>>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+P|0,a=S+((_=y+aA|0)>>>0<y>>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0<n>>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=yA+($=f)|0,v=y,a=n+((y=rA+y|0)>>>0<rA>>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0<h>>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0<y>>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^H,1),a=DA+(k=f)|0,a=U+((D=t+oA|0)>>>0<oA>>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0<p>>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0<h>>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=GA+(H=f)|0,a=p+((k=t+_A|0)>>>0<_A>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0<D>>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+BA|0,a=Z+((e=h+j|0)>>>0<j>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0<Y>>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0<N>>>0?a+1|0:a),40),a=NA+(b=f)|0,a=Y+((_=c+cA|0)>>>0<cA>>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0<e>>>0?a+1|0:a,e=a,a=m+wA|0,a=((h=J+V|0)>>>0<V>>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0<h>>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=X+(J=f)|0,a=Y+((m=I+D|0)>>>0<I>>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0<e>>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0<e>>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(b=f)+pA|0,a=U+((_=y+EA|0)>>>0<y>>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0<p>>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=a=(w=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^b,40),a=Q+(CA=f)|0,b=y,a=p+((y=g+y|0)>>>0<g>>>0?a+1|0:a)|0,p=y+s|0,y=U,U=a=p>>>0<s>>>0?a+1|0:a,y=UI(_^p,y^a,48),a=(a=d)+(d=f)|0,l=_=y+w|0,W=a=_>>>0<y>>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+sA|0,a=S+((w=t+gA|0)>>>0<t>>>0?a+1|0:a)|0,n=a=(w=w+n|0)>>>0<n>>>0?a+1|0:a,s=UI(s^w,a^L,32),S=a=f,G=t,a=a+M|0,a=(t=s+K|0)>>>0<s>>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=FA+(H=f)|0,a=n+((k=t+QA|0)>>>0<QA>>>0?a+1|0:a)|0,K=S,S=a=(n=w+k|0)>>>0<w>>>0?a+1|0:a,k=UI(s^n,K^a,48),IA=a=f,w=a,s=UI(q^v,O^$,1),K=a=f,M=r,a=a+kA|0,a=R+((r=s+eA|0)>>>0<eA>>>0?a+1|0:a)|0,F=a=(r=r+F|0)>>>0<F>>>0?a+1|0:a,N=UI(c^r,a^N,32),a=($=f)+M|0,M=_=N+_|0,c=UI(_^s,(c=K)^(K=_>>>0<N>>>0?a+1|0:a),40),a=tA+(v=f)|0,a=F+((_=c+z|0)>>>0<z>>>0?a+1|0:a)|0,q=_=_+r|0,O=a=_>>>0<r>>>0?a+1|0:a,r=a,a=m+NA|0,a=((s=J+cA|0)>>>0<cA>>>0?a+1|0:a)+r|0,F=a=(r=_+s|0)>>>0<s>>>0?a+1|0:a,_=UI(r^k,a^w,32),a=(R=f)+W|0,w=UI((s=_+l|0)^J,(a=s>>>0<_>>>0?a+1|0:a)^m,40),L=a,a=yA+(J=f)|0,a=F+((m=w+rA|0)>>>0<rA>>>0?a+1|0:a)|0,a=(F=r+m|0)>>>0<r>>>0?a+1|0:a,r=R,R=a,r=UI(_^F,r^a,48),a=(a=L)+(L=f)|0,_=(s=r+s|0)^w,w=a=s>>>0<r>>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=h,T=y,y=c,c=UI(N^q,O^$,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^v,1),a=(v=f)+SA|0,a=S+((_=y+iA|0)>>>0<y>>>0?a+1|0:a)|0,n=a=(h=_+n|0)>>>0<n>>>0?a+1|0:a,_=UI(h^T,a^d,32),a=(S=f)+D|0,d=a=(D=_+AA|0)>>>0<_>>>0?a+1|0:a,y=UI(y^D,a^v,40),a=B+($=f)|0,v=y,a=n+((y=fA+y|0)>>>0<fA>>>0?a+1|0:a)|0,n=y+h|0,y=S,S=a=n>>>0<h>>>0?a+1|0:a,y=UI(_^n,y^a,48),a=(a=d)+(d=f)|0,q=_=y+D|0,O=a=_>>>0<y>>>0?a+1|0:a,h=e,a=G+IA|0,e=a=(_=k+u|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^H,1),a=FA+(k=f)|0,a=U+((D=t+QA|0)>>>0<QA>>>0?a+1|0:a)|0,p=a=(D=D+p|0)>>>0<p>>>0?a+1|0:a,h=UI(h^D,a^x,32),U=a=f,G=t,a=a+M|0,a=(t=h+K|0)>>>0<h>>>0?a+1|0:a,u=t,t^=G,G=a,t=UI(t,a^k,40),a=P+(H=f)|0,a=p+((k=t+aA|0)>>>0<aA>>>0?a+1|0:a)|0,a=(p=D+k|0)>>>0<D>>>0?a+1|0:a,D=U,U=a,k=UI(h^p,D^a,48),IA=a=f,D=a,h=UI(b^l,W^CA,1),K=a=f,M=e,a=a+GA|0,a=Z+((e=h+_A|0)>>>0<_A>>>0?a+1|0:a)|0,Y=a=(e=e+Y|0)>>>0<Y>>>0?a+1|0:a,N=UI(c^e,a^N,32),a=(CA=f)+M|0,M=_=N+_|0,c=UI(_^h,(c=K)^(K=_>>>0<N>>>0?a+1|0:a),40),a=kA+(b=f)|0,a=Y+((_=c+eA|0)>>>0<eA>>>0?a+1|0:a)|0,l=_=_+e|0,W=a=_>>>0<e>>>0?a+1|0:a,e=a,a=m+DA|0,a=((h=J+oA|0)>>>0<oA>>>0?a+1|0:a)+e|0,Y=a=(e=_+h|0)>>>0<h>>>0?a+1|0:a,_=UI(e^k,a^D,32),a=(Z=f)+O|0,D=UI((h=_+q|0)^J,(a=h>>>0<_>>>0?a+1|0:a)^m,40),x=a,a=Q+(J=f)|0,a=Y+((m=D+g|0)>>>0<g>>>0?a+1|0:a)|0,a=(Y=e+m|0)>>>0<e>>>0?a+1|0:a,e=Z,Z=a,e=UI(_^Y,e^a,48),a=(a=x)+(x=f)|0,_=(h=e+h|0)^D,D=a=h>>>0<e>>>0?a+1|0:a,J=a=UI(_,a^J,1),m=_=f,AA=s,T=y,y=c,c=UI(N^l,W^CA,48),a=(N=f)+K|0,K=_=c+M|0,M=a=_>>>0<c>>>0?a+1|0:a,y=UI(_^y,a^b,1),a=(l=f)+BA|0,a=U+((_=y+j|0)>>>0<y>>>0?a+1|0:a)|0,p=a=(s=_+p|0)>>>0<p>>>0?a+1|0:a,_=UI(s^T,a^d,32),a=(U=f)+w|0,d=w=_+AA|0,b=a=w>>>0<_>>>0?a+1|0:a,y=UI(y^w,a^l,40),a=wA+(AA=f)|0,l=y,a=p+((y=V+y|0)>>>0<V>>>0?a+1|0:a)|0,w=y+s|0,y=U,U=a=w>>>0<s>>>0?a+1|0:a,y=UI(_^w,y^a,48),a=(a=b)+(b=f)|0,d=_=y+d|0,W=a=_>>>0<y>>>0?a+1|0:a,s=r,a=G+IA|0,r=a=(_=k+u|0)>>>0<k>>>0?a+1|0:a,t=UI(_^t,a^H,1),a=(k=f)+X|0,a=S+((p=I+t|0)>>>0<t>>>0?a+1|0:a)|0,n=a=(p=p+n|0)>>>0<n>>>0?a+1|0:a,S=s=UI(s^p,a^L,32),G=a=f,u=t,a=a+M|0,a=(t=s+K|0)>>>0<s>>>0?a+1|0:a,H=t,t^=u,u=a,t=UI(t,a^k,40),a=pA+(K=f)|0,a=n+((s=t+EA|0)>>>0<EA>>>0?a+1|0:a)|0,M=(s=s+p|0)^S,S=a=s>>>0<p>>>0?a+1|0:a,p=UI(M,a^G,48),L=a=f,k=a,G=n=UI(q^v,O^$,1),M=a=f,v=r,a=a+tA|0,a=R+((r=n+z|0)>>>0<z>>>0?a+1|0:a)|0,a=(r=r+F|0)>>>0<F>>>0?a+1|0:a,F=N,N=a,n=UI(c^r,F^a,32),a=(T=f)+v|0,F=_=n+_|0,c=UI(c=_^G,(G=_>>>0<n>>>0?a+1|0:a)^M,40),a=sA+(M=f)|0,a=N+((_=c+gA|0)>>>0<gA>>>0?a+1|0:a)|0,N=_=_+r|0,v=a=_>>>0<r>>>0?a+1|0:a,r=a,a=m+wA|0,a=((R=V)>>>0>(V=J+V|0)>>>0?a+1|0:a)+r|0,wA=a=(_=_+V|0)>>>0<V>>>0?a+1|0:a,V=UI(_^p,a^k,32),a=(q=f)+W|0,k=UI((r=d+V|0)^J,(a=r>>>0<V>>>0?a+1|0:a)^m,40),R=a,a=pA+(O=f)|0,a=wA+((J=EA)>>>0>(EA=k+EA|0)>>>0?a+1|0:a)|0,a=(EA=_+EA|0)>>>0<_>>>0?a+1|0:a,_=V^EA,V=a,pA=UI(_,a^q,48);a=(wA=f)+R|0,r=a=(_=r+pA|0)>>>0<pA>>>0?a+1|0:a,a=UI(_^k,a^O,1),k=f,q=a,O=h,h=gA,R=sA,sA=UI(n^N,v^T,48),a=(n=f)+G|0,G=h,F=a=(gA=F+sA|0)>>>0<sA>>>0?a+1|0:a,h=UI(c^(N=gA),a^M,1),a=(M=f)+R|0,a=S+(h>>>0>(gA=G+h|0)>>>0?a+1|0:a)|0,c=a=(gA=s+gA|0)>>>0<s>>>0?a+1|0:a,y=UI(y^gA,a^b,32),a=(a=D)+(D=f)|0,S=s=y+O|0,G=a=s>>>0<y>>>0?a+1|0:a,s=UI(s^h,a^M,40),a=(M=f)+SA|0,a=(s>>>0>(iA=s+iA|0)>>>0?a+1|0:a)+c|0,c=a=(c=iA)>>>0>(iA=gA+iA|0)>>>0?a+1|0:a,y=UI(y^iA,a^D,48),a=(h=f)+G|0,D=gA=y+S|0,SA=a=gA>>>0<y>>>0?a+1|0:a,S=I,G=X,a=u+L|0,gA=a=(I=p+H|0)>>>0<p>>>0?a+1|0:a,X=UI(I^t,a^K,1),a=(p=f)+G|0,a=U+((t=S+X|0)>>>0<X>>>0?a+1|0:a)|0,e=UI((t=t+w|0)^e,(a=t>>>0<w>>>0?a+1|0:a)^x,32),S=a,U=oA,oA=X,a=(w=f)+F|0,F=p,p=a=(X=e+N|0)>>>0<e>>>0?a+1|0:a,oA=UI(X^oA,F^a,40),a=(N=f)+DA|0,a=((DA=U+oA|0)>>>0<oA>>>0?a+1|0:a)+S|0,S=DA,t=e^(DA=t+DA|0),e=a=S>>>0>DA>>>0?a+1|0:a,a=UI(t,a^w,48),u=t=f,w=a,F=j,S=BA,j=UI(d^l,W^AA,1),G=a=f,a=a+NA|0,a=Z+((j=(U=j)+cA|0)>>>0<cA>>>0?a+1|0:a)|0,cA=a=(j=Y+j|0)>>>0<Y>>>0?a+1|0:a,BA=UI(j^sA,a^n,32),a=(Y=f)+gA|0,gA=I=BA+I|0,sA=UI(I^U,(n=I>>>0<BA>>>0?a+1|0:a)^G,40),a=(a=S)+(S=f)|0,a=cA+((I=sA+F|0)>>>0<sA>>>0?a+1|0:a)|0,cA=I=I+j|0,NA=a=I>>>0<j>>>0?a+1|0:a,j=a,a=k+FA|0,a=((U=QA)>>>0>(QA=q+QA|0)>>>0?a+1|0:a)+j|0,FA=a=(j=I+QA|0)>>>0<QA>>>0?a+1|0:a,QA=UI(w^j,a^t,32),a=(U=f)+SA|0,t=I=QA+D|0,I=UI(I^q,(F=k)^(k=I>>>0<QA>>>0?a+1|0:a),40),a=GA+(G=f)|0,GA=I,a=FA+((I=_A+I|0)>>>0<_A>>>0?a+1|0:a)|0,a=(I=I+j|0)>>>0<j>>>0?a+1|0:a,FA=I,H=(o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24)^I,F=a,K=a^(o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24),j=UI(BA^cA,Y^NA,48),a=(cA=f)+n|0,n=I=j+gA|0,NA=a=I>>>0<j>>>0?a+1|0:a,BA=rA,a=p+u|0,rA=a=(I=w+X|0)>>>0<X>>>0?a+1|0:a,oA=UI(I^oA,a^N,1),a=(w=f)+yA|0,a=((BA=oA+BA|0)>>>0<oA>>>0?a+1|0:a)+c|0,BA=a=(yA=BA+iA|0)>>>0<BA>>>0?a+1|0:a,gA=UI(yA^pA,a^wA,32),a=(X=f)+NA|0,iA=a=(_A=gA+n|0)>>>0<gA>>>0?a+1|0:a,pA=gA,gA=UI(oA^_A,a^w,40),a=(c=f)+kA|0,a=(gA>>>0>(oA=gA+eA|0)>>>0?a+1|0:a)+BA|0,p=X,X=a=(yA=oA+yA|0)>>>0<oA>>>0?a+1|0:a,oA=UI(pA^(eA=yA),p^a,48),a=(w=f)+iA|0,a=(BA=oA+_A|0)>>>0<oA>>>0?a+1|0:a,_A=BA,BA^=H,C[A+8|0]=BA,C[A+9|0]=BA>>>8,C[A+10|0]=BA>>>16,C[A+11|0]=BA>>>24,iA=a,a^=K,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,yA=I,BA=rA,I=j,j=UI(s^D,M^SA,1),a=(kA=f)+Q|0,a=(j>>>0>(rA=j+g|0)>>>0?a+1|0:a)+V|0,EA=a=(D=rA)>>>0>(rA=EA+rA|0)>>>0?a+1|0:a,I=UI(I^rA,a^cA,32),a=(a=BA)+(BA=f)|0,cA=a=(yA=I+yA|0)>>>0<I>>>0?a+1|0:a,pA=I,yA=UI(j^(V=yA),a^kA,40),a=(s=f)+B|0,a=EA+((I=yA+fA|0)>>>0<yA>>>0?a+1|0:a)|0,a=(I=I+rA|0)>>>0<rA>>>0?a+1|0:a,EA=I,I^=pA,pA=a,rA=UI(I,a^BA,48),a=(D=f)+cA|0,V=I=rA+V|0,cA=I>>>0<rA>>>0?a+1|0:a,sA=I=UI(n^sA,S^NA,1),kA=a=f,a=a+P|0,a=e+((I=I+aA|0)>>>0<aA>>>0?a+1|0:a)|0,P=a=(j=I+DA|0)>>>0<DA>>>0?a+1|0:a,I=(BA=UI(y^j,a^h,32))+_|0,a=(_=f)+r|0,DA=I,I=(aA=UI(e=I^sA,(sA=I>>>0<BA>>>0?a+1|0:a)^kA,40))+z|0,a=(z=f)+tA|0,a=P+(I>>>0<aA>>>0?a+1|0:a)|0,a=(P=I+j|0)>>>0<j>>>0?a+1|0:a,j=P^KA^V,C[0|(I=A)]=j,C[I+1|0]=j>>>8,C[I+2|0]=j>>>16,C[I+3|0]=j>>>24,j=a^i^cA,C[I+4|0]=j,C[I+5|0]=j>>>8,C[I+6|0]=j>>>16,C[I+7|0]=j>>>24,j=(BA=UI(P^BA,a^_,48))+DA|0,a=(DA=f)+sA|0,a=(sA=j>>>0<BA>>>0?a+1|0:a)^(o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24)^pA,P=(o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24)^EA^j,C[I+16|0]=P,C[I+17|0]=P>>>8,C[I+18|0]=P>>>16,C[I+19|0]=P>>>24,C[I+20|0]=a,C[I+21|0]=a>>>8,C[I+22|0]=a>>>16,C[I+23|0]=a>>>24,I=UI(QA^FA,F^U,48),P=f,EA=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,a=(o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24)^UI(gA^_A,c^iA,1)^I,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,a=f^EA^P,C[A+36|0]=a,C[A+37|0]=a>>>8,C[A+38|0]=a>>>16,C[A+39|0]=a>>>24,a=k+P|0,a=(EA=I+t|0)>>>0<I>>>0?a+1|0:a,gA=(o[(I=A)+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^X^a,P=(o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24)^eA^EA,C[I+24|0]=P,C[I+25|0]=P>>>8,C[I+26|0]=P>>>16,C[I+27|0]=P>>>24,C[I+28|0]=gA,C[I+29|0]=gA>>>8,C[I+30|0]=gA>>>16,C[I+31|0]=gA>>>24,gA=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,I=rA^(o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24)^UI(j^aA,z^sA,1),C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,I=D^f^gA,C[A+44|0]=I,C[A+45|0]=I>>>8,C[A+46|0]=I>>>16,C[A+47|0]=I>>>24,j=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,I=BA^(o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24)^UI(V^yA,s^cA,1),C[A+56|0]=I,C[A+57|0]=I>>>8,C[A+58|0]=I>>>16,C[A+59|0]=I>>>24,I=DA^f^j,C[A+60|0]=I,C[A+61|0]=I>>>8,C[A+62|0]=I>>>16,C[A+63|0]=I>>>24,j=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,I=oA^(o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24)^UI(EA^GA,a^G,1),C[A+48|0]=I,C[A+49|0]=I>>>8,C[A+50|0]=I>>>16,C[A+51|0]=I>>>24,I=w^f^j,C[A+52|0]=I,C[A+53|0]=I>>>8,C[A+54|0]=I>>>16,C[A+55|0]=I>>>24}function w(A,I,g,B,Q,E,a){var _,c,t,r,e,y,h,D,p,w,n,k,F,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA,iA,oA,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,kA=0,FA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0,zA=0,jA=0,XA=0,OA=0,WA=0,VA=0,ZA=0,TA=0,$A=0,AI=0,II=0;return s=t=s-560|0,SI(_A=t+352|0),a&&SA(_A,35600,34,0),FI(t+288|0,E,32,0),SA(rA=t+352|0,t+320|0,32,0),SA(rA,g,B,Q),j(rA,yA=t+224|0),hA=o[(aA=E)+32|0]|o[aA+33|0]<<8|o[aA+34|0]<<16|o[aA+35|0]<<24,DA=o[aA+36|0]|o[aA+37|0]<<8|o[aA+38|0]<<16|o[aA+39|0]<<24,cA=o[aA+40|0]|o[aA+41|0]<<8|o[aA+42|0]<<16|o[aA+43|0]<<24,EA=o[aA+44|0]|o[aA+45|0]<<8|o[aA+46|0]<<16|o[aA+47|0]<<24,_A=o[aA+48|0]|o[aA+49|0]<<8|o[aA+50|0]<<16|o[aA+51|0]<<24,E=o[aA+52|0]|o[aA+53|0]<<8|o[aA+54|0]<<16|o[aA+55|0]<<24,tA=o[aA+60|0]|o[aA+61|0]<<8|o[aA+62|0]<<16|o[aA+63|0]<<24,aA=o[aA+56|0]|o[aA+57|0]<<8|o[aA+58|0]<<16|o[aA+59|0]<<24,C[A+56|0]=aA,C[A+57|0]=aA>>>8,C[A+58|0]=aA>>>16,C[A+59|0]=aA>>>24,C[A+60|0]=tA,C[A+61|0]=tA>>>8,C[A+62|0]=tA>>>16,C[A+63|0]=tA>>>24,C[A+48|0]=_A,C[A+49|0]=_A>>>8,C[A+50|0]=_A>>>16,C[A+51|0]=_A>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=cA,C[A+41|0]=cA>>>8,C[A+42|0]=cA>>>16,C[A+43|0]=cA>>>24,C[A+44|0]=EA,C[A+45|0]=EA>>>8,C[A+46|0]=EA>>>16,C[A+47|0]=EA>>>24,C[0|(E=A+32|0)]=hA,C[E+1|0]=hA>>>8,C[E+2|0]=hA>>>16,C[E+3|0]=hA>>>24,C[E+4|0]=DA,C[E+5|0]=DA>>>8,C[E+6|0]=DA>>>16,C[E+7|0]=DA>>>24,S(yA),nA(t,yA),tg(A,t),SI(rA),a&&SA(rA,35600,34,0),SA(a=t+352|0,A,64,0),SA(a,g,B,Q),j(a,eA=t+160|0),S(eA),C[t+288|0]=248&o[t+288|0],C[t+319|0]=63&o[t+319|0]|64,g=o[23+(A=c=t+288|0)|0],cA=Ig(r=o[A+21|0]|o[A+22|0]<<8|g<<16&2031616,0,e=(o[eA+28|0]|o[eA+29|0]<<8|o[eA+30|0]<<16|o[eA+31|0]<<24)>>>7|0,0),_A=f,g=(A=o[eA+27|0])>>>24|0,Q=A<<8|(EA=o[eA+23|0]|o[eA+24|0]<<8|o[eA+25|0]<<16|o[eA+26|0]<<24)>>>24,A=Ig(y=2097151&((3&(DA=(A=(B=o[eA+28|0])>>>16|0)|g))<<30|(g=(B<<=16)|Q)>>>2),0,h=(a=o[c+23|0]|o[c+24|0]<<8|o[c+25|0]<<16|o[c+26|0]<<24)>>>5&2097151,0),g=f+_A|0,B=A>>>0>(Q=A+cA|0)>>>0?g+1|0:g,A=Ig(D=(g=o[eA+23|0])<<16&2031616|o[eA+21|0]|o[eA+22|0]<<8,0,p=(o[c+28|0]|o[c+29|0]<<8|o[c+30|0]<<16|o[c+31|0]<<24)>>>7|0,0),B=f+B|0,_A=g=A+Q|0,Q=A>>>0>g>>>0?B+1|0:B,B=(A=o[c+27|0])>>>24|0,a=A<<8|a>>>24,A=Ig(w=2097151&((3&(B|=g=(A=o[c+28|0])>>>16|0))<<30|(g=(A<<=16)|a)>>>2),0,n=EA>>>5&2097151,0),g=f+Q|0,aA=B=A+_A|0,Q=A>>>0>B>>>0?g+1|0:g,EA=Ig(h,0,n,0),_A=f,g=(A=o[c+19|0])>>>24|0,a=A<<8|(GA=o[c+15|0]|o[c+16|0]<<8|o[c+17|0]<<16|o[c+18|0]<<24)>>>24,B=g,g=Ig(k=(7&(B|=g=(A=o[c+20|0])>>>16|0))<<29|(g=(A<<=16)|a)>>>3,DA=B>>>3|0,e,0),A=f+_A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,a=(g=Ig(r,0,y,0))+B|0,B=f+A|0,g=g>>>0>(EA=a)>>>0?B+1|0:B,B=(A=o[eA+19|0])>>>24|0,_A=A<<8|(kA=o[eA+15|0]|o[eA+16|0]<<8|o[eA+17|0]<<16|o[eA+18|0]<<24)>>>24,A=Ig(F=(7&(cA=(A=(a=o[eA+20|0])>>>16|0)|B))<<29|(B=(a<<=16)|_A)>>>3,N=cA>>>3|0,p,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,A=Ig(D,0,w,0),g=f+g|0,hA=g=A>>>0>(yA=A+B|0)>>>0?g+1|0:g,fA=A=g-((yA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+Q|0,EA=B=(A=(2097151&A)<<11|(cA=yA- -1048576|0)>>>21)>>>0>(aA=A+aA|0)>>>0?B+1|0:B,wA=A=B-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&A)<<11|(_A=aA- -1048576|0)>>>21,a=A>>>21|0,A=Ig(p,0,n,0),g=f,B=A,A=Ig(e,0,h,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,pA=(A=B)+(B=Ig(y,0,w,0))|0,A=f+g|0,A=B>>>0>pA>>>0?A+1|0:A,rA=pA-(g=-2097152&(B=pA- -1048576|0))|0,g=(A-((131071&(Q=A-((pA>>>0<4293918720)-1|0)|0))+(g>>>0>pA>>>0)|0)|0)+a|0,R=g=(A=tA+rA|0)>>>0<rA>>>0?g+1|0:g,L=A,rA=Ig(A,g,470296,0),tA=f,g=Ig(e,0,w,0),A=f,a=g,g=Ig(y,0,p,0),A=f+A|0,g=g>>>0>(a=a+g|0)>>>0?A+1|0:A,A=Q>>>21|0,Q=(2097151&Q)<<11|B>>>21,B=A+g|0,bA=Q=(B=Q>>>0>(a=Q+a|0)>>>0?B+1|0:B)-((a>>>0<4293918720)-1|0)|0,A=a-(g=-2097152&(UA=a- -1048576|0))|0,P=a=B-((131071&Q)+(g>>>0>a>>>0)|0)|0,q=g=aA-(B=-2097152&_A)|0,z=Q=EA-((B>>>0>aA>>>0)+wA|0)|0,X=A,B=Ig(A,a,666643,0),A=f+tA|0,A=B>>>0>(a=B+rA|0)>>>0?A+1|0:A,B=Ig(g,Q,654183,0),g=f+A|0,sA=Q=B+a|0,_A=B>>>0>Q>>>0?g+1|0:g,pA=yA-(A=-2097152&cA)|0,fA=hA-((A>>>0>yA>>>0)+fA|0)|0,g=Ig(y,0,k,DA),B=f,Q=(A=g)+(g=Ig(G=GA>>>6&2097151,0,e,0))|0,A=f+B|0,A=g>>>0>Q>>>0?A+1|0:A,g=Ig(h,0,D,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(r,0,n,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(p,0,M=kA>>>6&2097151,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(w,0,F,N),g=f+A|0,yA=Q=B+Q|0,a=B>>>0>Q>>>0?g+1|0:g,g=(A=o[c+14|0])>>>24|0,Q=A<<8|(hA=o[c+10|0]|o[c+11|0]<<8|o[c+12|0]<<16|o[c+13|0]<<24)>>>24,g=Ig(K=2097151&((1&(g|=A=(B=o[c+15|0])>>>16|0))<<31|(A=(B<<=16)|Q)>>>1),0,e,0),A=f,B=g,g=Ig(y,0,G,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(n,0,k,DA))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(h,0,F,N),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,A=Ig(r,0,D,0),g=f+g|0,cA=B=A+Q|0,Q=A>>>0>B>>>0?g+1|0:g,g=(A=o[eA+14|0])>>>24|0,EA=A<<8|(aA=o[eA+10|0]|o[eA+11|0]<<8|o[eA+12|0]<<16|o[eA+13|0]<<24)>>>24,B=g,g=(A=o[eA+15|0])>>>16|0,g=Ig(U=2097151&((1&(g|=B))<<31|(A=A<<16|EA)>>>1),0,p,0),A=f+Q|0,A=g>>>0>(B=g+cA|0)>>>0?A+1|0:A,g=Ig(w,0,M,0),A=f+A|0,EA=A=g>>>0>(cA=g+B|0)>>>0?A+1|0:A,HA=g=A-((cA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,tA=B=(g=(2097151&g)<<11|(rA=cA- -1048576|0)>>>21)>>>0>(wA=g+yA|0)>>>0?B+1|0:B,MA=g=B-((wA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+fA|0,O=A=(g=(B=(2097151&g)<<11|(yA=wA- -1048576|0)>>>21)+pA|0)>>>0<B>>>0?A+1|0:A,W=g,A=Ig(g,A,-997805,-1),g=f+_A|0,sA=B=A+sA|0,_A=A>>>0>B>>>0?g+1|0:g,pA=(dA=o[23+(_=t+224|0)|0]|o[_+24|0]<<8|o[_+25|0]<<16|o[_+26|0]<<24)>>>5&2097151,B=Ig(b=(A=o[c+2|0])<<16&2031616|o[0|c]|o[c+1|0]<<8,0,n,0),g=f,Q=(A=Ig(D,0,H=(a=o[c+2|0]|o[c+3|0]<<8|o[c+4|0]<<16|o[c+5|0]<<24)>>>5&2097151,0))+B|0,B=f+g|0,B=A>>>0>Q>>>0?B+1|0:B,A=Ig(Y=(o[c+7|0]|o[c+8|0]<<8|o[c+9|0]<<16|o[c+10|0]<<24)>>>7&2097151,0,M,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(U,0,J=hA>>>4&2097151,0),A=f+g|0,hA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=(g=o[c+6|0])<<8|a>>>24,B=A=g>>>24|0,g=(A=o[c+7|0])>>>16|0,g=Ig(d=2097151&((3&(g|=B))<<30|(A=A<<16|a)>>>2),0,F,N),A=f+Q|0,A=g>>>0>(B=g+hA|0)>>>0?A+1|0:A,Q=(g=Ig(G,0,m=(o[eA+7|0]|o[eA+8|0]<<8|o[eA+9|0]<<16|o[eA+10|0]<<24)>>>7&2097151,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,g=Ig(K,0,KA=aA>>>4&2097151,0),A=f+B|0,a=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,A=(g=o[eA+6|0])>>>24|0,hA=g<<8|(aA=o[eA+2|0]|o[eA+3|0]<<8|o[eA+4|0]<<16|o[eA+5|0]<<24)>>>24,g=A,A=Ig(k,DA,l=2097151&((3&(g|=B=(A=o[eA+7|0])>>>16|0))<<30|(A=A<<16|hA)>>>2),0),g=f+a|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,Q=B,B=Ig(u=(A=o[eA+2|0])<<16&2031616|o[0|eA]|o[eA+1|0]<<8,0,h,0),A=f+g|0,A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,g=Ig(r,0,x=aA>>>5&2097151,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,g=B,hA=B=B+pA|0,a=g=g>>>0>B>>>0?A+1|0:A,Q=o[_+21|0]|o[_+22|0]<<8,A=Ig(D,0,b,0),g=f,aA=(B=A)+(A=Ig(F,N,H,0))|0,B=f+g|0,B=A>>>0>aA>>>0?B+1|0:B,A=Ig(U,0,Y,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(J,0,KA,0),g=f+g|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,aA=(A=B)+(B=Ig(M,0,d,0))|0,A=f+g|0,A=B>>>0>aA>>>0?A+1|0:A,g=Ig(G,0,l,0),A=f+A|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,aA=(g=Ig(K,0,m,0))+B|0,B=f+A|0,B=g>>>0>aA>>>0?B+1|0:B,A=Ig(k,DA,x,0),g=f+B|0,g=A>>>0>(aA=A+aA|0)>>>0?g+1|0:g,A=Ig(r,0,u,0),g=f+g|0,A=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,g=(g=B)>>>0>(B=B+Q|0)>>>0?A+1|0:A,Q=B,B=(A=o[_+23|0])<<16&2031616,A=g,B=A=B>>>0>(Q=Q+B|0)>>>0?A+1|0:A,eA=A=A-((Q>>>0<4293918720)-1|0)|0,g=(g=A>>>21|0)+a|0,A=(g=(a=hA=(A=(2097151&A)<<11|(aA=Q- -1048576|0)>>>21)+hA|0)>>>0<A>>>0?g+1|0:g)+_A|0,A=(_A=a+sA|0)>>>0<a>>>0?A+1|0:A,kA=a- -1048576|0,FA=a=g-((a>>>0<4293918720)-1|0)|0,NA=_A-(g=-2097152&kA)|0,YA=A-((g>>>0>_A>>>0)+a|0)|0,hA=Q,_A=B,A=Ig(q,z,470296,0),g=f,B=A,A=Ig(L,R,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(W,O,654183,0))|0,A=f+g|0,GA=Q,a=B>>>0>Q>>>0?A+1|0:A,g=Ig(F,N,b,0),A=f,B=g,g=Ig(M,0,H,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,KA,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(J,0,m,0),B=f+g|0,B=A>>>0>(Q=A+Q|0)>>>0?B+1|0:B,A=Ig(U,0,d,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(G,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(K,0,l,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(k,DA,u,0))|0,g=f+A|0,pA=Q,B=B>>>0>Q>>>0?g+1|0:g,g=(A=o[_+19|0])>>>24|0,fA=A<<8|(sA=o[_+15|0]|o[_+16|0]<<8|o[_+17|0]<<16|o[_+18|0]<<24)>>>24,B=((JA=(A=(Q=o[_+20|0])>>>16|0)|g)>>>3|0)+B|0,pA=Q=(g=(7&JA)<<29|(g=(Q<<=16)|fA)>>>3)+pA|0,Q=g>>>0>Q>>>0?B+1|0:B,fA=sA>>>6&2097151,A=Ig(M,0,b,0),g=f,B=A,A=Ig(U,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,sA=(A=B)+(B=Ig(Y,0,m,0))|0,A=f+g|0,A=B>>>0>sA>>>0?A+1|0:A,B=Ig(J,0,l,0),g=f+A|0,g=B>>>0>(sA=B+sA|0)>>>0?g+1|0:g,B=Ig(d,0,KA,0),A=f+g|0,A=B>>>0>(sA=B+sA|0)>>>0?A+1|0:A,g=Ig(G,0,u,0),B=f+A|0,B=g>>>0>(sA=g+sA|0)>>>0?B+1|0:B,A=Ig(K,0,x,0),g=f+B|0,A=A>>>0>(sA=A+sA|0)>>>0?g+1|0:g,qA=A=(lA=sA+fA|0)>>>0<sA>>>0?A+1|0:A,ZA=A=A-((lA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(LA=lA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,jA=A=B>>>0>(zA=B+pA|0)>>>0?A+1|0:A,TA=A=A-((zA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(xA=zA- -1048576|0)>>>21,A=(A>>>21|0)+a|0,g=(B>>>0>(Q=B+GA|0)>>>0?A+1|0:A)+_A|0,_A=(B=Q+hA|0)-(A=-2097152&aA)|0,eA=A=(g=B>>>0<Q>>>0?g+1|0:g)-((A>>>0>B>>>0)+eA|0)|0,$A=A=A-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(vA=_A- -1048576|0)>>>21,A=(A>>21)+YA|0,Q=A=B>>>0>(a=B+NA|0)>>>0?A+1|0:A,VA=A=A-((a>>>0<4293918720)-1|0)|0,RA=(2097151&A)<<11|(GA=a- -1048576|0)>>>21,hA=A>>21,JA=wA-(A=-2097152&yA)|0,MA=tA-((A>>>0>wA>>>0)+MA|0)|0,A=Ig(e,0,p,0),PA=g=f,NA=A,sA=A- -1048576|0,uA=g=g-((A>>>0<4293918720)-1|0)|0,V=A=g>>>21|0,A=Ig(v=(2097151&g)<<11|sA>>>21,A,-683901,-1),g=f+EA|0,g=A>>>0>(B=A+cA|0)>>>0?g+1|0:g,yA=B-(A=-2097152&rA)|0,aA=g-((A>>>0>B>>>0)+HA|0)|0,g=Ig(n,0,G,0),A=f,B=g,g=Ig(e,0,J,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(y,0,K,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,EA=(g=B)+(B=Ig(D,0,k,DA))|0,g=f+A|0,g=B>>>0>EA>>>0?g+1|0:g,A=Ig(h,0,M,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,A=Ig(r,0,F,N),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(p,0,KA,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,U,0),A=f+A|0,cA=B=g+EA|0,EA=g>>>0>B>>>0?A+1|0:A,A=Ig(y,0,J,0),g=f,B=A,A=Ig(e,0,Y,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,tA=(A=Ig(D,0,G,0))+B|0,B=f+g|0,B=A>>>0>tA>>>0?B+1|0:B,A=Ig(n,0,K,0),g=f+B|0,g=A>>>0>(tA=A+tA|0)>>>0?g+1|0:g,B=Ig(k,DA,F,N),A=f+g|0,A=B>>>0>(tA=B+tA|0)>>>0?A+1|0:A,g=Ig(h,0,U,0),A=f+A|0,A=g>>>0>(B=g+tA|0)>>>0?A+1|0:A,tA=(g=B)+(B=Ig(r,0,M,0))|0,g=f+A|0,g=B>>>0>tA>>>0?g+1|0:g,A=Ig(p,0,m,0),B=f+g|0,B=A>>>0>(tA=A+tA|0)>>>0?B+1|0:B,A=Ig(w,0,KA,0),g=f+B|0,fA=g=A>>>0>(pA=A+tA|0)>>>0?g+1|0:g,OA=A=g-((pA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(wA=pA- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,rA=A=g>>>0>(HA=g+cA|0)>>>0?A+1|0:A,mA=A=A-((HA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+aA|0,yA=g=(A=(2097151&A)<<11|(tA=HA- -1048576|0)>>>21)>>>0>(YA=A+yA|0)>>>0?g+1|0:g,XA=A=g-((YA>>>0<4293918720)-1|0)|0,EA=(2097151&A)<<11|(aA=YA- -1048576|0)>>>21,A=(A>>21)+MA|0,Z=A=(g=EA+JA|0)>>>0<EA>>>0?A+1|0:A,T=g,A=Ig(g,A,-683901,-1),g=f+hA|0,RA=B=A+RA|0,hA=A>>>0>B>>>0?g+1|0:g,A=Ig(y,0,b,0),g=f,B=A,A=Ig(n,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(F,N,Y,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(M,0,J,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(D,0,d,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(G,0,KA,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(K,0,U,0),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(k,DA,m,0))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(h,0,x,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,g=Ig(r,0,l,0),A=f+B|0,A=g>>>0>(EA=g+EA|0)>>>0?A+1|0:A,B=Ig(w,0,u,0),g=f+A|0,MA=EA=B+EA|0,B=B>>>0>EA>>>0?g+1|0:g,g=(A=o[_+27|0])>>>24|0,cA=A<<8|dA>>>24,EA=2097151&((3&(g|=A=(EA=o[_+28|0])>>>16|0))<<30|(A=(EA<<=16)|cA)>>>2),g=B,cA=A=EA+MA|0,EA=A>>>0<EA>>>0?g+1|0:g,JA=Ig(X,P,470296,0),MA=f,A=(B=(2097151&bA)<<11|UA>>>21)+(NA-(g=-2097152&sA)|0)|0,g=PA-((524287&uA)+(g>>>0>NA>>>0)|0)+(bA>>>21)|0,$=g=A>>>0<B>>>0?g+1|0:g,AA=A,g=Ig(A,g,666643,0),A=f+MA|0,A=g>>>0>(B=g+JA|0)>>>0?A+1|0:A,sA=(g=Ig(L,R,654183,0))+B|0,B=f+A|0,B=g>>>0>sA>>>0?B+1|0:B,g=Ig(q,z,-997805,-1),A=f+B|0,A=g>>>0>(sA=g+sA|0)>>>0?A+1|0:A,B=Ig(W,O,136657,0),g=f+A|0,kA=(A=(2097151&FA)<<11|kA>>>21)+(sA=B+sA|0)|0,g=(FA>>>21|0)+(B>>>0>sA>>>0?g+1|0:g)|0,uA=sA=EA-((cA>>>0<4293918720)-1|0)|0,A=(A>>>0>kA>>>0?g+1|0:g)+EA|0,g=(EA=cA+kA|0)-(B=-2097152&(PA=cA- -1048576|0))|0,B=(A=(A=EA>>>0<kA>>>0?A+1|0:A)-((B>>>0>EA>>>0)+sA|0)|0)+hA|0,JA=EA=A-((g>>>0<4293918720)-1|0)|0,NA=(B=(cA=g+RA|0)>>>0<g>>>0?B+1|0:B)-(((g=-2097152&(MA=g- -1048576|0))>>>0>cA>>>0)+EA|0)|0,dA=A=cA-g|0,EA=a,a=Q,WA=YA-(A=-2097152&aA)|0,sA=yA-((A>>>0>YA>>>0)+XA|0)|0,A=Ig(AA,$,-683901,-1),g=f,Q=(B=A)+(A=Ig(v,V,136657,0))|0,B=f+g|0,g=rA+(A>>>0>Q>>>0?B+1|0:B)|0,tA=(B=Q+HA|0)-(A=-2097152&tA)|0,yA=(g=B>>>0<HA>>>0?g+1|0:g)-((A>>>0>B>>>0)+mA|0)|0,g=Ig(v,V,-997805,-1),A=f+fA|0,A=g>>>0>(B=g+pA|0)>>>0?A+1|0:A,Q=(g=Ig(AA,$,136657,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(X,P,-683901,-1),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,aA=Q-(A=-2097152&wA)|0,hA=g-((A>>>0>Q>>>0)+OA|0)|0,g=Ig(n,0,J,0),A=f,B=g,g=Ig(y,0,Y,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(e,0,d,0))+B|0,B=f+A|0,B=g>>>0>Q>>>0?B+1|0:B,A=Ig(F,N,G,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(D,0,K,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,B=Ig(k,DA,M,0),g=f+A|0,g=B>>>0>(Q=B+Q|0)>>>0?g+1|0:g,B=Ig(h,0,KA,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(r,0,U,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(p,0,l,0),g=f+B|0,g=A>>>0>(Q=A+Q|0)>>>0?g+1|0:g,B=Ig(w,0,m,0),A=f+g|0,cA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,A=Ig(n,0,Y,0),g=f,B=A,A=Ig(e,0,H,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,rA=(A=B)+(B=Ig(D,0,J,0))|0,A=f+g|0,A=B>>>0>rA>>>0?A+1|0:A,g=Ig(y,0,d,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,A=Ig(G,0,M,0),g=f+B|0,g=A>>>0>(rA=A+rA|0)>>>0?g+1|0:g,B=Ig(F,N,K,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,B=Ig(k,DA,U,0),g=f+A|0,g=B>>>0>(rA=B+rA|0)>>>0?g+1|0:g,B=Ig(h,0,m,0),A=f+g|0,A=B>>>0>(rA=B+rA|0)>>>0?A+1|0:A,g=Ig(r,0,KA,0),B=f+A|0,B=g>>>0>(rA=g+rA|0)>>>0?B+1|0:B,rA=(A=Ig(p,0,x,0))+rA|0,g=f+B|0,B=Ig(w,0,l,0),A=f+(A>>>0>rA>>>0?g+1|0:g)|0,YA=A=B>>>0>(XA=B+rA|0)>>>0?A+1|0:A,gA=A=A-((XA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(bA=XA- -1048576|0)>>>21,A=(A>>>21|0)+Q|0,UA=A=B>>>0>(RA=B+cA|0)>>>0?A+1|0:A,CA=A=A-((RA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(FA=RA- -1048576|0)>>>21,A=(A>>>21|0)+hA|0,kA=A=B>>>0>(HA=B+aA|0)>>>0?A+1|0:A,BA=A=A-((HA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(fA=HA- -1048576|0)>>>21,A=(A>>21)+yA|0,Q=A=B>>>0>(aA=B+tA|0)>>>0?A+1|0:A,yA=A=A-((aA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(B=aA- -1048576|0)>>>21,A=(A>>21)+sA|0,OA=A=(cA=hA+WA|0)>>>0<hA>>>0?A+1|0:A,mA=cA,A=Ig(cA,A,-683901,-1),g=f,cA=A,A=Ig(T,Z,136657,0),g=f+g|0,A=(A>>>0>(cA=cA+A|0)>>>0?g+1|0:g)+a|0,AI=(a=EA+cA|0)-(g=-2097152&GA)|0,II=(A=a>>>0<cA>>>0?A+1|0:A)-((g>>>0>a>>>0)+VA|0)|0,hA=_A,cA=eA,_A=Ig(mA,OA,136657,0),a=f,WA=A=aA-(g=-2097152&B)|0,IA=Q=Q-((g>>>0>aA>>>0)+yA|0)|0,B=Ig(T,Z,-997805,-1),g=f+a|0,g=B>>>0>(_A=B+_A|0)>>>0?g+1|0:g,B=Ig(A,Q,-683901,-1),A=f+g|0,VA=Q=B+_A|0,EA=B>>>0>Q>>>0?A+1|0:A,A=Ig(W,O,470296,0),g=f,Q=(B=A)+(A=Ig(q,z,666643,0))|0,B=f+g|0,g=jA+(A>>>0>Q>>>0?B+1|0:B)|0,GA=A=Q+zA|0,a=g=A>>>0<zA>>>0?g+1|0:g,g=Ig(W,O,666643,0),A=f+qA|0,A=g>>>0>(B=g+lA|0)>>>0?A+1|0:A,tA=B-(g=-2097152&LA)|0,pA=A-((g>>>0>B>>>0)+ZA|0)|0,g=Ig(U,0,b,0),A=f,B=g,g=Ig(H,0,KA,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(Y,0,l,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,B=Ig(J,0,x,0),A=f+g|0,A=B>>>0>(Q=B+Q|0)>>>0?A+1|0:A,g=Ig(d,0,m,0),B=f+A|0,B=g>>>0>(Q=g+Q|0)>>>0?B+1|0:B,A=Ig(K,0,u,0),g=f+B|0,aA=Q=A+Q|0,Q=A>>>0>Q>>>0?g+1|0:g,g=(A=o[_+14|0])>>>24|0,_A=A<<8|(yA=o[_+10|0]|o[_+11|0]<<8|o[_+12|0]<<16|o[_+13|0]<<24)>>>24,g=2097151&((1&(g|=B=(A=o[_+15|0])>>>16|0))<<31|(A=_A|A<<16)>>>1),A=Q,aA=B=g+aA|0,Q=g>>>0>B>>>0?A+1|0:A,_A=yA>>>4&2097151,A=Ig(b,0,KA,0),g=f,B=A,A=Ig(H,0,m,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(Y,0,x,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,yA=(A=B)+(B=Ig(J,0,u,0))|0,A=f+g|0,A=B>>>0>yA>>>0?A+1|0:A,g=Ig(d,0,l,0),B=f+A|0,A=g>>>0>(yA=g+yA|0)>>>0?B+1|0:B,eA=A=(LA=_A+yA|0)>>>0<yA>>>0?A+1|0:A,QA=A=A-((LA>>>0<4293918720)-1|0)|0,g=(B=A>>>21|0)+Q|0,wA=g=(A=(2097151&A)<<11|(sA=LA- -1048576|0)>>>21)>>>0>(jA=A+aA|0)>>>0?g+1|0:g,iA=A=g-((jA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(rA=jA- -1048576|0)>>>21,A=(A>>>21|0)+pA|0,yA=A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,oA=A=A-((tA>>>0<4293918720)-1|0)|0,g=(B=A>>21)+a|0,ZA=g=(g=(A=(2097151&A)<<11|(aA=tA- -1048576|0)>>>21)>>>0>(Q=A+GA|0)>>>0?g+1|0:g)-(((B=-2097152&xA)>>>0>Q>>>0)+TA|0)|0,xA=A=Q-B|0,_A=A- -1048576|0,TA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+EA|0,g=((A=(2097151&A)<<11|_A>>>21)>>>0>(Q=A+VA|0)>>>0?B+1|0:B)+cA|0,lA=g=(g=(A=Q)>>>0>(Q=Q+hA|0)>>>0?g+1|0:g)-(((B=-2097152&vA)>>>0>Q>>>0)+$A|0)|0,cA=A=Q-B|0,a=A- -1048576|0,qA=A=g-((A>>>0<4293918720)-1|0)|0,B=(g=A>>21)+II|0,vA=A=(B=(A=(2097151&A)<<11|a>>>21)>>>0>(EA=A+AI|0)>>>0?B+1|0:B)-((EA>>>0<4293918720)-1|0)|0,GA=dA- -1048576|0,pA=NA-((dA>>>0<4293918720)-1|0)|0,hA=(2097151&A)<<11|(Q=EA- -1048576|0)>>>21,A=(A>>21)+NA|0,$A=(dA=hA+dA|0)-(g=-2097152&GA)|0,AI=(hA>>>0>dA>>>0?A+1|0:A)-((g>>>0>dA>>>0)+pA|0)|0,II=EA-(A=-2097152&Q)|0,VA=B-((A>>>0>EA>>>0)+vA|0)|0,zA=cA-(A=-2097152&a)|0,dA=lA-((A>>>0>cA>>>0)+qA|0)|0,A=Ig(mA,OA,-997805,-1),g=f,B=A,A=Ig(T,Z,654183,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(WA,IA,136657,0))|0,A=f+g|0,g=ZA+(B>>>0>Q>>>0?A+1|0:A)|0,lA=(B=Q+xA|0)-(A=-2097152&_A)|0,qA=(g=B>>>0<xA>>>0?g+1|0:g)-((A>>>0>B>>>0)+TA|0)|0,xA=HA-(A=-2097152&fA)|0,NA=kA-((A>>>0>HA>>>0)+BA|0)|0,g=Ig(AA,$,-997805,-1),A=f,B=g,g=Ig(v,V,654183,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(X,P,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(L,R,-683901,-1),B=f+g|0,g=UA+(A>>>0>(Q=A+Q|0)>>>0?B+1|0:B)|0,fA=(B=Q+RA|0)-(A=-2097152&FA)|0,kA=(g=B>>>0<RA>>>0?g+1|0:g)-((A>>>0>B>>>0)+CA|0)|0,g=Ig(AA,$,654183,0),A=f,B=g,g=Ig(v,V,470296,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,Q=(g=Ig(X,P,-997805,-1))+B|0,B=f+A|0,g=YA+(g>>>0>Q>>>0?B+1|0:B)|0,g=(A=Q+XA|0)>>>0<XA>>>0?g+1|0:g,B=A,A=Ig(L,R,136657,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(q,z,-683901,-1))|0,A=f+g|0,_A=Q-(g=-2097152&bA)|0,a=(B>>>0>Q>>>0?A+1|0:A)-((g>>>0>Q>>>0)+gA|0)|0,Q=(o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24)>>>7|0,A=Ig(e,0,b,0),g=f,EA=(B=A)+(A=Ig(y,0,H,0))|0,B=f+g|0,B=A>>>0>EA>>>0?B+1|0:B,A=Ig(D,0,Y,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(F,N,J,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(n,0,d,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(G,0,U,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(M,0,K,0),B=f+A|0,B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,A=Ig(k,DA,KA,0),g=f+B|0,g=A>>>0>(EA=A+EA|0)>>>0?g+1|0:g,B=Ig(h,0,l,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,B=Ig(r,0,m,0),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,B=Ig(p,0,u,0),A=f+g|0,A=B>>>0>(EA=B+EA|0)>>>0?A+1|0:A,g=Ig(w,0,x,0),B=f+A|0,g=B=g>>>0>(EA=g+EA|0)>>>0?B+1|0:B,UA=(B=(2097151&uA)<<11|PA>>>21)+(A=Q+EA|0)|0,A=(uA>>>21|0)+(g=A>>>0<EA>>>0?g+1|0:g)|0,hA=A=B>>>0>UA>>>0?A+1|0:A,vA=g=A-((UA>>>0<4293918720)-1|0)|0,B=(A=g>>>21|0)+a|0,cA=B=(g=(2097151&g)<<11|(DA=UA- -1048576|0)>>>21)>>>0>(FA=g+_A|0)>>>0?B+1|0:B,PA=g=B-((FA>>>0<4293918720)-1|0)|0,A=(A=g>>21)+kA|0,_A=A=(g=(2097151&g)<<11|(EA=FA- -1048576|0)>>>21)>>>0>(fA=g+fA|0)>>>0?A+1|0:A,bA=g=A-((fA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+NA|0,uA=B=(g=(Q=(2097151&g)<<11|(a=fA- -1048576|0)>>>21)+xA|0)>>>0<Q>>>0?B+1|0:B,NA=g,A=Ig(g,B,-683901,-1),g=f+qA|0,kA=B=A+lA|0,Q=A>>>0>B>>>0?g+1|0:g,g=Ig(T,Z,470296,0),A=f+yA|0,A=g>>>0>(tA=g+tA|0)>>>0?A+1|0:A,g=Ig(mA,OA,654183,0),A=f+(A-(((B=-2097152&aA)>>>0>tA>>>0)+oA|0)|0)|0,A=g>>>0>(aA=g+(tA-B|0)|0)>>>0?A+1|0:A,B=Ig(WA,IA,-997805,-1),g=f+A|0,g=B>>>0>(aA=B+aA|0)>>>0?g+1|0:g,YA=B=fA-(A=-2097152&a)|0,KA=_A=_A-((A>>>0>fA>>>0)+bA|0)|0,aA=(a=Ig(NA,uA,136657,0))+aA|0,A=f+g|0,B=Ig(B,_A,-683901,-1),g=f+(a>>>0>aA>>>0?A+1|0:A)|0,_A=g=B>>>0>(yA=B+aA|0)>>>0?g+1|0:g,bA=A=g-((yA>>>0<4293918720)-1|0)|0,g=(2097151&A)<<11|(a=yA- -1048576|0)>>>21,A=(A>>21)+Q|0,fA=g=(A=g>>>0>(aA=g+kA|0)>>>0?A+1|0:A)-((aA>>>0<4293918720)-1|0)|0,tA=(2097151&g)<<11|(Q=aA- -1048576|0)>>>21,g=(g>>21)+dA|0,zA=kA=tA+zA|0,kA=tA>>>0>kA>>>0?g+1|0:g,dA=aA-(g=-2097152&Q)|0,XA=A-((g>>>0>aA>>>0)+fA|0)|0,lA=yA-(A=-2097152&a)|0,qA=_A-((A>>>0>yA>>>0)+bA|0)|0,A=Ig(T,Z,666643,0),B=wA+f|0,B=(a=A+jA|0)>>>0<jA>>>0?B+1|0:B,Q=(A=Ig(mA,OA,470296,0))+(a-(g=-2097152&rA)|0)|0,g=f+(B-((g>>>0>a>>>0)+iA|0)|0)|0,g=A>>>0>Q>>>0?g+1|0:g,B=Ig(WA,IA,654183,0),A=f+g|0,aA=Q=B+Q|0,Q=B>>>0>Q>>>0?A+1|0:A,a=FA-(A=-2097152&EA)|0,_A=cA-((A>>>0>FA>>>0)+PA|0)|0,A=Ig(AA,$,470296,0),g=f,B=A,A=Ig(v,V,666643,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,A=Ig(X,P,654183,0),g=f+g|0,g=A>>>0>(B=A+B|0)>>>0?g+1|0:g,EA=(A=B)+(B=Ig(L,R,-997805,-1))|0,A=f+g|0,A=B>>>0>EA>>>0?A+1|0:A,g=Ig(q,z,136657,0),A=f+A|0,A=g>>>0>(B=g+EA|0)>>>0?A+1|0:A,EA=(g=Ig(W,O,-683901,-1))+B|0,B=f+A|0,g=hA+(g>>>0>EA>>>0?B+1|0:B)|0,FA=(B=(2097151&JA)<<11|MA>>>21)+((EA=EA+UA|0)-(A=-2097152&DA)|0)|0,A=((g=EA>>>0<UA>>>0?g+1|0:g)-((A>>>0>EA>>>0)+vA|0)|0)+(JA>>21)|0,fA=A=B>>>0>FA>>>0?A+1|0:A,xA=A=A-((FA>>>0<4293918720)-1|0)|0,g=a,a=(2097151&A)<<11|(rA=FA- -1048576|0)>>>21,A=(A>>21)+_A|0,bA=A=(B=g+a|0)>>>0<a>>>0?A+1|0:A,UA=B,A=Ig(B,A,-683901,-1),g=f+Q|0,g=A>>>0>(B=A+aA|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(NA,uA,-997805,-1))|0,A=f+g|0,A=B>>>0>Q>>>0?A+1|0:A,g=Ig(YA,KA,136657,0),B=f+A|0,MA=Q=g+Q|0,cA=g>>>0>Q>>>0?B+1|0:B,aA=LA-(A=-2097152&sA)|0,hA=eA-((A>>>0>LA>>>0)+QA|0)|0,g=Ig(b,0,m,0),A=f,B=g,g=Ig(H,0,l,0),A=f+A|0,A=g>>>0>(B=B+g|0)>>>0?A+1|0:A,g=Ig(Y,0,u,0),A=f+A|0,A=g>>>0>(B=g+B|0)>>>0?A+1|0:A,Q=(g=Ig(d,0,x,0))+B|0,B=f+A|0,g=g>>>0>Q>>>0?B+1|0:B,DA=B=(A=(o[_+7|0]|o[_+8|0]<<8|o[_+9|0]<<16|o[_+10|0]<<24)>>>7&2097151)+Q|0,EA=A>>>0>B>>>0?g+1|0:g,A=Ig(b,0,l,0),g=f,B=A,A=Ig(H,0,x,0),g=f+g|0,g=A>>>0>(B=B+A|0)>>>0?g+1|0:g,Q=(A=B)+(B=Ig(d,0,u,0))|0,A=f+g|0,_A=Q,Q=B>>>0>Q>>>0?A+1|0:A,A=(g=o[_+6|0])>>>24|0,a=g<<8|(vA=o[_+2|0]|o[_+3|0]<<8|o[_+4|0]<<16|o[_+5|0]<<24)>>>24,B=A,g=(A=o[_+7|0])>>>16|0,g|=B,B=Q,a=B=(A=2097151&((3&g)<<30|(A=A<<16|a)>>>2))>>>0>(_A=A+_A|0)>>>0?B+1|0:B,RA=A=B-((_A>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(wA=_A- -1048576|0)>>>21,A=(A>>>21|0)+EA|0,tA=A=B>>>0>(eA=B+DA|0)>>>0?A+1|0:A,PA=A=A-((eA>>>0<4293918720)-1|0)|0,B=(g=A>>>21|0)+hA|0,B=(A=(2097151&A)<<11|(yA=eA- -1048576|0)>>>21)>>>0>(Q=A+aA|0)>>>0?B+1|0:B,g=Ig(mA,OA,666643,0),A=f+B|0,A=g>>>0>(Q=g+Q|0)>>>0?A+1|0:A,g=Ig(WA,IA,470296,0),A=f+A|0,A=g>>>0>(B=g+Q|0)>>>0?A+1|0:A,Q=(g=B)+(B=Ig(UA,bA,136657,0))|0,g=f+A|0,g=B>>>0>Q>>>0?g+1|0:g,A=Ig(NA,uA,654183,0),g=f+g|0,g=A>>>0>(B=A+Q|0)>>>0?g+1|0:g,aA=(A=Ig(YA,KA,-997805,-1))+B|0,B=f+g|0,hA=B=A>>>0>aA>>>0?B+1|0:B,JA=A=B-((aA>>>0<4293918720)-1|0)|0,B=(2097151&A)<<11|(DA=aA- -1048576|0)>>>21,A=(A>>21)+cA|0,MA=B=(A=B>>>0>(Q=B+MA|0)>>>0?A+1|0:A)-((Q>>>0<4293918720)-1|0)|0,EA=(2097151&B)<<11|(cA=Q- -1048576|0)>>>21,B=(B>>21)+qA|0,HA=sA=EA+lA|0,sA=EA>>>0>sA>>>0?B+1|0:B,EA=Q,g=A,Q=(FA-(A=-2097152&rA)|0)+(rA=(2097151&pA)<<11|GA>>>21)|0,A=(fA-((A>>>0>FA>>>0)+xA|0)|0)+(pA>>21)|0,pA=A=Q>>>0<rA>>>0?A+1|0:A,lA=A=A-((Q>>>0<4293918720)-1|0)|0,FA=B=A>>21,A=Ig(mA=(2097151&A)<<11|(fA=Q- -1048576|0)>>>21,B,-683901,-1),g=f+g|0,g=A>>>0>(B=A+EA|0)>>>0?g+1|0:g,qA=B-(A=-2097152&cA)|0,LA=g-((A>>>0>B>>>0)+MA|0)|0,g=Ig(mA,FA,136657,0),A=f+hA|0,A=g>>>0>(B=g+aA|0)>>>0?A+1|0:A,jA=B-(g=-2097152&DA)|0,JA=A-((g>>>0>B>>>0)+JA|0)|0,g=Ig(WA,IA,666643,0),A=f+(tA-(((B=-2097152&yA)>>>0>eA>>>0)+PA|0)|0)|0,A=g>>>0>(EA=g+(eA-B|0)|0)>>>0?A+1|0:A,B=Ig(UA,bA,-997805,-1),g=f+A|0,g=B>>>0>(EA=B+EA|0)>>>0?g+1|0:g,A=Ig(NA,uA,470296,0),B=f+g|0,B=A>>>0>(EA=A+EA|0)>>>0?B+1|0:B,g=Ig(YA,KA,654183,0),A=f+B|0,MA=EA=g+EA|0,hA=g>>>0>EA>>>0?A+1|0:A,B=vA>>>5&2097151,A=Ig(b,0,x,0),g=f,cA=A,A=Ig(H,0,u,0),g=f+g|0,A=A>>>0>(EA=cA+A|0)>>>0?g+1|0:g,cA=g=B+EA|0,B=A=g>>>0<EA>>>0?A+1|0:A,eA=(g=Ig(b,0,u,0))+(A=(A=o[_+2|0])<<16&2031616|o[0|_]|o[_+1|0]<<8)|0,g=f,rA=g=A>>>0>eA>>>0?g+1|0:g,xA=g=g-((eA>>>0<4293918720)-1|0)|0,A=(A=g>>>21|0)+B|0,yA=A=(g=(2097151&g)<<11|(tA=eA- -1048576|0)>>>21)>>>0>(GA=g+cA|0)>>>0?A+1|0:A,vA=g=A-((GA>>>0<4293918720)-1|0)|0,B=(2097151&g)<<11|(aA=GA- -1048576|0)>>>21,g=(g>>>21|0)+a|0,g=B>>>0>(EA=B+_A|0)>>>0?g+1|0:g,B=Ig(UA,bA,654183,0),A=f+(g-(((a=-2097152&wA)>>>0>EA>>>0)+RA|0)|0)|0,A=B>>>0>(_A=B+(EA-a|0)|0)>>>0?A+1|0:A,g=Ig(NA,uA,666643,0),A=f+A|0,A=g>>>0>(B=g+_A|0)>>>0?A+1|0:A,DA=(g=B)+(B=Ig(YA,KA,470296,0))|0,g=f+A|0,cA=g=B>>>0>DA>>>0?g+1|0:g,PA=g=g-((DA>>>0<4293918720)-1|0)|0,B=(A=g>>21)+hA|0,wA=g=(B=(g=(2097151&g)<<11|(EA=DA- -1048576|0)>>>21)>>>0>(_A=g+MA|0)>>>0?B+1|0:B)-((_A>>>0<4293918720)-1|0)|0,hA=(2097151&g)<<11|(a=_A- -1048576|0)>>>21,g=(g>>21)+JA|0,uA=NA=hA+jA|0,hA=hA>>>0>NA>>>0?g+1|0:g,A=Ig(mA,FA,-997805,-1),g=f+B|0,g=A>>>0>(_A=A+_A|0)>>>0?g+1|0:g,JA=_A-(A=-2097152&a)|0,MA=g-((A>>>0>_A>>>0)+wA|0)|0,g=Ig(mA,FA,654183,0),A=f+cA|0,A=g>>>0>(B=g+DA|0)>>>0?A+1|0:A,NA=B-(g=-2097152&EA)|0,wA=A-((g>>>0>B>>>0)+PA|0)|0,A=Ig(UA,bA,470296,0),B=f+(yA-(((g=-2097152&aA)>>>0>GA>>>0)+vA|0)|0)|0,B=A>>>0>(a=A+(GA-g|0)|0)>>>0?B+1|0:B,g=Ig(YA,KA,666643,0),A=f+B|0,_A=a=g+a|0,B=g>>>0>a>>>0?A+1|0:A,g=Ig(UA,bA,666643,0),A=f+(rA-((4095&xA)+((a=-2097152&tA)>>>0>eA>>>0)|0)|0)|0,DA=A=g>>>0>(aA=g+(eA-a|0)|0)>>>0?A+1|0:A,rA=A=A-((aA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(cA=aA- -1048576|0)>>>21,A=(A>>21)+B|0,B=A=a>>>0>(EA=a+_A|0)>>>0?A+1|0:A,tA=A=A-((EA>>>0<4293918720)-1|0)|0,a=(2097151&A)<<11|(_A=EA- -1048576|0)>>>21,A=(A>>21)+wA|0,a=a>>>0>(yA=a+NA|0)>>>0?A+1|0:A,A=Ig(mA,FA,470296,0),B=f+B|0,B=A>>>0>(g=A+EA|0)>>>0?B+1|0:B,EA=g-(A=-2097152&_A)|0,_A=B-((A>>>0>g>>>0)+tA|0)|0,g=Ig(mA,FA,666643,0),A=f+(DA-(((B=-2097152&cA)>>>0>aA>>>0)+rA|0)|0)|0,g=(B=(A=g>>>0>(wA=g+(aA-B|0)|0)>>>0?A+1|0:A)>>21)+_A|0,A=(A=(g=(A=(2097151&A)<<11|wA>>>21)>>>0>(rA=A+EA|0)>>>0?g+1|0:g)>>21)+a|0,g=(g=(A=(g=(2097151&g)<<11|rA>>>21)>>>0>(tA=g+yA|0)>>>0?A+1|0:A)>>21)+MA|0,B=(A=(g=(A=(2097151&A)<<11|tA>>>21)>>>0>(a=A+JA|0)>>>0?g+1|0:g)>>21)+hA|0,A=(g=(B=(g=(2097151&g)<<11|a>>>21)>>>0>(yA=g+uA|0)>>>0?B+1|0:B)>>21)+LA|0,g=(B=(A=(B=(2097151&B)<<11|yA>>>21)>>>0>(aA=B+qA|0)>>>0?A+1|0:A)>>21)+sA|0,A=(A=(g=(A=(2097151&A)<<11|aA>>>21)>>>0>(hA=A+HA|0)>>>0?g+1|0:g)>>21)+XA|0,g=(g=(A=(g=(2097151&g)<<11|hA>>>21)>>>0>(DA=g+dA|0)>>>0?A+1|0:A)>>21)+kA|0,B=(A=(g=(A=(2097151&A)<<11|DA>>>21)>>>0>(cA=A+zA|0)>>>0?g+1|0:g)>>21)+VA|0,A=(g=(B=(g=(2097151&g)<<11|cA>>>21)>>>0>(EA=g+II|0)>>>0?B+1|0:B)>>21)+AI|0,fA=(sA=Q-(g=-2097152&fA)|0)+((2097151&(A=(B=(2097151&B)<<11|EA>>>21)>>>0>(_A=B+$A|0)>>>0?A+1|0:A))<<11|_A>>>21)|0,A=(pA-((g>>>0>Q>>>0)+lA|0)|0)+(A>>21)|0,pA=g=(A=sA>>>0>fA>>>0?A+1|0:A)>>21,wA=(A=Ig(kA=(2097151&A)<<11|fA>>>21,g,666643,0))+(g=2097151&wA)|0,A=f,Q=A=g>>>0>wA>>>0?A+1|0:A,C[0|E]=wA,C[E+1|0]=(255&A)<<24|wA>>>8,A=2097151&rA,g=Ig(kA,pA,470296,0)+A|0,B=f,A=(Q>>21)+(A>>>0>g>>>0?B+1|0:B)|0,A=(rA=(sA=(2097151&Q)<<11|wA>>>21)+g|0)>>>0<sA>>>0?A+1|0:A,C[E+4|0]=(2047&A)<<21|rA>>>11,g=A,B=rA,C[E+3|0]=(7&A)<<29|B>>>3,C[E+2|0]=31&((65535&Q)<<16|wA>>>16)|B<<5,Q=2097151&tA,tA=Ig(kA,pA,654183,0)+Q|0,A=f,rA=(2097151&g)<<11|B>>>21,g=(g>>21)+(Q=Q>>>0>tA>>>0?A+1|0:A)|0,A=g=(tA=rA+tA|0)>>>0<rA>>>0?g+1|0:g,C[E+6|0]=(63&A)<<26|tA>>>6,Q=tA,tA=0,C[E+5|0]=tA<<13|(1572864&B)>>>19|Q<<2,B=2097151&a,a=Ig(kA,pA,-997805,-1)+B|0,g=f,g=B>>>0>a>>>0?g+1|0:g,tA=(2097151&(B=A))<<11|Q>>>21,B=(A>>=21)+g|0,B=(a=tA+a|0)>>>0<tA>>>0?B+1|0:B,C[E+9|0]=(511&B)<<23|a>>>9,C[E+8|0]=(1&B)<<31|a>>>1,g=0,C[E+7|0]=g<<18|(2080768&Q)>>>14|a<<7,g=2097151&yA,Q=Ig(kA,pA,136657,0)+g|0,A=f,A=g>>>0>Q>>>0?A+1|0:A,yA=(2097151&(g=B))<<11|a>>>21,g=A+(B=g>>21)|0,g=(Q=yA+Q|0)>>>0<yA>>>0?g+1|0:g,C[E+12|0]=(4095&g)<<20|Q>>>12,B=Q,C[E+11|0]=(15&g)<<28|B>>>4,Q=0,C[E+10|0]=Q<<15|(1966080&a)>>>17|B<<4,Q=2097151&aA,a=Ig(kA,pA,-683901,-1)+Q|0,A=f,A=Q>>>0>a>>>0?A+1|0:A,Q=g,g=A+(g>>=21)|0,g=(Q=(aA=a)+(a=(2097151&Q)<<11|B>>>21)|0)>>>0<a>>>0?g+1|0:g,C[E+14|0]=(127&g)<<25|Q>>>7,a=0,C[E+13|0]=a<<12|(1048576&B)>>>20|Q<<1,A=g>>21,B=(g=(2097151&g)<<11|Q>>>21)>>>0>(a=g+(2097151&hA)|0)>>>0?A+1|0:A,C[E+17|0]=(1023&B)<<22|a>>>10,C[E+16|0]=(3&B)<<30|a>>>2,g=0,C[E+15|0]=g<<17|(2064384&Q)>>>15|a<<6,A=B>>21,A=(g=(2097151&B)<<11|a>>>21)>>>0>(B=g+(2097151&DA)|0)>>>0?A+1|0:A,C[E+20|0]=(8191&A)<<19|B>>>13,C[E+19|0]=(31&A)<<27|B>>>5,Q=(g=2097151&cA)+(cA=(2097151&A)<<11|B>>>21)|0,g=A>>21,g=Q>>>0<cA>>>0?g+1|0:g,cA=Q,C[E+21|0]=Q,DA=0,C[E+18|0]=DA<<14|(1835008&a)>>>18|B<<3,C[E+22|0]=(255&g)<<24|Q>>>8,B=g>>21,B=(Q=(a=(2097151&g)<<11|Q>>>21)+(2097151&EA)|0)>>>0<a>>>0?B+1|0:B,C[E+25|0]=(2047&B)<<21|Q>>>11,C[E+24|0]=(7&B)<<29|Q>>>3,C[E+23|0]=31&((65535&g)<<16|cA>>>16)|Q<<5,A=B>>21,A=(g=(2097151&B)<<11|Q>>>21)>>>0>(B=g+(2097151&_A)|0)>>>0?A+1|0:A,C[E+27|0]=(63&A)<<26|B>>>6,a=0,C[E+26|0]=a<<13|(1572864&Q)>>>19|B<<2,g=A,A>>=21,g=(Q=(_A=(2097151&g)<<11|B>>>21)+(a=2097151&fA)|0)>>>0<a>>>0?A+1|0:A,C[E+31|0]=(131071&g)<<15|Q>>>17,A=Q,C[E+30|0]=(511&g)<<23|A>>>9,Q=0,C[E+28|0]=Q<<18|(2080768&B)>>>14|A<<7,C[E+29|0]=_A+fA>>>1,XC(c,64),XC(_,64),I&&(i[I>>2]=64,i[I+4>>2]=0),s=t+560|0,0}function n(A,I,g){var B,Q,i,E,a,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0,JA=0,dA=0,mA=0,lA=0,uA=0,xA=0,vA=0,RA=0,LA=0,PA=0,qA=0;Z=Ig(B=(W=o[g+2|0])<<16&2031616|o[0|g]|o[g+1|0]<<8,0,Q=(QA=o[I+23|0]|o[I+24|0]<<8|o[I+25|0]<<16|o[I+26|0]<<24)>>>5&2097151,0),V=f,O=Ig(i=(W=o[I+23|0])<<16&2031616|o[I+21|0]|o[I+22|0]<<8,0,E=(T=o[g+2|0]|o[g+3|0]<<8|o[g+4|0]<<16|o[g+5|0]<<24)>>>5&2097151,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(a=(o[g+7|0]|o[g+8|0]<<8|o[g+9|0]<<16|o[g+10|0]<<24)>>>7&2097151,0,_=(aA=o[I+15|0]|o[I+16|0]<<8|o[I+17|0]<<16|o[I+18|0]<<24)>>>6&2097151,0),O=f+W|0,IA=Z=V+Z|0,V=V>>>0>Z>>>0?O+1|0:O,O=(W=o[I+14|0])>>>24|0,$=W<<8|(gA=o[I+10|0]|o[I+11|0]<<8|o[I+12|0]<<16|o[I+13|0]<<24)>>>24,O=Ig(c=2097151&((1&(CA=(W=O)|(O=(Z=o[I+15|0])>>>16|0)))<<31|(W=(Z<<=16)|$)>>>1),0,t=(AA=o[g+10|0]|o[g+11|0]<<8|o[g+12|0]<<16|o[g+13|0]<<24)>>>4&2097151,0),V=f+V|0,CA=W=O+IA|0,Z=W>>>0<O>>>0?V+1|0:V,V=(O=o[g+6|0])>>>24|0,IA=O<<8|T>>>24,T=r=2097151&((3&(V|=O=(W=o[g+7|0])>>>16|0))<<30|(W=IA|W<<16)>>>2),IA=0,$=(W=o[I+19|0])<<8|aA>>>24,V=O=W>>>24|0,W=(O=o[I+20|0])>>>16|0,G=V=(W|=V)>>>3|0,O=Ig(T,IA,e=(7&W)<<29|(O=O<<16|$)>>>3,V),W=f+Z|0,W=O>>>0>($=O+CA|0)>>>0?W+1|0:W,V=Ig(y=(T=o[g+15|0]|o[g+16|0]<<8|o[g+17|0]<<16|o[g+18|0]<<24)>>>6&2097151,0,s=(o[I+7|0]|o[I+8|0]<<8|o[I+9|0]<<16|o[I+10|0]<<24)>>>7&2097151,0),O=f+W|0,IA=Z=V+$|0,Z=V>>>0>Z>>>0?O+1|0:O,$=(W=o[g+14|0])<<8|AA>>>24,W=O=W>>>24|0,V=(O=o[g+15|0])>>>16|0,O=Ig(h=2097151&((1&(V|=W))<<31|(W=(O<<=16)|$)>>>1),0,D=gA>>>4&2097151,0),W=f+Z|0,AA=V=O+IA|0,IA=O>>>0>V>>>0?W+1|0:W,W=(O=o[g+19|0])>>>24|0,Z=O<<8|T>>>24,V=(O=o[g+20|0])>>>16|0,p=(7&(V|=W))<<29|(O=Z|O<<16)>>>3,eA=W=V>>>3|0,Z=W,W=(O=o[I+6|0])>>>24|0,T=O<<8|(CA=o[I+2|0]|o[I+3|0]<<8|o[I+4|0]<<16|o[I+5|0]<<24)>>>24,V=W,W=(O=o[I+7|0])>>>16|0,W=Ig(p,Z,w=2097151&((3&(W|=V))<<30|(O=O<<16|T)>>>2),0),O=f+IA|0,V=W>>>0>(Z=W+AA|0)>>>0?O+1|0:O,W=Ig(n=(W=o[g+23|0])<<16&2031616|o[g+21|0]|o[g+22|0]<<8,0,k=CA>>>5&2097151,0),O=f+V|0,V=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,O=Ig(F=(W=o[I+2|0])<<16&2031616|o[0|I]|o[I+1|0]<<8,0,hA=(CA=o[g+23|0]|o[g+24|0]<<8|o[g+25|0]<<16|o[g+26|0]<<24)>>>5&2097151,0),W=f+V|0,T=Z=O+Z|0,IA=O>>>0>Z>>>0?W+1|0:W,O=Ig(i,0,B,0),W=f,Z=(V=O)+(O=Ig(e,G,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,O=Ig(a,0,c,0),W=f+V|0,W=O>>>0>(Z=O+Z|0)>>>0?W+1|0:W,V=Ig(t,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,W=Ig(_,0,r,0),O=f+O|0,O=W>>>0>(V=W+Z|0)>>>0?O+1|0:O,Z=(W=V)+(V=Ig(y,0,w,0))|0,W=f+O|0,W=V>>>0>Z>>>0?W+1|0:W,O=Ig(h,0,s,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,Z=(O=Ig(p,eA,k,0))+Z|0,W=f+V|0,V=Ig(n,0,F,0),O=f+(O>>>0>Z>>>0?W+1|0:W)|0,Z=O=V>>>0>($=V+Z|0)>>>0?O+1|0:O,yA=O=O-(($>>>0<4293918720)-1|0)|0,W=(W=O>>>21|0)+IA|0,oA=V=(W=(O=(2097151&O)<<11|(cA=$- -1048576|0)>>>21)>>>0>(T=O+T|0)>>>0?W+1|0:W)-((T>>>0<4293918720)-1|0)|0,iA=T-(O=-2097152&(EA=T- -1048576|0))|0,BA=W-((O>>>0>T>>>0)+V|0)|0,IA=(W=o[g+27|0])<<8|CA>>>24,V=O=W>>>24|0,T=Ig(S=2097151&((3&(V|=W=(O=o[g+28|0])>>>16|0))<<30|(W=(O<<=16)|IA)>>>2),0,DA=(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)>>>7|0,0),IA=f,W=(O=o[I+27|0])>>>24|0,I=Ig(N=2097151&((3&(W|=V=(I=o[I+28|0])>>>16|0))<<30|(O=O<<8|QA>>>24|I<<16)>>>2),0,fA=(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)>>>7|0,0),O=f+IA|0,O=I>>>0>(g=I+T|0)>>>0?O+1|0:O,V=g,I=Ig(Q,0,fA,0),g=f,IA=(W=I)+(I=Ig(hA,0,DA,0))|0,W=f+g|0,W=I>>>0>IA>>>0?W+1|0:W,I=Ig(S,0,N,0),W=f+W|0,IA=W=I>>>0>(CA=I+IA|0)>>>0?W+1|0:W,AA=I=W-((CA>>>0<4293918720)-1|0)|0,W=I>>>21|0,T=(I=(2097151&I)<<11|(g=CA- -1048576|0)>>>21)+V|0,V=W+O|0,aA=W=(V=I>>>0>T>>>0?V+1|0:V)-((T>>>0<4293918720)-1|0)|0,I=T-(O=-2097152&(gA=T- -1048576|0))|0,K=O=V-((131071&W)+(O>>>0>T>>>0)|0)|0,U=I,I=Ig(I,O,666643,0),O=f+BA|0,nA=W=I+iA|0,T=I>>>0>W>>>0?O+1|0:O,iA=CA-(I=-2097152&g)|0,tA=IA-((131071&AA)+(I>>>0>CA>>>0)|0)|0,I=Ig(n,0,DA,0),g=f,W=(O=I)+(I=Ig(hA,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,fA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,S,0),O=f+W|0,AA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,g=Ig(Q,0,hA,0),O=f,V=(W=g)+(g=Ig(p,eA,DA,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,O=(g=Ig(n,0,N,0))+V|0,V=f+W|0,V=g>>>0>O>>>0?V+1|0:V,W=(g=Ig(e,G,fA,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,BA=(g=Ig(i,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>BA>>>0?W+1|0:W,_A=g=W-((BA>>>0<4293918720)-1|0)|0,W=I+(O=g>>>21|0)|0,g=W=(g=(2097151&g)<<11|(IA=BA- -1048576|0)>>>21)>>>0>(AA=g+AA|0)>>>0?W+1|0:W,QA=W=W-((AA>>>0<4293918720)-1|0)|0,O=iA,iA=(2097151&W)<<11|(I=AA- -1048576|0)>>>21,W=(W>>>21|0)+tA|0,b=W=(V=O+iA|0)>>>0<iA>>>0?W+1|0:W,H=I=AA-(O=-2097152&I)|0,Y=AA=g-((O>>>0>AA>>>0)+QA|0)|0,J=V,g=Ig(V,W,470296,0),O=f+T|0,O=g>>>0>(W=g+nA|0)>>>0?O+1|0:O,I=Ig(I,AA,654183,0),V=f+O|0,tA=g=I+W|0,T=I>>>0>g>>>0?V+1|0:V,QA=BA-(I=-2097152&IA)|0,BA=CA-((I>>>0>BA>>>0)+_A|0)|0,I=Ig(p,eA,N,0),g=f,W=(O=I)+(I=Ig(y,0,DA,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(i,0,hA,0))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(Q,0,n,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(_,0,fA,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,S,0),W=f+O|0,CA=g=I+g|0,IA=I>>>0>g>>>0?W+1|0:W,I=Ig(h,0,DA,0),g=f,W=(O=I)+(I=Ig(y,0,N,0))|0,O=f+g|0,O=I>>>0>W>>>0?O+1|0:O,g=(I=Ig(Q,0,p,eA))+W|0,W=f+O|0,W=I>>>0>g>>>0?W+1|0:W,I=Ig(e,G,hA,0),V=f+W|0,V=I>>>0>(g=I+g|0)>>>0?V+1|0:V,I=Ig(i,0,n,0),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(c,0,fA,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(_,0,S,0),O=f+W|0,I=O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,sA=O=O-((g>>>0<4293918720)-1|0)|0,V=(W=O>>>21|0)+IA|0,iA=V=(O=(2097151&O)<<11|(_A=g- -1048576|0)>>>21)>>>0>(pA=O+CA|0)>>>0?V+1|0:V,NA=O=V-((pA>>>0<4293918720)-1|0)|0,IA=(2097151&O)<<11|(AA=pA- -1048576|0)>>>21,O=(O>>>21|0)+BA|0,d=O=(V=IA+QA|0)>>>0<IA>>>0?O+1|0:O,m=V,O=Ig(V,O,-997805,-1),W=f+T|0,BA=V=O+tA|0,T=O>>>0>V>>>0?W+1|0:W,IA=$,$=Z,O=Ig(B,0,e,G),W=f,Z=(V=O)+(O=Ig(_,0,E,0))|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(a,0,D,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(t,0,s,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(c,0,r,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(y,0,k,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(h,0,w,0),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(p,eA,F,0),O=f+V|0,CA=Z=W+Z|0,Z=W>>>0>Z>>>0?O+1|0:O,O=Ig(B,0,_,0),W=f,V=O,O=Ig(E,0,c,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,QA=(O=V)+(V=Ig(a,0,s,0))|0,O=f+W|0,O=V>>>0>QA>>>0?O+1|0:O,V=Ig(t,0,w,0),W=f+O|0,W=V>>>0>(QA=V+QA|0)>>>0?W+1|0:W,O=Ig(r,0,D,0),V=f+W|0,V=O>>>0>(QA=O+QA|0)>>>0?V+1|0:V,QA=(W=Ig(y,0,F,0))+QA|0,O=f+V|0,V=Ig(h,0,k,0),W=f+(W>>>0>QA>>>0?O+1|0:O)|0,KA=W=V>>>0>(MA=V+QA|0)>>>0?W+1|0:W,xA=W=W-((MA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(GA=MA- -1048576|0)>>>21,W=(W>>>21|0)+Z|0,rA=W=V>>>0>(UA=V+CA|0)>>>0?W+1|0:W,vA=W=W-((UA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(nA=UA- -1048576|0)>>>21,W=(W>>>21|0)+$|0,W=V>>>0>(IA=V+IA|0)>>>0?W+1|0:W,O=Ig(J,b,666643,0),W=f+(W-(((V=-2097152&cA)>>>0>IA>>>0)+yA|0)|0)|0,W=O>>>0>(Z=O+(IA-V|0)|0)>>>0?W+1|0:W,V=Ig(H,Y,470296,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(m,d,654183,0),W=f+O|0,tA=W=V>>>0>(kA=V+Z|0)>>>0?W+1|0:W,mA=W=W-((kA>>>0<4293918720)-1|0)|0,O=(O=W>>21)+T|0,BA=O=(W=(2097151&W)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(yA=W+BA|0)>>>0?O+1|0:O,bA=W=O-((yA>>>0<4293918720)-1|0)|0,JA=(2097151&W)<<11|(cA=yA- -1048576|0)>>>21,CA=W>>21,O=Ig(B,0,N,0),W=f,V=O,O=Ig(Q,0,E,0),W=f+W|0,W=O>>>0>(V=V+O|0)>>>0?W+1|0:W,Z=(O=Ig(a,0,e,G))+V|0,V=f+W|0,V=O>>>0>Z>>>0?V+1|0:V,W=Ig(_,0,t,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(i,0,r,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=Ig(y,0,D,0),O=f+W|0,O=V>>>0>(Z=V+Z|0)>>>0?O+1|0:O,V=Ig(h,0,c,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,O=Ig(s,0,p,eA),V=f+W|0,V=O>>>0>(Z=O+Z|0)>>>0?V+1|0:V,W=Ig(k,0,hA,0),O=f+V|0,O=W>>>0>(Z=W+Z|0)>>>0?O+1|0:O,V=Ig(w,0,n,0),W=f+O|0,W=V>>>0>(Z=V+Z|0)>>>0?W+1|0:W,V=(O=Z)+(Z=Ig(S,0,F,0))|0,O=f+W|0,T=V,IA=V>>>0<Z>>>0?O+1|0:O,FA=Ig(DA,0,fA,0),$=V=(SA=f)-((FA>>>0<4293918720)-1|0)|0,W=FA-(O=-2097152&(Z=FA- -1048576|0))|0,O=(aA>>>21|0)+(O=SA-((524287&V)+(O>>>0>FA>>>0)|0)|0)|0,l=O=(V=(gA=(2097151&aA)<<11|gA>>>21)+W|0)>>>0<gA>>>0?O+1|0:O,u=V,W=(2097151&oA)<<11|EA>>>21,gA=Ig(V,O,666643,0)+W|0,O=f+(oA>>>21|0)|0,O=W>>>0>gA>>>0?O+1|0:O,V=Ig(U,K,470296,0),W=f+O|0,W=(V>>>0>(gA=V+gA|0)>>>0?W+1|0:W)+IA|0,W=(O=T+gA|0)>>>0<gA>>>0?W+1|0:W,gA=(V=Ig(J,b,654183,0))+O|0,O=f+W|0,dA=T- -1048576|0,FA=IA=IA-((T>>>0<4293918720)-1|0)|0,W=Ig(H,Y,-997805,-1),V=f+(V>>>0>gA>>>0?O+1|0:O)|0,V=W>>>0>(T=W+gA|0)>>>0?V+1|0:V,EA=(O=Ig(m,d,136657,0))+(T-(W=-2097152&dA)|0)|0,W=f+(V-((W>>>0>T>>>0)+IA|0)|0)|0,V=(aA=O>>>0>EA>>>0?W+1|0:W)+CA|0,HA=O=EA+JA|0,gA=V=O>>>0<EA>>>0?V+1|0:V,SA=pA-(O=-2097152&AA)|0,pA=iA-((O>>>0>pA>>>0)+NA|0)|0,x=V=$>>>21|0,W=(O=g)+(g=Ig(M=(2097151&$)<<11|Z>>>21,V,-683901,-1))|0,O=f+I|0,iA=W-(I=-2097152&_A)|0,oA=(g>>>0>W>>>0?O+1|0:O)-((I>>>0>W>>>0)+sA|0)|0,I=Ig(Q,0,y,0),g=f,O=I,I=Ig(t,0,DA,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(h,0,N,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(i,0,p,eA),O=f+V|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(_,0,hA,0),O=f+O|0,O=I>>>0>(g=I+g|0)>>>0?O+1|0:O,I=Ig(e,G,n,0),W=f+O|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(D,0,fA,0),W=f+W|0,W=I>>>0>(g=I+g|0)>>>0?W+1|0:W,I=Ig(c,0,S,0),V=f+W|0,Z=g=I+g|0,I=I>>>0>g>>>0?V+1|0:V,g=Ig(t,0,N,0),O=f,W=g,g=Ig(a,0,DA,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,y,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,V=(g=Ig(Q,0,h,0))+W|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(e,G,p,eA),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,g=Ig(c,0,hA,0),V=f+W|0,V=g>>>0>(O=g+O|0)>>>0?V+1|0:V,W=(g=Ig(_,0,n,0))+O|0,O=f+V|0,O=g>>>0>W>>>0?O+1|0:O,g=Ig(s,0,fA,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,AA=(g=Ig(D,0,S,0))+W|0,W=f+O|0,CA=W=g>>>0>AA>>>0?W+1|0:W,YA=g=W-((AA>>>0<4293918720)-1|0)|0,V=I+(O=g>>>21|0)|0,IA=V=(g=(2097151&g)<<11|(T=AA- -1048576|0)>>>21)>>>0>(_A=g+Z|0)>>>0?V+1|0:V,sA=I=V-((_A>>>0<4293918720)-1|0)|0,W=(O=I>>>21|0)+oA|0,Z=W=(I=(2097151&I)<<11|($=_A- -1048576|0)>>>21)>>>0>(iA=I+iA|0)>>>0?W+1|0:W,oA=g=W-((iA>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,v=V=(g=(W=(2097151&g)<<11|(I=iA- -1048576|0)>>>21)+SA|0)>>>0<W>>>0?V+1|0:V,NA=EA- -1048576|0,JA=W=aA-((EA>>>0<4293918720)-1|0)|0,lA=g,g=Ig(g,V,-683901,-1),O=f+gA|0,SA=O=(W=(O=g>>>0>(V=g+HA|0)>>>0?O+1|0:O)-(((g=-2097152&NA)>>>0>V>>>0)+W|0)|0)-(((gA=V-g|0)>>>0<4293918720)-1|0)|0,P=gA-(g=-2097152&(pA=gA- -1048576|0))|0,RA=W-((g>>>0>gA>>>0)+O|0)|0,g=Ig(lA,v,136657,0),W=f+(BA-(((O=-2097152&cA)>>>0>yA>>>0)+bA|0)|0)|0,uA=V=g+(yA-O|0)|0,g=g>>>0>V>>>0?W+1|0:W,wA=iA-(I&=-2097152)|0,cA=Z-((I>>>0>iA>>>0)+oA|0)|0,I=Ig(u,l,-683901,-1),O=f,W=I,I=Ig(M,x,136657,0),O=f+O|0,W=IA+(I>>>0>(V=W+I|0)>>>0?O+1|0:O)|0,aA=(O=V+_A|0)-(I=-2097152&$)|0,gA=(W=O>>>0<_A>>>0?W+1|0:W)-((I>>>0>O>>>0)+sA|0)|0,I=Ig(M,x,-997805,-1),O=f+CA|0,O=I>>>0>(W=I+AA|0)>>>0?O+1|0:O,I=Ig(u,l,136657,0),O=f+O|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(U,K,-683901,-1))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,IA=V-(I=-2097152&T)|0,$=W-((I>>>0>V>>>0)+YA|0)|0,I=Ig(Q,0,t,0),O=f,V=(W=I)+(I=Ig(a,0,N,0))|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,DA,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(y,0,e,G),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(i,0,h,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,W=(I=Ig(_,0,p,eA))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,O=(I=Ig(D,0,hA,0))+W|0,W=f+V|0,W=I>>>0>O>>>0?W+1|0:W,V=(I=Ig(c,0,n,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,I=Ig(w,0,fA,0),W=f+O|0,W=I>>>0>(V=I+V|0)>>>0?W+1|0:W,I=Ig(s,0,S,0),O=f+W|0,Z=V=I+V|0,I=I>>>0>V>>>0?O+1|0:O,O=Ig(Q,0,a,0),W=f,T=(V=O)+(O=Ig(E,0,DA,0))|0,V=f+W|0,V=O>>>0>T>>>0?V+1|0:V,O=Ig(i,0,t,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(r,0,N,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(_,0,y,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(e,G,h,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,W=Ig(c,0,p,eA),V=f+O|0,V=W>>>0>(T=W+T|0)>>>0?V+1|0:V,O=Ig(s,0,hA,0),W=f+V|0,W=O>>>0>(T=O+T|0)>>>0?W+1|0:W,V=Ig(D,0,n,0),O=f+W|0,O=V>>>0>(T=V+T|0)>>>0?O+1|0:O,V=Ig(k,0,fA,0),W=f+O|0,W=V>>>0>(T=V+T|0)>>>0?W+1|0:W,V=Ig(w,0,S,0),O=f+W|0,yA=O=V>>>0>(bA=V+T|0)>>>0?O+1|0:O,q=O=O-((bA>>>0<4293918720)-1|0)|0,W=I+(W=O>>>21|0)|0,EA=W=(O=(2097151&O)<<11|(oA=bA- -1048576|0)>>>21)>>>0>(HA=O+Z|0)>>>0?W+1|0:W,z=I=W-((HA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+$|0,iA=O=(I=(2097151&I)<<11|(_A=HA- -1048576|0)>>>21)>>>0>(YA=I+IA|0)>>>0?O+1|0:O,j=I=O-((YA>>>0<4293918720)-1|0)|0,W=(W=I>>21)+gA|0,CA=W=(I=(2097151&I)<<11|(BA=YA- -1048576|0)>>>21)>>>0>(sA=I+aA|0)>>>0?W+1|0:W,LA=I=W-((sA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+cA|0,R=O=(I=(V=(2097151&I)<<11|(Z=sA- -1048576|0)>>>21)+wA|0)>>>0<V>>>0?O+1|0:O,wA=I,I=Ig(I,O,-683901,-1),V=f+g|0,PA=O=I+uA|0,T=I>>>0>O>>>0?V+1|0:V,qA=kA-(I=-2097152&QA)|0,mA=tA-((I>>>0>kA>>>0)+mA|0)|0,I=Ig(H,Y,666643,0),O=f+(rA-(((g=-2097152&nA)>>>0>UA>>>0)+vA|0)|0)|0,O=I>>>0>(W=I+(UA-g|0)|0)>>>0?O+1|0:O,g=(I=Ig(m,d,470296,0))+W|0,W=f+O|0,nA=g,g=I>>>0>g>>>0?W+1|0:W,AA=MA-(I=-2097152&GA)|0,IA=KA-((I>>>0>MA>>>0)+xA|0)|0,I=Ig(B,0,c,0),O=f,W=I,I=Ig(E,0,D,0),V=f+O|0,V=I>>>0>(W=W+I|0)>>>0?V+1|0:V,I=Ig(a,0,w,0),O=f+V|0,O=I>>>0>(W=I+W|0)>>>0?O+1|0:O,V=(I=Ig(t,0,k,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(r,0,s,0),O=f+W|0,O=I>>>0>(V=I+V|0)>>>0?O+1|0:O,I=Ig(h,0,F,0),W=f+O|0,$=V=I+V|0,I=I>>>0>V>>>0?W+1|0:W,O=Ig(B,0,D,0),W=f,gA=(V=O)+(O=Ig(E,0,s,0))|0,V=f+W|0,V=O>>>0>gA>>>0?V+1|0:V,W=Ig(a,0,k,0),O=f+V|0,O=W>>>0>(gA=W+gA|0)>>>0?O+1|0:O,V=Ig(t,0,F,0),W=f+O|0,W=V>>>0>(gA=V+gA|0)>>>0?W+1|0:W,V=Ig(r,0,w,0),O=f+W|0,tA=O=V>>>0>(kA=V+gA|0)>>>0?O+1|0:O,X=O=O-((kA>>>0<4293918720)-1|0)|0,V=I+(W=O>>>21|0)|0,cA=V=(O=(2097151&O)<<11|(QA=kA- -1048576|0)>>>21)>>>0>(KA=O+$|0)>>>0?V+1|0:V,xA=I=V-((KA>>>0<4293918720)-1|0)|0,O=(W=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(aA=KA- -1048576|0)>>>21)>>>0>(V=I+AA|0)>>>0?O+1|0:O,I=Ig(m,d,666643,0),W=f+O|0,gA=W=I>>>0>(GA=I+V|0)>>>0?W+1|0:W,vA=I=W-((GA>>>0<4293918720)-1|0)|0,O=g+(O=I>>21)|0,IA=O=(I=(2097151&I)<<11|(AA=GA- -1048576|0)>>>21)>>>0>(rA=I+nA|0)>>>0?O+1|0:O,uA=I=O-((rA>>>0<4293918720)-1|0)|0,W=(O=I>>21)+mA|0,W=(I=(2097151&I)<<11|($=rA- -1048576|0)>>>21)>>>0>(g=I+qA|0)>>>0?W+1|0:W,I=Ig(lA,v,-997805,-1),V=f+W|0,V=I>>>0>(O=I+g|0)>>>0?V+1|0:V,UA=I=sA-(g=-2097152&Z)|0,L=W=CA-((g>>>0>sA>>>0)+LA|0)|0,Z=(g=Ig(wA,R,136657,0))+O|0,O=f+V|0,I=Ig(I,W,-683901,-1),O=f+(g>>>0>Z>>>0?O+1|0:O)|0,Z=O=I>>>0>(CA=I+Z|0)>>>0?O+1|0:O,MA=I=O-((CA>>>0<4293918720)-1|0)|0,O=(W=I>>21)+T|0,g=O=(T=nA=(I=(2097151&I)<<11|(V=CA- -1048576|0)>>>21)+PA|0)>>>0<I>>>0?O+1|0:O,sA=O=O-((T>>>0<4293918720)-1|0)|0,nA=(2097151&O)<<11|(I=T- -1048576|0)>>>21,O=(O>>21)+RA|0,RA=mA=nA+P|0,nA=nA>>>0>mA>>>0?O+1|0:O,LA=T-(I&=-2097152)|0,PA=g-((I>>>0>T>>>0)+sA|0)|0,qA=CA-(I=-2097152&V)|0,mA=Z-((I>>>0>CA>>>0)+MA|0)|0,I=Ig(lA,v,654183,0),W=f+(IA-(((g=-2097152&$)>>>0>rA>>>0)+uA|0)|0)|0,W=I>>>0>(O=I+(rA-g|0)|0)>>>0?W+1|0:W,g=(I=Ig(wA,R,-997805,-1))+O|0,O=f+W|0,O=I>>>0>g>>>0?O+1|0:O,I=Ig(UA,L,136657,0),O=f+O|0,uA=g=I+g|0,I=I>>>0>g>>>0?O+1|0:O,MA=YA-(g=-2097152&BA)|0,rA=iA-((g>>>0>YA>>>0)+j|0)|0,g=Ig(u,l,-997805,-1),O=f,V=(W=g)+(g=Ig(M,x,654183,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,136657,0),O=f+W|0,O=g>>>0>(V=g+V|0)>>>0?O+1|0:O,g=Ig(J,b,-683901,-1),O=f+O|0,W=EA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,BA=(O=V+HA|0)-(g=-2097152&_A)|0,_A=(W=O>>>0<HA>>>0?W+1|0:W)-((g>>>0>O>>>0)+z|0)|0,g=Ig(u,l,654183,0),O=f,V=(W=g)+(g=Ig(M,x,470296,0))|0,W=f+O|0,W=g>>>0>V>>>0?W+1|0:W,g=Ig(U,K,-997805,-1),O=f+W|0,W=yA+(g>>>0>(V=g+V|0)>>>0?O+1|0:O)|0,W=(g=V+bA|0)>>>0<bA>>>0?W+1|0:W,V=(O=g)+(g=Ig(J,b,136657,0))|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,W=(g=Ig(H,Y,-683901,-1))+V|0,V=f+O|0,V=g>>>0>W>>>0?V+1|0:V,$=W-(g=-2097152&oA)|0,Z=V-((g>>>0>W>>>0)+q|0)|0,g=Ig(B,0,DA,0),O=f,W=g,g=Ig(E,0,N,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(i,0,a,0),O=f+O|0,O=g>>>0>(W=g+W|0)>>>0?O+1|0:O,g=Ig(e,G,t,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(Q,0,r,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(y,0,c,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(_,0,h,0))+O|0,O=f+W|0,O=g>>>0>V>>>0?O+1|0:O,g=Ig(D,0,p,eA),O=f+O|0,O=g>>>0>(W=g+V|0)>>>0?O+1|0:O,g=Ig(w,0,hA,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(s,0,n,0))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(F,0,fA,0),W=f+W|0,W=g>>>0>(O=g+O|0)>>>0?W+1|0:W,V=(g=Ig(S,0,k,0))+O|0,O=f+W|0,O=(FA>>>21|0)+(O=g>>>0>V>>>0?O+1|0:O)|0,CA=O=(g=(2097151&FA)<<11|dA>>>21)>>>0>(EA=g+V|0)>>>0?O+1|0:O,bA=g=O-((EA>>>0<4293918720)-1|0)|0,W=(W=g>>>21|0)+Z|0,IA=W=(g=(2097151&g)<<11|(T=EA- -1048576|0)>>>21)>>>0>(iA=g+$|0)>>>0?W+1|0:W,sA=g=W-((iA>>>0<4293918720)-1|0)|0,O=(W=g>>21)+_A|0,Z=O=(g=(2097151&g)<<11|($=iA- -1048576|0)>>>21)>>>0>(BA=g+BA|0)>>>0?O+1|0:O,oA=O=O-((BA>>>0<4293918720)-1|0)|0,W=(W=O>>21)+rA|0,rA=W=(O=(V=(2097151&O)<<11|(g=BA- -1048576|0)>>>21)+MA|0)>>>0<V>>>0?W+1|0:W,dA=O,W=Ig(O,W,-683901,-1),O=f+I|0,_A=V=W+uA|0,I=W>>>0>V>>>0?O+1|0:O,O=Ig(lA,v,470296,0),V=f+(gA-(((W=-2097152&AA)>>>0>GA>>>0)+vA|0)|0)|0,V=O>>>0>(AA=O+(GA-W|0)|0)>>>0?V+1|0:V,O=Ig(wA,R,654183,0),W=f+V|0,W=O>>>0>(AA=O+AA|0)>>>0?W+1|0:W,V=Ig(UA,L,-997805,-1),O=f+W|0,O=V>>>0>(AA=V+AA|0)>>>0?O+1|0:O,FA=g=BA-(W=-2097152&g)|0,eA=Z=Z-((W>>>0>BA>>>0)+oA|0)|0,AA=(V=Ig(dA,rA,136657,0))+AA|0,W=f+O|0,g=Ig(g,Z,-683901,-1),V=f+(V>>>0>AA>>>0?W+1|0:W)|0,Z=V=g>>>0>(gA=g+AA|0)>>>0?V+1|0:V,yA=W=V-((gA>>>0<4293918720)-1|0)|0,V=(2097151&W)<<11|(g=gA- -1048576|0)>>>21,W=(W>>21)+I|0,oA=V=(W=V>>>0>(AA=V+_A|0)>>>0?W+1|0:W)-((AA>>>0<4293918720)-1|0)|0,BA=(2097151&V)<<11|(I=AA- -1048576|0)>>>21,V=(V>>21)+mA|0,hA=_A=BA+qA|0,_A=BA>>>0>_A>>>0?V+1|0:V,DA=AA-(I&=-2097152)|0,fA=W-((I>>>0>AA>>>0)+oA|0)|0,HA=gA-(I=-2097152&g)|0,YA=Z-((I>>>0>gA>>>0)+yA|0)|0,I=Ig(lA,v,666643,0),W=f+(cA-(((g=-2097152&aA)>>>0>KA>>>0)+xA|0)|0)|0,W=I>>>0>(O=I+(KA-g|0)|0)>>>0?W+1|0:W,I=Ig(wA,R,470296,0),V=f+W|0,V=I>>>0>(g=I+O|0)>>>0?V+1|0:V,I=Ig(UA,L,654183,0),W=f+V|0,AA=g=I+g|0,I=I>>>0>g>>>0?W+1|0:W,$=iA-(g=-2097152&$)|0,Z=IA-((g>>>0>iA>>>0)+sA|0)|0,g=Ig(u,l,470296,0),O=f,W=g,g=Ig(M,x,666643,0),O=f+O|0,O=g>>>0>(W=W+g|0)>>>0?O+1|0:O,g=Ig(U,K,654183,0),V=f+O|0,V=g>>>0>(W=g+W|0)>>>0?V+1|0:V,O=(g=Ig(J,b,-997805,-1))+W|0,W=f+V|0,W=g>>>0>O>>>0?W+1|0:W,g=Ig(H,Y,136657,0),W=f+W|0,O=CA+(g>>>0>(V=g+O|0)>>>0?W+1|0:W)|0,O=(g=V+EA|0)>>>0<EA>>>0?O+1|0:O,W=g,g=Ig(m,d,-683901,-1),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,oA=(g=(2097151&JA)<<11|NA>>>21)+(V-(W=-2097152&T)|0)|0,W=(O-((W>>>0>V>>>0)+bA|0)|0)+(JA>>21)|0,iA=W=g>>>0>oA>>>0?W+1|0:W,sA=g=W-((oA>>>0<4293918720)-1|0)|0,W=(O=g>>21)+Z|0,JA=W=(g=(V=(2097151&g)<<11|(BA=oA- -1048576|0)>>>21)+$|0)>>>0<V>>>0?W+1|0:W,yA=g,g=Ig(g,W,-683901,-1),V=f+I|0,V=g>>>0>(O=g+AA|0)>>>0?V+1|0:V,I=Ig(dA,rA,-997805,-1),W=f+V|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(FA,eA,136657,0),O=f+W|0,NA=g=I+g|0,$=I>>>0>g>>>0?O+1|0:O,T=kA-(I=-2097152&QA)|0,IA=tA-((I>>>0>kA>>>0)+X|0)|0,I=Ig(B,0,s,0),g=f,O=I,I=Ig(E,0,w,0),W=f+g|0,W=I>>>0>(O=O+I|0)>>>0?W+1|0:W,I=Ig(a,0,F,0),W=f+W|0,W=I>>>0>(g=I+O|0)>>>0?W+1|0:W,I=Ig(r,0,k,0),O=f+W|0,I=I>>>0>(W=g=I+g|0)>>>0?O+1|0:O,g=Ig(B,0,w,0),O=f,Z=(V=g)+(g=Ig(E,0,k,0))|0,V=f+O|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(r,0,F,0),O=f+V|0,g=O=g>>>0>(Z=g+Z|0)>>>0?O+1|0:O,lA=O=O-((Z>>>0<4293918720)-1|0)|0,V=O>>>21|0,EA=(O=(2097151&O)<<11|(cA=Z- -1048576|0)>>>21)+W|0,W=I+V|0,aA=W=O>>>0>EA>>>0?W+1|0:W,KA=I=W-((EA>>>0<4293918720)-1|0)|0,O=(V=I>>>21|0)+IA|0,O=(I=(2097151&I)<<11|(gA=EA- -1048576|0)>>>21)>>>0>(W=I+T|0)>>>0?O+1|0:O,V=(I=Ig(wA,R,666643,0))+W|0,W=f+O|0,W=I>>>0>V>>>0?W+1|0:W,I=Ig(UA,L,470296,0),W=f+W|0,W=I>>>0>(O=I+V|0)>>>0?W+1|0:W,V=(I=Ig(yA,JA,136657,0))+O|0,O=f+W|0,O=I>>>0>V>>>0?O+1|0:O,W=(I=Ig(dA,rA,654183,0))+V|0,V=f+O|0,V=I>>>0>W>>>0?V+1|0:V,I=Ig(FA,eA,-997805,-1),O=f+V|0,CA=O=I>>>0>(AA=I+W|0)>>>0?O+1|0:O,GA=I=O-((AA>>>0<4293918720)-1|0)|0,W=(V=I>>21)+$|0,NA=O=(W=(I=(O=(2097151&I)<<11|(T=AA- -1048576|0)>>>21)+NA|0)>>>0<O>>>0?W+1|0:W)-((I>>>0<4293918720)-1|0)|0,$=(2097151&O)<<11|(IA=I- -1048576|0)>>>21,O=(O>>21)+YA|0,MA=QA=$+HA|0,tA=$>>>0>QA>>>0?O+1|0:O,$=I,V=W,W=(iA-(((O=-2097152&BA)>>>0>oA>>>0)+sA|0)|0)+(SA>>21)|0,QA=W=(I=(oA-O|0)+(BA=(2097151&SA)<<11|pA>>>21)|0)>>>0<BA>>>0?W+1|0:W,bA=W=W-((I>>>0<4293918720)-1|0)|0,oA=O=W>>21,W=Ig(wA=(2097151&W)<<11|(iA=I- -1048576|0)>>>21,O,-683901,-1),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,HA=$-(W=-2097152&IA)|0,YA=O-((W>>>0>$>>>0)+NA|0)|0,O=Ig(wA,oA,136657,0),W=f+CA|0,W=O>>>0>(V=O+AA|0)>>>0?W+1|0:W,sA=V-(O=-2097152&T)|0,NA=W-((O>>>0>V>>>0)+GA|0)|0,V=(O=Ig(UA,L,666643,0))+(EA-(W=-2097152&gA)|0)|0,W=f+(aA-((W>>>0>EA>>>0)+KA|0)|0)|0,W=O>>>0>V>>>0?W+1|0:W,$=(O=Ig(yA,JA,-997805,-1))+V|0,V=f+W|0,V=O>>>0>$>>>0?V+1|0:V,W=Ig(dA,rA,470296,0),O=f+V|0,O=W>>>0>($=W+$|0)>>>0?O+1|0:O,V=Ig(FA,eA,654183,0),W=f+O|0,SA=$=V+$|0,CA=V>>>0>$>>>0?W+1|0:W,$=Z,Z=g,g=Ig(E,0,F,0),O=f,W=g,g=Ig(B,0,k,0),O=f+O|0,O=g>>>0>(V=W+g|0)>>>0?O+1|0:O,g=Ig(B,0,F,0),kA=W=f,EA=g,aA=g- -1048576|0,KA=g=W-((g>>>0<4293918720)-1|0)|0,W=g>>>21|0,BA=(g=(2097151&g)<<11|aA>>>21)+V|0,V=W+O|0,gA=V=g>>>0>BA>>>0?V+1|0:V,GA=g=V-((BA>>>0<4293918720)-1|0)|0,O=(W=g>>>21|0)+Z|0,O=(g=(2097151&g)<<11|(AA=BA- -1048576|0)>>>21)>>>0>(V=g+$|0)>>>0?O+1|0:O,Z=(g=Ig(yA,JA,654183,0))+(V-(W=-2097152&cA)|0)|0,V=f+(O-((8191&lA)+(W>>>0>V>>>0)|0)|0)|0,V=g>>>0>Z>>>0?V+1|0:V,g=Ig(dA,rA,666643,0),W=f+V|0,W=g>>>0>(O=g+Z|0)>>>0?W+1|0:W,T=(g=Ig(FA,eA,470296,0))+O|0,O=f+W|0,IA=O=g>>>0>T>>>0?O+1|0:O,pA=g=O-((T>>>0<4293918720)-1|0)|0,W=(W=g>>21)+CA|0,V=W=(g=(2097151&g)<<11|($=T- -1048576|0)>>>21)>>>0>(Z=g+SA|0)>>>0?W+1|0:W,cA=O=W-((Z>>>0<4293918720)-1|0)|0,CA=(2097151&O)<<11|(g=Z- -1048576|0)>>>21,O=(O>>21)+NA|0,CA=CA>>>0>(rA=SA=CA+sA|0)>>>0?O+1|0:O,W=Ig(wA,oA,-997805,-1),O=f+V|0,dA=(Z=W+Z|0)-(g&=-2097152)|0,NA=(W>>>0>Z>>>0?O+1|0:O)-((g>>>0>Z>>>0)+cA|0)|0,g=Ig(wA,oA,654183,0),V=f+IA|0,V=g>>>0>(O=g+T|0)>>>0?V+1|0:V,SA=O-(g=-2097152&$)|0,pA=V-((g>>>0>O>>>0)+pA|0)|0,g=Ig(yA,JA,470296,0),W=f+(gA-((8191&GA)+((O=-2097152&AA)>>>0>BA>>>0)|0)|0)|0,W=g>>>0>(V=g+(BA-O|0)|0)>>>0?W+1|0:W,g=Ig(FA,eA,666643,0),W=f+W|0,W=g>>>0>(O=g+V|0)>>>0?W+1|0:W,Z=O,g=Ig(yA,JA,666643,0),V=f+(kA-((2047&KA)+((O=-2097152&aA)>>>0>EA>>>0)|0)|0)|0,T=V=g>>>0>(AA=g+(EA-O|0)|0)>>>0?V+1|0:V,cA=g=V-((AA>>>0<4293918720)-1|0)|0,W=W+(O=g>>21)|0,aA=g=(W=(g=(2097151&g)<<11|(IA=AA- -1048576|0)>>>21)>>>0>($=g+Z|0)>>>0?W+1|0:W)-(($>>>0<4293918720)-1|0)|0,V=(O=g>>21)+pA|0,g=(g=(2097151&g)<<11|(Z=$- -1048576|0)>>>21)>>>0>(gA=g+SA|0)>>>0?V+1|0:V,O=Ig(wA,oA,470296,0),W=f+W|0,W=O>>>0>(V=O+$|0)>>>0?W+1|0:W,Z=V-(O=-2097152&Z)|0,$=W-((O>>>0>V>>>0)+aA|0)|0,O=Ig(wA,oA,666643,0),V=f+(T-(((W=-2097152&IA)>>>0>AA>>>0)+cA|0)|0)|0,O=(W=(V=O>>>0>(BA=O+(AA-W|0)|0)>>>0?V+1|0:V)>>21)+$|0,W=g+(V=(O=(V=(2097151&V)<<11|BA>>>21)>>>0>(Z=V+Z|0)>>>0?O+1|0:O)>>21)|0,O=(O=(W=(g=$=(O=(2097151&O)<<11|Z>>>21)+gA|0)>>>0<O>>>0?W+1|0:W)>>21)+NA|0,W=(W=(O=(W=(2097151&W)<<11|g>>>21)>>>0>(cA=W+dA|0)>>>0?O+1|0:O)>>21)+CA|0,V=(O=(W=(O=(2097151&O)<<11|cA>>>21)>>>0>(aA=O+rA|0)>>>0?W+1|0:W)>>21)+YA|0,O=(W=(V=(W=(2097151&W)<<11|aA>>>21)>>>0>(gA=W+HA|0)>>>0?V+1|0:V)>>21)+tA|0,W=(V=(O=(V=(2097151&V)<<11|gA>>>21)>>>0>(AA=V+MA|0)>>>0?O+1|0:O)>>21)+fA|0,O=(O=(W=(O=(2097151&O)<<11|AA>>>21)>>>0>(CA=O+DA|0)>>>0?W+1|0:W)>>21)+_A|0,W=(W=(O=(W=(2097151&W)<<11|CA>>>21)>>>0>(T=W+hA|0)>>>0?O+1|0:O)>>21)+PA|0,V=(O=(W=(O=(2097151&O)<<11|T>>>21)>>>0>(IA=O+LA|0)>>>0?W+1|0:W)>>21)+nA|0,W=(QA-((I>>>0<(O=-2097152&iA)>>>0)+bA|0)|0)+((V=(W=(2097151&W)<<11|IA>>>21)>>>0>($=W+RA|0)>>>0?V+1|0:V)>>21)|0,QA=O=(W=(iA=(tA=I-O|0)+((2097151&V)<<11|$>>>21)|0)>>>0<tA>>>0?W+1|0:W)>>21,I=(I=Ig(tA=(2097151&W)<<11|iA>>>21,O,666643,0))+(O=2097151&BA)|0,V=f,C[0|A]=I,V=I>>>0<O>>>0?V+1|0:V,C[A+1|0]=(255&V)<<24|I>>>8,O=2097151&Z,Z=Ig(tA,QA,470296,0)+O|0,W=f,W=(V>>21)+(W=O>>>0>Z>>>0?W+1|0:W)|0,W=(Z=(BA=(2097151&V)<<11|I>>>21)+Z|0)>>>0<BA>>>0?W+1|0:W,C[A+4|0]=(2047&W)<<21|Z>>>11;C[A+3|0]=(7&W)<<29|Z>>>3,C[A+2|0]=31&((65535&V)<<16|I>>>16)|Z<<5,I=2097151&g,g=Ig(tA,QA,654183,0)+I|0,V=f,V=I>>>0>g>>>0?V+1|0:V,I=W,O=(W>>=21)+V|0,I=O=(I=(2097151&I)<<11|Z>>>21)>>>0>(g=I+g|0)>>>0?O+1|0:O,C[A+6|0]=(63&O)<<26|g>>>6,W=0,C[A+5|0]=W<<13|(1572864&Z)>>>19|g<<2,W=2097151&cA,V=Ig(tA,QA,-997805,-1)+W|0,O=f,O=W>>>0>V>>>0?O+1|0:O,W=(W=I>>21)+O|0,W=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0<V>>>0?W+1|0:W,C[A+9|0]=(511&W)<<23|I>>>9,C[A+8|0]=(1&W)<<31|I>>>1,O=0,C[A+7|0]=O<<18|(2080768&g)>>>14|I<<7,g=2097151&aA,O=Ig(tA,QA,136657,0)+g|0,V=f,V=g>>>0>O>>>0?V+1|0:V,g=(Z=(2097151&(g=W))<<11|I>>>21)+O|0,O=(W>>=21)+V|0,O=g>>>0<Z>>>0?O+1|0:O,C[A+12|0]=(4095&O)<<20|g>>>12,C[A+11|0]=(15&O)<<28|g>>>4,W=0,C[A+10|0]=W<<15|(1966080&I)>>>17|g<<4,I=2097151&gA,V=Ig(tA,QA,-683901,-1)+I|0,W=f,W=I>>>0>V>>>0?W+1|0:W,I=O,O=W+(O>>=21)|0,O=(I=(Z=V)+(V=(2097151&I)<<11|g>>>21)|0)>>>0<V>>>0?O+1|0:O,C[A+14|0]=(127&O)<<25|I>>>7,W=0,C[A+13|0]=W<<12|(1048576&g)>>>20|I<<1,W=O>>21,W=(g=(O=(2097151&O)<<11|I>>>21)+(2097151&AA)|0)>>>0<O>>>0?W+1|0:W,C[A+17|0]=(1023&W)<<22|g>>>10,C[A+16|0]=(3&W)<<30|g>>>2,O=0,C[A+15|0]=O<<17|(2064384&I)>>>15|g<<6,I=W,W>>=21,V=(I=(O=(2097151&I)<<11|g>>>21)+(2097151&CA)|0)>>>0<O>>>0?W+1|0:W,C[A+20|0]=(8191&V)<<19|I>>>13,C[A+19|0]=(31&V)<<27|I>>>5,O=V>>21,O=(W=(Z=(2097151&V)<<11|I>>>21)+(2097151&T)|0)>>>0<Z>>>0?O+1|0:O,Z=W,C[A+21|0]=W,W=0,C[A+18|0]=W<<14|(1835008&g)>>>18|I<<3,C[A+22|0]=(255&O)<<24|Z>>>8,W=O>>21,W=(I=(g=(2097151&O)<<11|Z>>>21)+(2097151&IA)|0)>>>0<g>>>0?W+1|0:W,C[A+25|0]=(2047&W)<<21|I>>>11,C[A+24|0]=(7&W)<<29|I>>>3,C[A+23|0]=31&((65535&O)<<16|Z>>>16)|I<<5,O=(2097151&W)<<11|I>>>21,W>>=21,W=(g=O+(2097151&$)|0)>>>0<O>>>0?W+1|0:W,C[A+27|0]=(63&W)<<26|g>>>6,O=0,C[A+26|0]=O<<13|(1572864&I)>>>19|g<<2,I=W,O=W>>=21,O=(I=(Z=(2097151&I)<<11|g>>>21)+(V=2097151&iA)|0)>>>0<V>>>0?O+1|0:O,C[A+31|0]=(131071&O)<<15|I>>>17,C[A+30|0]=(511&O)<<23|I>>>9,W=0,C[A+28|0]=W<<18|(2080768&g)>>>14|I<<7,C[A+29|0]=Z+iA>>>1}function k(A,I,g,C){for(var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0;E=(B=_<<3)+g|0,Q=o[0|(B=I+B|0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,G=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,c=Q<<24|(65280&Q)<<8,t=(a=16711680&Q)<<24,a=a>>>8|0,B=(e=-16777216&Q)>>>24|0,i[E>>2]=t|e<<8|-16777216&((255&G)<<24|Q>>>8)|16711680&((16777215&G)<<8|Q>>>24)|G>>>8&65280|G>>>24,Q=B|a|c,B=0,i[E+4>>2]=Q|B,16!=(0|(_=_+1|0)););for(I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I,I=i[A+60>>2],i[C+56>>2]=i[A+56>>2],i[C+60>>2]=I,I=i[A+52>>2],i[C+48>>2]=i[A+48>>2],i[C+52>>2]=I,I=i[A+44>>2],i[C+40>>2]=i[A+40>>2],i[C+44>>2]=I,I=i[A+36>>2],i[C+32>>2]=i[A+32>>2],i[C+36>>2]=I,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I;E=i[C+56>>2],a=i[C+60>>2],B=i[(I=G=(M=P<<3)+g|0)>>2],I=i[I+4>>2],k=Q=i[C+36>>2],Q=UI(p=i[C+32>>2],Q,50),_=f,Q=UI(p,k,46)^Q,_^=f,Q=UI(p,k,23)^Q,I=(f^_)+I|0,I=(B=Q+B|0)>>>0<Q>>>0?I+1|0:I,B=(_=i[(Q=M+34416|0)>>2])+B|0,I=i[Q+4>>2]+I|0,I=B>>>0<_>>>0?I+1|0:I,Q=(_=((t=i[C+48>>2])^(y=i[C+40>>2]))&p^t)+B|0,B=(((w=i[C+52>>2])^(F=i[C+44>>2]))&k^w)+I|0,I=(Q>>>0<_>>>0?B+1|0:B)+a|0,I=(E=Q+E|0)>>>0<Q>>>0?I+1|0:I,_=(Q=i[C+24>>2])+E|0,B=i[C+28>>2]+I|0,s=B=Q>>>0>_>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,n=B=i[C+4>>2],B=UI(Q=i[C>>2],B,36),a=f,B=UI(Q,n,30)^B,a^=f,e=E+(UI(Q,n,25)^B)|0,B=I+(f^a)|0,B=E>>>0>e>>>0?B+1|0:B,c=(I=e)+(e=Q&((a=i[C+16>>2])|(E=i[C+8>>2]))|E&a)|0,I=(I=B)+(n&((B=i[C+20>>2])|(h=i[C+12>>2]))|B&h)|0,e=I=c>>>0<e>>>0?I+1|0:I,i[C+56>>2]=c,i[C+60>>2]=I,r=a,D=B,N=i[(I=l=(S=8|M)+g|0)>>2],U=i[I+4>>2],B=((k^F)&s^F)+w|0,B=(I=(a=(y^p)&_^y)+t|0)>>>0<a>>>0?B+1|0:B,a=UI(_,s,50),t=f,a=UI(_,s,46)^a,t^=f,a=(w=UI(_,s,23)^a)+I|0,I=(f^t)+B|0,I=(a>>>0<w>>>0?I+1|0:I)+U|0,I=(B=a+N|0)>>>0<a>>>0?I+1|0:I,a=(a=B)+(t=i[(B=S+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(I=a>>>0<t>>>0?B+1|0:B)+D|0,w=B=(t=a+r|0)>>>0<a>>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+((h|n)&e|h&n)|0,I=(B=a+((Q|E)&c|Q&E)|0)>>>0<a>>>0?I+1|0:I,a=UI(c,e,36),r=f,a=UI(c,e,30)^a,r^=f,D=B,B=UI(c,e,25)^a,I=(f^r)+I|0,r=I=B>>>0>(a=D+B|0)>>>0?I+1|0:I,i[C+48>>2]=a,i[C+52>>2]=I,D=E,S=h,I=(h=i[(B=Y=(E=16|M)+g|0)>>2])+y|0,B=i[B+4>>2]+F|0,B=I>>>0<h>>>0?B+1|0:B,E=(y=I)+(h=i[(I=E+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=((s^k)&w^k)+(I=E>>>0<h>>>0?I+1|0:I)|0,I=(B=(B=E)+(E=(_^p)&t^p)|0)>>>0<E>>>0?I+1|0:I,E=UI(t,w,50),h=f,E=UI(t,w,46)^E,h^=f,E=(y=UI(t,w,23)^E)+B|0,B=(f^h)+I|0,B=(y=E>>>0<y>>>0?B+1|0:B)+S|0,S=B=(h=E)>>>0>(E=E+D|0)>>>0?B+1|0:B,i[C+8>>2]=E,i[C+12>>2]=B,I=UI(a,r,36),B=f,I=UI(a,r,30)^I,B^=f,F=UI(a,r,25)^I,I=((e|n)&r|e&n)+(f^B)|0,B=y+((D=F+((Q|c)&a|Q&c)|0)>>>0<F>>>0?I+1|0:I)|0,h=B=(y=h+D|0)>>>0<h>>>0?B+1|0:B,i[C+40>>2]=y,i[C+44>>2]=B,D=Q,B=(B=p)+(p=i[(I=u=(Q=24|M)+g|0)>>2])|0,I=i[I+4>>2]+k|0,I=B>>>0<p>>>0?I+1|0:I,Q=(F=B)+(p=i[(B=Q+34416|0)>>2])|0,B=i[B+4>>2]+I|0,B=(s^(s^w)&S)+(B=Q>>>0<p>>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=_^(_^t)&E)|0)>>>0<Q>>>0?B+1|0:B,Q=UI(E,S,50),p=f,Q=UI(E,S,46)^Q,p^=f,Q=(k=UI(E,S,23)^Q)+I|0,I=(f^p)+B|0,B=(I=Q>>>0<k>>>0?I+1|0:I)+n|0,k=B=(n=Q+D|0)>>>0<Q>>>0?B+1|0:B,i[C>>2]=n,i[C+4>>2]=B,B=UI(y,h,36),p=f,B=UI(y,h,30)^B,D=f^p,F=UI(y,h,25)^B,B=((e|r)&h|e&r)+(f^D)|0,I=I+((p=F+((a|c)&y|a&c)|0)>>>0<F>>>0?B+1|0:B)|0,p=I=(D=Q+p|0)>>>0<Q>>>0?I+1|0:I,i[C+32>>2]=D,i[C+36>>2]=I,Q=i[(B=m=(I=32|M)+g|0)>>2],B=s+i[B+4>>2]|0,B=(Q=Q+_|0)>>>0<_>>>0?B+1|0:B,Q=(_=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(w^(w^S)&k)+(I=Q>>>0<_>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=t^(E^t)&n)|0)>>>0<Q>>>0?I+1|0:I,Q=UI(n,k,50),_=f,Q=UI(n,k,46)^Q,_^=f,Q=(s=UI(n,k,23)^Q)+B|0,B=(f^_)+I|0,F=B=Q>>>0<s>>>0?B+1|0:B,I=B,B=UI(D,p,36),_=f,B=UI(D,p,30)^B,s=f^_,N=UI(D,p,25)^B,B=((r|h)&p|r&h)+(f^s)|0,I=((_=N+((a|y)&D|a&y)|0)>>>0<N>>>0?B+1|0:B)+I|0,_=I=(s=Q+_|0)>>>0<_>>>0?I+1|0:I,i[C+24>>2]=s,i[C+28>>2]=I,B=e+F|0,F=B=(e=Q+c|0)>>>0<Q>>>0?B+1|0:B,i[C+56>>2]=e,i[C+60>>2]=B,Q=i[(I=J=(B=40|M)+g|0)>>2],I=w+i[I+4>>2]|0,I=(Q=Q+t|0)>>>0<t>>>0?I+1|0:I,Q=(c=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0<c>>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=E^(E^n)&e)|0)>>>0<Q>>>0?B+1|0:B,Q=UI(e,F,50),c=f,Q=UI(e,F,46)^Q,c^=f,Q=(t=UI(e,F,23)^Q)+I|0,I=(f^c)+B|0,I=Q>>>0<t>>>0?I+1|0:I,B=UI(s,_,36),c=f,B=UI(s,_,30)^B,t=f^c,w=UI(s,_,25)^B,B=((h|p)&_|h&p)+(f^t)|0,B=((c=w+((y|D)&s|y&D)|0)>>>0<w>>>0?B+1|0:B)+I|0,c=B=(t=Q+c|0)>>>0<c>>>0?B+1|0:B,i[C+16>>2]=t,i[C+20>>2]=B,I=I+r|0,N=I=(r=Q+a|0)>>>0<a>>>0?I+1|0:I,i[C+48>>2]=r,i[C+52>>2]=I,Q=i[(B=H=(I=48|M)+g|0)>>2],B=S+i[B+4>>2]|0,B=(Q=Q+E|0)>>>0<E>>>0?B+1|0:B,Q=(E=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0<E>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=n^(e^n)&r)|0)>>>0<Q>>>0?I+1|0:I,Q=UI(r,N,50),E=f,Q=UI(r,N,46)^Q,E^=f,Q=(a=UI(r,N,23)^Q)+B|0,B=(f^E)+I|0,a=B=Q>>>0<a>>>0?B+1|0:B,I=B,B=UI(t,c,36),E=f,B=UI(t,c,30)^B,w=f^E,S=UI(t,c,25)^B,B=((_|p)&c|_&p)+(f^w)|0,I=((E=S+((s|D)&t|s&D)|0)>>>0<S>>>0?B+1|0:B)+I|0,w=I=(B=E)>>>0>(E=Q+E|0)>>>0?I+1|0:I,i[C+8>>2]=E,i[C+12>>2]=I,B=a+h|0,S=B=(U=Q+y|0)>>>0<Q>>>0?B+1|0:B,i[C+40>>2]=U,i[C+44>>2]=B,Q=i[(I=d=(B=56|M)+g|0)>>2],I=k+i[I+4>>2]|0,I=(Q=Q+n|0)>>>0<n>>>0?I+1|0:I,Q=(a=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(F^(F^N)&S)+(B=Q>>>0<a>>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=e^(e^r)&U)|0)>>>0<Q>>>0?B+1|0:B,Q=UI(U,S,50),a=f,Q=UI(U,S,46)^Q,a^=f,Q=(h=UI(U,S,23)^Q)+I|0,I=(f^a)+B|0,I=Q>>>0<h>>>0?I+1|0:I,B=UI(E,w,36),a=f,B=UI(E,w,30)^B,h=f^a,y=UI(E,w,25)^B,B=((_|c)&w|_&c)+(f^h)|0,B=((a=y+((t|s)&E|t&s)|0)>>>0<y>>>0?B+1|0:B)+I|0,h=B=(h=a)>>>0>(a=Q+a|0)>>>0?B+1|0:B,i[C>>2]=a,i[C+4>>2]=B,I=I+p|0,k=I=(y=Q+D|0)>>>0<Q>>>0?I+1|0:I,i[C+32>>2]=y,i[C+36>>2]=I,Q=i[(B=x=(I=64|M)+g|0)>>2],B=F+i[B+4>>2]|0,B=(Q=Q+e|0)>>>0<e>>>0?B+1|0:B,Q=(e=i[(I=I+34416|0)>>2])+Q|0,I=i[I+4>>2]+B|0,I=(N^(S^N)&k)+(I=Q>>>0<e>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=r^(r^U)&y)|0)>>>0<Q>>>0?I+1|0:I,Q=UI(y,k,50),e=f,Q=UI(y,k,46)^Q,e^=f,Q=(n=UI(y,k,23)^Q)+B|0,B=(f^e)+I|0,p=B=Q>>>0<n>>>0?B+1|0:B,I=B,B=UI(a,h,36),e=f,B=UI(a,h,30)^B,n=f^e,D=UI(a,h,25)^B,B=((c|w)&h|c&w)+(f^n)|0,I=((e=D+((E|t)&a|E&t)|0)>>>0<D>>>0?B+1|0:B)+I|0,e=I=(n=Q+e|0)>>>0<e>>>0?I+1|0:I,i[C+56>>2]=n,i[C+60>>2]=I,B=_+p|0,F=B=(_=Q+s|0)>>>0<Q>>>0?B+1|0:B,i[C+24>>2]=_,i[C+28>>2]=B,Q=i[(I=b=(B=72|M)+g|0)>>2],I=N+i[I+4>>2]|0,I=(Q=Q+r|0)>>>0<r>>>0?I+1|0:I,Q=(r=i[(B=B+34416|0)>>2])+Q|0,B=i[B+4>>2]+I|0,B=(S^(k^S)&F)+(B=Q>>>0<r>>>0?B+1|0:B)|0,B=(I=(I=Q)+(Q=U^(y^U)&_)|0)>>>0<Q>>>0?B+1|0:B,Q=UI(_,F,50),r=f,Q=UI(_,F,46)^Q,r^=f,Q=(p=UI(_,F,23)^Q)+I|0,I=(f^r)+B|0,I=Q>>>0<p>>>0?I+1|0:I,B=UI(n,e,36),r=f,B=UI(n,e,30)^B,p=f^r,D=UI(n,e,25)^B,B=((h|w)&e|h&w)+(f^p)|0,B=((r=D+((E|a)&n|E&a)|0)>>>0<D>>>0?B+1|0:B)+I|0,r=B=(p=Q+r|0)>>>0<r>>>0?B+1|0:B,i[C+48>>2]=p,i[C+52>>2]=B,I=I+c|0,N=I=(c=Q+t|0)>>>0<Q>>>0?I+1|0:I,i[C+16>>2]=c,i[C+20>>2]=I,I=(I=U)+(t=i[(B=U=(Q=80|M)+g|0)>>2])|0,B=i[B+4>>2]+S|0,B=I>>>0<t>>>0?B+1|0:B,Q=(s=I)+(t=i[(I=Q+34416|0)>>2])|0,I=i[I+4>>2]+B|0,I=(k^(k^F)&N)+(I=Q>>>0<t>>>0?I+1|0:I)|0,I=(B=(B=Q)+(Q=y^(_^y)&c)|0)>>>0<Q>>>0?I+1|0:I,Q=UI(c,N,50),t=f,Q=UI(c,N,46)^Q,t^=f,Q=(D=UI(c,N,23)^Q)+B|0,B=(f^t)+I|0,s=B=Q>>>0<D>>>0?B+1|0:B,I=B,B=UI(p,r,36),t=f,B=UI(p,r,30)^B,D=f^t,S=UI(p,r,25)^B,B=((e|h)&r|e&h)+(f^D)|0,I=((t=S+((a|n)&p|a&n)|0)>>>0<S>>>0?B+1|0:B)+I|0,t=I=(D=Q+t|0)>>>0<t>>>0?I+1|0:I,i[C+40>>2]=D,i[C+44>>2]=I,B=s+w|0,w=B=(s=Q+E|0)>>>0<E>>>0?B+1|0:B,i[C+8>>2]=s,i[C+12>>2]=B,B=34416+(I=88|M)|0,E=i[(I=K=I+g|0)>>2],Q=i[B>>2]+E|0,I=i[B+4>>2]+i[I+4>>2]|0,B=k+(Q>>>0<E>>>0?I+1|0:I)|0,B=(F^(F^N)&w)+(B=(I=Q+y|0)>>>0<y>>>0?B+1|0:B)|0,B=(I=(Q=_^(_^c)&s)+I|0)>>>0<Q>>>0?B+1|0:B,Q=UI(s,w,50),E=f,Q=UI(s,w,46)^Q,E^=f,Q=(y=UI(s,w,23)^Q)+I|0,I=(f^E)+B|0,I=Q>>>0<y>>>0?I+1|0:I,B=UI(D,t,36),E=f,B=UI(D,t,30)^B,y=f^E,S=UI(D,t,25)^B,B=((e|r)&t|e&r)+(f^y)|0,B=((E=S+((p|n)&D|p&n)|0)>>>0<S>>>0?B+1|0:B)+I|0,y=B=(y=E)>>>0>(E=Q+E|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,I=I+h|0,h=I=(B=a)>>>0>(a=Q+a|0)>>>0?I+1|0:I,i[C>>2]=a,i[C+4>>2]=I,B=34416+(I=96|M)|0,S=i[(I=v=I+g|0)>>2],Q=i[B>>2]+S|0,B=i[B+4>>2]+i[I+4>>2]|0,I=F+(Q>>>0<S>>>0?B+1|0:B)|0,I=(B=Q+_|0)>>>0<_>>>0?I+1|0:I,Q=(_=c^(c^s)&a)+B|0,B=(N^(w^N)&h)+I|0,B=Q>>>0<_>>>0?B+1|0:B,I=UI(a,h,50),_=f,I=UI(a,h,46)^I,_^=f,F=Q,Q=UI(a,h,23)^I,B=(f^_)+B|0,k=B=(I=F+Q|0)>>>0<Q>>>0?B+1|0:B,Q=I,I=UI(E,y,36),_=f,I=UI(E,y,30)^I,S=f^_,F=UI(E,y,25)^I,I=((t|r)&y|t&r)+(f^S)|0,B=((_=F+((p|D)&E|p&D)|0)>>>0<F>>>0?I+1|0:I)+B|0,_=B=(S=Q+_|0)>>>0<_>>>0?B+1|0:B,i[C+24>>2]=S,i[C+28>>2]=B,B=e+k|0,e=B=(n=Q+n|0)>>>0<Q>>>0?B+1|0:B,i[C+56>>2]=n,i[C+60>>2]=B,B=34416+(I=104|M)|0,k=i[(I=L=I+g|0)>>2],Q=i[B>>2]+k|0,I=i[B+4>>2]+i[I+4>>2]|0,B=N+(Q>>>0<k>>>0?I+1|0:I)|0,B=(I=Q+c|0)>>>0<c>>>0?B+1|0:B,Q=(c=s^(a^s)&n)+I|0,I=(w^(h^w)&e)+B|0,I=Q>>>0<c>>>0?I+1|0:I,B=UI(n,e,50),c=f,B=UI(n,e,46)^B,c^=f,k=UI(n,e,23)^B,B=(f^c)+I|0,F=B=(Q=k+Q|0)>>>0<k>>>0?B+1|0:B,I=B,B=UI(S,_,36),c=f,B=UI(S,_,30)^B,k=f^c,N=UI(S,_,25)^B,B=((t|y)&_|t&y)+(f^k)|0,I=((c=N+((E|D)&S|E&D)|0)>>>0<N>>>0?B+1|0:B)+I|0,c=I=(k=Q+c|0)>>>0<c>>>0?I+1|0:I,i[C+16>>2]=k,i[C+20>>2]=I,I=r+F|0,r=I=(p=Q+p|0)>>>0<Q>>>0?I+1|0:I,i[C+48>>2]=p,i[C+52>>2]=I,B=34416+(I=112|M)|0,F=i[(Q=N=I+g|0)>>2],I=i[B>>2]+F|0,B=i[B+4>>2]+i[Q+4>>2]|0,B=w+(I>>>0<F>>>0?B+1|0:B)|0,B=(h^(e^h)&r)+(B=(I=I+s|0)>>>0<s>>>0?B+1|0:B)|0,B=(I=(Q=a^(a^n)&p)+I|0)>>>0<Q>>>0?B+1|0:B,Q=UI(p,r,50),s=f,Q=UI(p,r,46)^Q,s^=f,Q=(w=UI(p,r,23)^Q)+I|0,I=(f^s)+B|0,F=I=Q>>>0<w>>>0?I+1|0:I,B=I,I=UI(k,c,36),s=f,I=UI(k,c,30)^I,w=f^s,R=UI(k,c,25)^I,I=((_|y)&c|_&y)+(f^w)|0,B=((s=R+((E|S)&k|E&S)|0)>>>0<R>>>0?I+1|0:I)+B|0,s=B=(w=Q+s|0)>>>0<s>>>0?B+1|0:B,i[C+8>>2]=w,i[C+12>>2]=B,B=t+F|0,Q=B=(t=Q+D|0)>>>0<Q>>>0?B+1|0:B,i[C+40>>2]=t,i[C+44>>2]=B,B=34416+(I=120|M)|0,M=i[(I=D=I+g|0)>>2],F=i[B>>2]+M|0,B=i[B+4>>2]+i[I+4>>2]|0,I=h+(F>>>0<M>>>0?B+1|0:B)|0,I=(e^(e^r)&Q)+(I=(B=a+F|0)>>>0<a>>>0?I+1|0:I)|0,I=(B=(a=n^(p^n)&t)+B|0)>>>0<a>>>0?I+1|0:I,a=UI(t,Q,50),e=f,a=UI(t,Q,46)^a,e^=f,Q=(a=UI(t,Q,23)^a)+B|0,B=(f^e)+I|0,B=Q>>>0<a>>>0?B+1|0:B,a=Q,e=B,I=B,B=UI(w,s,36),t=f,B=UI(w,s,30)^B,r=f^t,h=UI(w,s,25)^B,B=((_|c)&s|_&c)+(f^r)|0,I=((t=h+((k|S)&w|k&S)|0)>>>0<h>>>0?B+1|0:B)+I|0,I=(Q=Q+t|0)>>>0<t>>>0?I+1|0:I,i[C>>2]=Q,i[C+4>>2]=I,B=e+y|0,B=(r=E)>>>0>(E=E+a|0)>>>0?B+1|0:B,i[C+32>>2]=E,i[C+36>>2]=B,64!=(0|P);)c=((P=P+16|0)<<3)+g|0,a=i[G>>2],_=i[G+4>>2],R=i[b>>2],e=I=i[b+4>>2],B=I,Q=I=i[N+4>>2],I=UI(S=i[N>>2],I,45),E=f,r=((63&Q)<<26|S>>>6)^(I=UI(S,Q,3)^I),I=(Q>>>6^(t=f^E))+B|0,B=((E=r+R|0)>>>0<r>>>0?I+1|0:I)+_|0,B=(I=E+a|0)>>>0<E>>>0?B+1|0:B,a=E=i[l+4>>2],E=UI(_=i[l>>2],E,63),t=f,E=((127&a)<<25|_>>>7)^UI(_,a,56)^E,B=(f^t^a>>>7)+B|0,E=B=E>>>0>(k=E+I|0)>>>0?B+1|0:B,i[c>>2]=k,i[c+4>>2]=B,_=(N=i[U>>2])+_|0,I=(c=i[U+4>>2])+a|0,B=_>>>0<N>>>0?I+1|0:I,a=I=i[D+4>>2],I=UI(F=i[D>>2],I,45),t=f,r=_,_=((63&a)<<26|F>>>6)^UI(F,a,3)^I,B=(f^t^a>>>6)+B|0,_=_>>>0>(r=r+_|0)>>>0?B+1|0:B,B=UI(t=i[Y>>2],I=i[Y+4>>2],63),h=f,s=r,r=((127&I)<<25|t>>>7)^UI(t,I,56)^B,B=(f^h^I>>>7)+_|0,_=B=r>>>0>(w=s+r|0)>>>0?B+1|0:B,i[G+136>>2]=w,i[G+140>>2]=B,B=(U=i[K>>2])+t|0,I=(t=i[K+4>>2])+I|0,r=UI(k,E,45),h=f,r=(y=((63&E)<<26|k>>>6)^UI(k,E,3)^r)+B|0,B=(f^h^E>>>6)+(B>>>0<U>>>0?I+1|0:I)|0,B=r>>>0<y>>>0?B+1|0:B,h=I=i[u+4>>2],I=UI(y=i[u>>2],I,63),n=f,s=r,r=((127&h)<<25|y>>>7)^UI(y,h,56)^I,B=(f^n^h>>>7)+B|0,r=B=r>>>0>(M=s+r|0)>>>0?B+1|0:B,i[G+144>>2]=M,i[G+148>>2]=B,y=(l=i[v>>2])+y|0,I=(I=h)+(h=i[v+4>>2])|0,B=y>>>0<l>>>0?I+1|0:I,I=UI(w,_,45),n=f,p=((63&_)<<26|w>>>6)^UI(w,_,3)^I,B=(f^n^_>>>6)+B|0,B=(y=p+y|0)>>>0<p>>>0?B+1|0:B,n=I=i[m+4>>2],I=UI(p=i[m>>2],I,63),D=f,s=y,y=((127&n)<<25|p>>>7)^UI(p,n,56)^I,B=(f^D^n>>>7)+B|0,y=B=y>>>0>(Y=s+y|0)>>>0?B+1|0:B,i[G+152>>2]=Y,i[G+156>>2]=B,I=(u=i[L>>2])+p|0,B=(B=n)+(n=i[L+4>>2])|0,p=UI(M,r,45),D=f,p=((63&r)<<26|M>>>6)^UI(M,r,3)^p,B=(f^D^r>>>6)+(I>>>0<u>>>0?B+1|0:B)|0,p=(s=p+I|0)>>>0<p>>>0?B+1|0:B,B=UI(D=i[J>>2],I=i[J+4>>2],63),m=f,K=s,s=((127&I)<<25|D>>>7)^(B=UI(D,I,56)^B),B=(I>>>7^(J=f^m))+p|0,p=B=s>>>0>(m=K+s|0)>>>0?B+1|0:B,i[G+160>>2]=m,i[G+164>>2]=B,I=I+Q|0,I=(B=D+S|0)>>>0<D>>>0?I+1|0:I,D=UI(Y,y,45),s=f,D=(J=((63&y)<<26|Y>>>6)^UI(Y,y,3)^D)+B|0,B=(f^s^y>>>6)+I|0,B=D>>>0<J>>>0?B+1|0:B,s=i[H>>2],H=I=i[H+4>>2],I=UI(s,I,63),J=f,I=UI(s,H,56)^I,K=D,B=(H>>>7^(b=f^J))+B|0,D=B=(D=((127&H)<<25|s>>>7)^I)>>>0>(J=K+D|0)>>>0?B+1|0:B,i[G+168>>2]=J,i[G+172>>2]=B,I=a+H|0,I=(B=s+F|0)>>>0<s>>>0?I+1|0:I,K=s=i[d+4>>2],s=UI(b=i[d>>2],s,63),H=f,s=(d=((127&K)<<25|b>>>7)^UI(b,K,56)^s)+B|0,B=(f^H^K>>>7)+I|0,I=s>>>0<d>>>0?B+1|0:B,B=UI(m,p,45),H=f,B=UI(m,p,3)^B,d=f^H,H=s,I=(p>>>6^d)+I|0,s=I=(s=((63&p)<<26|m>>>6)^B)>>>0>(H=H+s|0)>>>0?I+1|0:I,i[G+176>>2]=H,i[G+180>>2]=I,v=i[x>>2],x=I=i[x+4>>2],d=I,I=UI(R,e,63),B=f,L=((127&e)<<25|R>>>7)^UI(R,e,56)^I,I=(f^B^e>>>7)+_|0,B=((w=L+w|0)>>>0<L>>>0?I+1|0:I)+d|0,B=(I=w+v|0)>>>0<w>>>0?B+1|0:B,_=UI(H,s,45),w=f,d=(_=((63&s)<<26|H>>>6)^UI(H,s,3)^_)+I|0,I=(f^w^s>>>6)+B|0,_=I=_>>>0>d>>>0?I+1|0:I,i[G+192>>2]=d,i[G+196>>2]=I,B=E+K|0,B=(I=k+b|0)>>>0<b>>>0?B+1|0:B,w=UI(v,x,63),b=f,K=((127&x)<<25|v>>>7)^UI(v,x,56)^w,B=(f^b^x>>>7)+B|0,I=(w=K+I|0)>>>0<K>>>0?B+1|0:B,B=UI(J,D,45),b=f,B=UI(J,D,3)^B,x=w,I=(D>>>6^(K=f^b))+I|0,w=I=(w=((63&D)<<26|J>>>6)^B)>>>0>(b=x+w|0)>>>0?I+1|0:I,i[G+184>>2]=b,i[G+188>>2]=I,I=UI(U,t,63),B=f,I=((127&t)<<25|U>>>7)^UI(U,t,56)^I,B=(f^B^t>>>7)+c|0,I=y+(I>>>0>(K=I+N|0)>>>0?B+1|0:B)|0,I=(B=Y+K|0)>>>0<Y>>>0?I+1|0:I,y=UI(d,_,45),Y=f,y=UI(d,_,3)^y,K=f^Y,Y=(y^=(63&_)<<26|d>>>6)+B|0,B=(_>>>6^K)+I|0,y=B=y>>>0>Y>>>0?B+1|0:B,i[G+208>>2]=Y,i[G+212>>2]=B,I=UI(N,c,63),B=f,K=UI(N,c,56)^I,B=((I=c>>>7|0)^f^B)+e|0,I=r+((c=(N=K^((127&c)<<25|N>>>7))+R|0)>>>0<N>>>0?B+1|0:B)|0,I=(B=c+M|0)>>>0<M>>>0?I+1|0:I,e=UI(b,w,45),c=f,r=(e=((63&w)<<26|b>>>6)^UI(b,w,3)^e)+B|0,B=(f^c^w>>>6)+I|0,e=B=e>>>0>r>>>0?B+1|0:B,i[G+200>>2]=r,i[G+204>>2]=B,I=UI(u,n,63),B=f,N=((127&n)<<25|u>>>7)^UI(u,n,56)^I,I=(f^B^n>>>7)+h|0,B=D+((c=N+l|0)>>>0<N>>>0?I+1|0:I)|0,B=(I=c+J|0)>>>0<J>>>0?B+1|0:B,c=UI(Y,y,45),D=f,N=I,I=y>>>6|0,c=((63&y)<<26|Y>>>6)^UI(Y,y,3)^c,B=(I^f^D)+B|0,c=B=c>>>0>(y=N+c|0)>>>0?B+1|0:B,i[G+224>>2]=y,i[G+228>>2]=B,I=UI(l,h,63),B=f,I=UI(l,h,56)^I,D=f^B,N=((127&h)<<25|l>>>7)^I,I=((B=h>>>7|0)^D)+t|0,B=p+((h=N+U|0)>>>0<N>>>0?I+1|0:I)|0,B=(I=h+m|0)>>>0<m>>>0?B+1|0:B,t=UI(r,e,45),h=f,D=I,I=e>>>6|0,e=((63&e)<<26|r>>>6)^UI(r,e,3)^t,I=(I^f^h)+B|0,e=I=(t=D+e|0)>>>0<e>>>0?I+1|0:I,i[G+216>>2]=t,i[G+220>>2]=I,I=UI(F,a,63),B=f,h=((127&a)<<25|F>>>7)^UI(F,a,56)^I,B=(f^B^a>>>7)+Q|0,B=w+((I=h+S|0)>>>0<h>>>0?B+1|0:B)|0,I=(r=I+b|0)>>>0<b>>>0?B+1|0:B,B=UI(y,c,45),h=f,D=r,r=UI(y,c,3)^B,B=c>>>6|0,c=D+(r^=(63&c)<<26|y>>>6)|0,I=(B^f^h)+I|0,i[G+240>>2]=c,i[G+244>>2]=c>>>0<r>>>0?I+1|0:I,I=UI(S,Q,63),B=f,I=UI(S,Q,56)^I,c=f^B,B=((B=Q>>>7|0)^c)+n|0,I=s+((I^=(127&Q)<<25|S>>>7)>>>0>(Q=I+u|0)>>>0?B+1|0:B)|0,I=(B=Q+H|0)>>>0<H>>>0?I+1|0:I,Q=UI(t,e,45),c=f,r=B,B=e>>>6|0,Q=((63&e)<<26|t>>>6)^UI(t,e,3)^Q,B=(B^f^c)+I|0,Q=B=Q>>>0>(e=r+Q|0)>>>0?B+1|0:B,i[G+232>>2]=e,i[G+236>>2]=B,I=UI(k,E,63),B=f,r=UI(k,E,56)^I,B=((I=E>>>7|0)^f^B)+a|0,I=_+((E=(c=r^((127&E)<<25|k>>>7))+F|0)>>>0<c>>>0?B+1|0:B)|0,I=(B=E+d|0)>>>0<d>>>0?I+1|0:I,E=UI(e,Q,45),a=f,r=B,B=Q>>>6|0,Q=r+(E=((63&Q)<<26|e>>>6)^UI(e,Q,3)^E)|0,B=(B^f^a)+I|0,i[G+248>>2]=Q,i[G+252>>2]=Q>>>0<E>>>0?B+1|0:B;I=I+i[A+4>>2]|0,I=(g=Q+i[A>>2]|0)>>>0<Q>>>0?I+1|0:I,i[A>>2]=g,i[A+4>>2]=I,B=i[A+12>>2]+i[C+12>>2]|0,I=(g=i[C+8>>2])+i[A+8>>2]|0,i[A+8>>2]=I,i[A+12>>2]=I>>>0<g>>>0?B+1|0:B,B=i[A+20>>2]+i[C+20>>2]|0,I=(g=i[C+16>>2])+i[A+16>>2]|0,i[A+16>>2]=I,i[A+20>>2]=I>>>0<g>>>0?B+1|0:B,I=i[A+28>>2]+i[C+28>>2]|0,g=(B=i[C+24>>2])+i[A+24>>2]|0,i[A+24>>2]=g,i[A+28>>2]=g>>>0<B>>>0?I+1|0:I,B=i[A+36>>2]+i[C+36>>2]|0,I=(g=i[C+32>>2])+i[A+32>>2]|0,i[A+32>>2]=I,i[A+36>>2]=I>>>0<g>>>0?B+1|0:B,I=i[A+44>>2]+i[C+44>>2]|0,g=(B=i[C+40>>2])+i[A+40>>2]|0,i[A+40>>2]=g,i[A+44>>2]=g>>>0<B>>>0?I+1|0:I,B=i[A+52>>2]+i[C+52>>2]|0,I=(g=i[C+48>>2])+i[A+48>>2]|0,i[A+48>>2]=I,i[A+52>>2]=I>>>0<g>>>0?B+1|0:B,B=i[A+60>>2]+i[C+60>>2]|0,I=(g=i[C+56>>2])+i[A+56>>2]|0,i[A+56>>2]=I,i[A+60>>2]=I>>>0<g>>>0?B+1|0:B}function F(A,I){var g,C=0,B=0,Q=0,E=0,c=0,t=0,r=0,e=0,y=0,p=0,w=0,n=0,k=0,F=0,S=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0;if(s=g=s-4096|0,A){A:{I:{if(2==(0|(E=i[A+36>>2]))){if(oA=i[A+4>>2],(IA=i[I>>2])|(V=o[I+8|0])>>>0>=2)break I;IA=0}else V=o[I+8|0],oA=i[A+4>>2],IA=i[I>>2];if(bg(g+3072|0,0,1024),bg(g+2104|0,0,968),i[g+2048>>2]=IA,i[g+2052>>2]=0,u=i[I+4>>2],i[g+2064>>2]=V,i[g+2068>>2]=0,i[g+2056>>2]=u,i[g+2060>>2]=0,i[g+2072>>2]=i[A+16>>2],i[g+2076>>2]=0,u=i[A+8>>2],i[g+2088>>2]=E,i[g+2092>>2]=0,i[g+2080>>2]=u,i[g+2084>>2]=0,!i[A+20>>2])break A;for(u=0;(S=127&r)||(u=(z=z+1|0)?u:u+1|0,i[g+2096>>2]=z,i[g+2100>>2]=u,E=bg(g,0,1024),bg(E+1024|0,0,1024),N(C=E+3072|0,E+2048|0,E),N(C,E,E+1024|0)),S=i[4+(E=(g+1024|0)+(S<<3)|0)>>2],i[(C=(r<<3)+oA|0)>>2]=i[E>>2],i[C+4>>2]=S,(S=i[A+20>>2])>>>0>(r=r+1|0)>>>0;);break A}S=i[A+20>>2],cA=1}if(!((u=(aA=!(V|IA))<<1)>>>0>=S>>>0))for(E=i[A+24>>2],iA=i[I+4>>2],r=(z=(a(E,iA)+u|0)+a(S,V)|0)+((z>>>0)%(E>>>0)|0?-1:E-1|0)|0,tA=V+1|0;;){C=i[A+28>>2],EA=1==((z>>>0)%((E=i[A+24>>2])>>>0)|0)?z-1|0:r,r=cA?i[i[A>>2]+4>>2]+(EA<<10)|0:(u<<3)+oA|0,B=i[r>>2],r=i[r+4>>2],i[I+12>>2]=u,C=aA?iA:(r>>>0)%(C>>>0)|0;A:if(IA)r=E+((0|C)==(0|iA)?~S+u|0:(u?0:-1)-S|0)|0,Q=0,3!=(0|V)&&(Q=a(S,tA));else{if(!V){r=u-1|0,Q=0;break A}if(r=a(S,V),(0|C)==(0|iA)){r=(r+u|0)-1|0,Q=0;break A}r=r-!u|0,Q=0}S=Q,c=(p=i[i[A>>2]+4>>2])+(a(C,E)<<10)|0,y=(C=r-1|0)>>>0>(Q=C+S|0)>>>0,Ig(B,0,B,0),Ig(r,0,f,0),S=Q-(r=f)|0,C=0,e=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if(r=y-(Q>>>0<r>>>0)|0){if(!E)break a;break E}h=S-a((S>>>0)/(E>>>0)|0,E)|0,D=0,f=0;break A}if(!S)break o;break i}if(!((B=E-1|0)&E))break Q;t=0-(B=(_(E)+33|0)-_(r)|0)|0;break C}h=0,D=r,f=0;break A}if((C=32-_(r)|0)>>>0<31)break B;break g}if(h=B&S,D=0,1==(0|E))break I;E=31&(S=FC(E)),(63&S)>>>0>=32?B=r>>>E|0:(C=r>>>E|0,B=0),f=C;break A}B=C+1|0,t=63-C|0}if(Q=31&(C=63&B),C>>>0>=32?(C=0,y=r>>>Q|0):(C=r>>>Q|0,y=((1<<Q)-1&r)<<32-Q|S>>>Q),Q=31&(t&=63),t>>>0>=32?(r=S<<Q,S=0):(r=(1<<Q)-1&S>>>32-Q|r<<Q,S<<=Q),B)for(F=-1==(0|(t=E-1|0))?-1:0;d=C<<1|y>>>31,y=(C=y<<1|r>>>31)-(b=E&(Q=F-(d+(C>>>0>t>>>0)|0)>>31))|0,C=d-(C>>>0<b>>>0)|0,r=r<<1|S>>>31,S=e|S<<1,e=1&Q,B=B-1|0;);h=y,D=C,f=r<<1|S>>>31;break A}h=S,D=r,r=0}f=r}if(f=D,r=(h<<10)+c|0,E=p+(EA<<10)|0,_A=p+(z<<10)|0,IA)N(E,r,_A);else{for(Ng(g+3072|0,r,1024),r=0;Q=i[(B=(S=r<<3)+(C=g+3072|0)|0)>>2],p=i[(y=E+S|0)>>2],y=i[B+4>>2]^i[y+4>>2],i[B>>2]=Q^p,i[B+4>>2]=y,y=i[(B=(Q=8|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,y=i[(B=(Q=16|S)+C|0)>>2],p=i[(Q=E+Q|0)>>2],Q=i[B+4>>2]^i[Q+4>>2],i[B>>2]=y^p,i[B+4>>2]=Q,Q=i[(S=(B=24|S)+C|0)>>2],y=i[(B=B+E|0)>>2],B=i[S+4>>2]^i[B+4>>2],i[S>>2]=Q^y,i[S+4>>2]=B,128!=(0|(r=r+4|0)););for(Ng(g+2048|0,C,1024),S=0,r=0;Q=(y=i[56+(E=(g+3072|0)+(r<<7)|0)>>2])+(B=i[E+24>>2])|0,p=(F=i[E+60>>2])+(C=i[E+28>>2])|0,e=Ig(B<<1&-2,1&(C<<1|B>>>31),y,0),B=f+(B>>>0>Q>>>0?p+1|0:p)|0,p=(C=e+Q|0)>>>0<e>>>0?B+1|0:B,c=(e=UI(C^i[E+120>>2],p^i[E+124>>2],32))+(B=i[E+88>>2])|0,t=(k=f)+(Q=i[E+92>>2])|0,d=Ig(e,0,B<<1&-2,1&(Q<<1|B>>>31)),B=f+(B>>>0>c>>>0?t+1|0:t)|0,b=UI(y^(Q=d+c|0),F^(v=Q>>>0<d>>>0?B+1|0:B),40),w=1+(B=p+(BA=f)|0)|0,t=B,y=(B=C+b|0)>>>0<C>>>0?w:t,d=(C=Ig(b,0,C<<1&-2,1&(p<<1|C>>>31)))+B|0,B=f+y|0,k=UI(d^e,k^(X=C>>>0>d>>>0?B+1|0:B),48),Y=w=f,y=(n=i[E+44>>2])+(C=i[E+12>>2])|0,e=(p=i[E+40>>2])+(B=i[E+8>>2])|0,c=Ig(B<<1&-2,1&(C<<1|B>>>31),p,0),B=f+(B>>>0>e>>>0?y+1|0:y)|0,c=(C=e+c|0)>>>0<c>>>0?B+1|0:B,e=(t=UI(C^i[E+104>>2],c^i[E+108>>2],32))+(y=i[E+72>>2])|0,F=(M=f)+(B=i[E+76>>2])|0,G=Ig(t,0,y<<1&-2,1&(B<<1|y>>>31)),y=f+(e>>>0<y>>>0?F+1|0:F)|0,e=UI(H=p^(B=G+e|0),n^(p=B>>>0<G>>>0?y+1|0:y),40),G=1+(y=c+(F=f)|0)|0,n=y,n=(y=C+e|0)>>>0<C>>>0?G:n,C=Ig(e,0,C<<1&-2,1&(c<<1|C>>>31)),c=f+n|0,n=UI((y=C+y|0)^t,M^(O=C>>>0>y>>>0?c+1|0:c),48),G=1+(C=p+(QA=f)|0)|0,t=C,c=(C=B+n|0)>>>0<B>>>0?G:t,p=C+(B=Ig(n,0,B<<1&-2,1&(p<<1|B>>>31)))|0,C=f+c|0,M=UI(e^p,F^(Z=B>>>0>p>>>0?C+1|0:C),1),gA=H=f,e=(J=i[E+36>>2])+(C=i[E+4>>2])|0,t=(c=i[E+32>>2])+(B=i[E>>2])|0,F=Ig(B<<1&-2,1&(C<<1|B>>>31),c,0),B=f+(B>>>0>t>>>0?e+1|0:e)|0,t=(C=t+F|0)>>>0<F>>>0?B+1|0:B,F=(q=UI(C^i[E+96>>2],t^i[E+100>>2],32))+(B=i[(e=j=E- -64|0)>>2])|0,G=($=f)+(e=i[e+4>>2])|0,R=Ig(q,0,B<<1&-2,1&(e<<1|B>>>31)),B=f+(B>>>0>F>>>0?G+1|0:G)|0,G=UI(c^(e=R+F|0),J^(R=e>>>0<R>>>0?B+1|0:B),40),F=1+(B=t+(AA=f)|0)|0,c=B,c=(B=C+G|0)>>>0<C>>>0?F:c,C=B+(t=Ig(G,0,C<<1&-2,1&(t<<1|C>>>31)))|0,B=f+c|0,c=1+(B=(W=C>>>0<t>>>0?B+1|0:B)+H|0)|0,t=B,t=(B=C+M|0)>>>0<C>>>0?c:t,c=B+(F=Ig(M,0,C<<1&-2,1&(W<<1|C>>>31)))|0,B=f+t|0,w=UI(c^k,(l=c>>>0<F>>>0?B+1|0:B)^w,32),L=f,F=(K=i[E+52>>2])+(B=i[E+20>>2])|0,J=(H=i[E+48>>2])+(t=i[E+16>>2])|0,m=Ig(t<<1&-2,1&(B<<1|t>>>31),H,0),t=f+(t>>>0>J>>>0?F+1|0:F)|0,J=(B=J+m|0)>>>0<m>>>0?t+1|0:t,P=(m=UI(B^i[E+112>>2],J^i[E+116>>2],32))+(F=i[E+80>>2])|0,x=(CA=f)+(t=i[E+84>>2])|0,U=Ig(m,0,F<<1&-2,1&(t<<1|F>>>31)),F=f+(F>>>0>P>>>0?x+1|0:x)|0,H=UI(H^(t=U+P|0),K^(P=t>>>0<U>>>0?F+1|0:F),40),U=1+(F=J+(K=f)|0)|0,x=F,x=(F=B+H|0)>>>0<B>>>0?U:x,B=Ig(H,0,B<<1&-2,1&(J<<1|B>>>31)),J=f+x|0,J=UI(U=(F=B+F|0)^m,CA^(m=B>>>0>F>>>0?J+1|0:J),48),U=1+(B=P+(CA=f)|0)|0,x=B,x=(B=t+J|0)>>>0<t>>>0?U:x,t=Ig(J,0,t<<1&-2,1&(P<<1|t>>>31)),P=f+x|0,U=1+(t=(P=(B=t+B|0)>>>0<t>>>0?P+1|0:P)+L|0)|0,x=t,x=(t=B+w|0)>>>0<B>>>0?U:x,T=M^(t=(U=Ig(w,0,B<<1&-2,1&(P<<1|B>>>31)))+t|0),M=f+x|0,M=UI(T,gA^(x=t>>>0<U>>>0?M+1|0:M),40),rA=1+(U=l+(gA=f)|0)|0,T=U,T=(U=c+M|0)>>>0<c>>>0?rA:T,c=(l=Ig(M,0,c<<1&-2,1&(l<<1|c>>>31)))+U|0,i[E>>2]=c,U=f+T|0,l=c>>>0<l>>>0?U+1|0:U,i[E+4>>2]=l,c=UI(c^w,l^L,48),i[E+120>>2]=c,w=f,i[E+124>>2]=w,T=1+(w=w+x|0)|0,U=w,l=(w=c+t|0)>>>0<t>>>0?T:U,c=(t=Ig(c,0,t<<1&-2,1&(x<<1|t>>>31)))+w|0,i[E+80>>2]=c,w=f+l|0,t=c>>>0<t>>>0?w+1|0:w,i[E+84>>2]=t,eA=E,yA=UI(c^M,t^gA,1),i[eA+40>>2]=yA,i[E+44>>2]=f,c=UI(B^H,K^P,1),w=1+(B=O+(H=f)|0)|0,t=B,t=(B=c+y|0)>>>0<y>>>0?w:t,B=B+(M=Ig(c,0,y<<1&-2,1&(O<<1|y>>>31)))|0,y=f+t|0,t=UI(C^q,W^$,48),y=UI(t^B,(M=B>>>0<M>>>0?y+1|0:y)^(O=f),32),q=w=f,K=1+(C=v+Y|0)|0,Y=C,W=(C=Q+k|0)>>>0<Q>>>0?K:Y,Q=Ig(k,0,Q<<1&-2,1&(v<<1|Q>>>31)),k=f+W|0,Y=1+(Q=(k=(C=Q+C|0)>>>0<Q>>>0?k+1|0:k)+w|0)|0,w=Q,w=(Q=C+y|0)>>>0<C>>>0?Y:w,Y=c^(Q=(v=Ig(y,0,C<<1&-2,1&(k<<1|C>>>31)))+Q|0),c=f+w|0,c=UI(Y,H^(w=Q>>>0<v>>>0?c+1|0:c),40),K=1+(v=M+(H=f)|0)|0,Y=v,W=(v=B+c|0)>>>0<B>>>0?K:Y,Y=y^(B=(M=Ig(c,0,B<<1&-2,1&(M<<1|B>>>31)))+v|0),y=f+W|0,y=UI(Y,q^(M=B>>>0<M>>>0?y+1|0:y),48),i[E+96>>2]=y,v=f,i[E+100>>2]=v,i[E+8>>2]=B,i[E+12>>2]=M,K=1+(B=w+v|0)|0,Y=B,M=(B=Q+y|0)>>>0<Q>>>0?K:Y,Q=Ig(y,0,Q<<1&-2,1&(w<<1|Q>>>31)),y=f+M|0,eA=E,yA=UI((B=Q+B|0)^c,H^(Q=B>>>0<Q>>>0?y+1|0:y),1),i[eA+48>>2]=yA,i[E+52>>2]=f,i[E+88>>2]=B,i[E+92>>2]=Q,y=UI(C^b,k^BA,1),Q=1+(C=m+(b=f)|0)|0,B=C,Q=(C=y+F|0)>>>0<F>>>0?Q:B,B=C+(c=Ig(y,0,F<<1&-2,1&(m<<1|F>>>31)))|0,C=f+Q|0,c=UI(B^n,QA^(F=B>>>0<c>>>0?C+1|0:C),32),k=Q=f,w=1+(C=R+O|0)|0,Q=C,n=(C=e+t|0)>>>0<e>>>0?w:Q,e=Ig(t,0,e<<1&-2,1&(R<<1|e>>>31)),Q=f+n|0,w=1+(Q=k+(e=(C=e+C|0)>>>0<e>>>0?Q+1|0:Q)|0)|0,t=Q,t=(Q=C+c|0)>>>0<C>>>0?w:t,w=y^(Q=Q+(n=Ig(c,0,C<<1&-2,1&(e<<1|C>>>31)))|0),y=f+t|0,y=UI(w,b^(t=Q>>>0<n>>>0?y+1|0:y),40),Y=1+(n=F+(b=f)|0)|0,w=n,M=(n=B+y|0)>>>0<B>>>0?Y:w,B=(F=Ig(y,0,B<<1&-2,1&(F<<1|B>>>31)))+n|0,i[E+16>>2]=B,n=f+M|0,F=B>>>0<F>>>0?n+1|0:n,i[E+20>>2]=F,B=UI(B^c,F^k,48),i[E+104>>2]=B,c=f,i[E+108>>2]=c,w=1+(c=c+t|0)|0,k=c,F=(c=B+Q|0)>>>0<Q>>>0?w:k,Q=(B=Ig(B,0,Q<<1&-2,1&(t<<1|Q>>>31)))+c|0,c=f+F|0,F=B=B>>>0>Q>>>0?c+1|0:c,i[j>>2]=Q,i[j+4>>2]=B,B=(e=UI(C^G,e^AA,1))+d|0,c=(k=f)+X|0,C=(t=Ig(d<<1&-2,1&(X<<1|d>>>31),e,0))+B|0,B=f+(B>>>0<e>>>0?c+1|0:c)|0,c=UI(C^J,CA^(t=C>>>0<t>>>0?B+1|0:B),32),n=1+(B=Z+(d=f)|0)|0,w=B,n=(B=c+p|0)>>>0<p>>>0?n:w,w=e^(B=(p=Ig(c,0,p<<1&-2,1&(Z<<1|p>>>31)))+B|0),e=f+n|0,p=UI(w,k^(e=B>>>0<p>>>0?e+1|0:e),40),G=1+(n=t+(k=f)|0)|0,w=n,M=(n=C+p|0)>>>0<C>>>0?G:w,w=c^(t=(C=Ig(p,0,C<<1&-2,1&(t<<1|C>>>31)))+n|0),c=f+M|0,C=UI(w,d^(c=C>>>0>t>>>0?c+1|0:c),48),G=1+(n=e+(d=f)|0)|0,w=n,M=(n=C+B|0)>>>0<B>>>0?G:w,B=(e=Ig(C,0,B<<1&-2,1&(e<<1|B>>>31)))+n|0,i[E+72>>2]=B,n=f+M|0,e=B>>>0<e>>>0?n+1|0:n,i[E+76>>2]=e,i[E+112>>2]=C,i[E+116>>2]=d,i[E+24>>2]=t,i[E+28>>2]=c,eA=E,yA=UI(Q^y,F^b,1),i[eA+56>>2]=yA,i[E+60>>2]=f,eA=E,yA=UI(B^p,e^k,1),i[eA+32>>2]=yA,i[E+36>>2]=f,8!=(0|(r=r+1|0)););for(;B=(Q=i[392+(E=(g+3072|0)+(S<<4)|0)>>2])+(C=i[E+136>>2])|0,y=(t=i[E+396>>2])+(r=i[E+140>>2])|0,p=Ig(C<<1&-2,1&(r<<1|C>>>31),Q,0),C=f+(C>>>0>B>>>0?y+1|0:y)|0,y=(r=p+B|0)>>>0<p>>>0?C+1|0:C,e=(p=UI(r^i[E+904>>2],y^i[E+908>>2],32))+(C=i[E+648>>2])|0,c=(b=f)+(B=i[E+652>>2])|0,F=Ig(p,0,C<<1&-2,1&(B<<1|C>>>31)),C=f+(C>>>0>e>>>0?c+1|0:c)|0,d=UI(Q^(B=F+e|0),t^(J=B>>>0<F>>>0?C+1|0:C),40),t=1+(C=y+(P=f)|0)|0,Q=C,Q=(C=r+d|0)>>>0<r>>>0?t:Q,F=(r=Ig(d,0,r<<1&-2,1&(y<<1|r>>>31)))+C|0,C=f+Q|0,b=UI(F^p,b^(v=r>>>0>F>>>0?C+1|0:C),48),x=G=f,Q=(k=i[E+268>>2])+(r=i[E+12>>2])|0,p=(y=i[E+264>>2])+(C=i[E+8>>2])|0,e=Ig(C<<1&-2,1&(r<<1|C>>>31),y,0),C=f+(C>>>0>p>>>0?Q+1|0:Q)|0,e=(r=p+e|0)>>>0<e>>>0?C+1|0:C,p=(c=UI(r^i[E+776>>2],e^i[E+780>>2],32))+(Q=i[E+520>>2])|0,t=(n=f)+(C=i[E+524>>2])|0,M=Ig(c,0,Q<<1&-2,1&(C<<1|Q>>>31)),Q=f+(Q>>>0>p>>>0?t+1|0:t)|0,p=UI(w=y^(C=M+p|0),k^(y=C>>>0<M>>>0?Q+1|0:Q),40),w=1+(Q=e+(t=f)|0)|0,k=Q,k=(Q=r+p|0)>>>0<r>>>0?w:k,r=Ig(p,0,r<<1&-2,1&(e<<1|r>>>31)),e=f+k|0,k=UI((Q=r+Q|0)^c,n^(X=Q>>>0<r>>>0?e+1|0:e),48),n=1+(r=y+(BA=f)|0)|0,w=r,e=(r=C+k|0)>>>0<C>>>0?n:w,y=r+(C=Ig(k,0,C<<1&-2,1&(y<<1|C>>>31)))|0,r=f+e|0,n=UI(p^y,t^(O=C>>>0>y>>>0?r+1|0:r),1),Y=w=f,p=(H=i[E+260>>2])+(r=i[E+4>>2])|0,c=(e=i[E+256>>2])+(C=i[E>>2])|0,t=Ig(C<<1&-2,1&(r<<1|C>>>31),e,0),C=f+(C>>>0>c>>>0?p+1|0:p)|0,c=(r=c+t|0)>>>0<t>>>0?C+1|0:C,t=(Z=UI(r^i[E+768>>2],c^i[E+772>>2],32))+(C=i[E+512>>2])|0,M=(QA=f)+(p=i[E+516>>2])|0,q=Ig(Z,0,C<<1&-2,1&(p<<1|C>>>31)),C=f+(C>>>0>t>>>0?M+1|0:M)|0,M=UI(e^(p=q+t|0),H^(q=p>>>0<q>>>0?C+1|0:C),40),e=1+(C=c+(gA=f)|0)|0,t=C,e=(C=r+M|0)>>>0<r>>>0?e:t,r=C+(c=Ig(M,0,r<<1&-2,1&(c<<1|r>>>31)))|0,C=f+e|0,w=1+(C=(j=r>>>0<c>>>0?C+1|0:C)+w|0)|0,t=C,c=(C=r+n|0)>>>0<r>>>0?w:t,e=C+(t=Ig(n,0,r<<1&-2,1&(j<<1|r>>>31)))|0,C=f+c|0,G=UI(e^b,(R=e>>>0<t>>>0?C+1|0:C)^G,32),W=f,t=($=i[E+388>>2])+(C=i[E+132>>2])|0,H=(w=i[E+384>>2])+(c=i[E+128>>2])|0,l=Ig(c<<1&-2,1&(C<<1|c>>>31),w,0),c=f+(c>>>0>H>>>0?t+1|0:t)|0,H=(C=H+l|0)>>>0<l>>>0?c+1|0:c,L=(l=UI(C^i[E+896>>2],H^i[E+900>>2],32))+(t=i[E+640>>2])|0,m=(AA=f)+(c=i[E+644>>2])|0,K=Ig(l,0,t<<1&-2,1&(c<<1|t>>>31)),t=f+(t>>>0>L>>>0?m+1|0:m)|0,w=UI(w^(c=K+L|0),$^(L=c>>>0<K>>>0?t+1|0:t),40),U=1+(t=H+($=f)|0)|0,K=t,m=(t=C+w|0)>>>0<C>>>0?U:K,C=Ig(w,0,C<<1&-2,1&(H<<1|C>>>31)),H=f+m|0,H=UI(K=(t=C+t|0)^l,AA^(l=C>>>0>t>>>0?H+1|0:H),48),U=1+(C=L+(AA=f)|0)|0,K=C,m=(C=c+H|0)>>>0<c>>>0?U:K,c=Ig(H,0,c<<1&-2,1&(L<<1|c>>>31)),L=f+m|0,U=1+(c=(L=(C=c+C|0)>>>0<c>>>0?L+1|0:L)+W|0)|0,K=c,m=(c=C+G|0)>>>0<C>>>0?U:K,U=n^(c=(K=Ig(G,0,C<<1&-2,1&(L<<1|C>>>31)))+c|0),n=f+m|0,n=UI(U,Y^(m=c>>>0<K>>>0?n+1|0:n),40),T=1+(K=R+(Y=f)|0)|0,U=K,CA=(K=e+n|0)>>>0<e>>>0?T:U,e=(R=Ig(n,0,e<<1&-2,1&(R<<1|e>>>31)))+K|0,i[E>>2]=e,K=f+CA|0,R=e>>>0<R>>>0?K+1|0:K,i[E+4>>2]=R,e=UI(e^G,R^W,48),i[E+904>>2]=e,G=f,i[E+908>>2]=G,U=1+(G=G+m|0)|0,K=G,R=(G=c+e|0)>>>0<c>>>0?U:K,e=(c=Ig(e,0,c<<1&-2,1&(m<<1|c>>>31)))+G|0,i[E+640>>2]=e,G=f+R|0,c=c>>>0>e>>>0?G+1|0:G,i[E+644>>2]=c,eA=E,yA=UI(e^n,c^Y,1),i[eA+264>>2]=yA,i[E+268>>2]=f,e=UI(C^w,L^$,1),G=1+(C=X+(w=f)|0)|0,n=C,c=(C=Q+e|0)>>>0<Q>>>0?G:n,C=C+(n=Ig(e,0,Q<<1&-2,1&(X<<1|Q>>>31)))|0,Q=f+c|0,c=UI(r^Z,j^QA,48),Q=UI(c^C,(n=C>>>0<n>>>0?Q+1|0:Q)^(X=f),32),Z=G=f,K=1+(r=J+x|0)|0,Y=r,j=(r=B+b|0)>>>0<B>>>0?K:Y,B=Ig(b,0,B<<1&-2,1&(J<<1|B>>>31)),b=f+j|0,Y=1+(B=(b=B>>>0>(r=B+r|0)>>>0?b+1|0:b)+G|0)|0,G=B,G=(B=Q+r|0)>>>0<r>>>0?Y:G,Y=e^(B=(J=Ig(Q,0,r<<1&-2,1&(b<<1|r>>>31)))+B|0),e=f+G|0,e=UI(Y,w^(G=B>>>0<J>>>0?e+1|0:e),40),K=1+(J=n+(w=f)|0)|0,Y=J,j=(J=C+e|0)>>>0<C>>>0?K:Y,Y=Q^(C=(n=Ig(e,0,C<<1&-2,1&(n<<1|C>>>31)))+J|0),Q=f+j|0,Q=UI(Y,Z^(n=C>>>0<n>>>0?Q+1|0:Q),48),i[E+768>>2]=Q,J=f,i[E+772>>2]=J,i[E+8>>2]=C,i[E+12>>2]=n,Y=1+(C=G+J|0)|0,n=C,n=(C=B+Q|0)>>>0<B>>>0?Y:n,B=Ig(Q,0,B<<1&-2,1&(G<<1|B>>>31)),Q=f+n|0,eA=E,yA=UI((C=B+C|0)^e,w^(B=C>>>0<B>>>0?Q+1|0:Q),1),i[eA+384>>2]=yA,i[E+388>>2]=f,i[E+648>>2]=C,i[E+652>>2]=B,Q=UI(r^d,b^P,1),B=1+(r=l+(d=f)|0)|0,C=r,B=(r=Q+t|0)>>>0<t>>>0?B:C,C=r+(e=Ig(Q,0,t<<1&-2,1&(l<<1|t>>>31)))|0,r=f+B|0,e=UI(C^k,BA^(t=C>>>0<e>>>0?r+1|0:r),32),b=B=f,k=1+(r=q+X|0)|0,B=r,k=(r=c+p|0)>>>0<p>>>0?k:B,p=Ig(c,0,p<<1&-2,1&(q<<1|p>>>31)),B=f+k|0,w=1+(B=b+(p=(r=p+r|0)>>>0<p>>>0?B+1|0:B)|0)|0,k=B,c=(B=r+e|0)>>>0<r>>>0?w:k,w=Q^(B=B+(k=Ig(e,0,r<<1&-2,1&(p<<1|r>>>31)))|0),Q=f+c|0,Q=UI(w,d^(c=B>>>0<k>>>0?Q+1|0:Q),40),n=1+(k=t+(d=f)|0)|0,w=k,n=(k=C+Q|0)>>>0<C>>>0?n:w,C=(t=Ig(Q,0,C<<1&-2,1&(t<<1|C>>>31)))+k|0,i[E+128>>2]=C,k=f+n|0,t=C>>>0<t>>>0?k+1|0:k,i[E+132>>2]=t,C=UI(C^e,t^b,48),i[E+776>>2]=C,e=f,i[E+780>>2]=e,k=1+(e=c+e|0)|0,t=e,t=(e=C+B|0)>>>0<B>>>0?k:t,B=(C=Ig(C,0,B<<1&-2,1&(c<<1|B>>>31)))+e|0,e=f+t|0,t=C=C>>>0>B>>>0?e+1|0:e,i[E+512>>2]=B,i[E+516>>2]=C,C=(p=UI(r^M,p^gA,1))+F|0,e=(b=f)+v|0,r=(c=Ig(F<<1&-2,1&(v<<1|F>>>31),p,0))+C|0,C=f+(C>>>0<p>>>0?e+1|0:e)|0,e=UI(r^H,AA^(c=r>>>0<c>>>0?C+1|0:C),32),w=1+(C=O+(F=f)|0)|0,k=C,k=(C=e+y|0)>>>0<y>>>0?w:k,w=p^(C=(y=Ig(e,0,y<<1&-2,1&(O<<1|y>>>31)))+C|0),p=f+k|0,y=UI(w,b^(p=C>>>0<y>>>0?p+1|0:p),40),n=1+(k=c+(b=f)|0)|0,w=k,n=(k=r+y|0)>>>0<r>>>0?n:w,k=e^(c=(r=Ig(y,0,r<<1&-2,1&(c<<1|r>>>31)))+k|0),e=f+n|0,r=UI(k,F^(e=r>>>0>c>>>0?e+1|0:e),48),n=1+(k=p+(F=f)|0)|0,w=k,n=(k=C+r|0)>>>0<C>>>0?n:w,C=(p=Ig(r,0,C<<1&-2,1&(p<<1|C>>>31)))+k|0,i[E+520>>2]=C,k=f+n|0,p=C>>>0<p>>>0?k+1|0:k,i[E+524>>2]=p,i[E+896>>2]=r,i[E+900>>2]=F,i[E+136>>2]=c,i[E+140>>2]=e,eA=E,yA=UI(B^Q,t^d,1),i[eA+392>>2]=yA,i[E+396>>2]=f,eA=E,yA=UI(C^y,p^b,1),i[eA+256>>2]=yA,i[E+260>>2]=f,8!=(0|(S=S+1|0)););for(E=Ng(_A,g+2048|0,1024),r=0;Q=i[(C=(S=r<<3)+E|0)>>2],p=i[(y=(B=g+3072|0)+S|0)>>2],y=i[C+4>>2]^i[y+4>>2],i[C>>2]=Q^p,i[C+4>>2]=y,y=i[(C=(Q=8|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,y=i[(C=(Q=16|S)+E|0)>>2],p=i[(Q=B+Q|0)>>2],Q=i[C+4>>2]^i[Q+4>>2],i[C>>2]=y^p,i[C+4>>2]=Q,Q=i[(S=(C=24|S)+E|0)>>2],B=i[(C=C+B|0)>>2],C=i[S+4>>2]^i[C+4>>2],i[S>>2]=B^Q,i[S+4>>2]=C,128!=(0|(r=r+4|0)););}if(r=EA+1|0,z=z+1|0,!((S=i[A+20>>2])>>>0>(u=u+1|0)>>>0))break}}s=g+4096|0}function S(A){var I,g,B,Q,i,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;h=(U=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24)>>>5&2097151,s=Ig(I=(o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24)>>>3|0,0,-683901,-1),y=(e=o[A+44|0])<<16&2031616|o[A+42|0]|o[A+43|0]<<8,e=f,n=e=y>>>0>(F=s+y|0)>>>0?e+1|0:e,M=e=e-((F>>>0<4293918720)-1|0)|0,s=e>>21,e=(y=h)+(h=(2097151&e)<<11|(p=F- -1048576|0)>>>21)|0,y=s,m=y=e>>>0<h>>>0?y+1|0:y,z=e,G=Ig(e,y,-683901,-1),k=f,w=Ig(g=(o[A+49|0]|o[A+50|0]<<8|o[A+51|0]<<16|o[A+52|0]<<24)>>>7&2097151,0,-997805,-1),s=(e=o[A+27|0])>>>24|0,h=e<<8|(K=o[A+23|0]|o[A+24|0]<<8|o[A+25|0]<<16|o[A+26|0]<<24)>>>24,y=(e=o[A+28|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=h|e<<16)>>>2),e=f,e=y>>>0>(s=y+w|0)>>>0?e+1|0:e,y=Ig(P=(S=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24)>>>4&2097151,0,654183,0),e=f+e|0,w=s=y+s|0,s=y>>>0>s>>>0?e+1|0:e,D=(y=o[A+48|0])<<8|U>>>24,y=e=y>>>24|0,e=Ig(B=2097151&((3&(U=(e=(h=o[A+49|0])>>>16|0)|y))<<30|(y=(h<<=16)|D)>>>2),0,136657,0),s=f+s|0,s=e>>>0>(y=e+w|0)>>>0?s+1|0:s,h=(e=Ig(Q=(o[A+57|0]|o[A+58|0]<<8|o[A+59|0]<<16|o[A+60|0]<<24)>>>6&2097151,0,666643,0))+y|0,y=f+s|0,w=h,s=e>>>0>h>>>0?y+1|0:y,y=(e=o[A+56|0])>>>24|0,D=e<<8|S>>>24,y=Ig(i=2097151&((1&(S=(e=(h=o[A+57|0])>>>16|0)|y))<<31|(y=(h<<=16)|D)>>>1),0,470296,0),e=f+s|0,y=(e=(s=h=y+w|0)>>>0<y>>>0?e+1|0:e)+k|0,y=s>>>0>(h=s+G|0)>>>0?y+1|0:y,b=s- -1048576|0,l=s=e-((s>>>0<4293918720)-1|0)|0,k=h-(e=-2097152&b)|0,G=y-((e>>>0>h>>>0)+s|0)|0,y=Ig(g,0,654183,0),e=f,e=y>>>0>(s=y+(K>>>5&2097151)|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(P,0,470296,0))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(B,j,-997805,-1),y=f+y|0,y=e>>>0>(s=e+h|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(i,X,666643,0))|0,e=f+y|0,D=h,h=s>>>0>h>>>0?e+1|0:e,w=(s=Ig(g,0,470296,0))+(e=(e=o[A+23|0])<<16&2031616|o[A+21|0]|o[A+22|0]<<8)|0,s=f,s=e>>>0>w>>>0?s+1|0:s,w=(y=Ig(P,0,666643,0))+w|0,e=f+s|0,s=Ig(B,j,654183,0),y=f+(y>>>0>w>>>0?e+1|0:e)|0,S=y=s>>>0>(K=s+w|0)>>>0?y+1|0:y,L=y=y-((K>>>0<4293918720)-1|0)|0,e=(e=y>>>21|0)+h|0,s=e=(y=(2097151&y)<<11|(w=K- -1048576|0)>>>21)>>>0>(D=y+D|0)>>>0?e+1|0:e,N=y=e-((D>>>0<4293918720)-1|0)|0,e=k,k=(2097151&y)<<11|(h=D- -1048576|0)>>>21,y=(y>>21)+G|0,U=k=(y=k>>>0>(H=e+k|0)>>>0?y+1|0:y)-((H>>>0<4293918720)-1|0)|0,q=H-(e=-2097152&(G=H- -1048576|0))|0,O=y-((e>>>0>H>>>0)+k|0)|0,e=Ig(z,m,136657,0),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,d=y-(e=-2097152&h)|0,Y=s-((e>>>0>y>>>0)+N|0)|0,H=F-(e=-2097152&p)|0,M=n-((e>>>0>F>>>0)+M|0)|0,n=Ig(I,0,136657,0),y=(e=o[A+40|0])>>>24|0,h=e<<8|(p=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24)>>>24,s=(e=o[A+41|0])>>>16|0,y=(s|=y)>>>3|0,s=(7&s)<<29|(e=h|e<<16)>>>3,e=y+f|0,e=s>>>0>(h=s+n|0)>>>0?e+1|0:e,y=Ig(Q,0,-683901,-1),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,D=s,y=Ig(I,0,-997805,-1),s=f,s=y>>>0>(h=y+(p>>>6&2097151)|0)>>>0?s+1|0:s,p=(y=h)+(h=Ig(Q,0,136657,0))|0,y=f+s|0,s=Ig(i,X,-683901,-1),y=f+(h>>>0>p>>>0?y+1|0:y)|0,k=y=s>>>0>(u=s+p|0)>>>0?y+1|0:y,W=s=y-((u>>>0<4293918720)-1|0)|0,e=e+(y=s>>21)|0,p=e=(s=(2097151&s)<<11|(F=u- -1048576|0)>>>21)>>>0>(N=s+D|0)>>>0?e+1|0:e,x=e=e-((N>>>0<4293918720)-1|0)|0,y=(y=e>>21)+M|0,R=y=(e=(s=(2097151&e)<<11|(D=N- -1048576|0)>>>21)+H|0)>>>0<s>>>0?y+1|0:y,v=e,y=Ig(e,y,-683901,-1),e=f+Y|0,J=s=y+d|0,h=y>>>0>s>>>0?e+1|0:e,H=K-(e=-2097152&w)|0,M=S-((4095&L)+(e>>>0>K>>>0)|0)|0,K=Ig(g,0,666643,0),e=(y=o[A+19|0])>>>24|0,w=y<<8|(S=o[A+15|0]|o[A+16|0]<<8|o[A+17|0]<<16|o[A+18|0]<<24)>>>24,s=e,y=(7&(s|=y=(e=o[A+20|0])>>>16|0))<<29|(y=(e<<=16)|w)>>>3,s=f+(s>>>3|0)|0,s=y>>>0>(w=y+K|0)>>>0?s+1|0:s,e=Ig(B,j,470296,0),y=f+s|0,e=e>>>0>(w=e+w|0)>>>0?y+1|0:y,s=Ig(B,j,666643,0),y=f,K=y=s>>>0>(d=s+(S>>>6&2097151)|0)>>>0?y+1|0:y,V=s=y-((d>>>0<4293918720)-1|0)|0,e=e+(y=s>>>21|0)|0,S=e=(s=(2097151&s)<<11|(n=d- -1048576|0)>>>21)>>>0>(Y=s+w|0)>>>0?e+1|0:e,Z=e=e-((Y>>>0<4293918720)-1|0)|0,y=(y=e>>>21|0)+M|0,y=(e=(2097151&e)<<11|(w=Y- -1048576|0)>>>21)>>>0>(s=e+H|0)>>>0?y+1|0:y,M=(e=s)+(s=Ig(z,m,-997805,-1))|0,e=f+y|0,e=s>>>0>M>>>0?e+1|0:e,L=y=N-(s=-2097152&D)|0,E=D=p-((s>>>0>N>>>0)+x|0)|0,s=Ig(v,R,136657,0),e=f+e|0,e=s>>>0>(p=s+M|0)>>>0?e+1|0:e,s=Ig(y,D,-683901,-1),y=f+e|0,p=y=s>>>0>(M=s+p|0)>>>0?y+1|0:y,x=e=y-((M>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=M- -1048576|0)>>>21,e=(e>>21)+h|0,J=y=(e=y>>>0>(N=y+J|0)>>>0?e+1|0:e)-((N>>>0<4293918720)-1|0)|0,H=(2097151&y)<<11|(h=N- -1048576|0)>>>21,y=(y>>21)+O|0,_=q=H+q|0,H=H>>>0>q>>>0?y+1|0:y,c=N-(y=-2097152&h)|0,t=e-((y>>>0>N>>>0)+J|0)|0,q=M-(e=-2097152&D)|0,O=p-((e>>>0>M>>>0)+x|0)|0,s=(e=Ig(z,m,654183,0))+(Y-(y=-2097152&w)|0)|0,y=f+(S-((2147483647&Z)+(y>>>0>Y>>>0)|0)|0)|0,y=e>>>0>s>>>0?y+1|0:y,e=Ig(v,R,-997805,-1),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,h=(e=s)+(s=Ig(L,E,136657,0))|0,e=f+y|0,J=h,p=s>>>0>h>>>0?e+1|0:e,Y=u-(e=-2097152&F)|0,N=k-((e>>>0>u>>>0)+W|0)|0,S=Ig(P,0,-683901,-1),e=(y=o[A+35|0])>>>24|0,h=y<<8|(w=o[A+31|0]|o[A+32|0]<<8|o[A+33|0]<<16|o[A+34|0]<<24)>>>24,s=e,y=(e=o[A+36|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+S|0)>>>0?s+1|0:s,h=(e=Ig(I,0,654183,0))+y|0,y=f+s|0,y=e>>>0>h>>>0?y+1|0:y,s=Ig(Q,0,-997805,-1),e=f+y|0,e=s>>>0>(h=s+h|0)>>>0?e+1|0:e,y=Ig(i,X,136657,0),e=f+e|0,D=s=y+h|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(g,0,-683901,-1),y=f,y=e>>>0>(s=e+(w>>>4&2097151)|0)>>>0?y+1|0:y,w=(e=Ig(P,0,136657,0))+s|0,s=f+y|0,s=e>>>0>w>>>0?s+1|0:s,e=Ig(I,0,470296,0),y=f+s|0,y=e>>>0>(w=e+w|0)>>>0?y+1|0:y,w=(s=Ig(Q,0,654183,0))+w|0,e=f+y|0,y=Ig(i,X,-997805,-1),e=f+(s>>>0>w>>>0?e+1|0:e)|0,S=e=y>>>0>(k=y+w|0)>>>0?e+1|0:e,r=y=e-((k>>>0<4293918720)-1|0)|0,s=(e=y>>21)+h|0,M=y=(s=(y=(2097151&y)<<11|(w=k- -1048576|0)>>>21)>>>0>(F=y+D|0)>>>0?s+1|0:s)-((F>>>0<4293918720)-1|0)|0,e=(e=y>>21)+N|0,x=e=(y=(h=(2097151&y)<<11|(D=F- -1048576|0)>>>21)+Y|0)>>>0<h>>>0?e+1|0:e,h=J,J=y,e=Ig(y,e,-683901,-1),y=f+p|0,N=h=h+e|0,h=e>>>0>h>>>0?y+1|0:y,p=(e=Ig(z,m,470296,0))+(d-(y=-2097152&n)|0)|0,y=f+(K-((2047&V)+(y>>>0>d>>>0)|0)|0)|0,y=e>>>0>p>>>0?y+1|0:y,n=(e=p)+(p=Ig(v,R,654183,0))|0,e=f+y|0,e=p>>>0>n>>>0?e+1|0:e,p=Ig(L,E,-997805,-1),y=f+e|0,y=p>>>0>(n=p+n|0)>>>0?y+1|0:y,u=D=F-(e=-2097152&D)|0,a=p=s-((e>>>0>F>>>0)+M|0)|0,s=Ig(J,x,136657,0),e=f+y|0,e=s>>>0>(n=s+n|0)>>>0?e+1|0:e,s=Ig(D,p,-683901,-1),y=f+e|0,p=y=s>>>0>(K=s+n|0)>>>0?y+1|0:y,Y=e=y-((K>>>0<4293918720)-1|0)|0,y=(2097151&e)<<11|(D=K- -1048576|0)>>>21,e=(e>>21)+h|0,N=y=(e=y>>>0>(n=y+N|0)>>>0?e+1|0:e)-((n>>>0<4293918720)-1|0)|0,F=(2097151&y)<<11|(h=n- -1048576|0)>>>21,y=(y>>21)+O|0,W=M=F+q|0,M=F>>>0>M>>>0?y+1|0:y,V=n-(y=-2097152&h)|0,Z=e-((y>>>0>n>>>0)+N|0)|0,q=K-(e=-2097152&D)|0,O=p-((e>>>0>K>>>0)+Y|0)|0,p=Ig(z,m,666643,0),e=(y=o[A+14|0])>>>24|0,h=y<<8|(N=o[A+10|0]|o[A+11|0]<<8|o[A+12|0]<<16|o[A+13|0]<<24)>>>24,s=e,y=(e=o[A+15|0])>>>16|0,y|=s,s=f,s=(e=2097151&((1&y)<<31|(e=e<<16|h)>>>1))>>>0>(y=e+p|0)>>>0?s+1|0:s,h=(e=y)+(y=Ig(v,R,470296,0))|0,e=f+s|0,e=y>>>0>h>>>0?e+1|0:e,y=Ig(L,E,654183,0),e=f+e|0,e=y>>>0>(s=y+h|0)>>>0?e+1|0:e,h=(y=s)+(s=Ig(J,x,-997805,-1))|0,y=f+e|0,y=s>>>0>h>>>0?y+1|0:y,e=Ig(u,a,136657,0),y=f+y|0,K=s=e+h|0,h=e>>>0>s>>>0?y+1|0:y,w=k-(e=-2097152&w)|0,p=S-((e>>>0>k>>>0)+r|0)|0,s=Ig(g,0,136657,0),e=f,e=(y=(o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24)>>>7&2097151)>>>0>(s=y+s|0)>>>0?e+1|0:e,D=(y=s)+(s=Ig(P,0,-997805,-1))|0,y=f+e|0,y=s>>>0>D>>>0?y+1|0:y,e=Ig(B,j,-683901,-1),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=Ig(I,0,666643,0))+s|0,s=f+y|0,s=e>>>0>D>>>0?s+1|0:s,y=Ig(Q,0,470296,0),e=f+s|0,e=y>>>0>(D=y+D|0)>>>0?e+1|0:e,y=Ig(i,X,654183,0),e=f+e|0,y=(l>>21)+(y>>>0>(s=y+D|0)>>>0?e+1|0:e)|0,F=y=(D=(2097151&l)<<11|b>>>21)>>>0>(b=D+s|0)>>>0?y+1|0:y,l=e=y-((b>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(n=b- -1048576|0)>>>21,e=(e>>21)+p|0,d=e=(y=D+w|0)>>>0<D>>>0?e+1|0:e,Y=y,y=Ig(y,e,-683901,-1),e=f+h|0,D=s=y+K|0,h=y>>>0>s>>>0?e+1|0:e,e=Ig(v,R,666643,0),y=f,y=e>>>0>(s=e+(N>>>4&2097151)|0)>>>0?y+1|0:y,e=Ig(L,E,470296,0),y=f+y|0,y=e>>>0>(s=e+s|0)>>>0?y+1|0:y,p=(e=Ig(J,x,654183,0))+s|0,s=f+y|0,s=e>>>0>p>>>0?s+1|0:s,y=Ig(u,a,-997805,-1),e=f+s|0,e=y>>>0>(p=y+p|0)>>>0?e+1|0:e,y=Ig(Y,d,136657,0),e=f+e|0,S=e=y>>>0>(k=y+p|0)>>>0?e+1|0:e,R=y=e-((k>>>0<4293918720)-1|0)|0,e=D,D=(2097151&y)<<11|(w=k- -1048576|0)>>>21,y=(y>>21)+h|0,v=h=(y=(s=e+D|0)>>>0<D>>>0?y+1|0:y)-((s>>>0<4293918720)-1|0)|0,e=(e=h>>21)+O|0,z=D=(h=(2097151&h)<<11|(p=s- -1048576|0)>>>21)+q|0,K=h>>>0>D>>>0?e+1|0:e,D=s,s=y,h=(b-(y=-2097152&n)|0)+(n=(2097151&U)<<11|G>>>21)|0,y=(F-((y>>>0>b>>>0)+l|0)|0)+(U>>21)|0,N=y=h>>>0<n>>>0?y+1|0:y,P=y=y-((h>>>0<4293918720)-1|0)|0,G=e=y>>21,e=Ig(m=(2097151&y)<<11|(l=h- -1048576|0)>>>21,e,-683901,-1),s=f+s|0,s=e>>>0>(y=e+D|0)>>>0?s+1|0:s,j=y-(e=-2097152&p)|0,X=s-((e>>>0>y>>>0)+v|0)|0,e=Ig(m,G,136657,0),y=S+f|0,v=(s=e+k|0)-(e=-2097152&w)|0,b=(y=s>>>0<k>>>0?y+1|0:y)-((e>>>0>s>>>0)+R|0)|0,y=Ig(L,E,666643,0),s=f,s=(e=(o[A+7|0]|o[A+8|0]<<8|o[A+9|0]<<16|o[A+10|0]<<24)>>>7&2097151)>>>0>(y=e+y|0)>>>0?s+1|0:s,D=(e=Ig(J,x,470296,0))+y|0,y=f+s|0,y=e>>>0>D>>>0?y+1|0:y,e=Ig(u,a,654183,0),y=f+y|0,y=e>>>0>(s=e+D|0)>>>0?y+1|0:y,D=(e=s)+(s=Ig(Y,d,-997805,-1))|0,e=f+y|0,n=D,D=s>>>0>D>>>0?e+1|0:e,S=Ig(J,x,666643,0),e=(y=o[A+6|0])>>>24|0,p=y<<8|(R=o[A+2|0]|o[A+3|0]<<8|o[A+4|0]<<16|o[A+5|0]<<24)>>>24,s=e,y=(e=o[A+7|0])>>>16|0,y=2097151&((3&(y|=s))<<30|(e=e<<16|p)>>>2),e=f,e=y>>>0>(s=y+S|0)>>>0?e+1|0:e,p=(y=Ig(u,a,470296,0))+s|0,s=f+e|0,s=y>>>0>p>>>0?s+1|0:s,y=Ig(Y,d,654183,0),e=f+s|0,S=e=y>>>0>(F=y+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,y=(s=e>>21)+D|0,k=e=(y=(e=(2097151&e)<<11|(w=F- -1048576|0)>>>21)>>>0>(p=e+n|0)>>>0?y+1|0:y)-((p>>>0<4293918720)-1|0)|0,n=(2097151&e)<<11|(D=p- -1048576|0)>>>21,e=(e>>21)+b|0,v=J=n+v|0,n=n>>>0>J>>>0?e+1|0:e,e=Ig(m,G,-997805,-1),y=f+y|0,y=e>>>0>(s=e+p|0)>>>0?y+1|0:y,L=s-(e=-2097152&D)|0,x=y-((e>>>0>s>>>0)+k|0)|0,y=Ig(m,G,654183,0),e=S+f|0,J=(s=y+F|0)-(y=-2097152&w)|0,b=(e=s>>>0<F>>>0?e+1|0:e)-((y>>>0>s>>>0)+U|0)|0,e=Ig(u,a,666643,0),y=f,y=e>>>0>(s=e+(R>>>5&2097151)|0)>>>0?y+1|0:y,e=Ig(Y,d,470296,0),y=f+y|0,p=s=e+s|0,s=e>>>0>s>>>0?y+1|0:y,D=Ig(Y,d,666643,0),y=(e=o[A+2|0])<<16&2031616|o[0|A]|o[A+1|0]<<8,e=f,S=e=y>>>0>(k=D+y|0)>>>0?e+1|0:e,d=e=e-((k>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(w=k- -1048576|0)>>>21,e=(e>>21)+s|0,s=e=D>>>0>(F=D+p|0)>>>0?e+1|0:e,U=e=e-((F>>>0<4293918720)-1|0)|0,D=(2097151&e)<<11|(p=F- -1048576|0)>>>21,e=(e>>21)+b|0,D=D>>>0>(Y=D+J|0)>>>0?e+1|0:e,e=Ig(m,G,470296,0),s=s+f|0,s=(y=e+F|0)>>>0<F>>>0?s+1|0:s,F=y-(e=-2097152&p)|0,p=s-((e>>>0>y>>>0)+U|0)|0,y=Ig(m,G,666643,0),e=f+(S-(((s=-2097152&w)>>>0>k>>>0)+d|0)|0)|0,y=(s=(e=y>>>0>(b=y+(k-s|0)|0)>>>0?e+1|0:e)>>21)+p|0,e=(e=(y=(e=(2097151&e)<<11|b>>>21)>>>0>(U=e+F|0)>>>0?y+1|0:y)>>21)+D|0,y=(y=(e=(y=(2097151&y)<<11|U>>>21)>>>0>(G=y+Y|0)>>>0?e+1|0:e)>>21)+x|0,s=(e=(y=(e=(2097151&e)<<11|G>>>21)>>>0>(D=e+L|0)>>>0?y+1|0:y)>>21)+n|0,e=(y=(s=(y=(2097151&y)<<11|D>>>21)>>>0>(k=y+v|0)>>>0?s+1|0:s)>>21)+X|0,y=(s=(e=(s=(2097151&s)<<11|k>>>21)>>>0>(F=s+j|0)>>>0?e+1|0:e)>>21)+K|0,K=p=(e=(2097151&e)<<11|F>>>21)+z|0,e=(e=(y=e>>>0>p>>>0?y+1|0:y)>>21)+Z|0,y=(y=(e=(y=(2097151&y)<<11|p>>>21)>>>0>(n=y+V|0)>>>0?e+1|0:e)>>21)+M|0,s=(e=(y=(e=(2097151&e)<<11|n>>>21)>>>0>(S=e+W|0)>>>0?y+1|0:y)>>21)+t|0,e=(y=(s=(y=(2097151&y)<<11|S>>>21)>>>0>(w=y+c|0)>>>0?s+1|0:s)>>21)+H|0,l=(M=h-(y=-2097152&l)|0)+((2097151&(e=(s=(2097151&s)<<11|w>>>21)>>>0>(p=s+_|0)>>>0?e+1|0:e))<<11|p>>>21)|0,e=(N-((y>>>0>h>>>0)+P|0)|0)+(e>>21)|0,N=y=(e=M>>>0>l>>>0?e+1|0:e)>>21,b=(e=Ig(H=(2097151&e)<<11|l>>>21,y,666643,0))+(y=2097151&b)|0,e=f,h=e=y>>>0>b>>>0?e+1|0:e,C[0|A]=b,C[A+1|0]=(255&e)<<24|b>>>8,e=2097151&U,y=Ig(H,N,470296,0)+e|0,s=f,e=(h>>21)+(e>>>0>y>>>0?s+1|0:s)|0,e=(M=(2097151&h)<<11|b>>>21)>>>0>(U=M+y|0)>>>0?e+1|0:e,C[A+4|0]=(2047&e)<<21|U>>>11,y=e,s=U,C[A+3|0]=(7&e)<<29|s>>>3,C[A+2|0]=31&((65535&h)<<16|b>>>16)|s<<5,h=2097151&G,G=Ig(H,N,654183,0)+h|0,e=f,U=(2097151&y)<<11|s>>>21,y=(y>>21)+(h=h>>>0>G>>>0?e+1|0:e)|0,e=y=(G=U+G|0)>>>0<U>>>0?y+1|0:y,C[A+6|0]=(63&e)<<26|G>>>6,h=G,G=0,C[A+5|0]=G<<13|(1572864&s)>>>19|h<<2,s=2097151&D,D=Ig(H,N,-997805,-1)+s|0,y=f,y=s>>>0>D>>>0?y+1|0:y,G=(2097151&(s=e))<<11|h>>>21,s=(e>>=21)+y|0,s=(D=G+D|0)>>>0<G>>>0?s+1|0:s,C[A+9|0]=(511&s)<<23|D>>>9,C[A+8|0]=(1&s)<<31|D>>>1,y=0,C[A+7|0]=y<<18|(2080768&h)>>>14|D<<7,y=2097151&k,h=Ig(H,N,136657,0)+y|0,e=f,e=y>>>0>h>>>0?e+1|0:e,k=(2097151&(y=s))<<11|D>>>21,y=e+(s=y>>21)|0,y=(h=k+h|0)>>>0<k>>>0?y+1|0:y,C[A+12|0]=(4095&y)<<20|h>>>12,s=h,C[A+11|0]=(15&y)<<28|s>>>4,h=0,C[A+10|0]=h<<15|(1966080&D)>>>17|s<<4,h=2097151&F,D=Ig(H,N,-683901,-1)+h|0,e=f,e=h>>>0>D>>>0?e+1|0:e,h=y,y=e+(y>>=21)|0,y=(h=(J=D)+(D=(2097151&h)<<11|s>>>21)|0)>>>0<D>>>0?y+1|0:y,C[A+14|0]=(127&y)<<25|h>>>7,D=0,C[A+13|0]=D<<12|(1048576&s)>>>20|h<<1,e=y>>21,s=(y=(2097151&y)<<11|h>>>21)>>>0>(D=y+(2097151&K)|0)>>>0?e+1|0:e,C[A+17|0]=(1023&s)<<22|D>>>10,C[A+16|0]=(3&s)<<30|D>>>2,y=0,C[A+15|0]=y<<17|(2064384&h)>>>15|D<<6,e=s>>21,e=(y=(2097151&s)<<11|D>>>21)>>>0>(s=y+(2097151&n)|0)>>>0?e+1|0:e,C[A+20|0]=(8191&e)<<19|s>>>13,C[A+19|0]=(31&e)<<27|s>>>5,h=(y=2097151&S)+(S=(2097151&e)<<11|s>>>21)|0,y=e>>21,y=h>>>0<S>>>0?y+1|0:y,S=h,C[A+21|0]=h,n=0,C[A+18|0]=n<<14|(1835008&D)>>>18|s<<3,C[A+22|0]=(255&y)<<24|h>>>8,s=y>>21,s=(h=(D=(2097151&y)<<11|h>>>21)+(2097151&w)|0)>>>0<D>>>0?s+1|0:s,C[A+25|0]=(2047&s)<<21|h>>>11,C[A+24|0]=(7&s)<<29|h>>>3,C[A+23|0]=31&((65535&y)<<16|S>>>16)|h<<5,e=s>>21,e=(y=(2097151&s)<<11|h>>>21)>>>0>(s=y+(2097151&p)|0)>>>0?e+1|0:e,C[A+27|0]=(63&e)<<26|s>>>6,D=0,C[A+26|0]=D<<13|(1572864&h)>>>19|s<<2,y=e,e>>=21,y=(h=(p=(2097151&y)<<11|s>>>21)+(D=2097151&l)|0)>>>0<D>>>0?e+1|0:e,C[A+31|0]=(131071&y)<<15|h>>>17,e=h,C[A+30|0]=(511&y)<<23|e>>>9,h=0,C[A+28|0]=h<<18|(2080768&s)>>>14|e<<7,C[A+29|0]=p+l>>>1}function N(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=E=s-2048|0,Ng(E+1024|0,I,1024),I=0;Q=i[(_=(o=E+1024|0)+(B=I<<3)|0)>>2],a=i[(c=A+B|0)>>2],c=i[_+4>>2]^i[c+4>>2],i[_>>2]=Q^a,i[_+4>>2]=c,c=i[(_=(Q=8|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,c=i[(_=(Q=16|B)+o|0)>>2],a=i[(Q=A+Q|0)>>2],Q=i[_+4>>2]^i[Q+4>>2],i[_>>2]=a^c,i[_+4>>2]=Q,Q=i[(B=(_=24|B)+o|0)>>2],c=i[(_=A+_|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^c,i[B+4>>2]=_,128!=(0|(I=I+4|0)););for(C=Ng(E,o,1024),A=0,I=0;E=i[(B=(o=I<<3)+C|0)>>2],Q=i[(_=g+o|0)>>2],_=i[B+4>>2]^i[_+4>>2],i[B>>2]=Q^E,i[B+4>>2]=_,_=i[(B=(E=8|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,_=i[(B=(E=16|o)+C|0)>>2],Q=i[(E=g+E|0)>>2],E=i[B+4>>2]^i[E+4>>2],i[B>>2]=Q^_,i[B+4>>2]=E,E=i[(o=(B=24|o)+C|0)>>2],_=i[(B=g+B|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,128!=(0|(I=I+4|0)););for(;c=(Q=i[56+(o=(C+1024|0)+(A<<7)|0)>>2])+(B=i[o+24>>2])|0,I=(t=i[o+60>>2])+(E=i[o+28>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0<E>>>0?I+1|0:I,e=(c=UI(i[o+120>>2]^B,_^i[o+124>>2],32))+(E=i[o+88>>2])|0,I=(y=f)+(a=i[o+92>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0<a>>>0?I+1|0:I),40),I=_+(z=f)|0,Q=(a=B+x|0)>>>0<B>>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),j=I=f,p=H,e=I,a=(c=i[o+40>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+44>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+104>>2]^B,Q^i[o+108>>2],32))+(_=i[o+72>>2])|0,I=(w=f)+(r=i[o+76>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0<r>>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0<B>>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0<Q>>>0?I+1|0:I),48),I=c+(R=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0<c>>>0?I+1|0:I),1),L=I=f,k=M,t=I,w=(r=i[o+32>>2])+(Q=i[o>>2])|0,I=(J=i[o+36>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0<c>>>0?I+1|0:I,D=(d=UI(i[o+96>>2]^Q,a^i[o+100>>2],32))+(c=i[(I=S=o- -64|0)>>2])|0,I=(q=f)+(w=i[I+4>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0<w>>>0?I+1|0:I),40),I=a+(X=f)|0,r=(n=Q+J|0)>>>0<Q>>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0<a>>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0<Q>>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0<t>>>0?I+1|0:I)^e,32),P=I=f,N=I,k=(p=i[o+48>>2])+(r=i[o+16>>2])|0,I=(l=i[o+52>>2])+(e=i[o+20>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0<e>>>0?I+1|0:I,G=(k=UI(i[o+112>>2]^r,t^i[o+116>>2],32))+(e=i[o+80>>2])|0,I=(u=f)+(K=i[o+84>>2])|0,U=e>>>0>G>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(G=(e=K+G|0)^p,l^(p=e>>>0<K>>>0?I+1|0:I),40),I=t+(l=f)|0,U=(G=r+K|0)>>>0<r>>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(G=(r=t+G|0)^k,u^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(u=f)|0,t=(G=e+U|0)>>>0<e>>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+G|0)>>>0<p>>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0<e>>>0?I+1|0:I,G=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=G+t|0)^M,L^(M=t>>>0<G>>>0?I+1|0:I),40),I=D+(L=f)|0,G=(O=a+N|0)>>>0<a>>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+O|0,I=f+G|0,i[o>>2]=a,I=a>>>0<D>>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^P,48),i[o+120>>2]=a,I=f,i[o+124>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0<t>>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+80>>2]=a,I=a>>>0<t>>>0?I+1|0:I,i[o+84>>2]=I,W=o,V=UI(a^N,I^L,1),i[W+40>>2]=V,i[o+44>>2]=f,I=h+j|0,a=(t=E+H|0)>>>0<E>>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^l,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0<B>>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^q,48),y=UI(n^B,(Q=B>>>0<y>>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(N=E^e,p^(e=E>>>0<D>>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0<B>>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+96>>2]=B,y=f,i[o+100>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0<E>>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0<E>>>0?I+1|0:I)^D,1),i[W+48>>2]=V,i[o+52>>2]=f,i[o+88>>2]=B,i[o+92>>2]=I,e=UI(t^x,a^z,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0<r>>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,R^(a=B>>>0<Q>>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0<c>>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0<c>>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0<E>>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0<w>>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0<B>>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+16>>2]=B,I=B>>>0<a>>>0?I+1|0:I,i[o+20>>2]=I,B=UI(B^t,I^y,48),i[o+104>>2]=B,I=f,i[o+108>>2]=I,a=S,I=I+r|0,t=(h=B+Q|0)>>>0<Q>>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+t|0,r=B=Q+h|0,t=I=B>>>0<Q>>>0?I+1|0:I,i[a>>2]=B,i[a+4>>2]=I,c=UI(E^J,c^X,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0<c>>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,u^(Q=B>>>0<Q>>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0<B>>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0<Q>>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0<E>>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+72>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+76>>2]=I,i[o+112>>2]=B,i[o+116>>2]=F,i[o+24>>2]=Q,i[o+28>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+56>>2]=V,i[o+60>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+32>>2]=V,i[o+36>>2]=f,8!=(0|(A=A+1|0)););for(A=0;c=(Q=i[392+(o=(C+1024|0)+(A<<4)|0)>>2])+(B=i[o+136>>2])|0,I=(t=i[o+396>>2])+(E=i[o+140>>2])|0,_=B>>>0>c>>>0?I+1|0:I,E=Ig(B<<1&-2,1&(E<<1|B>>>31),Q,0),I=f+_|0,_=(B=E+c|0)>>>0<E>>>0?I+1|0:I,e=(c=UI(i[o+904>>2]^B,_^i[o+908>>2],32))+(E=i[o+648>>2])|0,I=(y=f)+(a=i[o+652>>2])|0,r=E>>>0>e>>>0?I+1|0:I,a=Ig(E<<1&-2,1&(a<<1|E>>>31),c,0),I=f+r|0,x=UI(Q^(E=a+e|0),t^(h=E>>>0<a>>>0?I+1|0:I),40),I=_+(G=f)|0,Q=(a=B+x|0)>>>0<B>>>0?I+1|0:I,B=Ig(x,0,B<<1&-2,1&(_<<1|B>>>31)),I=f+Q|0,H=UI(c^(F=B+a|0),y^(b=B>>>0>F>>>0?I+1|0:I),48),z=I=f,p=H,e=I,a=(c=i[o+264>>2])+(B=i[o+8>>2])|0,I=(Y=i[o+268>>2])+(_=i[o+12>>2])|0,Q=B>>>0>a>>>0?I+1|0:I,_=Ig(B<<1&-2,1&(_<<1|B>>>31),c,0),I=f+Q|0,Q=(B=_+a|0)>>>0<_>>>0?I+1|0:I,y=(a=UI(i[o+776>>2]^B,Q^i[o+780>>2],32))+(_=i[o+520>>2])|0,I=(w=f)+(r=i[o+524>>2])|0,t=_>>>0>y>>>0?I+1|0:I,r=Ig(_<<1&-2,1&(r<<1|_>>>31),a,0),I=f+t|0,r=UI(t=(_=r+y|0)^c,Y^(c=_>>>0<r>>>0?I+1|0:I),40),I=Q+(n=f)|0,t=(y=B+r|0)>>>0<B>>>0?I+1|0:I,Q=Ig(r,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+t|0,v=UI((B=Q+y|0)^a,w^(y=B>>>0<Q>>>0?I+1|0:I),48),I=c+(j=f)|0,Q=(a=_+v|0)>>>0<_>>>0?I+1|0:I,c=Ig(v,0,_<<1&-2,1&(c<<1|_>>>31)),I=f+Q|0,M=UI((_=c+a|0)^r,n^(Y=_>>>0<c>>>0?I+1|0:I),1),R=I=f,k=M,t=I,w=(r=i[o+256>>2])+(Q=i[o>>2])|0,I=(J=i[o+260>>2])+(c=i[o+4>>2])|0,a=Q>>>0>w>>>0?I+1|0:I,c=Ig(Q<<1&-2,1&(c<<1|Q>>>31),r,0),I=f+a|0,a=(Q=c+w|0)>>>0<c>>>0?I+1|0:I,D=(d=UI(i[o+768>>2]^Q,a^i[o+772>>2],32))+(c=i[o+512>>2])|0,I=(L=f)+(w=i[o+516>>2])|0,n=c>>>0>D>>>0?I+1|0:I,w=Ig(c<<1&-2,1&(w<<1|c>>>31),d,0),I=f+n|0,J=UI((c=w+D|0)^r,J^(w=c>>>0<w>>>0?I+1|0:I),40),I=a+(q=f)|0,r=(n=Q+J|0)>>>0<Q>>>0?I+1|0:I,a=Ig(J,0,Q<<1&-2,1&(a<<1|Q>>>31)),I=f+r|0,I=(n=(Q=a+n|0)>>>0<a>>>0?I+1|0:I)+t|0,r=(a=Q+k|0)>>>0<Q>>>0?I+1|0:I,t=Ig(k,0,Q<<1&-2,1&(n<<1|Q>>>31)),I=f+r|0,m=UI((a=t+a|0)^p,(D=a>>>0<t>>>0?I+1|0:I)^e,32),X=I=f,N=I,k=(p=i[o+384>>2])+(r=i[o+128>>2])|0,I=(P=i[o+388>>2])+(e=i[o+132>>2])|0,t=r>>>0>k>>>0?I+1|0:I,e=Ig(r<<1&-2,1&(e<<1|r>>>31),p,0),I=f+t|0,t=(r=e+k|0)>>>0<e>>>0?I+1|0:I,S=(k=UI(i[o+896>>2]^r,t^i[o+900>>2],32))+(e=i[o+640>>2])|0,I=(l=f)+(K=i[o+644>>2])|0,U=e>>>0>S>>>0?I+1|0:I,K=Ig(e<<1&-2,1&(K<<1|e>>>31),k,0),I=f+U|0,K=UI(S=(e=K+S|0)^p,P^(p=e>>>0<K>>>0?I+1|0:I),40),I=t+(P=f)|0,U=(S=r+K|0)>>>0<r>>>0?I+1|0:I,t=Ig(K,0,r<<1&-2,1&(t<<1|r>>>31)),I=f+U|0,U=UI(S=(r=t+S|0)^k,l^(k=t>>>0>r>>>0?I+1|0:I),48),I=p+(l=f)|0,t=(S=e+U|0)>>>0<e>>>0?I+1|0:I,p=Ig(U,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+t|0,I=(p=(e=p+S|0)>>>0<p>>>0?I+1|0:I)+N|0,N=(t=e+m|0)>>>0<e>>>0?I+1|0:I,S=Ig(m,0,e<<1&-2,1&(p<<1|e>>>31)),I=f+N|0,N=UI(N=(t=S+t|0)^M,R^(M=t>>>0<S>>>0?I+1|0:I),40),I=D+(R=f)|0,S=(u=a+N|0)>>>0<a>>>0?I+1|0:I,a=(D=Ig(N,0,a<<1&-2,1&(D<<1|a>>>31)))+u|0,I=f+S|0,i[o>>2]=a,I=a>>>0<D>>>0?I+1|0:I,i[o+4>>2]=I,a=UI(a^m,I^X,48),i[o+904>>2]=a,I=f,i[o+908>>2]=I,I=I+M|0,D=(m=a+t|0)>>>0<t>>>0?I+1|0:I,a=(t=Ig(a,0,t<<1&-2,1&(M<<1|t>>>31)))+m|0,I=f+D|0,i[o+640>>2]=a,I=a>>>0<t>>>0?I+1|0:I,i[o+644>>2]=I,W=o,V=UI(a^N,I^R,1),i[W+264>>2]=V,i[o+268>>2]=f,I=h+z|0,a=(t=E+H|0)>>>0<E>>>0?I+1|0:I,E=Ig(H,0,E<<1&-2,1&(h<<1|E>>>31)),I=f+a|0,a=I=E>>>0>(t=E+t|0)>>>0?I+1|0:I,E=I,e=UI(e^K,p^P,1),I=y+(p=f)|0,h=(D=B+e|0)>>>0<B>>>0?I+1|0:I,B=(y=Ig(e,0,B<<1&-2,1&(y<<1|B>>>31)))+D|0,I=f+h|0,n=UI(Q^d,n^L,48),y=UI(n^B,(Q=B>>>0<y>>>0?I+1|0:I)^(M=f),32),I=(H=f)+E|0,h=y>>>0>(D=y+t|0)>>>0?I+1|0:I,E=(I=D)+(D=Ig(t<<1&-2,1&(E<<1|t>>>31),y,0))|0,I=f+h|0,h=UI(S=E^e,p^(e=E>>>0<D>>>0?I+1|0:I),40),I=Q+(D=f)|0,p=(d=B+h|0)>>>0<B>>>0?I+1|0:I,B=Ig(h,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+p|0,B=UI((Q=B+d|0)^y,H^(I=B>>>0>Q>>>0?I+1|0:I),48),i[o+768>>2]=B,y=f,i[o+772>>2]=y,i[o+8>>2]=Q,i[o+12>>2]=I,I=e+y|0,Q=(y=B+E|0)>>>0<E>>>0?I+1|0:I,E=Ig(B,0,E<<1&-2,1&(e<<1|E>>>31)),I=f+Q|0,W=o,V=UI((B=E+y|0)^h,(I=B>>>0<E>>>0?I+1|0:I)^D,1),i[W+384>>2]=V,i[o+388>>2]=f,i[o+648>>2]=B,i[o+652>>2]=I,e=UI(t^x,a^G,1),I=k+(h=f)|0,E=(B=r+e|0)>>>0<r>>>0?I+1|0:I,Q=Ig(e,0,r<<1&-2,1&(k<<1|r>>>31)),I=f+E|0,t=UI((B=Q+B|0)^v,j^(a=B>>>0<Q>>>0?I+1|0:I),32),y=I=f,Q=I,I=w+M|0,r=(E=c+n|0)>>>0<c>>>0?I+1|0:I,c=Ig(n,0,c<<1&-2,1&(w<<1|c>>>31)),I=f+r|0,I=(c=(E=c+E|0)>>>0<c>>>0?I+1|0:I)+Q|0,r=(Q=E+t|0)>>>0<E>>>0?I+1|0:I,w=Ig(t,0,E<<1&-2,1&(c<<1|E>>>31)),I=f+r|0,e=UI((Q=w+Q|0)^e,h^(r=Q>>>0<w>>>0?I+1|0:I),40),I=a+(w=f)|0,h=(n=B+e|0)>>>0<B>>>0?I+1|0:I,B=(a=Ig(e,0,B<<1&-2,1&(a<<1|B>>>31)))+n|0,I=f+h|0,i[o+128>>2]=B,I=B>>>0<a>>>0?I+1|0:I,i[o+132>>2]=I,B=UI(B^t,I^y,48),i[o+776>>2]=B,I=f,i[o+780>>2]=I,I=I+r|0,a=(t=B+Q|0)>>>0<Q>>>0?I+1|0:I,Q=Ig(B,0,Q<<1&-2,1&(r<<1|Q>>>31)),I=f+a|0,r=B=Q+t|0,t=I=B>>>0<Q>>>0?I+1|0:I,i[o+512>>2]=B,i[o+516>>2]=I,c=UI(E^J,c^q,1),I=(y=f)+b|0,E=(B=c+F|0)>>>0<c>>>0?I+1|0:I,Q=Ig(F<<1&-2,1&(b<<1|F>>>31),c,0),I=f+E|0,a=UI((B=Q+B|0)^U,l^(Q=B>>>0<Q>>>0?I+1|0:I),32),I=Y+(F=f)|0,h=(E=a+_|0)>>>0<_>>>0?I+1|0:I,_=Ig(a,0,_<<1&-2,1&(Y<<1|_>>>31)),I=f+h|0,c=UI((E=_+E|0)^c,y^(_=E>>>0<_>>>0?I+1|0:I),40),I=Q+(b=f)|0,h=(y=B+c|0)>>>0<B>>>0?I+1|0:I,Q=Ig(c,0,B<<1&-2,1&(Q<<1|B>>>31)),I=f+h|0,I=(B=Q+y|0)>>>0<Q>>>0?I+1|0:I,Q=B,B^=a,a=I,B=UI(B,F^I,48),I=_+(F=f)|0,h=(y=B+E|0)>>>0<E>>>0?I+1|0:I,E=(_=Ig(B,0,E<<1&-2,1&(_<<1|E>>>31)))+y|0,I=f+h|0,i[o+520>>2]=E,I=E>>>0<_>>>0?I+1|0:I,i[o+524>>2]=I,i[o+896>>2]=B,i[o+900>>2]=F,i[o+136>>2]=Q,i[o+140>>2]=a,W=o,V=UI(r^e,t^w,1),i[W+392>>2]=V,i[o+396>>2]=f,W=o,V=UI(E^c,I^b,1),i[W+256>>2]=V,i[o+260>>2]=f,8!=(0|(A=A+1|0)););for(I=Ng(g,C,1024),A=0;B=i[(o=(g=A<<3)+I|0)>>2],Q=i[(_=(E=a=C+1024|0)+g|0)>>2],_=i[o+4>>2]^i[_+4>>2],i[o>>2]=B^Q,i[o+4>>2]=_,_=i[(o=(B=8|g)+I|0)>>2],E=i[(B=B+E|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,E=i[(o=(B=16|g)+I|0)>>2],_=i[(B=B+a|0)>>2],B=i[o+4>>2]^i[B+4>>2],i[o>>2]=E^_,i[o+4>>2]=B,B=i[(g=(o=24|g)+I|0)>>2],E=i[(o=o+a|0)>>2],o=i[g+4>>2]^i[o+4>>2],i[g>>2]=B^E,i[g+4>>2]=o,128!=(0|(A=A+4|0)););s=C+2048|0}function G(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;for(s=C=s-800|0,k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,w=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,K=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,U=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,Q=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,E=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,a=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,_=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,c=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,t=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,r=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,n=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g- -64|0,e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I>>2]=33620224^e,i[g+56>>2]=1496785429,i[g+60>>2]=1652156816,i[(A=g+48|0)>>2]=33620224,i[A+4>>2]=218629379,i[g+40>>2]=1110511904,i[g+44>>2]=-584534669,i[(B=g+32|0)>>2]=1427652059,i[B+4>>2]=-248528275,y=n^e,i[g>>2]=y,i[g+92>>2]=-584534669^r,i[g+88>>2]=1110511904^t,i[g+84>>2]=-248528275^c,i[(n=g+80|0)>>2]=1427652059^_,i[g+76>>2]=1652156816^a,i[g+72>>2]=1496785429^E,i[g+68>>2]=218629379^Q,U^=r,i[g+28>>2]=U,K^=t,i[g+24>>2]=K,h=w^c,i[g+20>>2]=h,M^=_,i[(w=g+16|0)>>2]=M,G^=a,i[g+12>>2]=G,D=S^E,i[g+8>>2]=D,f=k^Q,i[g+4>>2]=f,S=0;k=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=k,k=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=k,k=i[I+12>>2],i[C+760>>2]=i[I+8>>2],i[C+764>>2]=k,k=i[I+4>>2],i[C+752>>2]=i[I>>2],i[C+756>>2]=k,k=i[n+12>>2],i[C+744>>2]=i[n+8>>2],i[C+748>>2]=k,k=i[n+4>>2],i[C+736>>2]=i[n>>2],i[C+740>>2]=k,AI(k=C+768|0,C+752|0,C+736|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+728>>2]=i[A+8>>2],i[C+732>>2]=p,p=i[A+4>>2],i[C+720>>2]=i[A>>2],i[C+724>>2]=p,p=i[I+12>>2],i[C+712>>2]=i[I+8>>2],i[C+716>>2]=p,p=i[I+4>>2],i[C+704>>2]=i[I>>2],i[C+708>>2]=p,AI(k,C+720|0,C+704|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+696>>2]=i[B+8>>2],i[C+700>>2]=p,p=i[B+4>>2],i[C+688>>2]=i[B>>2],i[C+692>>2]=p,p=i[A+12>>2],i[C+680>>2]=i[A+8>>2],i[C+684>>2]=p,p=i[A+4>>2],i[C+672>>2]=i[A>>2],i[C+676>>2]=p,AI(k,C+688|0,C+672|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+664>>2]=i[w+8>>2],i[C+668>>2]=p,p=i[w+4>>2],i[C+656>>2]=i[w>>2],i[C+660>>2]=p,p=i[B+12>>2],i[C+648>>2]=i[B+8>>2],i[C+652>>2]=p,p=i[B+4>>2],i[C+640>>2]=i[B>>2],i[C+644>>2]=p,AI(k,C+656|0,C+640|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+632>>2]=i[g+8>>2],i[C+636>>2]=p,p=i[g+4>>2],i[C+624>>2]=i[g>>2],i[C+628>>2]=p,p=i[w+12>>2],i[C+616>>2]=i[w+8>>2],i[C+620>>2]=p,p=i[w+4>>2],i[C+608>>2]=i[w>>2],i[C+612>>2]=p,AI(k,C+624|0,C+608|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+600>>2]=i[C+792>>2],i[C+604>>2]=p,p=i[C+788>>2],i[C+592>>2]=i[C+784>>2],i[C+596>>2]=p,p=i[g+12>>2],i[C+584>>2]=i[g+8>>2],i[C+588>>2]=p,p=i[g+4>>2],i[C+576>>2]=i[g>>2],i[C+580>>2]=p,AI(k,C+592|0,C+576|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^a,i[g+8>>2]=N^E,i[g+4>>2]=F^Q,i[g>>2]=p^e,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+568>>2]=i[I+8>>2],i[C+572>>2]=p,p=i[I+4>>2],i[C+560>>2]=i[I>>2],i[C+564>>2]=p,p=i[n+12>>2],i[C+552>>2]=i[n+8>>2],i[C+556>>2]=p,p=i[n+4>>2],i[C+544>>2]=i[n>>2],i[C+548>>2]=p,AI(k,C+560|0,C+544|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+536>>2]=i[A+8>>2],i[C+540>>2]=p,p=i[A+4>>2],i[C+528>>2]=i[A>>2],i[C+532>>2]=p,p=i[I+12>>2],i[C+520>>2]=i[I+8>>2],i[C+524>>2]=p,p=i[I+4>>2],i[C+512>>2]=i[I>>2],i[C+516>>2]=p,AI(k,C+528|0,C+512|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+504>>2]=i[B+8>>2],i[C+508>>2]=p,p=i[B+4>>2],i[C+496>>2]=i[B>>2],i[C+500>>2]=p,p=i[A+12>>2],i[C+488>>2]=i[A+8>>2],i[C+492>>2]=p,p=i[A+4>>2],i[C+480>>2]=i[A>>2],i[C+484>>2]=p,AI(k,C+496|0,C+480|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+472>>2]=i[w+8>>2],i[C+476>>2]=p,p=i[w+4>>2],i[C+464>>2]=i[w>>2],i[C+468>>2]=p,p=i[B+12>>2],i[C+456>>2]=i[B+8>>2],i[C+460>>2]=p,p=i[B+4>>2],i[C+448>>2]=i[B>>2],i[C+452>>2]=p,AI(k,C+464|0,C+448|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+440>>2]=i[g+8>>2],i[C+444>>2]=p,p=i[g+4>>2],i[C+432>>2]=i[g>>2],i[C+436>>2]=p,p=i[w+12>>2],i[C+424>>2]=i[w+8>>2],i[C+428>>2]=p,p=i[w+4>>2],i[C+416>>2]=i[w>>2],i[C+420>>2]=p,AI(k,C+432|0,C+416|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+408>>2]=i[C+792>>2],i[C+412>>2]=p,p=i[C+788>>2],i[C+400>>2]=i[C+784>>2],i[C+404>>2]=p,p=i[g+12>>2],i[C+392>>2]=i[g+8>>2],i[C+396>>2]=p,p=i[g+4>>2],i[C+384>>2]=i[g>>2],i[C+388>>2]=p,AI(k,C+400|0,C+384|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=i[C+780>>2]^r,i[g+8>>2]=N^t,i[g+4>>2]=F^c,i[g>>2]=p^_,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+376>>2]=i[I+8>>2],i[C+380>>2]=p,p=i[I+4>>2],i[C+368>>2]=i[I>>2],i[C+372>>2]=p,p=i[n+12>>2],i[C+360>>2]=i[n+8>>2],i[C+364>>2]=p,p=i[n+4>>2],i[C+352>>2]=i[n>>2],i[C+356>>2]=p,AI(k,C+368|0,C+352|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+344>>2]=i[A+8>>2],i[C+348>>2]=p,p=i[A+4>>2],i[C+336>>2]=i[A>>2],i[C+340>>2]=p,p=i[I+12>>2],i[C+328>>2]=i[I+8>>2],i[C+332>>2]=p,p=i[I+4>>2],i[C+320>>2]=i[I>>2],i[C+324>>2]=p,AI(k,C+336|0,C+320|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+312>>2]=i[B+8>>2],i[C+316>>2]=p,p=i[B+4>>2],i[C+304>>2]=i[B>>2],i[C+308>>2]=p,p=i[A+12>>2],i[C+296>>2]=i[A+8>>2],i[C+300>>2]=p,p=i[A+4>>2],i[C+288>>2]=i[A>>2],i[C+292>>2]=p,AI(k,C+304|0,C+288|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+280>>2]=i[w+8>>2],i[C+284>>2]=p,p=i[w+4>>2],i[C+272>>2]=i[w>>2],i[C+276>>2]=p,p=i[B+12>>2],i[C+264>>2]=i[B+8>>2],i[C+268>>2]=p,p=i[B+4>>2],i[C+256>>2]=i[B>>2],i[C+260>>2]=p,AI(k,C+272|0,C+256|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+248>>2]=i[g+8>>2],i[C+252>>2]=p,p=i[g+4>>2],i[C+240>>2]=i[g>>2],i[C+244>>2]=p,p=i[w+12>>2],i[C+232>>2]=i[w+8>>2],i[C+236>>2]=p,p=i[w+4>>2],i[C+224>>2]=i[w>>2],i[C+228>>2]=p,AI(k,C+240|0,C+224|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+216>>2]=i[C+792>>2],i[C+220>>2]=p,p=i[C+788>>2],i[C+208>>2]=i[C+784>>2],i[C+212>>2]=p,p=i[g+12>>2],i[C+200>>2]=i[g+8>>2],i[C+204>>2]=p,p=i[g+4>>2],i[C+192>>2]=i[g>>2],i[C+196>>2]=p,AI(k,C+208|0,C+192|0),p=i[C+768>>2],F=i[C+772>>2],N=i[C+776>>2],i[g+12>>2]=G^i[C+780>>2],i[g+8>>2]=N^D,i[g+4>>2]=F^f,i[g>>2]=p^y,p=i[n+12>>2],i[C+792>>2]=i[n+8>>2],i[C+796>>2]=p,p=i[n+4>>2],i[C+784>>2]=i[n>>2],i[C+788>>2]=p,p=i[I+12>>2],i[C+184>>2]=i[I+8>>2],i[C+188>>2]=p,p=i[I+4>>2],i[C+176>>2]=i[I>>2],i[C+180>>2]=p,p=i[n+12>>2],i[C+168>>2]=i[n+8>>2],i[C+172>>2]=p,p=i[n+4>>2],i[C+160>>2]=i[n>>2],i[C+164>>2]=p,AI(k,C+176|0,C+160|0),p=i[C+780>>2],i[n+8>>2]=i[C+776>>2],i[n+12>>2]=p,p=i[C+772>>2],i[n>>2]=i[C+768>>2],i[n+4>>2]=p,p=i[A+12>>2],i[C+152>>2]=i[A+8>>2],i[C+156>>2]=p,p=i[A+4>>2],i[C+144>>2]=i[A>>2],i[C+148>>2]=p,p=i[I+12>>2],i[C+136>>2]=i[I+8>>2],i[C+140>>2]=p,p=i[I+4>>2],i[C+128>>2]=i[I>>2],i[C+132>>2]=p,AI(k,C+144|0,C+128|0),p=i[C+780>>2],i[I+8>>2]=i[C+776>>2],i[I+12>>2]=p,p=i[C+772>>2],i[I>>2]=i[C+768>>2],i[I+4>>2]=p,p=i[B+12>>2],i[C+120>>2]=i[B+8>>2],i[C+124>>2]=p,p=i[B+4>>2],i[C+112>>2]=i[B>>2],i[C+116>>2]=p,p=i[A+12>>2],i[C+104>>2]=i[A+8>>2],i[C+108>>2]=p,p=i[A+4>>2],i[C+96>>2]=i[A>>2],i[C+100>>2]=p,AI(k,C+112|0,C+96|0),p=i[C+780>>2],i[A+8>>2]=i[C+776>>2],i[A+12>>2]=p,p=i[C+772>>2],i[A>>2]=i[C+768>>2],i[A+4>>2]=p,p=i[w+12>>2],i[C+88>>2]=i[w+8>>2],i[C+92>>2]=p,p=i[w+4>>2],i[C+80>>2]=i[w>>2],i[C+84>>2]=p,p=i[B+12>>2],i[C+72>>2]=i[B+8>>2],i[C+76>>2]=p,p=i[B+4>>2],i[C+64>>2]=i[B>>2],i[C+68>>2]=p,AI(k,C+80|0,C- -64|0),p=i[C+780>>2],i[B+8>>2]=i[C+776>>2],i[B+12>>2]=p,p=i[C+772>>2],i[B>>2]=i[C+768>>2],i[B+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[w+12>>2],i[C+40>>2]=i[w+8>>2],i[C+44>>2]=p,p=i[w+4>>2],i[C+32>>2]=i[w>>2],i[C+36>>2]=p,AI(k,C+48|0,C+32|0),p=i[C+780>>2],i[w+8>>2]=i[C+776>>2],i[w+12>>2]=p,p=i[C+772>>2],i[w>>2]=i[C+768>>2],i[w+4>>2]=p,p=i[C+796>>2],i[C+24>>2]=i[C+792>>2],i[C+28>>2]=p,p=i[C+788>>2],i[C+16>>2]=i[C+784>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(k,C+16|0,C),k=i[C+768>>2],p=i[C+772>>2],F=i[C+776>>2],i[g+12>>2]=U^i[C+780>>2],i[g+8>>2]=F^K,i[g+4>>2]=p^h,i[g>>2]=k^M,4!=(0|(S=S+1|0)););s=C+800|0}function M(A,I){var g,B,E,a,_,c,t,r,e,y,h,D,p,w,n,k,F,S,N,G,M,K,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0;for(s=g=s-48|0,Y=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,C[A+24|0]=H,C[A+25|0]=H>>>8,C[A+26|0]=H>>>16,C[A+27|0]=H>>>24,C[A+28|0]=Y,C[A+29|0]=Y>>>8,C[A+30|0]=Y>>>16,C[A+31|0]=Y>>>24,Y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,H=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,C[0|A]=H,C[A+1|0]=H>>>8,C[A+2|0]=H>>>16,C[A+3|0]=H>>>24,C[A+4|0]=Y,C[A+5|0]=Y>>>8,C[A+6|0]=Y>>>16,C[A+7|0]=Y>>>24,Y=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,C[A+16|0]=H,C[A+17|0]=H>>>8,C[A+18|0]=H>>>16,C[A+19|0]=H>>>24,C[A+20|0]=Y,C[A+21|0]=Y>>>8,C[A+22|0]=Y>>>16,C[A+23|0]=Y>>>24,H=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,I=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,C[A+12|0]=H,C[A+13|0]=H>>>8,C[A+14|0]=H>>>16,C[A+15|0]=H>>>24,I=o[A+31|0],C[A+31|0]=127&I,fA(g,A),y=128&I,s=I=s-960|0,v(H=I+304|0,g),i[I+304>>2]=i[I+304>>2]+1,LA(H,H),Y=Ig(H=i[I+340>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,x=Y-(-33554432&P)|0,U=Ig(H=i[I+336>>2],H>>31,486662,0),Y=f,J=Ig(H=i[I+332>>2],H>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,H=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,B=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+292>>2]=0-B,W=d-(-67108864&Y)|0,i[I+288>>2]=0-W,x=J-(-33554432&m)|0,Y=Ig(H=i[I+328>>2],H>>31,486662,0),H=f,m=Ig(U=i[I+324>>2],U>>31,486662,0),U=f,u=Y,H=H+(Y=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)|0,H=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0<J>>>0?H+1|0:H,E=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+x|0,i[I+284>>2]=0-E,a=U-(-67108864&Y)|0,i[I+280>>2]=0-a,x=m-(-33554432&d)|0,U=Ig(H=i[I+320>>2],H>>31,486662,0),H=f,m=Ig(Y=i[I+316>>2],Y>>31,486662,0),Y=f,u=U,H=(U=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+H|0,U=H=(Y=u+(J=(33554431&Y)<<7|d>>>25)|0)>>>0<J>>>0?H+1|0:H,_=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|J>>>26)+x|0,i[I+276>>2]=0-_,c=Y-(-67108864&J)|0,i[I+272>>2]=0-c,u=m-(-33554432&d)|0,H=Ig(H=i[I+312>>2],H>>31,486662,0),x=f,J=Ig(Y=i[I+308>>2],Y>>31,486662,0),U=f,Y=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+x|0,Y=Y>>>0>(d=Y+H|0)>>>0?U+1|0:U,t=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+u|0,i[I+268>>2]=0-t,r=d-(-67108864&H)|0,i[I+264>>2]=0-r,d=J-(-33554432&m)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,J=Y,Y=Ig(U=i[I+304>>2],U>>31,486662,0),H=f+H|0,Y=(U=J+Y|0)>>>0<Y>>>0?H+1|0:H,e=((67108863&(Y=(H=U+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+d|0,i[I+260>>2]=0-e,L=U-(-67108864&H)|0,i[I+256>>2]=0-L,R(Y=I+208|0,H=I+256|0),b(I+160|0,H,Y),h=i[I+196>>2],D=i[I+160>>2],q=i[I+208>>2],p=i[I+164>>2],w=i[I+168>>2],z=i[I+212>>2],j=i[I+216>>2],n=i[I+172>>2],k=i[I+176>>2],X=i[I+220>>2],O=i[I+224>>2],F=i[I+180>>2],S=i[I+184>>2],u=i[I+228>>2],x=i[I+232>>2],N=i[I+188>>2],G=i[I+192>>2],Y=Ig(H=i[I+244>>2],H>>31,486662,0),H=f,l=(P=Y+16777216|0)>>>0<16777216?H+1|0:H,M=Y-(-33554432&P)|0,H=Ig(H=i[I+240>>2],H>>31,486662,0),K=f,J=Ig(Y=i[I+236>>2],Y>>31,486662,0),U=f,Y=H,H=(33554431&(U=(m=J+16777216|0)>>>0<16777216?U+1|0:U))<<7|m>>>25,U=(U>>25)+K|0,H=H>>>0>(d=Y+H|0)>>>0?U+1|0:U,U=((67108863&(H=(Y=d+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+M|0,i[I+244>>2]=U,i[I+388>>2]=U+(h-B|0),H=d-(-67108864&Y)|0,i[I+240>>2]=H,i[I+384>>2]=H+(G-W|0),W=J-(-33554432&m)|0,H=Ig(x,x>>31,486662,0),J=f,m=Ig(u,u>>31,486662,0),Y=f,u=H,H=(H=(Y=(d=m+16777216|0)>>>0<16777216?Y+1|0:Y)>>25)+J|0,U=H=(U=(33554431&Y)<<7|d>>>25)>>>0>(Y=u+U|0)>>>0?H+1|0:H,J=((67108863&(U=(J=Y+33554432|0)>>>0<33554432?U+1|0:U))<<6|(H=J)>>>26)+W|0,i[I+236>>2]=J,i[I+380>>2]=J+(N-E|0),H=Y-(-67108864&H)|0,i[I+232>>2]=H,i[I+376>>2]=H+(S-a|0),x=m-(-33554432&d)|0,U=Ig(O,O>>31,486662,0),Y=f,J=Ig(X,X>>31,486662,0),H=f,u=U,U=(U=(H=(m=J+16777216|0)>>>0<16777216?H+1|0:H)>>25)+Y|0,Y=(H=(33554431&H)<<7|m>>>25)>>>0>(d=u+H|0)>>>0?U+1|0:U,U=((67108863&(Y=(H=d+33554432|0)>>>0<33554432?Y+1|0:Y))<<6|H>>>26)+x|0,i[I+228>>2]=U,i[I+372>>2]=U+(F-_|0),H=d-(-67108864&H)|0,i[I+224>>2]=H,i[I+368>>2]=H+(k-c|0),x=J-(-33554432&m)|0,H=Ig(j,j>>31,486662,0),Y=f,m=Ig(z,z>>31,486662,0),U=f,u=H,Y=(H=(U=(d=m+16777216|0)>>>0<16777216?U+1|0:U)>>25)+Y|0,H=Y=(U=u+(J=(33554431&U)<<7|d>>>25)|0)>>>0<J>>>0?Y+1|0:Y,J=((67108863&(H=(J=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|(Y=J)>>>26)+x|0,i[I+220>>2]=J,i[I+364>>2]=J+(n-t|0),H=U-(-67108864&Y)|0,i[I+216>>2]=H,i[I+360>>2]=H+(w-r|0),d=m-(-33554432&d)|0,Y=Ig((33554431&l)<<7|P>>>25,l>>25,19,0),H=f,U=Y,Y=Ig(q,q>>31,486662,0),H=f+H|0,H=(U=U+Y|0)>>>0<Y>>>0?H+1|0:H,l=((67108863&(H=(Y=U+33554432|0)>>>0<33554432?H+1|0:H))<<6|Y>>>26)+d|0,i[I+212>>2]=l,i[I+356>>2]=l+(p-e|0),H=U-(-67108864&Y)|0,i[I+208>>2]=H,i[I+352>>2]=H+(D-L|0),b(H=I+624|0,Y=I+352|0,Y),b(I,Y,H),R(Y=I+784|0,I),R(Y,Y),b(H=I+912|0,I,Y),R(Y=I+576|0,H),R(Y,Y),R(Y,Y),R(Y,Y),b(U=I+528|0,H,Y),R(U,U),R(U,U),b(U,U,I),H=i[I+564>>2],i[I+512>>2]=i[I+560>>2],i[I+516>>2]=H,H=i[I+556>>2],i[I+504>>2]=i[I+552>>2],i[I+508>>2]=H,H=i[I+548>>2],i[I+496>>2]=i[I+544>>2],i[I+500>>2]=H,H=i[I+540>>2],i[I+488>>2]=i[I+536>>2],i[I+492>>2]=H,H=i[I+532>>2],i[I+480>>2]=i[I+528>>2],i[I+484>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H=I+480|0),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,H),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y=I+432|0),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H,R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),R(U,U),b(U,U,Y),H=i[I+564>>2],i[I+464>>2]=i[I+560>>2],i[I+468>>2]=H,H=i[I+556>>2],i[I+456>>2]=i[I+552>>2],i[I+460>>2]=H,H=i[I+548>>2],i[I+448>>2]=i[I+544>>2],i[I+452>>2]=H,H=i[I+540>>2],i[I+440>>2]=i[I+536>>2],i[I+444>>2]=H,H=i[I+532>>2],i[I+432>>2]=i[I+528>>2],i[I+436>>2]=H;R(H=I+528|0,H),120!=(0|(V=V+1|0)););b(H,H,I+432|0),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),R(H,H),b(H,H,I+480|0),R(H,H),R(H,H),R(H,H),b(H,H,I),R(H,H),QI(I+400|0,H),q=i[I+256>>2],z=i[I+260>>2],j=i[I+264>>2],X=i[I+268>>2],O=i[I+272>>2],d=i[I+276>>2],l=i[I+280>>2],U=i[I+284>>2],Y=i[I+288>>2],u=(L=0-(1&C[I+401|0])|0)&(0-(H=i[I+292>>2])^H)^H,i[I+660>>2]=u,x=Y^L&(Y^0-Y),i[I+656>>2]=x,P=U^L&(U^0-U),i[I+652>>2]=P,J=l^L&(l^0-l),i[I+648>>2]=J,m=d^L&(d^0-d),i[I+644>>2]=m,d=O^L&(O^0-O),i[I+640>>2]=d,l=X^L&(X^0-X),i[I+636>>2]=l,U=j^L&(j^0-j),i[I+632>>2]=U,Y=z^L&(z^0-z),i[I+628>>2]=Y,H=(q^L&(q^0-q))-(486662&L)|0,i[I+624>>2]=H+1,i[I+820>>2]=u,i[I+816>>2]=x,i[I+812>>2]=P,i[I+808>>2]=J,i[I+804>>2]=m,i[I+800>>2]=d,i[I+796>>2]=l,i[I+792>>2]=U,i[I+788>>2]=Y,i[I+784>>2]=H-1,LA(I,I+624|0),b(H=I+912|0,I+784|0,I),QI(A,H),C[A+31|0]=o[A+31|0]|y,MA(I,A)&&(DB(),Q()),H=i[I+36>>2],i[I+816>>2]=i[I+32>>2],i[I+820>>2]=H,H=i[I+28>>2],i[I+808>>2]=i[I+24>>2],i[I+812>>2]=H,H=i[I+20>>2],i[I+800>>2]=i[I+16>>2],i[I+804>>2]=H,H=i[I+12>>2],i[I+792>>2]=i[I+8>>2],i[I+796>>2]=H,H=i[I+52>>2],i[I+832>>2]=i[I+48>>2],i[I+836>>2]=H,H=i[I+60>>2],i[I+840>>2]=i[I+56>>2],i[I+844>>2]=H,H=i[4+(Y=I- -64|0)>>2],i[I+848>>2]=i[Y>>2],i[I+852>>2]=H,H=i[I+76>>2],i[I+856>>2]=i[I+72>>2],i[I+860>>2]=H,H=i[I+4>>2],i[I+784>>2]=i[I>>2],i[I+788>>2]=H,H=i[I+44>>2],i[I+824>>2]=i[I+40>>2],i[I+828>>2]=H,H=i[I+116>>2],i[I+896>>2]=i[I+112>>2],i[I+900>>2]=H,H=i[I+108>>2],i[I+888>>2]=i[I+104>>2],i[I+892>>2]=H,H=i[I+100>>2],i[I+880>>2]=i[I+96>>2],i[I+884>>2]=H,H=i[I+92>>2],i[I+872>>2]=i[I+88>>2],i[I+876>>2]=H,H=i[I+84>>2],i[I+864>>2]=i[I+80>>2],i[I+868>>2]=H,KA(J=I+624|0,m=I+784|0),b(m,J,d=I+744|0),b(Y=I+824|0,U=I+664|0,l=I+704|0),b(H=I+864|0,l,d),KA(J,m),b(m,J,d),b(Y,U,l),b(H,l,d),KA(J,m),b(I,J,d),b(Y=I+40|0,U,l),b(H=I+80|0,l,d),b(I+120|0,J,U),LA(J,H),b(m,I,J),b(H=I+912|0,Y,J),QI(A,H),QI(I+576|0,m),C[A+31|0]=o[A+31|0]^o[I+576|0]<<7,s=I+960|0,s=g+48|0}function K(A){var I,g=0,C=0,B=0,Q=0,a=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0;s=I=s-16|0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{a:{if((A|=0)>>>0<=244){if(3&(g=(Q=i[9405])>>>(A=(t=A>>>0<11?16:A+11&504)>>>3|0)|0)){A=37660+(g=(C=A+(1&~g)|0)<<3)|0,g=i[g+37668>>2],(0|A)!=(0|(B=i[g+8>>2]))?(i[B+12>>2]=A,i[A+8>>2]=B):(h=37620,D=Lg(-2,C)&Q,i[h>>2]=D),A=g+8|0,C<<=3,i[g+4>>2]=3|C,i[4+(g=g+C|0)>>2]=1|i[g+4>>2];break A}if((r=i[9407])>>>0>=t>>>0)break a;if(g){g=37660+(C=(A=FC((0-(C=2<<A)|C)&g<<A))<<3)|0,C=i[C+37668>>2],(0|g)!=(0|(B=i[C+8>>2]))?(i[B+12>>2]=g,i[g+8>>2]=B):(Q=Lg(-2,A)&Q,i[9405]=Q),i[C+4>>2]=3|t,a=(A<<=3)-t|0,i[4+(c=C+t|0)>>2]=1|a,i[A+C>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),A=C+8|0,i[9410]=c,i[9407]=a;break A}if(!(y=i[9406]))break a;for(C=i[37924+(FC(y)<<2)>>2],a=(-8&i[C+4>>2])-t|0,g=C;(A=i[g+16>>2])||(A=i[g+20>>2]);)a=(g=(B=(-8&i[A+4>>2])-t|0)>>>0<a>>>0)?B:a,C=g?A:C,g=A;if(e=i[C+24>>2],(0|C)!=(0|(A=i[C+12>>2]))){g=i[C+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break I}if(g=i[C+20>>2])B=C+20|0;else{if(!(g=i[C+16>>2]))break E;B=C+16|0}for(;c=B,B=(A=g)+20|0,(g=i[A+20>>2])||(B=A+16|0,g=i[A+16>>2]););i[c>>2]=0;break I}if(t=-1,!(A>>>0>4294967231)&&(t=-8&(g=A+11|0),c=i[9406])){r=31,a=0-t|0,A>>>0<=16777204&&(r=62+((t>>>38-(A=_(g>>>8|0))&1)-(A<<1)|0)|0);_:{c:{if(g=i[37924+(r<<2)>>2])for(A=0,C=t<<(31!=(0|r)?25-(r>>>1|0):0);;){if(!((Q=(-8&i[g+4>>2])-t|0)>>>0>=a>>>0||(B=g,a=Q))){a=0,A=g;break c}if(Q=i[g+20>>2],g=i[16+((C>>>29&4)+g|0)>>2],A=Q?(0|Q)==(0|g)?A:Q:A,C<<=1,!g)break}else A=0;if(!(A|B)){if(B=0,!(A=(0-(A=2<<r)|A)&c))break a;A=i[37924+(FC(A)<<2)>>2]}if(!A)break _}for(;a=(g=(C=(-8&i[A+4>>2])-t|0)>>>0<a>>>0)?C:a,B=g?A:B,A=(g=i[A+16>>2])||i[A+20>>2];);}if(!(!B|i[9407]-t>>>0<=a>>>0)){if(r=i[B+24>>2],(0|B)!=(0|(A=i[B+12>>2]))){g=i[B+8>>2],i[g+12>>2]=A,i[A+8>>2]=g;break g}if(g=i[B+20>>2])C=B+20|0;else{if(!(g=i[B+16>>2]))break o;C=B+16|0}for(;Q=C,C=(A=g)+20|0,(g=i[A+20>>2])||(C=A+16|0,g=i[A+16>>2]););i[Q>>2]=0;break g}}}if((B=i[9407])>>>0>=t>>>0){A=i[9410],(g=B-t|0)>>>0>=16?(i[4+(C=A+t|0)>>2]=1|g,i[A+B>>2]=g,i[A+4>>2]=3|t):(i[A+4>>2]=3|B,i[4+(g=A+B|0)>>2]=1|i[g+4>>2],C=0,g=0),i[9407]=g,i[9410]=C,A=A+8|0;break A}if((C=i[9408])>>>0>t>>>0){g=C-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}if(A=0,a=t+47|0,i[9523]?g=i[9525]:(i[9526]=-1,i[9527]=-1,i[9524]=4096,i[9525]=4096,i[9523]=I+12&-16^1431655768,i[9528]=0,i[9516]=0,g=4096),(g=(Q=a+g|0)&(c=0-g|0))>>>0<=t>>>0)break A;if((r=i[9515])&&(B=(e=i[9513])+g|0)>>>0<=e>>>0|B>>>0>r>>>0)break A;a:{if(!(4&o[38064])){_:{c:{t:{r:{if(B=i[9411])for(A=38068;;){if((r=i[A>>2])>>>0<=B>>>0&B>>>0<r+i[A+4>>2]>>>0)break r;if(!(A=i[A+8>>2]))break}if(-1==(0|(C=cg(0))))break _;if(Q=g,(B=(A=i[9524])-1|0)&C&&(Q=(g-C|0)+(C+B&0-A)|0),Q>>>0<=t>>>0)break _;if((B=i[9515])&&(A=(c=i[9513])+Q|0)>>>0<=c>>>0|A>>>0>B>>>0)break _;if((0|C)!=(0|(A=cg(Q))))break t;break a}if((0|(C=cg(Q=c&Q-C)))==(i[A>>2]+i[A+4>>2]|0))break c;A=C}if(-1==(0|A))break _;if(t+48>>>0<=Q>>>0){C=A;break a}if(-1==(0|cg(C=(C=i[9525])+(a-Q|0)&0-C)))break _;Q=C+Q|0,C=A;break a}if(-1!=(0|C))break a}i[9516]=4|i[9516]}if(-1==(0|(C=cg(g)))|-1==(0|(A=cg(0)))|A>>>0<=C>>>0)break B;if((Q=A-C|0)>>>0<=t+40>>>0)break B}A=i[9513]+Q|0,i[9513]=A,A>>>0>E[9514]&&(i[9514]=A);a:{if(a=i[9411]){for(A=38068;;){if(((g=i[A>>2])+(B=i[A+4>>2])|0)==(0|C))break a;if(!(A=i[A+8>>2]))break}break i}for((A=i[9409])>>>0<=C>>>0&&A||(i[9409]=C),A=0,i[9518]=Q,i[9517]=C,i[9413]=-1,i[9414]=i[9523],i[9520]=0;B=37660+(g=A<<3)|0,i[g+37668>>2]=B,i[g+37672>>2]=B,32!=(0|(A=A+1|0)););B=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=B,g=g+C|0,i[9411]=g,i[g+4>>2]=1|B,i[4+(A+C|0)>>2]=40,i[9412]=i[9527];break Q}if(8&i[A+12>>2]|C>>>0<=a>>>0|g>>>0>a>>>0)break i;i[A+4>>2]=B+Q,g=(A=-8-a&7)+a|0,i[9411]=g,A=(C=i[9408]+Q|0)-A|0,i[9408]=A,i[g+4>>2]=1|A,i[4+(C+a|0)>>2]=40,i[9412]=i[9527];break Q}A=0;break I}A=0;break g}E[9409]>C>>>0&&(i[9409]=C),B=C+Q|0,A=38068;i:{for(;;){if((0|(g=i[A>>2]))!=(0|B)){if(A=i[A+8>>2])continue;break i}break}if(!(8&o[A+12|0]))break C}for(A=38068;!((g=i[A>>2])>>>0<=a>>>0&&(B=g+i[A+4>>2]|0)>>>0>a>>>0);)A=i[A+8>>2];for(c=(A=Q-40|0)-(g=-8-C&7)|0,i[9408]=c,g=g+C|0,i[9411]=g,i[g+4>>2]=1|c,i[4+(A+C|0)>>2]=40,i[9412]=i[9527],i[(g=(A=(B+(39-B&7)|0)-47|0)>>>0<a+16>>>0?a:A)+4>>2]=27,A=i[9520],i[g+16>>2]=i[9519],i[g+20>>2]=A,A=i[9518],i[g+8>>2]=i[9517],i[g+12>>2]=A,i[9519]=g+8,i[9518]=Q,i[9517]=C,i[9520]=0,A=g+24|0;i[A+4>>2]=7,C=A+8|0,A=A+4|0,C>>>0<B>>>0;);if((0|g)!=(0|a)){i[g+4>>2]=-2&i[g+4>>2],C=g-a|0,i[a+4>>2]=1|C,i[g>>2]=C;i:if(C>>>0<=255)A=37660+(-8&C)|0,(g=i[9405])&(C=1<<(C>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,B=8,C=12;else{A=31,C>>>0<=16777215&&(A=62+((C>>>38-(A=_(C>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=A,i[a+16>>2]=0,i[a+20>>2]=0,g=37924+(A<<2)|0;o:{if((B=i[9406])&(Q=1<<A)){for(A=C<<(31!=(0|A)?25-(A>>>1|0):0),B=i[g>>2];;){if((0|C)==(-8&i[(g=B)+4>>2]))break o;if(B=A>>>29|0,A<<=1,!(B=i[16+(Q=(4&B)+g|0)>>2]))break}i[Q+16>>2]=a}else i[9406]=B|Q,i[g>>2]=a;i[a+24>>2]=g,A=g=a,B=12,C=8;break i}A=i[g+8>>2],i[A+12>>2]=a,i[g+8>>2]=a,i[a+8>>2]=A,A=0,B=12,C=24}i[B+a>>2]=g,i[C+a>>2]=A}}if(!((A=i[9408])>>>0<=t>>>0)){g=A-t|0,i[9408]=g,C=(A=i[9411])+t|0,i[9411]=C,i[C+4>>2]=1|g,i[A+4>>2]=3|t,A=A+8|0;break A}}i[9404]=48,A=0;break A}i[A>>2]=C,i[A+4>>2]=i[A+4>>2]+Q,i[4+(r=(-8-C&7)+C|0)>>2]=3|t,c=(Q=g+(-8-g&7)|0)-(a=t+r|0)|0;C:if(i[9411]!=(0|Q))if(i[9410]!=(0|Q)){if(1==(3&(A=i[Q+4>>2]))){e=-8&A,C=i[Q+12>>2];B:if(A>>>0<=255){if((0|(g=i[Q+8>>2]))==(0|C)){h=37620,D=i[9405]&Lg(-2,A>>>3|0),i[h>>2]=D;break B}i[g+12>>2]=C,i[C+8>>2]=g}else{t=i[Q+24>>2];Q:if((0|C)==(0|Q)){i:{if(A=i[Q+20>>2])g=Q+20|0;else{if(!(A=i[Q+16>>2]))break i;g=Q+16|0}for(;B=g,C=A,g=A+20|0,(A=i[A+20>>2])||(g=C+16|0,A=i[C+16>>2]););i[B>>2]=0;break Q}C=0}else A=i[Q+8>>2],i[A+12>>2]=C,i[C+8>>2]=A;if(t){A=i[Q+28>>2];Q:{if(i[(g=37924+(A<<2)|0)>>2]==(0|Q)){if(i[g>>2]=C,C)break Q;h=37624,D=i[9406]&Lg(-2,A),i[h>>2]=D;break B}if(i[t+(i[t+16>>2]==(0|Q)?16:20)>>2]=C,!C)break B}i[C+24>>2]=t,(A=i[Q+16>>2])&&(i[C+16>>2]=A,i[A+24>>2]=C),(A=i[Q+20>>2])&&(i[C+20>>2]=A,i[A+24>>2]=C)}}c=c+e|0,A=i[4+(Q=Q+e|0)>>2]}if(i[Q+4>>2]=-2&A,i[a+4>>2]=1|c,i[a+c>>2]=c,c>>>0<=255)A=37660+(-8&c)|0,(g=i[9405])&(C=1<<(c>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=a,i[g+12>>2]=a,i[a+12>>2]=A,i[a+8>>2]=g;else{C=31,c>>>0<=16777215&&(C=62+((c>>>38-(A=_(c>>>8|0))&1)-(A<<1)|0)|0),i[a+28>>2]=C,i[a+16>>2]=0,i[a+20>>2]=0,A=37924+(C<<2)|0;B:{if((g=i[9406])&(B=1<<C)){for(C=c<<(31!=(0|C)?25-(C>>>1|0):0),g=i[A>>2];;){if((-8&i[(A=g)+4>>2])==(0|c))break B;if(g=C>>>29|0,C<<=1,!(g=i[16+(B=(4&g)+A|0)>>2]))break}i[B+16>>2]=a}else i[9406]=g|B,i[A>>2]=a;i[a+24>>2]=A,i[a+12>>2]=a,i[a+8>>2]=a;break C}g=i[A+8>>2],i[g+12>>2]=a,i[A+8>>2]=a,i[a+24>>2]=0,i[a+12>>2]=A,i[a+8>>2]=g}}else i[9410]=a,A=i[9407]+c|0,i[9407]=A,i[a+4>>2]=1|A,i[A+a>>2]=A;else i[9411]=a,A=i[9408]+c|0,i[9408]=A,i[a+4>>2]=1|A;A=r+8|0;break A}g:if(r){g=i[B+28>>2];C:{if(i[(C=37924+(g<<2)|0)>>2]==(0|B)){if(i[C>>2]=A,A)break C;c=Lg(-2,g)&c,i[9406]=c;break g}if(i[r+(i[r+16>>2]==(0|B)?16:20)>>2]=A,!A)break g}i[A+24>>2]=r,(g=i[B+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[B+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}g:if(a>>>0<=15)A=a+t|0,i[B+4>>2]=3|A,i[4+(A=A+B|0)>>2]=1|i[A+4>>2];else if(i[B+4>>2]=3|t,i[4+(Q=B+t|0)>>2]=1|a,i[a+Q>>2]=a,a>>>0<=255)A=37660+(-8&a)|0,(g=i[9405])&(C=1<<(a>>>3))?g=i[A+8>>2]:(i[9405]=g|C,g=A),i[A+8>>2]=Q,i[g+12>>2]=Q,i[Q+12>>2]=A,i[Q+8>>2]=g;else{A=31,a>>>0<=16777215&&(A=62+((a>>>38-(A=_(a>>>8|0))&1)-(A<<1)|0)|0),i[Q+28>>2]=A,i[Q+16>>2]=0,i[Q+20>>2]=0,g=37924+(A<<2)|0;C:{if((C=1<<A)&c){for(A=a<<(31!=(0|A)?25-(A>>>1|0):0),g=i[g>>2];;){if(C=g,(-8&i[g+4>>2])==(0|a))break C;if(c=A>>>29|0,A<<=1,!(g=i[16+(c=g+(4&c)|0)>>2]))break}i[c+16>>2]=Q,i[Q+24>>2]=C}else i[9406]=C|c,i[g>>2]=Q,i[Q+24>>2]=g;i[Q+12>>2]=Q,i[Q+8>>2]=Q;break g}A=i[C+8>>2],i[A+12>>2]=Q,i[C+8>>2]=Q,i[Q+24>>2]=0,i[Q+12>>2]=C,i[Q+8>>2]=A}A=B+8|0;break A}I:if(e){g=i[C+28>>2];g:{if(i[(B=37924+(g<<2)|0)>>2]==(0|C)){if(i[B>>2]=A,A)break g;h=37624,D=Lg(-2,g)&y,i[h>>2]=D;break I}if(i[e+(i[e+16>>2]==(0|C)?16:20)>>2]=A,!A)break I}i[A+24>>2]=e,(g=i[C+16>>2])&&(i[A+16>>2]=g,i[g+24>>2]=A),(g=i[C+20>>2])&&(i[A+20>>2]=g,i[g+24>>2]=A)}a>>>0<=15?(A=a+t|0,i[C+4>>2]=3|A,i[4+(A=A+C|0)>>2]=1|i[A+4>>2]):(i[C+4>>2]=3|t,i[4+(c=C+t|0)>>2]=1|a,i[a+c>>2]=a,r&&(A=37660+(-8&r)|0,B=i[9410],(g=1<<(r>>>3))&Q?g=i[A+8>>2]:(i[9405]=g|Q,g=A),i[A+8>>2]=B,i[g+12>>2]=B,i[B+12>>2]=A,i[B+8>>2]=g),i[9410]=c,i[9407]=a),A=C+8|0}return s=I+16|0,0|A}function U(A,I,g,B,Q,E){var _,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,X=0,O=0,W=0,V=0,Z=0,T=0;if(s=_=s-592|0,r=-1,ZI(t=A+32|0)&&!KI(A)&&NI(Q)&&!KI(Q)&&!qA(y=_+128|0,Q)){for(SI(r=_+384|0),E&&SA(r,35600,34,0),SA(r,A,32,0),SA(r,Q,32,0),SA(r,I,g,B),j(I=r,r=_+320|0),S(r),B=_+8|0,g=t,Q=0,I=0,s=c=s-2272|0;E=c+2016|0,t=o[r+(Q>>>3|0)|0],C[E+Q|0]=t>>>(6&Q)&1,C[(e=E)+(E=1|Q)|0]=t>>>(7&E)&1,256!=(0|(Q=Q+2|0)););for(;;){I=(E=I)+1|0;A:if(!(E>>>0>254)&&o[0|(D=(Q=c+2016|0)+E|0)]){I:if(Q=C[0|(h=I+Q|0)])if((0|(Q=(r=Q<<1)+(t=C[0|D])|0))<=15)C[0|D]=Q,C[0|h]=0;else{if((0|(Q=t-r|0))<-15)break A;for(C[0|D]=Q,Q=I;;){if(!o[0|(t=(c+2016|0)+Q|0)]){C[0|t]=1;break I}if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,!t)break}}if(!(E>>>0>253)){I:if(t=C[0|(e=(Q=E+2|0)+(c+2016|0)|0)])if((0|(t=(h=t<<2)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(253!=(0|E)){I:if(t=C[0|(e=(Q=E+3|0)+(c+2016|0)|0)])if((0|(t=(h=t<<3)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>251)){I:if(t=C[0|(e=(Q=E+4|0)+(c+2016|0)|0)])if((0|(t=(h=t<<4)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(251!=(0|E)){I:if(t=C[0|(e=(Q=E+5|0)+(c+2016|0)|0)])if((0|(t=(h=t<<5)+(r=C[0|D])|0))>=16){if((0|(t=r-h|0))<-15)break A;for(C[0|D]=t;;){if(o[0|(t=(c+2016|0)+Q|0)]){if(C[0|t]=0,t=Q>>>0<255,Q=Q+1|0,t)continue;break I}break}C[0|t]=1}else C[0|D]=t,C[0|e]=0;if(!(E>>>0>249)&&(E=C[0|(h=(Q=E+6|0)+(c+2016|0)|0)]))if((0|(E=(r=E<<6)+(t=C[0|D])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|D]=E;;){if(o[0|(E=(c+2016|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break A}break}C[0|E]=1}else C[0|D]=E,C[0|h]=0}}}}}if(256==(0|I))break}for(Q=0;I=c+1760|0,E=o[g+(Q>>>3|0)|0],C[I+Q|0]=E>>>(6&Q)&1,C[(t=I)+(I=1|Q)|0]=E>>>(7&I)&1,256!=(0|(Q=Q+2|0)););for(I=0;;){g=I,I=I+1|0;A:if(!(g>>>0>254)&&o[0|(e=(Q=c+1760|0)+g|0)]){I:if(Q=C[0|(r=I+Q|0)])if((0|(Q=(t=Q<<1)+(E=C[0|e])|0))<=15)C[0|e]=Q,C[0|r]=0;else{if((0|(Q=E-t|0))<-15)break A;for(C[0|e]=Q,Q=I;;){if(!o[0|(E=(c+1760|0)+Q|0)]){C[0|E]=1;break I}if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,!E)break}}if(!(g>>>0>253)){I:if(E=C[0|(h=(Q=g+2|0)+(c+1760|0)|0)])if((0|(E=(r=E<<2)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(253!=(0|g)){I:if(E=C[0|(h=(Q=g+3|0)+(c+1760|0)|0)])if((0|(E=(r=E<<3)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>251)){I:if(E=C[0|(h=(Q=g+4|0)+(c+1760|0)|0)])if((0|(E=(r=E<<4)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(251!=(0|g)){I:if(E=C[0|(h=(Q=g+5|0)+(c+1760|0)|0)])if((0|(E=(r=E<<5)+(t=C[0|e])|0))>=16){if((0|(E=t-r|0))<-15)break A;for(C[0|e]=E;;){if(o[0|(E=(c+1760|0)+Q|0)]){if(C[0|E]=0,E=Q>>>0<255,Q=Q+1|0,E)continue;break I}break}C[0|E]=1}else C[0|e]=E,C[0|h]=0;if(!(g>>>0>249)&&(g=C[0|(r=(Q=g+6|0)+(c+1760|0)|0)]))if((0|(g=(t=g<<6)+(E=C[0|e])|0))>=16){if((0|(g=E-t|0))<-15)break A;for(C[0|e]=g;;){if(o[0|(g=(c+1760|0)+Q|0)]){if(C[0|g]=0,g=Q>>>0<255,Q=Q+1|0,g)continue;break A}break}C[0|g]=1}else C[0|e]=g,C[0|r]=0}}}}}if(256==(0|I))break}for($A(Q=c+480|0,y),I=i[y+36>>2],i[c+192>>2]=i[y+32>>2],i[c+196>>2]=I,I=i[y+28>>2],i[c+184>>2]=i[y+24>>2],i[c+188>>2]=I,I=i[y+20>>2],i[c+176>>2]=i[y+16>>2],i[c+180>>2]=I,I=i[y+12>>2],i[c+168>>2]=i[y+8>>2],i[c+172>>2]=I,I=i[y+4>>2],i[c+160>>2]=i[y>>2],i[c+164>>2]=I,I=i[y+52>>2],i[c+208>>2]=i[y+48>>2],i[c+212>>2]=I,I=i[y+60>>2],i[c+216>>2]=i[y+56>>2],i[c+220>>2]=I,I=i[4+(g=y- -64|0)>>2],i[c+224>>2]=i[g>>2],i[c+228>>2]=I,I=i[y+76>>2],i[c+232>>2]=i[y+72>>2],i[c+236>>2]=I,I=i[y+44>>2],i[c+200>>2]=i[y+40>>2],i[c+204>>2]=I,I=i[y+92>>2],i[c+248>>2]=i[y+88>>2],i[c+252>>2]=I,I=i[y+100>>2],i[c+256>>2]=i[y+96>>2],i[c+260>>2]=I,I=i[y+108>>2],i[c+264>>2]=i[y+104>>2],i[c+268>>2]=I,I=i[y+116>>2],i[c+272>>2]=i[y+112>>2],i[c+276>>2]=I,I=i[y+84>>2],i[c+240>>2]=i[y+80>>2],i[c+244>>2]=I,KA(E=c+320|0,g=c+160|0),b(c,E,f=c+440|0),b(c+40|0,p=c+360|0,w=c+400|0),b(c+80|0,w,f),b(c+120|0,E,p),sA(E,c,Q),b(g,E,f),b(k=c+200|0,p,w),b(F=c+240|0,w,f),b(n=c+280|0,E,p),$A(I=c+640|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+800|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+960|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1120|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1280|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(I=c+1440|0,g),sA(E,c,I),b(g,E,f),b(k,p,w),b(F,w,f),b(n,E,p),$A(c+1600|0,g),i[B+32>>2]=0,i[B+36>>2]=0,i[B+24>>2]=0,i[B+28>>2]=0,i[B+16>>2]=0,i[B+20>>2]=0,i[B+8>>2]=0,i[B+12>>2]=0,i[B>>2]=0,i[B+4>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+40>>2]=1,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=0,i[B+68>>2]=0,i[B+72>>2]=0,i[B+84>>2]=0,i[B+88>>2]=0,i[B+76>>2]=0,i[B+80>>2]=1,i[B+92>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,X=B+80|0,O=B+40|0,I=255;;){A:{I:{if(!o[(g=c+2016|0)+I|0]&&!o[(Q=c+1760|0)+I|0]){if(!(o[(E=g)+(g=I-1|0)|0]|o[g+Q|0]))break I;I=g}if((0|I)<0)break A;for(;KA(Q=c+320|0,B),g=I,(0|(E=C[I+(c+2016|0)|0]))>0?(b(I=c+160|0,Q,f),b(k,p,w),b(F,w,f),b(n,Q,p),sA(Q,I,(c+480|0)+a((254&E)>>>1|0,160)|0)):(0|E)>=0||(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),hA(Q,I,(c+480|0)+a((0-E&254)>>>1|0,160)|0)),(0|(u=C[g+(c+1760|0)|0]))>0?(b(I=c+160|0,Q=c+320|0,f),b(k,p,w),b(F,w,f),b(n,Q,p),DA(Q,I,a((254&u)>>>1|0,120)+1728|0)):(0|u)>=0||(b(c+160|0,x=c+320|0,f),b(k,p,w),b(F,w,f),b(n,x,p),N=i[c+160>>2],G=i[c+200>>2],M=i[c+164>>2],K=i[c+204>>2],U=i[c+168>>2],H=i[c+208>>2],Y=i[c+172>>2],J=i[c+212>>2],d=i[c+176>>2],m=i[c+216>>2],l=i[c+180>>2],D=i[c+220>>2],e=i[c+184>>2],h=i[c+224>>2],r=i[c+188>>2],y=i[c+228>>2],t=i[c+192>>2],E=i[c+232>>2],Q=i[c+236>>2],I=i[c+196>>2],i[c+396>>2]=Q-I,i[c+392>>2]=E-t,i[c+388>>2]=y-r,i[c+384>>2]=h-e,i[c+380>>2]=D-l,i[c+376>>2]=m-d,i[c+372>>2]=J-Y,i[c+368>>2]=H-U,i[c+364>>2]=K-M,i[c+360>>2]=G-N,i[c+356>>2]=I+Q,i[c+352>>2]=E+t,i[c+348>>2]=r+y,i[c+344>>2]=e+h,i[c+340>>2]=D+l,i[c+336>>2]=d+m,i[c+332>>2]=Y+J,i[c+328>>2]=U+H,i[c+324>>2]=M+K,i[c+320>>2]=N+G,b(w,x,40+(I=a((0-u&254)>>>1|0,120)+1728|0)|0),b(p,p,I),b(f,I+80|0,n),W=i[c+276>>2],V=i[c+272>>2],u=i[c+268>>2],x=i[c+264>>2],e=i[c+260>>2],h=i[c+256>>2],r=i[c+252>>2],y=i[c+248>>2],t=i[c+244>>2],E=i[c+240>>2],v=i[c+360>>2],R=i[c+400>>2],L=i[c+364>>2],P=i[c+404>>2],q=i[c+368>>2],z=i[c+408>>2],N=i[c+372>>2],G=i[c+412>>2],M=i[c+376>>2],K=i[c+416>>2],U=i[c+380>>2],H=i[c+420>>2],Y=i[c+384>>2],J=i[c+424>>2],d=i[c+388>>2],m=i[c+428>>2],l=i[c+392>>2],D=i[c+432>>2],Q=i[c+396>>2],I=i[c+436>>2],i[c+396>>2]=Q+I,i[c+392>>2]=D+l,i[c+388>>2]=d+m,i[c+384>>2]=Y+J,i[c+380>>2]=U+H,i[c+376>>2]=M+K,i[c+372>>2]=N+G,i[c+368>>2]=q+z,i[c+364>>2]=L+P,i[c+360>>2]=v+R,i[c+356>>2]=I-Q,i[c+352>>2]=D-l,i[c+348>>2]=m-d,i[c+344>>2]=J-Y,i[c+340>>2]=H-U,i[c+336>>2]=K-M,i[c+332>>2]=G-N,i[c+328>>2]=z-q,i[c+324>>2]=P-L,i[c+320>>2]=R-v,N=E<<1,G=i[c+440>>2],i[c+400>>2]=N-G,M=t<<1,K=i[c+444>>2],i[c+404>>2]=M-K,U=y<<1,H=i[c+448>>2],i[c+408>>2]=U-H,Y=r<<1,J=i[c+452>>2],i[c+412>>2]=Y-J,d=h<<1,m=i[c+456>>2],i[c+416>>2]=d-m,l=e<<1,D=i[c+460>>2],i[c+420>>2]=l-D,e=x<<1,h=i[c+464>>2],i[c+424>>2]=e-h,r=u<<1,y=i[c+468>>2],i[c+428>>2]=r-y,t=V<<1,E=i[c+472>>2],i[c+432>>2]=t-E,Q=W<<1,I=i[c+476>>2],i[c+436>>2]=Q-I,i[c+440>>2]=N+G,i[c+444>>2]=M+K,i[c+448>>2]=U+H,i[c+452>>2]=Y+J,i[c+456>>2]=d+m,i[c+460>>2]=D+l,i[c+464>>2]=e+h,i[c+468>>2]=r+y,i[c+472>>2]=E+t,i[c+476>>2]=I+Q),b(B,c+320|0,f),b(O,p,w),b(X,w,f),I=g-1|0,(0|g)>0;);break A}if(I=I-2|0,g)continue}break}s=c+2272|0,tg(I=_+288|0,B),Z=-1,T=NC(I,A),r=((0|A)==(0|I)?Z:T)|MI(A,I,32)}return s=_+592|0,r}function b(A,I,g){var C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R,L,P,q,z,j,X,O,W,V,Z,T,$,AA,IA,gA,CA,BA,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0;QA=Ig(C=i[g+4>>2],e=C>>31,wA=(w=i[I+20>>2])<<1,m=wA>>31),oA=f,iA=(hA=Ig(fA=i[g>>2],Q=fA>>31,B=i[I+24>>2],o=B>>31))+QA|0,QA=f+oA|0,QA=iA>>>0<hA>>>0?QA+1|0:QA,rA=Ig(E=i[g+8>>2],h=E>>31,hA=i[I+16>>2],_=hA>>31),oA=f+QA|0,oA=(iA=rA+iA|0)>>>0<rA>>>0?oA+1|0:oA,QA=(rA=Ig(y=i[g+12>>2],n=y>>31,K=(k=i[I+12>>2])<<1,l=K>>31))+iA|0,iA=f+oA|0,iA=QA>>>0<rA>>>0?iA+1|0:iA,oA=(DA=Ig(D=i[g+16>>2],U=D>>31,rA=i[I+8>>2],c=rA>>31))+QA|0,QA=f+iA|0,QA=oA>>>0<DA>>>0?QA+1|0:QA,iA=oA,oA=Ig(F=i[g+20>>2],u=F>>31,b=(S=i[I+4>>2])<<1,x=b>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0<oA>>>0?QA+1|0:QA,Z=cA=i[g+24>>2],oA=(eA=Ig(cA,W=cA>>31,DA=i[I>>2],t=DA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0<eA>>>0?iA+1|0:iA,v=i[g+28>>2],QA=(eA=Ig(sA=a(v,19),N=sA>>31,H=(G=i[I+36>>2])<<1,R=H>>31))+oA|0,oA=f+iA|0,oA=QA>>>0<eA>>>0?oA+1|0:oA,SA=i[g+32>>2],iA=(tA=Ig(EA=a(SA,19),p=EA>>31,eA=i[I+32>>2],r=eA>>31))+QA|0,QA=f+oA|0,QA=iA>>>0<tA>>>0?QA+1|0:QA,T=i[g+36>>2],g=Ig(tA=a(T,19),s=tA>>31,Y=(M=i[I+28>>2])<<1,L=Y>>31),QA=f+QA|0,aA=I=g+iA|0,g=I>>>0<g>>>0?QA+1|0:QA,I=Ig(hA,_,C,e),QA=f,iA=Ig(fA,Q,w,P=w>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0<iA>>>0?oA+1|0:oA,QA=Ig(E,h,k,q=k>>31),iA=f+oA|0,iA=(I=QA+I|0)>>>0<QA>>>0?iA+1|0:iA,oA=Ig(rA,c,y,n),QA=f+iA|0,QA=(I=oA+I|0)>>>0<oA>>>0?QA+1|0:QA,iA=Ig(D,U,S,z=S>>31),QA=f+QA|0,QA=(I=iA+I|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(DA,t,F,u),QA=f+QA|0,QA=(I=iA+I|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(cA=a(cA,19),J=cA>>31,G,j=G>>31),oA=f+QA|0,oA=(I=iA+I|0)>>>0<iA>>>0?oA+1|0:oA,QA=Ig(eA,r,sA,N),iA=f+oA|0,iA=(I=QA+I|0)>>>0<QA>>>0?iA+1|0:iA,oA=Ig(EA,p,M,X=M>>31),QA=f+iA|0,QA=(I=oA+I|0)>>>0<oA>>>0?QA+1|0:QA,iA=Ig(tA,s,B,o),QA=f+QA|0,GA=I=iA+I|0,nA=I>>>0<iA>>>0?QA+1|0:QA,I=Ig(C,e,K,l),QA=f,iA=Ig(fA,Q,hA,_),QA=f+QA|0,QA=(I=iA+I|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(rA,c,E,h),oA=f+QA|0,oA=(I=iA+I|0)>>>0<iA>>>0?oA+1|0:oA,QA=Ig(y,n,b,x),iA=f+oA|0,iA=(I=QA+I|0)>>>0<QA>>>0?iA+1|0:iA,oA=Ig(DA,t,D,U),QA=f+iA|0,QA=(I=oA+I|0)>>>0<oA>>>0?QA+1|0:QA,iA=Ig(d=a(F,19),O=d>>31,H,R),QA=f+QA|0,QA=(I=iA+I|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(eA,r,cA,J),QA=f+QA|0,QA=(I=iA+I|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(sA,N,Y,L),oA=f+QA|0,oA=(I=iA+I|0)>>>0<iA>>>0?oA+1|0:oA,QA=Ig(EA,p,B,o),iA=f+oA|0,iA=(I=QA+I|0)>>>0<QA>>>0?iA+1|0:iA,oA=Ig(tA,s,wA,m),QA=f+iA|0,$=I=oA+I|0,AA=QA=I>>>0<oA>>>0?QA+1|0:QA,IA=I=I+33554432|0,gA=QA=I>>>0<33554432?QA+1|0:QA,oA=(67108863&QA)<<6|I>>>26,QA=(QA>>26)+nA|0,GA=I=oA+GA|0,QA=I>>>0<oA>>>0?QA+1|0:QA,CA=I=I+16777216|0,QA=g+(iA=(oA=I>>>0<16777216?QA+1|0:QA)>>25)|0,QA=(I=(oA=(33554431&oA)<<7|I>>>25)+aA|0)>>>0<oA>>>0?QA+1|0:QA,kA=g=(iA=I)+33554432|0,I=QA=g>>>0<33554432?QA+1|0:QA,i[A+24>>2]=iA-(-67108864&g),g=Ig(C,e,b,x),QA=f,iA=Ig(fA,Q,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0<iA>>>0?oA+1|0:oA,iA=(QA=g)+(g=Ig(DA,t,E,h))|0,QA=f+oA|0,QA=g>>>0>iA>>>0?QA+1|0:QA,oA=Ig(g=a(y,19),FA=g>>31,H,R),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,oA=(aA=Ig(eA,r,nA=a(D,19),V=nA>>31))+iA|0,iA=f+QA|0,iA=oA>>>0<aA>>>0?iA+1|0:iA,aA=Ig(Y,L,d,O),QA=f+iA|0,QA=(oA=aA+oA|0)>>>0<aA>>>0?QA+1|0:QA,iA=(aA=Ig(B,o,cA,J))+oA|0,oA=f+QA|0,oA=iA>>>0<aA>>>0?oA+1|0:oA,aA=Ig(sA,N,wA,m),QA=f+oA|0,QA=(iA=aA+iA|0)>>>0<aA>>>0?QA+1|0:QA,oA=Ig(EA,p,hA,_),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,oA=(aA=Ig(tA,s,K,l))+iA|0,iA=f+QA|0,yA=oA,MA=oA>>>0<aA>>>0?iA+1|0:iA,QA=Ig(DA,t,C,e),iA=f,oA=(aA=Ig(fA,Q,S,z))+QA|0,QA=f+iA|0,QA=oA>>>0<aA>>>0?QA+1|0:QA,aA=iA=a(E,19),iA=(_A=Ig(iA,NA=iA>>31,G,j))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(eA,r,g,FA),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(nA,V,M,X),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,oA=(_A=Ig(B,o,d,O))+iA|0,iA=f+QA|0,iA=oA>>>0<_A>>>0?iA+1|0:iA,_A=Ig(cA,J,w,P),QA=f+iA|0,QA=(oA=_A+oA|0)>>>0<_A>>>0?QA+1|0:QA,iA=(_A=Ig(hA,_,sA,N))+oA|0,oA=f+QA|0,oA=iA>>>0<_A>>>0?oA+1|0:oA,_A=Ig(EA,p,k,q),QA=f+oA|0,QA=(iA=_A+iA|0)>>>0<_A>>>0?QA+1|0:QA,oA=Ig(tA,s,rA,c),QA=f+QA|0,KA=iA=oA+iA|0,_A=iA>>>0<oA>>>0?QA+1|0:QA,QA=Ig(QA=a(C,19),QA>>31,H,R),iA=f,oA=Ig(fA,Q,DA,t),iA=f+iA|0,iA=(QA=oA+QA|0)>>>0<oA>>>0?iA+1|0:iA,oA=(aA=Ig(eA,r,aA,NA))+QA|0,QA=f+iA|0,g=(iA=Ig(g,FA,Y,L))+oA|0,oA=f+(oA>>>0<aA>>>0?QA+1|0:QA)|0,oA=g>>>0<iA>>>0?oA+1|0:oA,iA=Ig(B,o,nA,V),QA=f+oA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(wA,m,d,O),QA=f+QA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,oA=Ig(hA,_,cA,J),iA=f+QA|0,iA=(g=oA+g|0)>>>0<oA>>>0?iA+1|0:iA,oA=Ig(sA,N,K,l),QA=f+iA|0,QA=(g=oA+g|0)>>>0<oA>>>0?QA+1|0:QA,iA=Ig(EA,p,rA,c),oA=f+QA|0,oA=(g=iA+g|0)>>>0<iA>>>0?oA+1|0:oA,iA=Ig(tA,s,b,x),QA=f+oA|0,aA=g=iA+g|0,FA=QA=g>>>0<iA>>>0?QA+1|0:QA,NA=g=g+33554432|0,BA=QA=g>>>0<33554432?QA+1|0:QA,iA=(oA=QA>>26)+_A|0,_A=g=(QA=(67108863&QA)<<6|g>>>26)+KA|0,QA=g>>>0<QA>>>0?iA+1|0:iA,KA=g=g+16777216|0,iA=(33554431&(QA=g>>>0<16777216?QA+1|0:QA))<<7|g>>>25,QA=(QA>>25)+MA|0,QA=(g=iA+yA|0)>>>0<iA>>>0?QA+1|0:QA,MA=iA=(oA=g)+33554432|0,g=QA=iA>>>0<33554432?QA+1|0:QA,i[A+8>>2]=oA-(-67108864&iA),QA=Ig(B,o,C,e),oA=f,iA=(yA=Ig(fA,Q,M,X))+QA|0,QA=f+oA|0,QA=iA>>>0<yA>>>0?QA+1|0:QA,oA=Ig(E,h,w,P),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,oA=Ig(hA,_,y,n),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,yA=Ig(D,U,k,q),oA=f+QA|0,oA=(iA=yA+iA|0)>>>0<yA>>>0?oA+1|0:oA,QA=(yA=Ig(rA,c,F,u))+iA|0,iA=f+oA|0,iA=QA>>>0<yA>>>0?iA+1|0:iA,oA=(yA=Ig(S,z,Z,W))+QA|0,QA=f+iA|0,QA=oA>>>0<yA>>>0?QA+1|0:QA,iA=oA,oA=Ig(DA,t,v,yA=v>>31),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0<oA>>>0?QA+1|0:QA,oA=Ig(EA,p,G,j),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,pA=Ig(tA,s,eA,r),oA=f+QA|0,QA=I>>26,I=(kA=(67108863&I)<<6|kA>>>26)+(iA=pA+iA|0)|0,iA=QA+(iA>>>0<pA>>>0?oA+1|0:oA)|0,QA=(oA=I)>>>0<kA>>>0?iA+1|0:iA,kA=iA=oA+16777216|0,I=QA=iA>>>0<16777216?QA+1|0:QA,i[A+28>>2]=oA-(-33554432&iA),QA=Ig(rA,c,C,e),iA=f,pA=Ig(fA,Q,k,q),oA=f+iA|0,oA=(QA=pA+QA|0)>>>0<pA>>>0?oA+1|0:oA,pA=Ig(E,h,S,z),iA=f+oA|0,iA=(QA=pA+QA|0)>>>0<pA>>>0?iA+1|0:iA,oA=(pA=Ig(DA,t,y,n))+QA|0,QA=f+iA|0,QA=oA>>>0<pA>>>0?QA+1|0:QA,iA=oA,oA=Ig(nA,V,G,j),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0<oA>>>0?QA+1|0:QA,oA=Ig(eA,r,d,O),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,iA=(cA=Ig(cA,J,M,X))+iA|0,oA=f+QA|0,QA=(sA=Ig(B,o,sA,N))+iA|0,iA=f+(iA>>>0<cA>>>0?oA+1|0:oA)|0,oA=(EA=Ig(EA,p,w,P))+QA|0,QA=f+(QA>>>0<sA>>>0?iA+1|0:iA)|0,QA=oA>>>0<EA>>>0?QA+1|0:QA,iA=oA,oA=Ig(tA,s,hA,_),QA=f+QA|0,EA=iA=iA+oA|0,QA=(QA=iA>>>0<oA>>>0?QA+1|0:QA)+(iA=g>>26)|0,EA=g=EA+(oA=(67108863&g)<<6|MA>>>26)|0,QA=g>>>0<oA>>>0?QA+1|0:QA,sA=iA=g+16777216|0,g=oA=iA>>>0<16777216?QA+1|0:QA,i[A+12>>2]=EA-(-33554432&iA),QA=Ig(C,e,Y,L),oA=f,iA=(EA=Ig(fA,Q,eA,r))+QA|0,QA=f+oA|0,QA=iA>>>0<EA>>>0?QA+1|0:QA,oA=Ig(B,o,E,h),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,EA=Ig(y,n,wA,m),oA=f+QA|0,oA=(iA=EA+iA|0)>>>0<EA>>>0?oA+1|0:oA,QA=(EA=Ig(hA,_,D,U))+iA|0,iA=f+oA|0,iA=QA>>>0<EA>>>0?iA+1|0:iA,oA=(EA=Ig(K,l,F,u))+QA|0,QA=f+iA|0,QA=oA>>>0<EA>>>0?QA+1|0:QA,iA=oA,oA=Ig(rA,c,Z,W),QA=f+QA|0,QA=(iA=iA+oA|0)>>>0<oA>>>0?QA+1|0:QA,oA=Ig(v,yA,b,x),QA=f+QA|0,QA=(iA=oA+iA|0)>>>0<oA>>>0?QA+1|0:QA,iA=(wA=Ig(DA,t,EA=SA,cA=EA>>31))+iA|0,oA=f+QA|0,QA=(tA=Ig(tA,s,H,R))+iA|0,iA=f+(iA>>>0<wA>>>0?oA+1|0:oA)|0,iA=QA>>>0<tA>>>0?iA+1|0:iA,SA=QA,QA=(QA=I>>25)+iA|0,QA=(I=SA+(oA=(33554431&I)<<7|kA>>>25)|0)>>>0<oA>>>0?QA+1|0:QA,tA=iA=(oA=I)+33554432|0,I=QA=iA>>>0<33554432?QA+1|0:QA,i[A+32>>2]=oA-(-67108864&iA),iA=g>>25,g=(sA=(33554431&g)<<7|sA>>>25)+($-(QA=-67108864&IA)|0)|0,QA=iA+(AA-((QA>>>0>$>>>0)+gA|0)|0)|0,QA=g>>>0<sA>>>0?QA+1|0:QA,QA=((67108863&(QA=(g=(iA=g)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|g>>>26)+(oA=GA-(-33554432&CA)|0)|0,i[A+20>>2]=QA,i[A+16>>2]=iA-(-67108864&g),g=Ig(eA,r,C,e),QA=f,iA=Ig(fA,Q,G,j),QA=f+QA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,oA=Ig(E,h,M,X),iA=f+QA|0,iA=(g=oA+g|0)>>>0<oA>>>0?iA+1|0:iA,QA=Ig(B,o,y,n),oA=f+iA|0,oA=(g=QA+g|0)>>>0<QA>>>0?oA+1|0:oA,iA=Ig(D,U,w,P),QA=f+oA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(hA,_,F,u),QA=f+QA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,iA=Ig(k,q,Z,W),QA=f+QA|0,QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA,oA=Ig(rA,c,v,yA),iA=f+QA|0,iA=(g=oA+g|0)>>>0<oA>>>0?iA+1|0:iA,QA=Ig(EA,cA,S,z),oA=f+iA|0,oA=(g=QA+g|0)>>>0<QA>>>0?oA+1|0:oA,iA=Ig(DA,t,T,T>>31),QA=f+oA|0,QA=(QA=(g=iA+g|0)>>>0<iA>>>0?QA+1|0:QA)+(iA=I>>26)|0,QA=(I=(oA=g)+(g=(67108863&I)<<6|tA>>>26)|0)>>>0<g>>>0?QA+1|0:QA,QA=(I=(g=I)+16777216|0)>>>0<16777216?QA+1|0:QA,i[A+36>>2]=g-(-33554432&I),oA=_A-(-33554432&KA)|0,iA=aA-(g=-67108864&NA)|0,fA=FA-((g>>>0>aA>>>0)+BA|0)|0,I=(g=Ig((33554431&(g=QA))<<7|I>>>25,QA>>=25,19,0))+iA|0,iA=f+fA|0,QA=I>>>0<g>>>0?iA+1|0:iA,QA=((67108863&(QA=(I=(g=I)+33554432|0)>>>0<33554432?QA+1|0:QA))<<6|I>>>26)+oA|0,i[A+4>>2]=QA,i[A>>2]=g-(-67108864&I)}function H(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w=0,n=0,k=0;s=g=s-544|0,C=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,B=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,Q=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,E=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,a=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,_=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,c=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,t=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,w=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,r=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,e=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,y=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,D=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,f=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,p=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=A,A=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=A,A=i[I+108>>2],i[g+504>>2]=i[I+104>>2],i[g+508>>2]=A,A=i[I+100>>2],i[g+496>>2]=i[I+96>>2],i[g+500>>2]=A,A=i[I+124>>2],i[g+488>>2]=i[I+120>>2],i[g+492>>2]=A,A=i[I+116>>2],i[g+480>>2]=i[I+112>>2],i[g+484>>2]=A,AI(k=g+512|0,g+496|0,g+480|0),A=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=A,A=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+472>>2]=i[I+88>>2],i[g+476>>2]=A,A=i[I+84>>2],i[g+464>>2]=i[I+80>>2],i[g+468>>2]=A,A=i[I+108>>2],i[g+456>>2]=i[I+104>>2],i[g+460>>2]=A,A=i[I+100>>2],i[g+448>>2]=i[I+96>>2],i[g+452>>2]=A,AI(k,g+464|0,g+448|0),A=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=A,A=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+440>>2]=i[I+72>>2],i[g+444>>2]=A,n=i[4+(A=I- -64|0)>>2],i[g+432>>2]=i[A>>2],i[g+436>>2]=n,n=i[I+92>>2],i[g+424>>2]=i[I+88>>2],i[g+428>>2]=n,n=i[I+84>>2],i[g+416>>2]=i[I+80>>2],i[g+420>>2]=n,AI(k,g+432|0,g+416|0),n=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=n,n=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=n,n=i[I+60>>2],i[g+408>>2]=i[I+56>>2],i[g+412>>2]=n,n=i[I+52>>2],i[g+400>>2]=i[I+48>>2],i[g+404>>2]=n,n=i[I+76>>2],i[g+392>>2]=i[I+72>>2],i[g+396>>2]=n,n=i[A+4>>2],i[g+384>>2]=i[A>>2],i[g+388>>2]=n,AI(k,g+400|0,g+384|0),n=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=n,n=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=n,n=i[I+44>>2],i[g+376>>2]=i[I+40>>2],i[g+380>>2]=n,n=i[I+36>>2],i[g+368>>2]=i[I+32>>2],i[g+372>>2]=n,n=i[I+60>>2],i[g+360>>2]=i[I+56>>2],i[g+364>>2]=n,n=i[I+52>>2],i[g+352>>2]=i[I+48>>2],i[g+356>>2]=n,AI(k,g+368|0,g+352|0),n=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=n,n=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=n,n=i[I+28>>2],i[g+344>>2]=i[I+24>>2],i[g+348>>2]=n,n=i[I+20>>2],i[g+336>>2]=i[I+16>>2],i[g+340>>2]=n,n=i[I+44>>2],i[g+328>>2]=i[I+40>>2],i[g+332>>2]=n,n=i[I+36>>2],i[g+320>>2]=i[I+32>>2],i[g+324>>2]=n,AI(k,g+336|0,g+320|0),n=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=n,n=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=n,n=i[I+12>>2],i[g+312>>2]=i[I+8>>2],i[g+316>>2]=n,n=i[I+4>>2],i[g+304>>2]=i[I>>2],i[g+308>>2]=n,n=i[I+28>>2],i[g+296>>2]=i[I+24>>2],i[g+300>>2]=n,n=i[I+20>>2],i[g+288>>2]=i[I+16>>2],i[g+292>>2]=n,AI(k,g+304|0,g+288|0),n=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=n,n=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=n,n=i[g+540>>2],i[g+280>>2]=i[g+536>>2],i[g+284>>2]=n,n=i[g+532>>2],i[g+272>>2]=i[g+528>>2],i[g+276>>2]=n,n=i[I+12>>2],i[g+264>>2]=i[I+8>>2],i[g+268>>2]=n,n=i[I+4>>2],i[g+256>>2]=i[I>>2],i[g+260>>2]=n,AI(k,g+272|0,g+256|0),n=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=n,n=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=n,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^f,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^D,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^h,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^p,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^y,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^e,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^r,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^w,w=i[I+124>>2],i[g+536>>2]=i[I+120>>2],i[g+540>>2]=w,w=i[I+116>>2],i[g+528>>2]=i[I+112>>2],i[g+532>>2]=w,w=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=w,w=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=w,w=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=w,w=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=w,AI(k,g+240|0,g+224|0),w=i[g+524>>2],i[I+120>>2]=i[g+520>>2],i[I+124>>2]=w,w=i[g+516>>2],i[I+112>>2]=i[g+512>>2],i[I+116>>2]=w,w=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=w,w=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=w,w=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=w,w=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=w,AI(k,g+208|0,g+192|0),w=i[g+524>>2],i[I+104>>2]=i[g+520>>2],i[I+108>>2]=w,w=i[g+516>>2],i[I+96>>2]=i[g+512>>2],i[I+100>>2]=w,w=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=w,w=i[A+4>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=w,w=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=w,w=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=w,AI(k,g+176|0,g+160|0),w=i[g+524>>2],i[I+88>>2]=i[g+520>>2],i[I+92>>2]=w,w=i[g+516>>2],i[I+80>>2]=i[g+512>>2],i[I+84>>2]=w,w=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=w,w=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=w,w=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=w,w=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=w,AI(k,g+144|0,g+128|0),w=i[g+524>>2],i[I+72>>2]=i[g+520>>2],i[I+76>>2]=w,w=i[g+516>>2],i[A>>2]=i[g+512>>2],i[A+4>>2]=w,w=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=w,w=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=w,w=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=w,w=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=w,AI(k,g+112|0,g+96|0),w=i[g+524>>2],i[I+56>>2]=i[g+520>>2],i[I+60>>2]=w,w=i[g+516>>2],i[I+48>>2]=i[g+512>>2],i[I+52>>2]=w,w=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=w,w=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=w,w=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=w,w=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=w,AI(k,g+80|0,g- -64|0),w=i[g+524>>2],i[I+40>>2]=i[g+520>>2],i[I+44>>2]=w,w=i[g+516>>2],i[I+32>>2]=i[g+512>>2],i[I+36>>2]=w,w=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=w,w=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=w,w=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=w,w=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=w,AI(k,g+48|0,g+32|0),w=i[g+524>>2],i[I+24>>2]=i[g+520>>2],i[I+28>>2]=w,w=i[g+516>>2],i[I+16>>2]=i[g+512>>2],i[I+20>>2]=w,w=i[g+540>>2],i[g+24>>2]=i[g+536>>2],i[g+28>>2]=w,w=i[g+532>>2],i[g+16>>2]=i[g+528>>2],i[g+20>>2]=w,w=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=w,w=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=w,AI(k,g+16|0,g),k=i[g+524>>2],i[I+8>>2]=i[g+520>>2],i[I+12>>2]=k,k=i[g+516>>2],i[I>>2]=i[g+512>>2],i[I+4>>2]=k,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^t,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^c,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^_,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^a,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+544|0}function Y(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;for(s=E=s-288|0,D=(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^B>>>29,f=(o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24)^B<<3,p=(o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24)^g>>>29,B=(o[0|(c=Q+32|0)]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)^g<<3,y=Q+16|0,r=Q+48|0,_=Q- -64|0,e=Q+80|0,a=Q+96|0,t=Q+112|0;g=i[t+12>>2],i[E+280>>2]=i[t+8>>2],i[E+284>>2]=g,g=i[t+4>>2],i[E+272>>2]=i[t>>2],i[E+276>>2]=g,g=i[a+12>>2],i[E+248>>2]=i[a+8>>2],i[E+252>>2]=g,g=i[a+4>>2],i[E+240>>2]=i[a>>2],i[E+244>>2]=g,g=i[t+12>>2],i[E+232>>2]=i[t+8>>2],i[E+236>>2]=g,g=i[t+4>>2],i[E+224>>2]=i[t>>2],i[E+228>>2]=g,AI(h=E+256|0,E+240|0,E+224|0),g=i[E+268>>2],i[t+8>>2]=i[E+264>>2],i[t+12>>2]=g,g=i[E+260>>2],i[t>>2]=i[E+256>>2],i[t+4>>2]=g,g=i[e+12>>2],i[E+216>>2]=i[e+8>>2],i[E+220>>2]=g,g=i[e+4>>2],i[E+208>>2]=i[e>>2],i[E+212>>2]=g,g=i[a+12>>2],i[E+200>>2]=i[a+8>>2],i[E+204>>2]=g,g=i[a+4>>2],i[E+192>>2]=i[a>>2],i[E+196>>2]=g,AI(h,E+208|0,E+192|0),g=i[E+268>>2],i[a+8>>2]=i[E+264>>2],i[a+12>>2]=g,g=i[E+260>>2],i[a>>2]=i[E+256>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+184>>2]=i[_+8>>2],i[E+188>>2]=g,g=i[_+4>>2],i[E+176>>2]=i[_>>2],i[E+180>>2]=g,g=i[e+12>>2],i[E+168>>2]=i[e+8>>2],i[E+172>>2]=g,g=i[e+4>>2],i[E+160>>2]=i[e>>2],i[E+164>>2]=g,AI(h,E+176|0,E+160|0),g=i[E+268>>2],i[e+8>>2]=i[E+264>>2],i[e+12>>2]=g,g=i[E+260>>2],i[e>>2]=i[E+256>>2],i[e+4>>2]=g,g=i[r+12>>2],i[E+152>>2]=i[r+8>>2],i[E+156>>2]=g,g=i[r+4>>2],i[E+144>>2]=i[r>>2],i[E+148>>2]=g,g=i[_+12>>2],i[E+136>>2]=i[_+8>>2],i[E+140>>2]=g,g=i[_+4>>2],i[E+128>>2]=i[_>>2],i[E+132>>2]=g,AI(h,E+144|0,E+128|0),g=i[E+268>>2],i[_+8>>2]=i[E+264>>2],i[_+12>>2]=g,g=i[E+260>>2],i[_>>2]=i[E+256>>2],i[_+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[r+12>>2],i[E+104>>2]=i[r+8>>2],i[E+108>>2]=g,g=i[r+4>>2],i[E+96>>2]=i[r>>2],i[E+100>>2]=g,AI(h,E+112|0,E+96|0),g=i[E+268>>2],i[r+8>>2]=i[E+264>>2],i[r+12>>2]=g,g=i[E+260>>2],i[r>>2]=i[E+256>>2],i[r+4>>2]=g,g=i[y+12>>2],i[E+88>>2]=i[y+8>>2],i[E+92>>2]=g,g=i[y+4>>2],i[E+80>>2]=i[y>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(h,E+80|0,E- -64|0),g=i[E+268>>2],i[c+8>>2]=i[E+264>>2],i[c+12>>2]=g,g=i[E+260>>2],i[c>>2]=i[E+256>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[y+12>>2],i[E+40>>2]=i[y+8>>2],i[E+44>>2]=g,g=i[y+4>>2],i[E+32>>2]=i[y>>2],i[E+36>>2]=g,AI(h,E+48|0,E+32|0),g=i[E+268>>2],i[y+8>>2]=i[E+264>>2],i[y+12>>2]=g,g=i[E+260>>2],i[y>>2]=i[E+256>>2],i[y+4>>2]=g,g=i[E+284>>2],i[E+24>>2]=i[E+280>>2],i[E+28>>2]=g,g=i[E+276>>2],i[E+16>>2]=i[E+272>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(h,E+16|0,E),g=i[E+268>>2],i[Q+8>>2]=i[E+264>>2],i[Q+12>>2]=g,g=i[E+260>>2],i[Q>>2]=i[E+256>>2],i[Q+4>>2]=g,n=D^(o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),i[Q+12>>2]=n,k=f^(o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),i[Q+8>>2]=k,F=p^(o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),i[Q+4>>2]=F,S=B^(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[Q>>2]=S,N=B^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),i[_>>2]=N,G=p^(o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24),i[Q+68>>2]=G,M=f^(o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24),i[Q+72>>2]=M,K=D^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),i[Q+76>>2]=K,7!=(0|(w=w+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}_=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,c=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,y=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,r=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,e=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,t=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,h=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,D=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,f=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,p=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,w=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,I=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,Q=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24)^K,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=p^w^B^I^g^M^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=a^t^h^D^f^G^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=_^c^y^r^e^N^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}t=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,h=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,D=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,f=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,p=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,w=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,g=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,I=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,a=n^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24),C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,I=B^I^g^k,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=f^p^w^F,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=t^h^D^S,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,r=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,a=o[Q+112|0]|o[Q+113|0]<<8|o[Q+114|0]<<16|o[Q+115|0]<<24,t=o[Q+96|0]|o[Q+97|0]<<8|o[Q+98|0]<<16|o[Q+99|0]<<24,h=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,D=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,f=o[Q+116|0]|o[Q+117|0]<<8|o[Q+118|0]<<16|o[Q+119|0]<<24,p=o[Q+100|0]|o[Q+101|0]<<8|o[Q+102|0]<<16|o[Q+103|0]<<24,w=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,B=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,g=o[Q+120|0]|o[Q+121|0]<<8|o[Q+122|0]<<16|o[Q+123|0]<<24,I=o[Q+104|0]|o[Q+105|0]<<8|o[Q+106|0]<<16|o[Q+107|0]<<24,Q=(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24)^(o[Q+124|0]|o[Q+125|0]<<8|o[Q+126|0]<<16|o[Q+127|0]<<24)^(o[Q+108|0]|o[Q+109|0]<<8|o[Q+110|0]<<16|o[Q+111|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=w^B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^f^p,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=r^e^a^t,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+288|0}function J(A,I,g,C){var B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;for(B=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g+4>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+8>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+12>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+16>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+20>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+24>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+28>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+32>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+36>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+40>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+44>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+48>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+52>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,B=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+56>>2]=B<<24|(65280&B)<<8|B>>>8&65280|B>>>24,I=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+60>>2]=I<<24|(65280&I)<<8|I>>>8&65280|I>>>24,I=i[A+28>>2],i[C+24>>2]=i[A+24>>2],i[C+28>>2]=I,I=i[A+20>>2],i[C+16>>2]=i[A+16>>2],i[C+20>>2]=I,I=i[A+12>>2],i[C+8>>2]=i[A+8>>2],i[C+12>>2]=I,I=i[A+4>>2],i[C>>2]=i[A>>2],i[C+4>>2]=I;_=i[C+28>>2],B=(I=n<<2)+g|0,E=i[C+16>>2],c=i[B>>2]+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0,r=(_=((Q=i[I+35264>>2]+c|0)+(E&((c=i[C+24>>2])^(e=i[C+20>>2]))^c)|0)+_|0)+i[C+12>>2]|0,i[C+12>>2]=r,_=(s=_+(Lg(t=i[C>>2],30)^Lg(t,19)^Lg(t,10))|0)+(t&((Q=i[C+8>>2])|(a=i[C+4>>2]))|Q&a)|0,i[C+28>>2]=_,Q=(s=Q)+(c=(i[(D=(Q=4|I)+g|0)>>2]+((c+(e^r&(E^e))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)|0)+i[Q+35264>>2]|0)|0,i[C+8>>2]=Q,c=(c+(_&(a|t)|a&t)|0)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0,i[C+24>>2]=c,e=(s=a)+(a=(((e+i[(w=(a=8|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(E^Q&(E^r))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)|0,i[C+4>>2]=e,a=a+((c&(_|t)|_&t)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+20>>2]=a,E=(s=t)+(t=(((E+i[(k=(t=12|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(r^e&(Q^r))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)|0,i[C>>2]=E,t=t+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+16>>2]=t,r=(y=((((s=r)+i[(F=(r=16|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+12>>2]=r,y=_+y|0,i[C+28>>2]=y,_=(Q=(((Q+i[(S=(_=20|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+8>>2]=_,Q=Q+c|0,i[C+24>>2]=Q,c=(e=(((e+i[(N=(c=24|I)+g|0)>>2]|0)+i[c+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+4>>2]=c,e=a+e|0,i[C+20>>2]=e,a=(E=(((E+i[(G=(a=28|I)+g|0)>>2]|0)+i[a+35264>>2]|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C>>2]=a,E=E+t|0,i[C+16>>2]=E,t=(y=(((y+i[(M=(t=32|I)+g|0)>>2]|0)+i[t+35264>>2]|0)+(Q^E&(Q^e))|0)+(Lg(E,26)^Lg(E,21)^Lg(E,7))|0)+((a&(_|c)|_&c)+(Lg(a,30)^Lg(a,19)^Lg(a,10))|0)|0,i[C+28>>2]=t,y=r+y|0,i[C+12>>2]=y,r=(Q=(((Q+i[(K=(r=36|I)+g|0)>>2]|0)+i[r+35264>>2]|0)+(e^y&(E^e))|0)+(Lg(y,26)^Lg(y,21)^Lg(y,7))|0)+((t&(a|c)|a&c)+(Lg(t,30)^Lg(t,19)^Lg(t,10))|0)|0,i[C+24>>2]=r,Q=Q+_|0,i[C+8>>2]=Q,_=(e=(((e+i[(U=(_=40|I)+g|0)>>2]|0)+i[_+35264>>2]|0)+(E^Q&(E^y))|0)+(Lg(Q,26)^Lg(Q,21)^Lg(Q,7))|0)+((r&(a|t)|a&t)+(Lg(r,30)^Lg(r,19)^Lg(r,10))|0)|0,i[C+20>>2]=_,e=c+e|0,i[C+4>>2]=e,s=(c=44|I)+g|0,c=(E=((E+(i[c+35264>>2]+i[s>>2]|0)|0)+(y^e&(Q^y))|0)+(Lg(e,26)^Lg(e,21)^Lg(e,7))|0)+((_&(t|r)|t&r)+(Lg(_,30)^Lg(_,19)^Lg(_,10))|0)|0,i[C+16>>2]=c,a=a+E|0,i[C>>2]=a,p=(E=48|I)+g|0,E=(y=((y+(i[E+35264>>2]+i[p>>2]|0)|0)+(Q^a&(Q^e))|0)+(Lg(a,26)^Lg(a,21)^Lg(a,7))|0)+((c&(_|r)|_&r)+(Lg(c,30)^Lg(c,19)^Lg(c,10))|0)|0,i[C+12>>2]=E,t=t+y|0,i[C+28>>2]=t,f=(y=52|I)+g|0,Q=(y=(((i[y+35264>>2]+i[f>>2]|0)+Q|0)+(e^t&(a^e))|0)+(Lg(t,26)^Lg(t,21)^Lg(t,7))|0)+((E&(_|c)|_&c)+(Lg(E,30)^Lg(E,19)^Lg(E,10))|0)|0,i[C+8>>2]=Q,r=r+y|0,i[C+24>>2]=r,y=(h=56|I)+g|0,e=(h=(((i[h+35264>>2]+i[y>>2]|0)+e|0)+(a^r&(a^t))|0)+(Lg(r,26)^Lg(r,21)^Lg(r,7))|0)+((Q&(c|E)|c&E)+(Lg(Q,30)^Lg(Q,19)^Lg(Q,10))|0)|0,i[C+4>>2]=e,_=_+h|0,i[C+20>>2]=_,h=(I|=60)+g|0,_=(I=((a+(i[I+35264>>2]+i[h>>2]|0)|0)+(t^_&(t^r))|0)+(Lg(_,26)^Lg(_,21)^Lg(_,7))|0)+((e&(Q|E)|Q&E)+(Lg(e,30)^Lg(e,19)^Lg(e,10))|0)|0,i[C>>2]=_,i[C+16>>2]=I+c,48!=(0|n);)a=i[K>>2],n=n+16|0,I=i[y>>2],_=(Q=i[B>>2]+(a+(Lg(I,15)^Lg(I,13)^I>>>10)|0)|0)+(Lg(c=i[D>>2],25)^Lg(c,14)^c>>>3)|0,i[(n<<2)+g>>2]=_,r=(E=(Q=(t=i[U>>2])+c|0)+(Lg(c=i[h>>2],15)^Lg(c,13)^c>>>10)|0)+(Lg(Q=i[w>>2],25)^Lg(Q,14)^Q>>>3)|0,i[B+68>>2]=r,e=(s=((E=Q)+(Q=i[s>>2])|0)+(Lg(_,15)^Lg(_,13)^_>>>10)|0)+(Lg(E=i[k>>2],25)^Lg(E,14)^E>>>3)|0,i[B+72>>2]=e,y=(h=((s=E)+(E=i[p>>2])|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0)+(Lg(s=i[F>>2],25)^Lg(s,14)^s>>>3)|0,i[B+76>>2]=y,p=(h=((h=s)+(s=i[f>>2])|0)+(Lg(e,15)^Lg(e,13)^e>>>10)|0)+(Lg(f=i[S>>2],25)^Lg(f,14)^f>>>3)|0,i[B+80>>2]=p,f=(D=(I+f|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0)+(Lg(h=i[N>>2],25)^Lg(h,14)^h>>>3)|0,i[B+84>>2]=f,h=((c+h|0)+(Lg(w=i[G>>2],25)^Lg(w,14)^w>>>3)|0)+(Lg(p,15)^Lg(p,13)^p>>>10)|0,i[B+88>>2]=h,r=((D=i[M>>2])+(r+(Lg(a,25)^Lg(a,14)^a>>>3)|0)|0)+(Lg(h,15)^Lg(h,13)^h>>>10)|0,i[B+96>>2]=r,D=((_+w|0)+(Lg(D,25)^Lg(D,14)^D>>>3)|0)+(Lg(f,15)^Lg(f,13)^f>>>10)|0,i[B+92>>2]=D,y=(y+(t+(Lg(Q,25)^Lg(Q,14)^Q>>>3)|0)|0)+(Lg(r,15)^Lg(r,13)^r>>>10)|0,i[B+104>>2]=y,a=(e+(a+(Lg(t,25)^Lg(t,14)^t>>>3)|0)|0)+(Lg(D,15)^Lg(D,13)^D>>>10)|0,i[B+100>>2]=a,t=(f+(E+(Lg(s,25)^Lg(s,14)^s>>>3)|0)|0)+(Lg(y,15)^Lg(y,13)^y>>>10)|0,i[B+112>>2]=t,a=(p+(Q+(Lg(E,25)^Lg(E,14)^E>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+108>>2]=a,b=B,H=(D+(I+(Lg(c,25)^Lg(c,14)^c>>>3)|0)|0)+(Lg(t,15)^Lg(t,13)^t>>>10)|0,i[b+120>>2]=H,I=(h+(s+(Lg(I,25)^Lg(I,14)^I>>>3)|0)|0)+(Lg(a,15)^Lg(a,13)^a>>>10)|0,i[B+116>>2]=I,b=B,H=(r+(c+(Lg(_,25)^Lg(_,14)^_>>>3)|0)|0)+(Lg(I,15)^Lg(I,13)^I>>>10)|0,i[b+124>>2]=H;i[A>>2]=_+i[A>>2],i[A+4>>2]=i[A+4>>2]+i[C+4>>2],i[A+8>>2]=i[A+8>>2]+i[C+8>>2],i[A+12>>2]=i[A+12>>2]+i[C+12>>2],i[A+16>>2]=i[A+16>>2]+i[C+16>>2],i[A+20>>2]=i[A+20>>2]+i[C+20>>2],i[A+24>>2]=i[A+24>>2]+i[C+24>>2],i[A+28>>2]=i[A+28>>2]+i[C+28>>2]}function d(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0;s=B=s-288|0,t=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,e=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,f=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,J=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,n=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,b=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,d=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,k=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,F=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,U=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,H=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,m=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,S=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,N=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,E=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,Y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,l=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,G=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,M=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,a=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,K=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,Q=(_=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(c=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,l=Y^a&M^l^G,C[A+24|0]=l,C[A+25|0]=l>>>8,C[A+26|0]=l>>>16,C[A+27|0]=l>>>24,m=H^E&N^m^S,C[A+20|0]=m,C[A+21|0]=m>>>8,C[A+22|0]=m>>>16,C[A+23|0]=m>>>24,d=b^U&F^d^k,C[A+16|0]=d,C[A+17|0]=d>>>8,C[A+18|0]=d>>>16,C[A+19|0]=d>>>24,J=n&_^J^w^c,C[A+12|0]=J,C[A+13|0]=J>>>8,C[A+14|0]=J>>>16,C[A+15|0]=J>>>24,Y=Y&p^D^f^a,C[A+8|0]=Y,C[A+9|0]=Y>>>8,C[A+10|0]=Y>>>16,C[A+11|0]=Y>>>24,H=H&h^e^y^E,C[A+4|0]=H,C[A+5|0]=H>>>8,C[A+6|0]=H>>>16,C[A+7|0]=H>>>24,b=U^b&r^t^K,C[0|A]=b,C[A+1|0]=b>>>8,C[A+2|0]=b>>>16,C[A+3|0]=b>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,U=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=U,U=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=U,U=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=U,AI(I,B+176|0,B+160|0),U=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=U,U=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=U,U=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=U,U=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=U,U=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=U,U=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=U,AI(I,B+144|0,B+128|0),U=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=U,U=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=U,U=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=U,U=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=U,U=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=U,U=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=U,AI(I,B+112|0,B+96|0),U=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=U,U=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=U,U=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=U,U=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=U,U=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=U,U=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=U,AI(I,B+80|0,B- -64|0),U=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=U,U=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=U,U=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=U,U=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=U,U=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=U,U=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=U,AI(I,B+48|0,B+32|0),U=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=U,U=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=U,U=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=U,U=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=U,U=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=U,U=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=U,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=J^(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24),i[g+8>>2]=Y^(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24),i[g+4>>2]=H^(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24),i[g>>2]=b^(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24),i[A>>2]=d^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[g+68>>2]=m^(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24),i[g+72>>2]=l^(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24),i[g+76>>2]=Q^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function m(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0;s=B=s-288|0,k=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,F=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,G=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,M=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,K=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,U=o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24,l=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,_=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,b=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,H=o[g+112|0]|o[g+113|0]<<8|o[g+114|0]<<16|o[g+115|0]<<24,c=o[g+96|0]|o[g+97|0]<<8|o[g+98|0]<<16|o[g+99|0]<<24,t=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,r=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,Y=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,J=o[g+116|0]|o[g+117|0]<<8|o[g+118|0]<<16|o[g+119|0]<<24,e=o[g+100|0]|o[g+101|0]<<8|o[g+102|0]<<16|o[g+103|0]<<24,y=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,h=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,d=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,m=o[g+120|0]|o[g+121|0]<<8|o[g+122|0]<<16|o[g+123|0]<<24,D=o[g+104|0]|o[g+105|0]<<8|o[g+106|0]<<16|o[g+107|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(p=o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)^(w=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24)^(n=o[g+108|0]|o[g+109|0]<<8|o[g+110|0]<<16|o[g+111|0]<<24)&(o[g+124|0]|o[g+125|0]<<8|o[g+126|0]<<16|o[g+127|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24),C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=D&m^d^h^y,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=e&J^Y^r^t,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=l^c&H^b^_,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=U&p^K^a^n,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=y&M^G^E^D,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=t&N^S^Q^e,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=l&F^k^f^c,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+124>>2],i[B+280>>2]=i[g+120>>2],i[B+284>>2]=A,A=i[g+116>>2],i[B+272>>2]=i[g+112>>2],i[B+276>>2]=A,A=i[g+108>>2],i[B+248>>2]=i[g+104>>2],i[B+252>>2]=A,A=i[g+100>>2],i[B+240>>2]=i[g+96>>2],i[B+244>>2]=A,A=i[g+124>>2],i[B+232>>2]=i[g+120>>2],i[B+236>>2]=A,A=i[g+116>>2],i[B+224>>2]=i[g+112>>2],i[B+228>>2]=A,AI(I=B+256|0,B+240|0,B+224|0),A=i[B+268>>2],i[g+120>>2]=i[B+264>>2],i[g+124>>2]=A,A=i[B+260>>2],i[g+112>>2]=i[B+256>>2],i[g+116>>2]=A,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+108>>2],i[B+200>>2]=i[g+104>>2],i[B+204>>2]=A,A=i[g+100>>2],i[B+192>>2]=i[g+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+268>>2],i[g+104>>2]=i[B+264>>2],i[g+108>>2]=A,A=i[B+260>>2],i[g+96>>2]=i[B+256>>2],i[g+100>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,l=i[4+(A=g- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=l,l=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=l,l=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=l,AI(I,B+176|0,B+160|0),l=i[B+268>>2],i[g+88>>2]=i[B+264>>2],i[g+92>>2]=l,l=i[B+260>>2],i[g+80>>2]=i[B+256>>2],i[g+84>>2]=l,l=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=l,l=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=l,l=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=l,l=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=l,AI(I,B+144|0,B+128|0),l=i[B+268>>2],i[g+72>>2]=i[B+264>>2],i[g+76>>2]=l,l=i[B+260>>2],i[A>>2]=i[B+256>>2],i[A+4>>2]=l,l=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=l,l=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=l,l=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=l,l=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=l,AI(I,B+112|0,B+96|0),l=i[B+268>>2],i[g+56>>2]=i[B+264>>2],i[g+60>>2]=l,l=i[B+260>>2],i[g+48>>2]=i[B+256>>2],i[g+52>>2]=l,l=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=l,l=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=l,l=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=l,l=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=l,AI(I,B+80|0,B- -64|0),l=i[B+268>>2],i[g+40>>2]=i[B+264>>2],i[g+44>>2]=l,l=i[B+260>>2],i[g+32>>2]=i[B+256>>2],i[g+36>>2]=l,l=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=l,l=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=l,l=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=l,l=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=l,AI(I,B+48|0,B+32|0),l=i[B+268>>2],i[g+24>>2]=i[B+264>>2],i[g+28>>2]=l,l=i[B+260>>2],i[g+16>>2]=i[B+256>>2],i[g+20>>2]=l,l=i[B+284>>2],i[B+24>>2]=i[B+280>>2],i[B+28>>2]=l,l=i[B+276>>2],i[B+16>>2]=i[B+272>>2],i[B+20>>2]=l,l=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=l,l=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=l,AI(I,B+16|0,B),I=i[B+268>>2],i[g+8>>2]=i[B+264>>2],i[g+12>>2]=I,I=i[B+260>>2],i[g>>2]=i[B+256>>2],i[g+4>>2]=I,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^a,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^E,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^Q,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^_,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^r,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^h,i[g+76>>2]=w^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),s=B+288|0}function l(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=E=s-224|0,f=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^B>>>29,p=(o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24)^B<<3,e=(o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24)^g>>>29,h=(o[0|(a=Q+48|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24)^g<<3,_=Q+16|0,c=Q+32|0,t=Q- -64|0,r=Q+80|0;g=i[r+12>>2],i[E+216>>2]=i[r+8>>2],i[E+220>>2]=g,g=i[r+4>>2],i[E+208>>2]=i[r>>2],i[E+212>>2]=g,g=i[t+12>>2],i[E+184>>2]=i[t+8>>2],i[E+188>>2]=g,g=i[t+4>>2],i[E+176>>2]=i[t>>2],i[E+180>>2]=g,g=i[r+12>>2],i[E+168>>2]=i[r+8>>2],i[E+172>>2]=g,g=i[r+4>>2],i[E+160>>2]=i[r>>2],i[E+164>>2]=g,AI(B=E+192|0,E+176|0,E+160|0),g=i[E+204>>2],i[r+8>>2]=i[E+200>>2],i[r+12>>2]=g,g=i[E+196>>2],i[r>>2]=i[E+192>>2],i[r+4>>2]=g,g=i[a+12>>2],i[E+152>>2]=i[a+8>>2],i[E+156>>2]=g,g=i[a+4>>2],i[E+144>>2]=i[a>>2],i[E+148>>2]=g,g=i[t+12>>2],i[E+136>>2]=i[t+8>>2],i[E+140>>2]=g,g=i[t+4>>2],i[E+128>>2]=i[t>>2],i[E+132>>2]=g,AI(B,E+144|0,E+128|0),g=i[E+204>>2],i[t+8>>2]=i[E+200>>2],i[t+12>>2]=g,g=i[E+196>>2],i[t>>2]=i[E+192>>2],i[t+4>>2]=g,g=i[c+12>>2],i[E+120>>2]=i[c+8>>2],i[E+124>>2]=g,g=i[c+4>>2],i[E+112>>2]=i[c>>2],i[E+116>>2]=g,g=i[a+12>>2],i[E+104>>2]=i[a+8>>2],i[E+108>>2]=g,g=i[a+4>>2],i[E+96>>2]=i[a>>2],i[E+100>>2]=g,AI(B,E+112|0,E+96|0),g=i[E+204>>2],i[a+8>>2]=i[E+200>>2],i[a+12>>2]=g,g=i[E+196>>2],i[a>>2]=i[E+192>>2],i[a+4>>2]=g,g=i[_+12>>2],i[E+88>>2]=i[_+8>>2],i[E+92>>2]=g,g=i[_+4>>2],i[E+80>>2]=i[_>>2],i[E+84>>2]=g,g=i[c+12>>2],i[E+72>>2]=i[c+8>>2],i[E+76>>2]=g,g=i[c+4>>2],i[E+64>>2]=i[c>>2],i[E+68>>2]=g,AI(B,E+80|0,E- -64|0),g=i[E+204>>2],i[c+8>>2]=i[E+200>>2],i[c+12>>2]=g,g=i[E+196>>2],i[c>>2]=i[E+192>>2],i[c+4>>2]=g,g=i[Q+12>>2],i[E+56>>2]=i[Q+8>>2],i[E+60>>2]=g,g=i[Q+4>>2],i[E+48>>2]=i[Q>>2],i[E+52>>2]=g,g=i[_+12>>2],i[E+40>>2]=i[_+8>>2],i[E+44>>2]=g,g=i[_+4>>2],i[E+32>>2]=i[_>>2],i[E+36>>2]=g,AI(B,E+48|0,E+32|0),g=i[E+204>>2],i[_+8>>2]=i[E+200>>2],i[_+12>>2]=g,g=i[E+196>>2],i[_>>2]=i[E+192>>2],i[_+4>>2]=g,g=i[E+220>>2],i[E+24>>2]=i[E+216>>2],i[E+28>>2]=g,g=i[E+212>>2],i[E+16>>2]=i[E+208>>2],i[E+20>>2]=g,g=i[Q+12>>2],i[E+8>>2]=i[Q+8>>2],i[E+12>>2]=g,g=i[Q+4>>2],i[E>>2]=i[Q>>2],i[E+4>>2]=g,AI(B,E+16|0,E),D=i[E+192>>2],B=i[E+196>>2],g=i[E+200>>2],w=f^i[E+204>>2],i[Q+12>>2]=w,n=g^p,i[Q+8>>2]=n,k=B^e,i[Q+4>>2]=k,F=h^D,i[Q>>2]=F,7!=(0|(y=y+1|0)););A:{I:{g:{if(g=I-16|0){if(16==(0|g))break g;break I}S=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,a=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,_=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,c=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,t=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,r=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,f=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,p=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,e=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,h=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,D=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,y=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,B=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=w^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24)^(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,I=n^D^I^g^B^y,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^r^f^p^e^h,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^S^a^_^c^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24;break A}h=o[Q+32|0]|o[Q+33|0]<<8|o[Q+34|0]<<16|o[Q+35|0]<<24,D=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,y=o[Q+36|0]|o[Q+37|0]<<8|o[Q+38|0]<<16|o[Q+39|0]<<24,B=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,g=o[Q+40|0]|o[Q+41|0]<<8|o[Q+42|0]<<16|o[Q+43|0]<<24,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,e=w^(o[Q+44|0]|o[Q+45|0]<<8|o[Q+46|0]<<16|o[Q+47|0]<<24)^(o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24),C[A+12|0]=e,C[A+13|0]=e>>>8,C[A+14|0]=e>>>16,C[A+15|0]=e>>>24,I=n^I^g,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=k^B^y,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F^h^D,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,f=o[Q+48|0]|o[Q+49|0]<<8|o[Q+50|0]<<16|o[Q+51|0]<<24,p=o[Q+80|0]|o[Q+81|0]<<8|o[Q+82|0]<<16|o[Q+83|0]<<24,e=o[0|(I=Q- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,h=o[Q+52|0]|o[Q+53|0]<<8|o[Q+54|0]<<16|o[Q+55|0]<<24,D=o[Q+84|0]|o[Q+85|0]<<8|o[Q+86|0]<<16|o[Q+87|0]<<24,y=o[Q+68|0]|o[Q+69|0]<<8|o[Q+70|0]<<16|o[Q+71|0]<<24,B=o[Q+56|0]|o[Q+57|0]<<8|o[Q+58|0]<<16|o[Q+59|0]<<24,g=o[Q+88|0]|o[Q+89|0]<<8|o[Q+90|0]<<16|o[Q+91|0]<<24,I=o[Q+72|0]|o[Q+73|0]<<8|o[Q+74|0]<<16|o[Q+75|0]<<24,Q=(o[Q+60|0]|o[Q+61|0]<<8|o[Q+62|0]<<16|o[Q+63|0]<<24)^(o[Q+92|0]|o[Q+93|0]<<8|o[Q+94|0]<<16|o[Q+95|0]<<24)^(o[Q+76|0]|o[Q+77|0]<<8|o[Q+78|0]<<16|o[Q+79|0]<<24),C[A+28|0]=Q,C[A+29|0]=Q>>>8,C[A+30|0]=Q>>>16,C[A+31|0]=Q>>>24,I=B^I^g,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=h^D^y,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f^e^p,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24;break A}bg(A,0,I)}s=E+224|0}function u(A,I,g){var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0;for(s=B=s-4032|0,$A(B+160|0,g),_=i[g+36>>2],i[(a=B+3840|0)>>2]=i[g+32>>2],i[a+4>>2]=_,c=i[g+28>>2],i[(_=B+3832|0)>>2]=i[g+24>>2],i[_+4>>2]=c,r=i[g+20>>2],i[(c=B+3824|0)>>2]=i[g+16>>2],i[c+4>>2]=r,e=i[g+12>>2],i[(r=B+3816|0)>>2]=i[g+8>>2],i[r+4>>2]=e,e=i[g+4>>2],i[B+3808>>2]=i[g>>2],i[B+3812>>2]=e,D=i[g+52>>2],i[(e=B+3856|0)>>2]=i[g+48>>2],i[e+4>>2]=D,w=i[g+60>>2],i[(D=B+3864|0)>>2]=i[g+56>>2],i[D+4>>2]=w,y=i[4+(f=g- -64|0)>>2],i[(w=B+3872|0)>>2]=i[f>>2],i[w+4>>2]=y,y=i[g+76>>2],i[(f=B+3880|0)>>2]=i[g+72>>2],i[f+4>>2]=y,y=i[g+44>>2],i[B+3848>>2]=i[g+40>>2],i[B+3852>>2]=y,n=i[g+92>>2],i[(y=B+3896|0)>>2]=i[g+88>>2],i[y+4>>2]=n,k=i[g+100>>2],i[(n=B+3904|0)>>2]=i[g+96>>2],i[n+4>>2]=k,F=i[g+108>>2],i[(k=B+3912|0)>>2]=i[g+104>>2],i[k+4>>2]=F,S=i[g+116>>2],i[(F=B+3920|0)>>2]=i[g+112>>2],i[F+4>>2]=S,S=i[g+84>>2],i[B+3888>>2]=i[g+80>>2],i[B+3892>>2]=S,KA(Q=B+3528|0,S=B+3808|0),b(E=B+2408|0,Q,t=B+3648|0),b(B+2448|0,h=B+3568|0,p=B+3608|0),b(B+2488|0,p,t),b(B+2528|0,Q,h),$A(t=B+320|0,E),sA(Q=B+3368|0,g,t),b(E=B+2248|0,Q,t=B+3488|0),b(B+2288|0,h=B+3408|0,p=B+3448|0),b(B+2328|0,p,t),b(B+2368|0,Q,h),$A(B+480|0,E),E=i[4+(Q=B+2440|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2432|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2424|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2416|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2456|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2464|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2472|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2480|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2412>>2],i[B+3808>>2]=i[B+2408>>2],i[B+3812>>2]=Q,Q=i[B+2452>>2],i[B+3848>>2]=i[B+2448>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2520|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2512|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2504|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2496|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2492>>2],i[B+3888>>2]=i[B+2488>>2],i[B+3892>>2]=Q,KA(Q=B+3208|0,S),b(E=B+2088|0,Q,t=B+3328|0),b(B+2128|0,h=B+3248|0,p=B+3288|0),b(B+2168|0,p,t),b(B+2208|0,Q,h),$A(t=B+640|0,E),sA(Q=B+3048|0,g,t),b(E=B+1928|0,Q,t=B+3168|0),b(B+1968|0,h=B+3088|0,p=B+3128|0),b(B+2008|0,p,t),b(B+2048|0,Q,h),$A(B+800|0,E),E=i[4+(Q=B+2280|0)>>2],i[a>>2]=i[Q>>2],i[a+4>>2]=E,E=i[4+(Q=B+2272|0)>>2],i[_>>2]=i[Q>>2],i[_+4>>2]=E,E=i[4+(Q=B+2264|0)>>2],i[c>>2]=i[Q>>2],i[c+4>>2]=E,E=i[4+(Q=B+2256|0)>>2],i[r>>2]=i[Q>>2],i[r+4>>2]=E,E=i[4+(Q=B+2296|0)>>2],i[e>>2]=i[Q>>2],i[e+4>>2]=E,E=i[4+(Q=B+2304|0)>>2],i[D>>2]=i[Q>>2],i[D+4>>2]=E,E=i[4+(Q=B+2312|0)>>2],i[w>>2]=i[Q>>2],i[w+4>>2]=E,E=i[4+(Q=B+2320|0)>>2],i[f>>2]=i[Q>>2],i[f+4>>2]=E,Q=i[B+2252>>2],i[B+3808>>2]=i[B+2248>>2],i[B+3812>>2]=Q,Q=i[B+2292>>2],i[B+3848>>2]=i[B+2288>>2],i[B+3852>>2]=Q,E=i[4+(Q=B+2360|0)>>2],i[F>>2]=i[Q>>2],i[F+4>>2]=E,E=i[4+(Q=B+2352|0)>>2],i[k>>2]=i[Q>>2],i[k+4>>2]=E,E=i[4+(Q=B+2344|0)>>2],i[n>>2]=i[Q>>2],i[n+4>>2]=E,E=i[4+(Q=B+2336|0)>>2],i[y>>2]=i[Q>>2],i[y+4>>2]=E,Q=i[B+2332>>2],i[B+3888>>2]=i[B+2328>>2],i[B+3892>>2]=Q,KA(Q=B+2888|0,S),b(E=B+1768|0,Q,t=B+3008|0),b(B+1808|0,h=B+2928|0,p=B+2968|0),b(B+1848|0,p,t),b(B+1888|0,Q,h),$A(t=B+960|0,E),sA(Q=B+2728|0,g,t),b(g=B+1608|0,Q,E=B+2848|0),b(B+1648|0,t=B+2768|0,h=B+2808|0),b(B+1688|0,h,E),b(B+1728|0,Q,t),$A(B+1120|0,g),Q=i[4+(g=B+2120|0)>>2],i[a>>2]=i[g>>2],i[a+4>>2]=Q,a=i[4+(g=B+2112|0)>>2],i[_>>2]=i[g>>2],i[_+4>>2]=a,a=i[4+(g=B+2104|0)>>2],i[c>>2]=i[g>>2],i[c+4>>2]=a,a=i[4+(g=B+2096|0)>>2],i[r>>2]=i[g>>2],i[r+4>>2]=a,a=i[4+(g=B+2136|0)>>2],i[e>>2]=i[g>>2],i[e+4>>2]=a,a=i[4+(g=B+2144|0)>>2],i[D>>2]=i[g>>2],i[D+4>>2]=a,a=i[4+(g=B+2152|0)>>2],i[w>>2]=i[g>>2],i[w+4>>2]=a,a=i[4+(g=B+2160|0)>>2],i[f>>2]=i[g>>2],i[f+4>>2]=a,g=i[B+2092>>2],i[B+3808>>2]=i[B+2088>>2],i[B+3812>>2]=g,g=i[B+2132>>2],i[B+3848>>2]=i[B+2128>>2],i[B+3852>>2]=g,a=i[4+(g=B+2200|0)>>2],i[F>>2]=i[g>>2],i[F+4>>2]=a,a=i[4+(g=B+2192|0)>>2],i[k>>2]=i[g>>2],i[k+4>>2]=a,a=i[4+(g=B+2184|0)>>2],i[n>>2]=i[g>>2],i[n+4>>2]=a,a=i[4+(g=B+2176|0)>>2],i[y>>2]=i[g>>2],i[y+4>>2]=a,g=i[B+2172>>2],i[B+3888>>2]=i[B+2168>>2],i[B+3892>>2]=g,KA(g=B+2568|0,S),b(a=B+1448|0,g,_=B+2688|0),b(B+1488|0,c=B+2608|0,r=B+2648|0),b(B+1528|0,r,_),b(B+1568|0,g,c),$A(B+1280|0,a),a=0,g=0;c=(_=B+3968|0)+(g<<1)|0,r=o[I+g|0],C[c+1|0]=r>>>4,C[0|c]=15&r,_=_+((c=1|g)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(g=g+2|0)););for(I=0;g=8+(_=(g=I)+o[0|(I=(B+3968|0)+a|0)]|0)|0,C[0|I]=_-(240&g),g=8+(_=o[I+1|0]+(g<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&g),g=8+(_=o[I+2|0]+(g<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&g),I=g<<24>>24>>4,63!=(0|(a=a+3|0)););for(C[B+4031|0]=o[B+4031|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),w=A+120|0,f=A+80|0,y=A+40|0,r=B+3768|0,g=B+3888|0,_=B+3848|0,e=B+3728|0,a=B+3928|0,D=63;HA(B,n=B+160|0,C[(B+3968|0)+D|0]),sA(I=B+3808|0,A,B),b(c=B+3688|0,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(c,I,a),b(e,_,g),b(r,g,a),KA(I,c),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),D=D-1|0;);HA(B,n,C[B+3968|0]),sA(I,A,B),b(A,I,a),b(y,_,g),b(f,g,a),b(w,I,_),s=B+4032|0}function x(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G,M,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0;s=B=s-320|0,i[B+280>>2]=0,i[B+284>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+256>>2]=0,i[B+260>>2]=0,Ng(U=B+256|0,I,g),m=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,K=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,c=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,t=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,r=o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24,e=o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24,I=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,y=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,h=o[C+116|0]|o[C+117|0]<<8|o[C+118|0]<<16|o[C+119|0]<<24,b=o[C+100|0]|o[C+101|0]<<8|o[C+102|0]<<16|o[C+103|0]<<24,H=o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24,D=o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24,f=o[C+124|0]|o[C+125|0]<<8|o[C+126|0]<<16|o[C+127|0]<<24,Y=o[C+108|0]|o[C+109|0]<<8|o[C+110|0]<<16|o[C+111|0]<<24,J=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,p=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,w=o[C+112|0]|o[C+113|0]<<8|o[C+114|0]<<16|o[C+115|0]<<24,d=o[C+96|0]|o[C+97|0]<<8|o[C+98|0]<<16|o[C+99|0]<<24,n=i[B+272>>2],k=i[B+256>>2],F=i[B+260>>2],S=i[B+264>>2],N=i[B+268>>2],G=i[B+276>>2],M=i[B+284>>2],Q=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,E=o[C+104|0]|o[C+105|0]<<8|o[C+106|0]<<16|o[C+107|0]<<24,i[B+280>>2]=Q^E&(o[C+120|0]|o[C+121|0]<<8|o[C+122|0]<<16|o[C+123|0]<<24)^i[B+280>>2]^(o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24),i[B+272>>2]=J^d&w^p^n,i[B+284>>2]=H^Y&f^D^M,i[B+276>>2]=I^b&h^y^G,i[B+268>>2]=Y^H&e^r^N,i[B+264>>2]=t&Q^c^S^E,i[B+260>>2]=b^I&_^a^F,i[B+256>>2]=d^K&J^m^k,bg(g+U|0,0,32-g|0),Ng(A,U,g),g=i[B+280>>2],U=i[B+272>>2],b=i[B+284>>2],H=i[B+276>>2],Y=i[B+256>>2],J=i[B+260>>2],d=i[B+264>>2],m=i[B+268>>2],A=i[C+124>>2],i[B+312>>2]=i[C+120>>2],i[B+316>>2]=A,A=i[C+116>>2],i[B+304>>2]=i[C+112>>2],i[B+308>>2]=A,A=i[C+108>>2],i[B+248>>2]=i[C+104>>2],i[B+252>>2]=A,A=i[C+100>>2],i[B+240>>2]=i[C+96>>2],i[B+244>>2]=A,A=i[C+124>>2],i[B+232>>2]=i[C+120>>2],i[B+236>>2]=A,A=i[C+116>>2],i[B+224>>2]=i[C+112>>2],i[B+228>>2]=A,AI(I=B+288|0,B+240|0,B+224|0),A=i[B+300>>2],i[C+120>>2]=i[B+296>>2],i[C+124>>2]=A,A=i[B+292>>2],i[C+112>>2]=i[B+288>>2],i[C+116>>2]=A,A=i[C+92>>2],i[B+216>>2]=i[C+88>>2],i[B+220>>2]=A,A=i[C+84>>2],i[B+208>>2]=i[C+80>>2],i[B+212>>2]=A,A=i[C+108>>2],i[B+200>>2]=i[C+104>>2],i[B+204>>2]=A,A=i[C+100>>2],i[B+192>>2]=i[C+96>>2],i[B+196>>2]=A,AI(I,B+208|0,B+192|0),A=i[B+300>>2],i[C+104>>2]=i[B+296>>2],i[C+108>>2]=A,A=i[B+292>>2],i[C+96>>2]=i[B+288>>2],i[C+100>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,K=i[4+(A=C- -64|0)>>2],i[B+176>>2]=i[A>>2],i[B+180>>2]=K,K=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=K,K=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=K,AI(I,B+176|0,B+160|0),K=i[B+300>>2],i[C+88>>2]=i[B+296>>2],i[C+92>>2]=K,K=i[B+292>>2],i[C+80>>2]=i[B+288>>2],i[C+84>>2]=K,K=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=K,K=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=K,K=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=K,K=i[A+4>>2],i[B+128>>2]=i[A>>2],i[B+132>>2]=K,AI(I,B+144|0,B+128|0),K=i[B+300>>2],i[C+72>>2]=i[B+296>>2],i[C+76>>2]=K,K=i[B+292>>2],i[A>>2]=i[B+288>>2],i[A+4>>2]=K,K=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=K,K=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=K,K=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=K,K=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=K,AI(I,B+112|0,B+96|0),K=i[B+300>>2],i[C+56>>2]=i[B+296>>2],i[C+60>>2]=K,K=i[B+292>>2],i[C+48>>2]=i[B+288>>2],i[C+52>>2]=K,K=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=K,K=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=K,K=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=K,K=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=K,AI(I,B+80|0,B- -64|0),K=i[B+300>>2],i[C+40>>2]=i[B+296>>2],i[C+44>>2]=K,K=i[B+292>>2],i[C+32>>2]=i[B+288>>2],i[C+36>>2]=K,K=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=K,K=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=K,K=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=K,K=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=K,AI(I,B+48|0,B+32|0),K=i[B+300>>2],i[C+24>>2]=i[B+296>>2],i[C+28>>2]=K,K=i[B+292>>2],i[C+16>>2]=i[B+288>>2],i[C+20>>2]=K,K=i[B+316>>2],i[B+24>>2]=i[B+312>>2],i[B+28>>2]=K,K=i[B+308>>2],i[B+16>>2]=i[B+304>>2],i[B+20>>2]=K,K=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=K,K=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=K,AI(I,B+16|0,B),I=i[B+300>>2],i[C+8>>2]=i[B+296>>2],i[C+12>>2]=I,I=i[B+292>>2],i[C>>2]=i[B+288>>2],i[C+4>>2]=I,i[C+12>>2]=m^(o[C+12|0]|o[C+13|0]<<8|o[C+14|0]<<16|o[C+15|0]<<24),i[C+8>>2]=d^(o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24),i[C+4>>2]=J^(o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24),i[C>>2]=Y^(o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24),i[A>>2]=U^(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[C+68>>2]=H^(o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24),i[C+72>>2]=g^(o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24),i[C+76>>2]=b^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24),s=B+320|0}function v(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l,u,x,v,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0;R=Ig(C=(D=i[I+12>>2])<<1,E=C>>31,$=(q=i[I+4>>2])<<1,B=$>>31),P=f,F=V=i[I+8>>2],L=(Z=Ig(V,p=V>>31,V,p))+R|0,R=f+P|0,R=L>>>0<Z>>>0?R+1|0:R,P=Ig(j=i[I+16>>2],_=j>>31,Z=(z=i[I>>2])<<1,Q=Z>>31),R=f+R|0,R=(L=P+L|0)>>>0<P>>>0?R+1|0:R,e=i[I+28>>2],P=Ig(BA=a(e,38),w=BA>>31,e,S=e>>31),R=f+R|0,R=(L=P+L|0)>>>0<P>>>0?R+1|0:R,P=L,y=i[I+32>>2],X=Ig(O=a(y,19),c=O>>31,L=(g=i[I+24>>2])<<1,L>>31),L=f+R|0,L=(P=P+X|0)>>>0<X>>>0?L+1|0:L,H=i[I+36>>2],R=Ig(X=a(H,38),o=X>>31,AA=(t=i[I+20>>2])<<1,s=AA>>31),I=f+L|0,J=R=(R>>>0>(P=R+P|0)>>>0?I+1:I)<<1|P>>>31,d=L=33554432+(N=P<<1)|0,m=R=L>>>0<33554432?R+1|0:R,I=R>>26,T=(67108863&R)<<6|L>>>26,R=Ig($,B,j,_),P=f,L=(IA=Ig(V<<=1,h=V>>31,D,G=D>>31))+R|0,R=f+P|0,R=L>>>0<IA>>>0?R+1|0:R,P=(IA=Ig(t,n=t>>31,Z,Q))+L|0,L=f+R|0,L=P>>>0<IA>>>0?L+1|0:L,iA=Ig(O,c,IA=e<<1,M=IA>>31),R=f+L|0,R=(P=iA+P|0)>>>0<iA>>>0?R+1|0:R,L=Ig(X,o,g,r=g>>31),R=f+R|0,I=I+(L=(L>>>0>(P=L+P|0)>>>0?R+1:R)<<1|P>>>31)|0,iA=P=(R=P<<1)+T|0,R=I=R>>>0>P>>>0?I+1|0:I,l=P=P+16777216|0,T=(33554431&(R=P>>>0<16777216?R+1|0:R))<<7|P>>>25,P=R>>25,I=Ig(C,E,D,G),R=f,L=Ig(j,_,V,h),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=Ig($,B,AA,s),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(gA=Ig(Z,Q,g,r))+I|0,I=f+R|0,I=L>>>0<gA>>>0?I+1|0:I,gA=Ig(O,c,y,k=y>>31),R=f+I|0,R=(L=gA+L|0)>>>0<gA>>>0?R+1|0:R,I=(gA=Ig(X,o,IA,M))+L|0,L=f+R|0,I=((R=I)>>>0<gA>>>0?L+1:L)<<1|R>>>31,L=T,T=R<<1,R=I+P|0,R=(L=L+T|0)>>>0<T>>>0?R+1|0:R,gA=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+24>>2]=L-(-67108864&I),L=Ig(I=a(t,38),I>>31,t,n),T=f,I=(R=Ig(I=z,R=I>>31,I,R))+L|0,L=f+T|0,L=I>>>0<R>>>0?L+1|0:L,CA=Ig(z=a(g,19),K=z>>31,T=j<<1,U=T>>31),R=f+L|0,R=(I=CA+I|0)>>>0<CA>>>0?R+1|0:R,L=Ig(C,E,BA,w),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(CA=Ig(O,c,V,h))+I|0,I=f+R|0,I=L>>>0<CA>>>0?I+1|0:I,CA=Ig($,B,X,o),R=f+I|0,CA=R=((L=CA+L|0)>>>0<CA>>>0?R+1:R)<<1|L>>>31,u=I=33554432+(b=L<<1)|0,x=L=I>>>0<33554432?R+1|0:R,QA=(67108863&L)<<6|I>>>26,oA=L>>26,I=Ig(z,K,AA,s),R=f,L=Ig(Z,Q,q,Y=q>>31),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(W=Ig(j,_,BA,w))+I|0,I=f+R|0,I=L>>>0<W>>>0?I+1|0:I,W=Ig(O,c,C,E),R=f+I|0,R=(L=W+L|0)>>>0<W>>>0?R+1|0:R,W=(I=Ig(X,o,F,p))+L|0,L=f+R|0,R=(I=(I>>>0>W>>>0?L+1:L)<<1|W>>>31)+oA|0,R=(L=(W<<=1)+QA|0)>>>0<W>>>0?R+1|0:R,oA=L,W=L=L+16777216|0,v=(33554431&(R=L>>>0<16777216?R+1|0:R))<<7|L>>>25,QA=R>>25,I=Ig(Z,Q,F,p),R=f,L=Ig($,B,q,Y),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,q=Ig(z,K,g,r),L=f+R|0,L=(I=q+I|0)>>>0<q>>>0?L+1|0:L,q=Ig(AA,s,BA,w),R=f+L|0,R=(I=q+I|0)>>>0<q>>>0?R+1|0:R,L=Ig(O,c,T,U),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(q=Ig(X,o,C,E))+I|0,I=f+R|0,R=(R=(L>>>0<q>>>0?I+1:I)<<1|L>>>31)+QA|0,z=I=(L<<=1)+v|0,R=I>>>0<L>>>0?R+1|0:R,QA=I=I+33554432|0,q=L=I>>>0<33554432?R+1|0:R,i[A+8>>2]=z-(-67108864&I),I=Ig(V,h,t,n),L=f,R=(z=Ig(j,_,C,E))+I|0,I=f+L|0,I=R>>>0<z>>>0?I+1|0:I,L=(z=Ig($,B,g,r))+R|0,R=f+I|0,R=L>>>0<z>>>0?R+1|0:R,I=(z=Ig(Z,Q,e,S))+L|0,L=f+R|0,L=I>>>0<z>>>0?L+1|0:L,z=Ig(X,o,y,k),R=f+L|0,R=(R=((I=z+I|0)>>>0<z>>>0?R+1:R)<<1|I>>>31)+(L=P>>26)|0,I=(L=P=(z=I<<1)+(I=(67108863&P)<<6|gA>>>26)|0)>>>0<I>>>0?R+1|0:R,z=R=L+16777216|0,P=I=R>>>0<16777216?I+1|0:I,i[A+28>>2]=L-(-33554432&R),I=Ig(Z,Q,D,G),R=f,L=Ig($,B,F,p),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=Ig(g,r,BA,w),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(O=Ig(O,c,AA,s))+I|0,I=f+R|0,I=L>>>0<O>>>0?I+1|0:I,R=(O=Ig(X,o,j,_))+L|0,L=f+I|0,I=R,R=(R>>>0<O>>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=q>>26)+R|0,R=(L=L+(q=(67108863&q)<<6|QA>>>26)|0)>>>0<q>>>0?R+1|0:R,O=I=L+16777216|0,q=R=I>>>0<16777216?R+1|0:R,i[A+12>>2]=L-(-33554432&I),I=Ig(g,r,V,h),R=f,L=Ig(j,_,j,_),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=Ig(C,E,AA,s),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=Ig($,B,IA,M),R=f+R|0,R=(I=L+I|0)>>>0<L>>>0?R+1|0:R,L=(j=Ig(Z,Q,y,k))+I|0,I=f+R|0,I=L>>>0<j>>>0?I+1|0:I,R=(j=Ig(R=X,o,X=H,AA=X>>31))+L|0,L=f+I|0,I=R,R=(R>>>0<j>>>0?L+1:L)<<1|R>>>31,L=I<<1,R=(I=P>>25)+R|0,R=(L=L+(P=(33554431&P)<<7|z>>>25)|0)>>>0<P>>>0?R+1|0:R,j=I=L+33554432|0,P=R=I>>>0<33554432?R+1|0:R,i[A+32>>2]=L-(-67108864&I),R=q>>25,L=(q=(33554431&q)<<7|O>>>25)+(N-(I=-67108864&d)|0)|0,I=R+(J-((I>>>0>N>>>0)+m|0)|0)|0,I=L>>>0<q>>>0?I+1|0:I,q=L,R=I,I=((67108863&(R=(L=L+33554432|0)>>>0<33554432?R+1|0:R))<<6|L>>>26)+(BA=iA-(-33554432&l)|0)|0,i[A+20>>2]=I,i[A+16>>2]=q-(-67108864&L),I=Ig(C,E,g,r),L=f,R=(q=Ig(t,n,T,U))+I|0,I=f+L|0,I=R>>>0<q>>>0?I+1|0:I,L=(q=Ig(V,h,e,S))+R|0,R=f+I|0,R=L>>>0<q>>>0?R+1|0:R,I=(q=Ig($,B,y,k))+L|0,L=f+R|0,L=I>>>0<q>>>0?L+1|0:L,q=Ig(Z,Q,X,AA),R=f+L|0,R=((I=q+I|0)>>>0<q>>>0?R+1:R)<<1|I>>>31,q=I<<1,R=R+(L=P>>26)|0,I=(I=(67108863&P)<<6|j>>>26)>>>0>(P=q+I|0)>>>0?R+1|0:R,I=(R=P+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=P-(-33554432&R),q=oA-(-33554432&W)|0,P=b-(L=-67108864&u)|0,$=CA-((L>>>0>b>>>0)+x|0)|0,I=Ig((33554431&I)<<7|R>>>25,I>>25,19,0),L=f+$|0,P=R=I+P|0,I=I>>>0>R>>>0?L+1|0:L,I=((67108863&(I=(R=R+33554432|0)>>>0<33554432?I+1|0:I))<<6|R>>>26)+q|0,i[A+4>>2]=I,i[A>>2]=P-(-67108864&R)}function R(A,I){var g,C,B,Q,o,E,_,c,t,r,e,y,s,h,D,p,w,n,k,F,S,N,G,M,K,U,b,H,Y,J,d,m,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0;l=Ig(C=(p=i[I+12>>2])<<1,E=C>>31,p,S=p>>31),x=f,u=(z=Ig(R=i[I+16>>2],_=R>>31,c=(v=i[I+8>>2])<<1,y=c>>31))+l|0,l=f+x|0,l=u>>>0<z>>>0?l+1|0:l,x=(j=Ig(W=(t=i[I+20>>2])<<1,s=W>>31,z=(L=i[I+4>>2])<<1,B=z>>31))+u|0,u=f+l|0,u=x>>>0<j>>>0?u+1|0:u,P=Ig(g=i[I+24>>2],r=g>>31,j=(T=i[I>>2])<<1,Q=j>>31),l=f+u|0,l=(x=P+x|0)>>>0<P>>>0?l+1|0:l,u=x,h=i[I+32>>2],x=Ig(X=a(h,19),e=X>>31,h,n=h>>31),l=f+l|0,l=(u=u+x|0)>>>0<x>>>0?l+1|0:l,U=i[I+36>>2],x=Ig(P=a(U,38),o=P>>31,k=(D=i[I+28>>2])<<1,N=k>>31),I=f+l|0,Z=u=x+u|0,x=u>>>0<x>>>0?I+1|0:I,I=Ig(z,B,R,_),l=f,u=Ig(c,y,p,S),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,q=Ig(t,F=t>>31,j,Q),u=f+l|0,u=(I=q+I|0)>>>0<q>>>0?u+1|0:u,q=Ig(X,e,k,N),l=f+u|0,l=(I=q+I|0)>>>0<q>>>0?l+1|0:l,u=Ig(P,o,g,r),l=f+l|0,CA=I=u+I|0,O=I>>>0<u>>>0?l+1|0:l,l=Ig(z,B,C,E),u=f,G=I=v,v=Ig(I,V=I>>31,I,V),I=f+u|0,I=(l=v+l|0)>>>0<v>>>0?I+1|0:I,u=(v=Ig(j,Q,R,_))+l|0,l=f+I|0,l=u>>>0<v>>>0?l+1|0:l,I=(v=Ig(q=a(D,38),w=q>>31,D,M=D>>31))+u|0,u=f+l|0,u=I>>>0<v>>>0?u+1|0:u,I=(l=I)+(v=Ig(X,e,I=g<<1,I>>31))|0,l=f+u|0,l=I>>>0<v>>>0?l+1|0:l,u=I,I=Ig(P,o,W,s),l=f+l|0,b=u=u+I|0,H=l=I>>>0>u>>>0?l+1|0:l,I=l,Y=u=u+33554432|0,J=I=u>>>0<33554432?I+1|0:I,l=(l=I>>26)+O|0,CA=I=(u=(67108863&I)<<6|u>>>26)+CA|0,l=I>>>0<u>>>0?l+1|0:l,d=I=I+16777216|0,l=(l=(u=I>>>0<16777216?l+1|0:l)>>25)+x|0,I=(I=(33554431&u)<<7|I>>>25)>>>0>(u=I+Z|0)>>>0?l+1|0:l,Z=l=u+33554432|0,v=I=l>>>0<33554432?I+1|0:I,i[A+24>>2]=u-(-67108864&l),I=Ig(j,Q,G,V),l=f,x=Ig(z,B,L,$=L>>31),u=f+l|0,u=(I=x+I|0)>>>0<x>>>0?u+1|0:u,O=Ig(x=a(g,19),gA=x>>31,g,r),l=f+u|0,l=(I=O+I|0)>>>0<O>>>0?l+1|0:l,u=(O=Ig(W,s,q,w))+I|0,I=f+l|0,I=u>>>0<O>>>0?I+1|0:I,AA=Ig(X,e,O=R<<1,K=O>>31),l=f+I|0,l=(u=AA+u|0)>>>0<AA>>>0?l+1|0:l,I=u,u=Ig(P,o,C,E),l=f+l|0,IA=I=I+u|0,AA=I>>>0<u>>>0?l+1|0:l,I=Ig(W,s,x,gA),l=f,L=Ig(j,Q,L,$),u=f+l|0,u=(I=L+I|0)>>>0<L>>>0?u+1|0:u,L=Ig(R,_,q,w),l=f+u|0,l=(I=L+I|0)>>>0<L>>>0?l+1|0:l,u=(L=Ig(X,e,C,E))+I|0,I=f+l|0,I=u>>>0<L>>>0?I+1|0:I,L=Ig(P,o,G,V),l=f+I|0,BA=u=L+u|0,$=u>>>0<L>>>0?l+1|0:l,u=Ig(I=a(t,38),I>>31,t,F),L=f,I=T,T=u,u=Ig(I,l=I>>31,I,l),l=f+L|0,l=(I=T+u|0)>>>0<u>>>0?l+1|0:l,x=Ig(x,gA,O,K),u=f+l|0,u=(I=x+I|0)>>>0<x>>>0?u+1|0:u,x=Ig(C,E,q,w),l=f+u|0,l=(I=x+I|0)>>>0<x>>>0?l+1|0:l,u=(x=Ig(X,e,c,y))+I|0,I=f+l|0,I=u>>>0<x>>>0?I+1|0:I,x=Ig(z,B,P,o),l=f+I|0,L=u=x+u|0,T=l=u>>>0<x>>>0?l+1|0:l,gA=u=u+33554432|0,m=l=u>>>0<33554432?l+1|0:l,I=l>>26,l=(67108863&l)<<6|u>>>26,u=I+$|0,$=x=l+BA|0,l=l>>>0>x>>>0?u+1|0:u,BA=u=x+16777216|0,x=(33554431&(l=u>>>0<16777216?l+1|0:l))<<7|u>>>25,l=(l>>25)+AA|0,l=(u=x+IA|0)>>>0<x>>>0?l+1|0:l,AA=I=u+33554432|0,x=l=I>>>0<33554432?l+1|0:l,i[A+8>>2]=u-(-67108864&I),I=Ig(c,y,t,F),l=f,u=Ig(R,_,C,E),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,u=Ig(z,B,g,r),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,u=Ig(j,Q,D,M),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,IA=(u=Ig(P,o,h,n))+I|0,I=f+l|0,u=(l=v>>26)+(u=u>>>0>IA>>>0?I+1|0:I)|0,Z=I=(v=(67108863&v)<<6|Z>>>26)+IA|0,l=I>>>0<v>>>0?u+1|0:u,IA=I=I+16777216|0,v=l=I>>>0<16777216?l+1|0:l,i[A+28>>2]=Z-(-33554432&I),I=Ig(j,Q,p,S),u=f,l=(V=Ig(z,B,G,V))+I|0,I=f+u|0,I=l>>>0<V>>>0?I+1|0:I,l=(q=Ig(g,r,q,w))+l|0,u=f+I|0,I=(X=Ig(X,e,W,s))+l|0,l=f+(l>>>0<q>>>0?u+1|0:u)|0,l=I>>>0<X>>>0?l+1|0:l,u=Ig(P,o,R,_),l=f+l|0,l=(l=(I=u+I|0)>>>0<u>>>0?l+1|0:l)+(u=x>>26)|0,I=(u=x=(Z=I)+(I=(67108863&x)<<6|AA>>>26)|0)>>>0<I>>>0?l+1|0:l,X=l=u+16777216|0,x=I=l>>>0<16777216?I+1|0:I,i[A+12>>2]=u-(-33554432&l),I=Ig(g,r,c,y),l=f,u=Ig(R,_,R,_),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,u=Ig(C,E,W,s),l=f+l|0,l=(I=u+I|0)>>>0<u>>>0?l+1|0:l,u=(R=Ig(z,B,k,N))+I|0,I=f+l|0,I=u>>>0<R>>>0?I+1|0:I,l=(R=Ig(j,Q,h,n))+u|0,u=f+I|0,u=l>>>0<R>>>0?u+1|0:u,I=(R=Ig(I=P,o,P=U,W=P>>31))+l|0,l=f+u|0,l=I>>>0<R>>>0?l+1|0:l,u=I,l=(I=v>>25)+l|0,l=(u=u+(v=(33554431&v)<<7|IA>>>25)|0)>>>0<v>>>0?l+1|0:l,R=I=u+33554432|0,v=l=I>>>0<33554432?l+1|0:l,i[A+32>>2]=u-(-67108864&I),l=x>>25,u=(x=(33554431&x)<<7|X>>>25)+(b-(I=-67108864&Y)|0)|0,I=l+(H-((I>>>0>b>>>0)+J|0)|0)|0,I=u>>>0<x>>>0?I+1|0:I,x=u,I=((67108863&(l=(u=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|u>>>26)+(q=CA-(-33554432&d)|0)|0,i[A+20>>2]=I,i[A+16>>2]=x-(-67108864&u),I=Ig(C,E,g,r),u=f,l=(x=Ig(t,F,O,K))+I|0,I=f+u|0,I=l>>>0<x>>>0?I+1|0:I,u=(x=Ig(c,y,D,M))+l|0,l=f+I|0,l=u>>>0<x>>>0?l+1|0:l,I=(x=Ig(z,B,h,n))+u|0,u=f+l|0,u=I>>>0<x>>>0?u+1|0:u,x=(l=I)+(I=Ig(j,Q,P,W))|0,l=f+u|0,l=(I=I>>>0>x>>>0?l+1|0:l)+(l=v>>26)|0,I=(u=(v=(67108863&v)<<6|R>>>26)+x|0)>>>0<v>>>0?l+1|0:l,I=(l=u+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=u-(-33554432&l),v=$-(-33554432&BA)|0,x=L-(u=-67108864&gA)|0,z=T-((u>>>0>L>>>0)+m|0)|0,I=Ig((33554431&I)<<7|l>>>25,I>>25,19,0),l=f+z|0,I=I>>>0>(u=I+x|0)>>>0?l+1|0:l,I=((67108863&(I=(l=u+33554432|0)>>>0<33554432?I+1|0:I))<<6|l>>>26)+v|0,i[A+4>>2]=I,i[A>>2]=u-(-67108864&l)}function L(A,I){var g,C,B,Q,E,a,_,c,t,r,e=0,y=0,h=0;s=g=s-416|0,C=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,B=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,Q=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,h=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,a=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,_=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,c=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=A,A=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=A,A=i[I+76>>2],i[g+376>>2]=i[I+72>>2],i[g+380>>2]=A,e=i[4+(A=y=I- -64|0)>>2],i[g+368>>2]=i[A>>2],i[g+372>>2]=e,A=i[I+92>>2],i[g+360>>2]=i[I+88>>2],i[g+364>>2]=A,A=i[I+84>>2],i[g+352>>2]=i[I+80>>2],i[g+356>>2]=A,AI(A=g+384|0,g+368|0,g+352|0),e=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=e,e=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=e,e=i[I+60>>2],i[g+344>>2]=i[I+56>>2],i[g+348>>2]=e,e=i[I+52>>2],i[g+336>>2]=i[I+48>>2],i[g+340>>2]=e,e=i[I+76>>2],i[g+328>>2]=i[I+72>>2],i[g+332>>2]=e,e=i[y+4>>2],i[g+320>>2]=i[y>>2],i[g+324>>2]=e,AI(A,g+336|0,g+320|0),e=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=e,e=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=e,e=i[I+44>>2],i[g+312>>2]=i[I+40>>2],i[g+316>>2]=e,e=i[I+36>>2],i[g+304>>2]=i[I+32>>2],i[g+308>>2]=e,e=i[I+60>>2],i[g+296>>2]=i[I+56>>2],i[g+300>>2]=e,e=i[I+52>>2],i[g+288>>2]=i[I+48>>2],i[g+292>>2]=e,AI(A,g+304|0,g+288|0),e=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=e,e=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=e,e=i[I+28>>2],i[g+280>>2]=i[I+24>>2],i[g+284>>2]=e,e=i[I+20>>2],i[g+272>>2]=i[I+16>>2],i[g+276>>2]=e,e=i[I+44>>2],i[g+264>>2]=i[I+40>>2],i[g+268>>2]=e,e=i[I+36>>2],i[g+256>>2]=i[I+32>>2],i[g+260>>2]=e,AI(A,g+272|0,g+256|0),e=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=e,e=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=e,e=i[I+12>>2],i[g+248>>2]=i[I+8>>2],i[g+252>>2]=e,e=i[I+4>>2],i[g+240>>2]=i[I>>2],i[g+244>>2]=e,e=i[I+28>>2],i[g+232>>2]=i[I+24>>2],i[g+236>>2]=e,e=i[I+20>>2],i[g+224>>2]=i[I+16>>2],i[g+228>>2]=e,AI(A,g+240|0,g+224|0),e=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=e,e=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=e,e=i[g+412>>2],i[g+216>>2]=i[g+408>>2],i[g+220>>2]=e,e=i[g+404>>2],i[g+208>>2]=i[g+400>>2],i[g+212>>2]=e,e=i[I+12>>2],i[g+200>>2]=i[I+8>>2],i[g+204>>2]=e,e=i[I+4>>2],i[g+192>>2]=i[I>>2],i[g+196>>2]=e,AI(A,g+208|0,g+192|0),e=i[g+384>>2],t=i[g+388>>2],r=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^_,i[I+8>>2]=a^r,i[I+4>>2]=h^t,i[I>>2]=e^c,h=i[I+92>>2],i[g+408>>2]=i[I+88>>2],i[g+412>>2]=h,h=i[I+84>>2],i[g+400>>2]=i[I+80>>2],i[g+404>>2]=h,h=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=h,h=i[y+4>>2],i[g+176>>2]=i[y>>2],i[g+180>>2]=h,h=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=h,h=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=h,AI(A,g+176|0,g+160|0),h=i[g+396>>2],i[I+88>>2]=i[g+392>>2],i[I+92>>2]=h,h=i[g+388>>2],i[I+80>>2]=i[g+384>>2],i[I+84>>2]=h,h=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=h,h=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=h,h=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=h,h=i[y+4>>2],i[g+128>>2]=i[y>>2],i[g+132>>2]=h,AI(A,g+144|0,g+128|0),h=i[g+396>>2],i[I+72>>2]=i[g+392>>2],i[I+76>>2]=h,h=i[g+388>>2],i[y>>2]=i[g+384>>2],i[y+4>>2]=h,y=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=y,y=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=y,y=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=y,y=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=y,AI(A,g+112|0,g+96|0),y=i[g+396>>2],i[I+56>>2]=i[g+392>>2],i[I+60>>2]=y,y=i[g+388>>2],i[I+48>>2]=i[g+384>>2],i[I+52>>2]=y,y=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=y,y=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=y,y=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=y,y=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=y,AI(A,g+80|0,g- -64|0),y=i[g+396>>2],i[I+40>>2]=i[g+392>>2],i[I+44>>2]=y,y=i[g+388>>2],i[I+32>>2]=i[g+384>>2],i[I+36>>2]=y,y=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=y,y=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=y,y=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=y,y=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=y,AI(A,g+48|0,g+32|0),y=i[g+396>>2],i[I+24>>2]=i[g+392>>2],i[I+28>>2]=y,y=i[g+388>>2],i[I+16>>2]=i[g+384>>2],i[I+20>>2]=y,y=i[g+412>>2],i[g+24>>2]=i[g+408>>2],i[g+28>>2]=y,y=i[g+404>>2],i[g+16>>2]=i[g+400>>2],i[g+20>>2]=y,y=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=y,y=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=y,AI(A,g+16|0,g),A=i[g+384>>2],y=i[g+388>>2],h=i[g+392>>2],i[I+12>>2]=i[g+396>>2]^E,i[I+8>>2]=h^Q,i[I+4>>2]=y^B,i[I>>2]=A^C,s=g+416|0}function P(A,I,g){var C,B,Q,E,a,_,c,t,r,e,y,h,D,f,p=0,w=0,n=0;for(s=C=s-288|0,y=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,D=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,c=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,t=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,r=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,f=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=g+112|0,A=33620224^(e=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24),i[I>>2]=A,i[(a=g+96|0)>>2]=1427652059^e,i[(_=g+80|0)>>2]=A,w=e^f,i[(A=g- -64|0)>>2]=w,i[g+56>>2]=1110511904,i[g+60>>2]=-584534669,i[(B=g+48|0)>>2]=1427652059,i[B+4>>2]=-248528275,i[g+40>>2]=1496785429,i[g+44>>2]=1652156816,i[(Q=g+32|0)>>2]=33620224,i[Q+4>>2]=218629379,i[g+24>>2]=1110511904,i[g+28>>2]=-584534669,i[(E=g+16|0)>>2]=1427652059,i[E+4>>2]=-248528275,i[g>>2]=w,w=1652156816^r,i[g+124>>2]=w,n=1496785429^t,i[g+120>>2]=n,p=218629379^c,i[g+116>>2]=p,i[g+108>>2]=-584534669^r,i[g+104>>2]=1110511904^t,i[g+100>>2]=-248528275^c,i[g+92>>2]=w,i[g+88>>2]=n,i[g+84>>2]=p,w=r^D,i[g+76>>2]=w,n=t^h,i[g+72>>2]=n,p=c^y,i[g+68>>2]=p,i[g+12>>2]=w,i[g+8>>2]=n,i[g+4>>2]=p,n=0;w=i[I+12>>2],i[C+280>>2]=i[I+8>>2],i[C+284>>2]=w,w=i[I+4>>2],i[C+272>>2]=i[I>>2],i[C+276>>2]=w,w=i[a+12>>2],i[C+248>>2]=i[a+8>>2],i[C+252>>2]=w,w=i[a+4>>2],i[C+240>>2]=i[a>>2],i[C+244>>2]=w,w=i[I+12>>2],i[C+232>>2]=i[I+8>>2],i[C+236>>2]=w,w=i[I+4>>2],i[C+224>>2]=i[I>>2],i[C+228>>2]=w,AI(w=C+256|0,C+240|0,C+224|0),p=i[C+268>>2],i[I+8>>2]=i[C+264>>2],i[I+12>>2]=p,p=i[C+260>>2],i[I>>2]=i[C+256>>2],i[I+4>>2]=p,p=i[_+12>>2],i[C+216>>2]=i[_+8>>2],i[C+220>>2]=p,p=i[_+4>>2],i[C+208>>2]=i[_>>2],i[C+212>>2]=p,p=i[a+12>>2],i[C+200>>2]=i[a+8>>2],i[C+204>>2]=p,p=i[a+4>>2],i[C+192>>2]=i[a>>2],i[C+196>>2]=p,AI(w,C+208|0,C+192|0),p=i[C+268>>2],i[a+8>>2]=i[C+264>>2],i[a+12>>2]=p,p=i[C+260>>2],i[a>>2]=i[C+256>>2],i[a+4>>2]=p,p=i[A+12>>2],i[C+184>>2]=i[A+8>>2],i[C+188>>2]=p,p=i[A+4>>2],i[C+176>>2]=i[A>>2],i[C+180>>2]=p,p=i[_+12>>2],i[C+168>>2]=i[_+8>>2],i[C+172>>2]=p,p=i[_+4>>2],i[C+160>>2]=i[_>>2],i[C+164>>2]=p,AI(w,C+176|0,C+160|0),p=i[C+268>>2],i[_+8>>2]=i[C+264>>2],i[_+12>>2]=p,p=i[C+260>>2],i[_>>2]=i[C+256>>2],i[_+4>>2]=p,p=i[B+12>>2],i[C+152>>2]=i[B+8>>2],i[C+156>>2]=p,p=i[B+4>>2],i[C+144>>2]=i[B>>2],i[C+148>>2]=p,p=i[A+12>>2],i[C+136>>2]=i[A+8>>2],i[C+140>>2]=p,p=i[A+4>>2],i[C+128>>2]=i[A>>2],i[C+132>>2]=p,AI(w,C+144|0,C+128|0),p=i[C+268>>2],i[A+8>>2]=i[C+264>>2],i[A+12>>2]=p,p=i[C+260>>2],i[A>>2]=i[C+256>>2],i[A+4>>2]=p,p=i[Q+12>>2],i[C+120>>2]=i[Q+8>>2],i[C+124>>2]=p,p=i[Q+4>>2],i[C+112>>2]=i[Q>>2],i[C+116>>2]=p,p=i[B+12>>2],i[C+104>>2]=i[B+8>>2],i[C+108>>2]=p,p=i[B+4>>2],i[C+96>>2]=i[B>>2],i[C+100>>2]=p,AI(w,C+112|0,C+96|0),p=i[C+268>>2],i[B+8>>2]=i[C+264>>2],i[B+12>>2]=p,p=i[C+260>>2],i[B>>2]=i[C+256>>2],i[B+4>>2]=p,p=i[E+12>>2],i[C+88>>2]=i[E+8>>2],i[C+92>>2]=p,p=i[E+4>>2],i[C+80>>2]=i[E>>2],i[C+84>>2]=p,p=i[Q+12>>2],i[C+72>>2]=i[Q+8>>2],i[C+76>>2]=p,p=i[Q+4>>2],i[C+64>>2]=i[Q>>2],i[C+68>>2]=p,AI(w,C+80|0,C- -64|0),p=i[C+268>>2],i[Q+8>>2]=i[C+264>>2],i[Q+12>>2]=p,p=i[C+260>>2],i[Q>>2]=i[C+256>>2],i[Q+4>>2]=p,p=i[g+12>>2],i[C+56>>2]=i[g+8>>2],i[C+60>>2]=p,p=i[g+4>>2],i[C+48>>2]=i[g>>2],i[C+52>>2]=p,p=i[E+12>>2],i[C+40>>2]=i[E+8>>2],i[C+44>>2]=p,p=i[E+4>>2],i[C+32>>2]=i[E>>2],i[C+36>>2]=p,AI(w,C+48|0,C+32|0),p=i[C+268>>2],i[E+8>>2]=i[C+264>>2],i[E+12>>2]=p,p=i[C+260>>2],i[E>>2]=i[C+256>>2],i[E+4>>2]=p,p=i[C+284>>2],i[C+24>>2]=i[C+280>>2],i[C+28>>2]=p,p=i[C+276>>2],i[C+16>>2]=i[C+272>>2],i[C+20>>2]=p,p=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=p,p=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=p,AI(w,C+16|0,C),w=i[C+268>>2],i[g+8>>2]=i[C+264>>2],i[g+12>>2]=w,w=i[C+260>>2],i[g>>2]=i[C+256>>2],i[g+4>>2]=w,i[g+12>>2]=(o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24)^D,i[g+8>>2]=(o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24)^h,i[g+4>>2]=(o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24)^y,i[g>>2]=(o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24)^f,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^e,i[g+68>>2]=(o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24)^c,i[g+72>>2]=(o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24)^t,i[g+76>>2]=(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^r,10!=(0|(n=n+1|0)););s=C+288|0}function q(A,I){var g,B=0,Q=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0;if(s=g=s-48|0,!((B=nI(A))||(B=-26,I-3>>>0<4294967294))){_=i[A+44>>2],B=i[A+48>>2],i[g+4>>2]=0,Q=i[A+40>>2],i[g+32>>2]=B,i[g+16>>2]=-1,i[g+12>>2]=Q,B=((e=(Q=B<<3)>>>0<_>>>0?_:Q)>>>0)/((_=B<<2)>>>0)|0,i[g+24>>2]=B,i[g+28>>2]=B<<2,i[g+20>>2]=a(B,_),B=i[A+52>>2],i[g+40>>2]=I,i[g+36>>2]=B,h=I=s,s=B=I-1152&-64,I=-25;A:{if(!(!(_=g+4|0)|!A)&&(Q=K(i[_+20>>2]<<3),i[_+4>>2]=Q,I=-22,Q)){I:{if((I=i[_+16>>2])&&1024==(((Q=I<<10)>>>0)/(I>>>0)|0)&&(I=K(12),i[_>>2]=I,I)){if(i[I>>2]=0,i[I+4>>2]=0,I=tI(B+128|0,Q),i[9404]=I,I)i[B+128>>2]=0;else if(I=i[B+128>>2])break I;BA(i[_>>2]),i[_>>2]=0}WI(_,i[A+56>>2]),s=h,I=-22;break A}if(i[i[_>>2]>>2]=I,i[i[_>>2]+4>>2]=I,i[i[_>>2]+8>>2]=Q,D=i[_+36>>2],eA(I=B+128|0,0,0,64),i[B+124>>2]=i[A+48>>2],WA(I,Q=B+124|0,4,0),i[B+124>>2]=i[A+4>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+44>>2],WA(I,Q,4,0),i[B+124>>2]=i[A+40>>2],WA(I,Q,4,0),i[B+124>>2]=19,WA(I,Q,4,0),i[B+124>>2]=D,WA(I,Q,4,0),i[B+124>>2]=i[A+12>>2],WA(I,Q,4,0),(Q=i[A+8>>2])&&(WA(I,Q,i[A+12>>2],0),1&C[A+56|0]&&(XC(i[A+8>>2],i[A+12>>2]),i[A+12>>2]=0)),i[B+124>>2]=i[A+20>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+16>>2])&&WA(I,Q,i[A+20>>2],0),i[B+124>>2]=i[A+28>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+24>>2])&&(WA(I,Q,i[A+28>>2],0),2&o[A+56|0]&&(XC(i[A+24>>2],i[A+28>>2]),i[A+28>>2]=0)),i[B+124>>2]=i[A+36>>2],WA(I=B+128|0,B+124|0,4,0),(Q=i[A+32>>2])&&WA(I,Q,i[A+36>>2],0),Hg(B+128|0,B+48|0,64),XC(B+112|0,8),i[_+28>>2])for(Q=0;;){for(i[B+112>>2]=0,i[B+116>>2]=Q,aA(B+128|0,1024,B+48|0,72),D=i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,y=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=y,128!=(0|(I=I+4|0)););for(i[B+112>>2]=1,aA(e,1024,B+48|0,72),D=1024+(i[i[_>>2]+4>>2]+(a(i[_+24>>2],Q)<<10)|0)|0,I=0;c=(r=I<<3)+D|0,t=i[4+(y=(e=B+128|0)+r|0)>>2],i[c>>2]=i[y>>2],i[c+4>>2]=t,y=(c=8|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,y=(c=16|r)+D|0,t=i[4+(c=c+e|0)>>2],i[y>>2]=i[c>>2],i[y+4>>2]=t,c=(r|=24)+D|0,e=i[4+(r=r+e|0)>>2],i[c>>2]=i[r>>2],i[c+4>>2]=e,128!=(0|(I=I+4|0)););if(!((Q=Q+1|0)>>>0<E[_+28>>2]))break}XC(B+128|0,1024),XC(B+48|0,72),I=0}s=h}if(B=I,!I){if(i[g+12>>2])for(;;){if(s=I=s-80|0,!(!(_=g+4|0)|!i[_+28>>2])){for(C[I+72|0]=0,i[I+64>>2]=p,B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+56>>2]=i[I+72>>2],i[I+60>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+48>>2]=i[I+64>>2],i[I+52>>2]=Q,F(_,I+48|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=1,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+40>>2]=i[I+72>>2],i[I+44>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+32>>2]=i[I+64>>2],i[I+36>>2]=Q,F(_,I+32|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=2,Q){for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+24>>2]=i[I+72>>2],i[I+28>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I+16>>2]=i[I+64>>2],i[I+20>>2]=Q,F(_,I+16|0),(B=B+1|0)>>>0<(Q=i[_+28>>2])>>>0;);if(C[I+72|0]=3,Q)for(B=0;i[I+76>>2]=0,Q=i[I+76>>2],i[I+8>>2]=i[I+72>>2],i[I+12>>2]=Q,i[I+68>>2]=B,Q=i[I+68>>2],i[I>>2]=i[I+64>>2],i[I+4>>2]=Q,F(_,I),(B=B+1|0)>>>0<E[_+28>>2];);}}}if(s=I+80|0,!((p=p+1|0)>>>0<E[g+12>>2]))break}if(s=I=s-2048|0,!(!A|!(B=g+4|0))){if(p=i[B+24>>2],Ng(I+1024|0,c=(i[i[B>>2]+4>>2]+(p<<10)|0)-1024|0,1024),(y=i[B+28>>2])>>>0>=2)for(D=1;;){for(_=c+(a(D,p)<<10)|0,r=0;t=i[(h=(Q=r<<3)+(e=I+1024|0)|0)>>2],w=i[(f=Q+_|0)>>2],f=i[h+4>>2]^i[f+4>>2],i[h>>2]=t^w,i[h+4>>2]=f,f=i[(h=(t=8|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,f=i[(h=(t=16|Q)+e|0)>>2],w=i[(t=_+t|0)>>2],t=i[h+4>>2]^i[t+4>>2],i[h>>2]=f^w,i[h+4>>2]=t,h=i[(Q=(h=e)+(e=24|Q)|0)>>2],t=i[(e=_+e|0)>>2],e=i[Q+4>>2]^i[e+4>>2],i[Q>>2]=t^h,i[Q+4>>2]=e,128!=(0|(r=r+4|0)););if((0|y)==(0|(D=D+1|0)))break}_=Ng(I,I+1024|0,1024),aA(i[A>>2],i[A+4>>2],_,1024),XC(_+1024|0,1024),XC(_,1024),WI(B,i[A+56>>2])}s=I+2048|0,B=0}}return s=g+48|0,B}function z(A,I,g,B,Q){var E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0;for(E=s+-64|0,a=i[A+60>>2],_=i[A+56>>2],P=i[A+52>>2],L=i[A+48>>2],c=i[A+44>>2],t=i[A+40>>2],r=i[A+36>>2],e=i[A+32>>2],y=i[A+28>>2],h=i[A+24>>2],D=i[A+20>>2],f=i[A+16>>2],p=i[A+12>>2],w=i[A+8>>2],n=i[A+4>>2],k=i[A>>2];;){if(!Q&B>>>0>63|Q)F=g;else{if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=0,i[E+4>>2]=0,N=0,B|Q)for(;C[N+E|0]=o[I+N|0],!Q&(N=N+1|0)>>>0<B>>>0|Q;);I=F=E,O=g}for(q=20,S=k,Y=n,J=w,l=p,N=f,g=D,M=h,K=y,U=e,x=r,d=t,G=a,v=_,u=P,m=L,b=c;H=N,S=Lg((N=S+N|0)^m,16),H=m=Lg(H^(U=S+U|0),12),m=Lg((R=N+m|0)^S,8),N=Lg(H^(U=m+U|0),7),G=Lg((S=K+l|0)^G,16),K=Lg((b=G+b|0)^K,12),l=Lg((J=M+J|0)^v,16),M=Lg((d=l+d|0)^M,12),v=(z=S+K|0)+N|0,j=Lg((J=M+J|0)^l,8),S=Lg(v^j,16),l=Lg((Y=g+Y|0)^u,16),g=Lg((x=l+x|0)^g,12),H=N,u=Lg((Y=g+Y|0)^l,8),H=Lg(H^(N=(X=u+x|0)+S|0),12),v=Lg(S^(l=H+v|0),8),N=Lg((x=v+N|0)^H,7),H=U,U=J,S=Lg(G^z,8),J=Lg((G=S+b|0)^K,7),u=Lg((U=U+J|0)^u,16),b=Lg((K=H+u|0)^J,12),u=Lg(u^(J=b+U|0),8),K=Lg((U=K+u|0)^b,7),b=G,G=Y,Y=Lg((d=d+j|0)^M,7),M=b+(m=Lg((G=G+Y|0)^m,16))|0,b=G,G=Lg(M^Y,12),m=Lg(m^(Y=b+G|0),8),M=Lg((b=M+m|0)^G,7),H=d,G=S,S=Lg(g^X,7),G=Lg(G^(d=S+R|0),16),R=Lg((g=H+G|0)^S,12),G=Lg(G^(S=R+d|0),8),g=Lg((d=g+G|0)^R,7),q=q-2|0;);if(q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,R=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,z=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,j=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,X=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,H=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,W=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,V=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,Z=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,T=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,$=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,AA=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,IA=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,gA=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,CA=o[I+60|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,S=S+k^(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),C[0|F]=S,C[F+1|0]=S>>>8,C[F+2|0]=S>>>16,C[F+3|0]=S>>>24,S=G+a^CA,C[F+60|0]=S,C[F+61|0]=S>>>8,C[F+62|0]=S>>>16,C[F+63|0]=S>>>24,S=v+_^gA,C[F+56|0]=S,C[F+57|0]=S>>>8,C[F+58|0]=S>>>16,C[F+59|0]=S>>>24,S=u+P^IA,C[F+52|0]=S,C[F+53|0]=S>>>8,C[F+54|0]=S>>>16,C[F+55|0]=S>>>24,S=m+L^AA,C[F+48|0]=S,C[F+49|0]=S>>>8,C[F+50|0]=S>>>16,C[F+51|0]=S>>>24,S=b+c^$,C[F+44|0]=S,C[F+45|0]=S>>>8,C[F+46|0]=S>>>16,C[F+47|0]=S>>>24,S=d+t^T,C[F+40|0]=S,C[F+41|0]=S>>>8,C[F+42|0]=S>>>16,C[F+43|0]=S>>>24,S=x+r^Z,C[F+36|0]=S,C[F+37|0]=S>>>8,C[F+38|0]=S>>>16,C[F+39|0]=S>>>24,S=U+e^V,C[F+32|0]=S,C[F+33|0]=S>>>8,C[F+34|0]=S>>>16,C[F+35|0]=S>>>24,K=K+y^W,C[F+28|0]=K,C[F+29|0]=K>>>8,C[F+30|0]=K>>>16,C[F+31|0]=K>>>24,M=H^M+h,C[F+24|0]=M,C[F+25|0]=M>>>8,C[F+26|0]=M>>>16,C[F+27|0]=M>>>24,g=X^g+D,C[F+20|0]=g,C[F+21|0]=g>>>8,C[F+22|0]=g>>>16,C[F+23|0]=g>>>24,g=j^N+f,C[F+16|0]=g,C[F+17|0]=g>>>8,C[F+18|0]=g>>>16,C[F+19|0]=g>>>24,g=z^l+p,C[F+12|0]=g,C[F+13|0]=g>>>8,C[F+14|0]=g>>>16,C[F+15|0]=g>>>24,g=R^J+w,C[F+8|0]=g,C[F+9|0]=g>>>8,C[F+10|0]=g>>>16,C[F+11|0]=g>>>24,g=q^Y+n,C[F+4|0]=g,C[F+5|0]=g>>>8,C[F+6|0]=g>>>16,C[F+7|0]=g>>>24,P=!(L=L+1|0)+P|0,!Q&B>>>0<=64){if(!(!(B|Q)|!Q&B>>>0>63|!!(0|Q)))for(N=0;C[N+O|0]=o[F+N|0],B>>>0>(N=N+1|0)>>>0;);i[A+52>>2]=P,i[A+48>>2]=L;break}I=I- -64|0,g=F- -64|0,Q=Q-1|0,Q=(B=B+-64|0)>>>0<4294967232?Q+1|0:Q}}function j(A,I){I|=0;var g,B=0,Q=0,o=0,E=0,a=0,_=0,c=0;return s=g=s-704|0,B=80+((Q=i[72+(A|=0)>>2]>>>3&127)+A|0)|0,Q>>>0>=112?(Ng(B,35056,128-Q|0),k(A,Q=A+80|0,g,g+640|0),bg(Q,0,112)):Ng(B,35056,112-Q|0),_=(o=i[A+64>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+68>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+192|0]=B,C[A+193|0]=B>>>8,C[A+194|0]=B>>>16,C[A+195|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+196|0]=Q,C[A+197|0]=Q>>>8,C[A+198|0]=Q>>>16,C[A+199|0]=Q>>>24,_=(o=i[A+72>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+76>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[A+200|0]=B,C[A+201|0]=B>>>8,C[A+202|0]=B>>>16,C[A+203|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[A+204|0]=Q,C[A+205|0]=Q>>>8,C[A+206|0]=Q>>>16,C[A+207|0]=Q>>>24,k(A,A+80|0,g,g+640|0),_=(o=i[A>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+4>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[0|I]=B,C[I+1|0]=B>>>8,C[I+2|0]=B>>>16,C[I+3|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,_=(o=i[A+8>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+12>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+8|0]=B,C[I+9|0]=B>>>8,C[I+10|0]=B>>>16,C[I+11|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,_=(o=i[A+16>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+20>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+16|0]=B,C[I+17|0]=B>>>8,C[I+18|0]=B>>>16,C[I+19|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,_=(o=i[A+24>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+28>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+24|0]=B,C[I+25|0]=B>>>8,C[I+26|0]=B>>>16,C[I+27|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,_=(o=i[A+32>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+32|0]=B,C[I+33|0]=B>>>8,C[I+34|0]=B>>>16,C[I+35|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+36|0]=Q,C[I+37|0]=Q>>>8,C[I+38|0]=Q>>>16,C[I+39|0]=Q>>>24,_=(o=i[A+40>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+44>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,_=(o=i[A+48>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,c=E<<24,E=(a=-16777216&o)>>>24|0,B=c|a<<8|-16777216&((255&(B=i[A+52>>2]))<<24|o>>>8)|16711680&((16777215&B)<<8|o>>>24)|B>>>8&65280|B>>>24,C[I+48|0]=B,C[I+49|0]=B>>>8,C[I+50|0]=B>>>16,C[I+51|0]=B>>>24,B=Q|E|_,Q=0,Q|=B,C[I+52|0]=Q,C[I+53|0]=Q>>>8,C[I+54|0]=Q>>>16,C[I+55|0]=Q>>>24,_=(o=i[A+56>>2])<<24|(65280&o)<<8,Q=(E=16711680&o)>>>8|0,B=I,c=E<<24,E=(a=-16777216&o)>>>24|0,I=c|a<<8|-16777216&((255&(I=i[A+60>>2]))<<24|o>>>8)|16711680&((16777215&I)<<8|o>>>24)|I>>>8&65280|I>>>24,C[B+56|0]=I,C[B+57|0]=I>>>8,C[B+58|0]=I>>>16,C[B+59|0]=I>>>24,I=Q|E|_,I|=Q=0,C[B+60|0]=I,C[B+61|0]=I>>>8,C[B+62|0]=I>>>16,C[B+63|0]=I>>>24,XC(g,704),XC(A,208),s=g+704|0,0}function X(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S,N,G=0;s=B=s-224|0,c=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,t=o[0|(G=g- -64|0)]|o[G+1|0]<<8|o[G+2|0]<<16|o[G+3|0]<<24,r=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,e=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,y=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,Q=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,h=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,D=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,f=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,p=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,w=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,E=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,k=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,F=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,S=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,N=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(_=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=S&N^k^F^n^E,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=p&w^D^f^h^Q,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=e&y^c^t^r^a,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[G+4>>2],i[B+176>>2]=i[G>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),I=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=I,I=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=I,I=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=I,I=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=I,I=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=I,I=i[G+4>>2],i[B+128>>2]=i[G>>2],i[B+132>>2]=I,AI(A,B+144|0,B+128|0),I=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=I,I=i[B+196>>2],i[G>>2]=i[B+192>>2],i[G+4>>2]=I,I=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=I,I=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=I,I=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=I,I=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=I,I=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=I,I=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=I,I=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=I,I=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=I,I=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=I,I=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=I,I=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=I,I=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=I,I=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=I,I=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=I,I=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=I,I=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=I,I=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=I,I=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=I,I=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+192>>2],I=i[B+196>>2],G=i[B+200>>2],i[g+12>>2]=_^i[B+204>>2],i[g+8>>2]=G^E,i[g+4>>2]=I^Q,i[g>>2]=A^a,s=B+224|0}function O(A,I,g){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n=0,k=0,F=0,S=0,N=0;s=B=s-224|0,F=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,k=o[0|(n=g- -64|0)]|o[n+1|0]<<8|o[n+2|0]<<16|o[n+3|0]<<24,Q=o[g+80|0]|o[g+81|0]<<8|o[g+82|0]<<16|o[g+83|0]<<24,E=o[g+32|0]|o[g+33|0]<<8|o[g+34|0]<<16|o[g+35|0]<<24,a=o[g+48|0]|o[g+49|0]<<8|o[g+50|0]<<16|o[g+51|0]<<24,S=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,_=o[g+68|0]|o[g+69|0]<<8|o[g+70|0]<<16|o[g+71|0]<<24,c=o[g+84|0]|o[g+85|0]<<8|o[g+86|0]<<16|o[g+87|0]<<24,t=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,r=o[g+36|0]|o[g+37|0]<<8|o[g+38|0]<<16|o[g+39|0]<<24,e=o[g+52|0]|o[g+53|0]<<8|o[g+54|0]<<16|o[g+55|0]<<24,N=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,y=o[g+72|0]|o[g+73|0]<<8|o[g+74|0]<<16|o[g+75|0]<<24,h=o[g+88|0]|o[g+89|0]<<8|o[g+90|0]<<16|o[g+91|0]<<24,D=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,f=o[g+40|0]|o[g+41|0]<<8|o[g+42|0]<<16|o[g+43|0]<<24,p=o[g+56|0]|o[g+57|0]<<8|o[g+58|0]<<16|o[g+59|0]<<24,w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=(o[g+44|0]|o[g+45|0]<<8|o[g+46|0]<<16|o[g+47|0]<<24)&(o[g+60|0]|o[g+61|0]<<8|o[g+62|0]<<16|o[g+63|0]<<24)^(o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24)^(o[g+76|0]|o[g+77|0]<<8|o[g+78|0]<<16|o[g+79|0]<<24)^(o[g+92|0]|o[g+93|0]<<8|o[g+94|0]<<16|o[g+95|0]<<24)^(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24),C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,N=f&p^N^h^D^y,C[A+8|0]=N,C[A+9|0]=N>>>8,C[A+10|0]=N>>>16,C[A+11|0]=N>>>24,S=r&e^S^c^t^_,C[A+4|0]=S,C[A+5|0]=S>>>8,C[A+6|0]=S>>>16,C[A+7|0]=S>>>24,F=E&a^F^k^Q^w,C[0|A]=F,C[A+1|0]=F>>>8,C[A+2|0]=F>>>16,C[A+3|0]=F>>>24,A=i[g+92>>2],i[B+216>>2]=i[g+88>>2],i[B+220>>2]=A,A=i[g+84>>2],i[B+208>>2]=i[g+80>>2],i[B+212>>2]=A,A=i[g+76>>2],i[B+184>>2]=i[g+72>>2],i[B+188>>2]=A,A=i[n+4>>2],i[B+176>>2]=i[n>>2],i[B+180>>2]=A,A=i[g+92>>2],i[B+168>>2]=i[g+88>>2],i[B+172>>2]=A,A=i[g+84>>2],i[B+160>>2]=i[g+80>>2],i[B+164>>2]=A,AI(A=B+192|0,B+176|0,B+160|0),k=i[B+204>>2],i[g+88>>2]=i[B+200>>2],i[g+92>>2]=k,k=i[B+196>>2],i[g+80>>2]=i[B+192>>2],i[g+84>>2]=k,k=i[g+60>>2],i[B+152>>2]=i[g+56>>2],i[B+156>>2]=k,k=i[g+52>>2],i[B+144>>2]=i[g+48>>2],i[B+148>>2]=k,k=i[g+76>>2],i[B+136>>2]=i[g+72>>2],i[B+140>>2]=k,k=i[n+4>>2],i[B+128>>2]=i[n>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+204>>2],i[g+72>>2]=i[B+200>>2],i[g+76>>2]=k,k=i[B+196>>2],i[n>>2]=i[B+192>>2],i[n+4>>2]=k,n=i[g+44>>2],i[B+120>>2]=i[g+40>>2],i[B+124>>2]=n,n=i[g+36>>2],i[B+112>>2]=i[g+32>>2],i[B+116>>2]=n,n=i[g+60>>2],i[B+104>>2]=i[g+56>>2],i[B+108>>2]=n,n=i[g+52>>2],i[B+96>>2]=i[g+48>>2],i[B+100>>2]=n,AI(A,B+112|0,B+96|0),n=i[B+204>>2],i[g+56>>2]=i[B+200>>2],i[g+60>>2]=n,n=i[B+196>>2],i[g+48>>2]=i[B+192>>2],i[g+52>>2]=n,n=i[g+28>>2],i[B+88>>2]=i[g+24>>2],i[B+92>>2]=n,n=i[g+20>>2],i[B+80>>2]=i[g+16>>2],i[B+84>>2]=n,n=i[g+44>>2],i[B+72>>2]=i[g+40>>2],i[B+76>>2]=n,n=i[g+36>>2],i[B+64>>2]=i[g+32>>2],i[B+68>>2]=n,AI(A,B+80|0,B- -64|0),n=i[B+204>>2],i[g+40>>2]=i[B+200>>2],i[g+44>>2]=n,n=i[B+196>>2],i[g+32>>2]=i[B+192>>2],i[g+36>>2]=n,n=i[g+12>>2],i[B+56>>2]=i[g+8>>2],i[B+60>>2]=n,n=i[g+4>>2],i[B+48>>2]=i[g>>2],i[B+52>>2]=n,n=i[g+28>>2],i[B+40>>2]=i[g+24>>2],i[B+44>>2]=n,n=i[g+20>>2],i[B+32>>2]=i[g+16>>2],i[B+36>>2]=n,AI(A,B+48|0,B+32|0),n=i[B+204>>2],i[g+24>>2]=i[B+200>>2],i[g+28>>2]=n,n=i[B+196>>2],i[g+16>>2]=i[B+192>>2],i[g+20>>2]=n,n=i[B+220>>2],i[B+24>>2]=i[B+216>>2],i[B+28>>2]=n,n=i[B+212>>2],i[B+16>>2]=i[B+208>>2],i[B+20>>2]=n,n=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=n,n=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=n,AI(A,B+16|0,B),A=i[B+192>>2],n=i[B+196>>2],k=i[B+200>>2],i[g+12>>2]=I^i[B+204>>2],i[g+8>>2]=k^N,i[g+4>>2]=n^S,i[g>>2]=A^F,s=B+224|0}function W(A,I){var g,B,Q,E,a,_,c,t,r,e,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0;s=g=s-800|0,y=i[I+44>>2],D=i[I+84>>2],f=i[I+48>>2],p=i[I+88>>2],w=i[I+52>>2],h=i[I+92>>2],S=i[I+56>>2],n=i[I+96>>2],K=i[I+60>>2],N=i[I+100>>2],H=i[(U=I- -64|0)>>2],Y=i[I+104>>2],J=i[I+68>>2],d=i[I+108>>2],m=i[I+72>>2],l=i[I+112>>2],u=i[I+40>>2],x=i[I+80>>2],k=i[I+76>>2],F=i[I+116>>2],i[g+324>>2]=k+F,i[g+320>>2]=m+l,i[g+316>>2]=J+d,i[g+312>>2]=H+Y,i[g+308>>2]=N+K,i[g+304>>2]=n+S,i[g+300>>2]=h+w,i[g+296>>2]=f+p,i[g+292>>2]=y+D,i[g+288>>2]=u+x,i[g+36>>2]=F-k,i[g+32>>2]=l-m,i[g+28>>2]=d-J,i[g+24>>2]=Y-H,i[g+20>>2]=N-K,i[g+16>>2]=n-S,i[g+12>>2]=h-w,i[g+8>>2]=p-f,i[g+4>>2]=D-y,i[g>>2]=x-u,b(y=g+288|0,y,g),b(f=g+240|0,I,w=I+40|0),R(D=g+192|0,f),b(D,y,D),i[g+452>>2]=0,i[g+456>>2]=0,i[g+460>>2]=0,i[g+464>>2]=0,i[g+468>>2]=0,i[g+436>>2]=0,i[g+440>>2]=0,i[g+444>>2]=0,i[g+448>>2]=0,i[g+432>>2]=1,GA(p=g+576|0,g+432|0,D),b(D=g+720|0,p,y),b(K=g+672|0,p,f),b(n=g+48|0,D,K),b(n,n,y=I+120|0),b(g+528|0,I,1632),b(g+480|0,w,1632),b(g+624|0,D,2944),b(D=g+336|0,y,n),QI(S=g+384|0,D),h=o[g+384|0],D=i[I+36>>2],y=i[I+32>>2],i[g+176>>2]=y,i[g+180>>2]=D,f=i[I+28>>2],D=i[I+24>>2],i[g+168>>2]=D,i[g+172>>2]=f,p=i[I+20>>2],f=i[I+16>>2],i[g+160>>2]=f,i[g+164>>2]=p,w=i[I+12>>2],p=i[I+8>>2],i[g+152>>2]=p,i[g+156>>2]=w,N=i[I+4>>2],w=i[I>>2],i[g+144>>2]=w,i[g+148>>2]=N,N=i[I+44>>2],H=i[I+48>>2],Y=i[I+52>>2],J=i[I+56>>2],d=i[I+60>>2],m=i[U>>2],l=i[I+68>>2],u=i[I+72>>2],x=i[I+76>>2],U=i[I+40>>2],P=i[g+484>>2],k=i[g+148>>2],q=i[g+492>>2],F=i[g+156>>2],z=i[g+500>>2],G=i[g+164>>2],j=i[g+508>>2],M=i[g+172>>2],X=i[g+516>>2],v=i[g+180>>2],O=i[g+480>>2],W=i[g+488>>2],V=i[g+496>>2],Z=i[g+504>>2],h=0-(1&h)|0,i[g+176>>2]=y^h&(y^i[g+512>>2]),i[g+168>>2]=D^h&(D^Z),i[g+160>>2]=f^h&(f^V),i[g+152>>2]=p^h&(p^W),i[g+144>>2]=w^h&(w^O),i[g+180>>2]=v^h&(v^X),i[g+172>>2]=M^h&(M^j),i[g+164>>2]=G^h&(G^z),i[g+156>>2]=F^h&(F^q),i[g+148>>2]=k^h&(k^P),v=i[g+528>>2],P=i[g+532>>2],q=i[g+536>>2],z=i[g+540>>2],j=i[g+544>>2],X=i[g+548>>2],O=i[g+552>>2],W=i[g+556>>2],V=i[g+560>>2],Z=i[g+564>>2],y=i[g+672>>2],B=i[g+624>>2],D=i[g+676>>2],Q=i[g+628>>2],f=i[g+680>>2],E=i[g+632>>2],p=i[g+684>>2],a=i[g+636>>2],w=i[g+688>>2],_=i[g+640>>2],k=i[g+692>>2],c=i[g+644>>2],F=i[g+696>>2],t=i[g+648>>2],G=i[g+700>>2],r=i[g+652>>2],M=i[g+704>>2],e=i[g+656>>2],L=i[g+708>>2],i[g+708>>2]=L^h&(i[g+660>>2]^L),i[g+704>>2]=M^h&(M^e),i[g+700>>2]=G^h&(G^r),i[g+696>>2]=F^h&(F^t),i[g+692>>2]=k^h&(k^c),i[g+688>>2]=w^h&(w^_),i[g+684>>2]=p^h&(p^a),i[g+680>>2]=f^h&(f^E),i[g+676>>2]=D^h&(D^Q),i[g+672>>2]=y^h&(y^B),b(y=g+96|0,g+144|0,n),QI(S,y),D=i[I+84>>2],f=i[I+88>>2],p=i[I+92>>2],w=i[I+96>>2],n=i[I+100>>2],k=i[I+104>>2],F=i[I+108>>2],G=i[I+112>>2],M=i[I+80>>2],L=i[I+116>>2],I=0-(1&C[g+384|0])|0,y=x^h&(x^Z),i[g+420>>2]=L-(I&(0-y^y)^y),y=u^h&(u^V),i[g+416>>2]=G-(I&(0-y^y)^y),y=l^h&(l^W),i[g+412>>2]=F-(I&(0-y^y)^y),y=m^h&(m^O),i[g+408>>2]=k-(I&(0-y^y)^y),y=d^h&(d^X),i[g+404>>2]=n-(I&(0-y^y)^y),y=J^h&(J^j),i[g+400>>2]=w-(I&(0-y^y)^y),y=Y^h&(Y^z),i[g+396>>2]=p-(I&(0-y^y)^y),y=H^h&(H^q),i[g+392>>2]=f-(I&(0-y^y)^y),y=N^h&(N^P),i[g+388>>2]=D-(I&(0-y^y)^y),y=I,I=U^h&(U^v),i[g+384>>2]=M-(y&(0-I^I)^I),b(S,K,S),QI(g+768|0,S),I=0-(1&C[g+768|0])|0,y=i[g+384>>2],i[g+384>>2]=I&(0-y^y)^y,y=i[g+388>>2],i[g+388>>2]=I&(0-y^y)^y,y=i[g+392>>2],i[g+392>>2]=I&(0-y^y)^y,y=i[g+396>>2],i[g+396>>2]=I&(0-y^y)^y,y=i[g+400>>2],i[g+400>>2]=I&(0-y^y)^y,y=i[g+404>>2],i[g+404>>2]=I&(0-y^y)^y,y=i[g+408>>2],i[g+408>>2]=I&(0-y^y)^y,y=i[g+412>>2],i[g+412>>2]=I&(0-y^y)^y,y=i[g+416>>2],i[g+416>>2]=I&(0-y^y)^y,y=I,I=i[g+420>>2],i[g+420>>2]=y&(0-I^I)^I,QI(A,S),s=g+800|0}function V(A,I){var g,C,B,Q,E,a,_,c,t,r=0,e=0;s=g=s-288|0,C=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,B=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,Q=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,E=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,a=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,_=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,c=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,t=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,A=i[I+124>>2],i[g+280>>2]=i[I+120>>2],i[g+284>>2]=A,A=i[I+116>>2],i[g+272>>2]=i[I+112>>2],i[g+276>>2]=A,A=i[I+108>>2],i[g+248>>2]=i[I+104>>2],i[g+252>>2]=A,A=i[I+100>>2],i[g+240>>2]=i[I+96>>2],i[g+244>>2]=A,A=i[I+124>>2],i[g+232>>2]=i[I+120>>2],i[g+236>>2]=A,A=i[I+116>>2],i[g+224>>2]=i[I+112>>2],i[g+228>>2]=A,AI(e=g+256|0,g+240|0,g+224|0),A=i[g+268>>2],i[I+120>>2]=i[g+264>>2],i[I+124>>2]=A,A=i[g+260>>2],i[I+112>>2]=i[g+256>>2],i[I+116>>2]=A,A=i[I+92>>2],i[g+216>>2]=i[I+88>>2],i[g+220>>2]=A,A=i[I+84>>2],i[g+208>>2]=i[I+80>>2],i[g+212>>2]=A,A=i[I+108>>2],i[g+200>>2]=i[I+104>>2],i[g+204>>2]=A,A=i[I+100>>2],i[g+192>>2]=i[I+96>>2],i[g+196>>2]=A,AI(e,g+208|0,g+192|0),A=i[g+268>>2],i[I+104>>2]=i[g+264>>2],i[I+108>>2]=A,A=i[g+260>>2],i[I+96>>2]=i[g+256>>2],i[I+100>>2]=A,A=i[I+76>>2],i[g+184>>2]=i[I+72>>2],i[g+188>>2]=A,r=i[4+(A=I- -64|0)>>2],i[g+176>>2]=i[A>>2],i[g+180>>2]=r,r=i[I+92>>2],i[g+168>>2]=i[I+88>>2],i[g+172>>2]=r,r=i[I+84>>2],i[g+160>>2]=i[I+80>>2],i[g+164>>2]=r,AI(e,g+176|0,g+160|0),r=i[g+268>>2],i[I+88>>2]=i[g+264>>2],i[I+92>>2]=r,r=i[g+260>>2],i[I+80>>2]=i[g+256>>2],i[I+84>>2]=r,r=i[I+60>>2],i[g+152>>2]=i[I+56>>2],i[g+156>>2]=r,r=i[I+52>>2],i[g+144>>2]=i[I+48>>2],i[g+148>>2]=r,r=i[I+76>>2],i[g+136>>2]=i[I+72>>2],i[g+140>>2]=r,r=i[A+4>>2],i[g+128>>2]=i[A>>2],i[g+132>>2]=r,AI(e,g+144|0,g+128|0),r=i[g+268>>2],i[I+72>>2]=i[g+264>>2],i[I+76>>2]=r,r=i[g+260>>2],i[A>>2]=i[g+256>>2],i[A+4>>2]=r,r=i[I+44>>2],i[g+120>>2]=i[I+40>>2],i[g+124>>2]=r,r=i[I+36>>2],i[g+112>>2]=i[I+32>>2],i[g+116>>2]=r,r=i[I+60>>2],i[g+104>>2]=i[I+56>>2],i[g+108>>2]=r,r=i[I+52>>2],i[g+96>>2]=i[I+48>>2],i[g+100>>2]=r,AI(e,g+112|0,g+96|0),r=i[g+268>>2],i[I+56>>2]=i[g+264>>2],i[I+60>>2]=r,r=i[g+260>>2],i[I+48>>2]=i[g+256>>2],i[I+52>>2]=r,r=i[I+28>>2],i[g+88>>2]=i[I+24>>2],i[g+92>>2]=r,r=i[I+20>>2],i[g+80>>2]=i[I+16>>2],i[g+84>>2]=r,r=i[I+44>>2],i[g+72>>2]=i[I+40>>2],i[g+76>>2]=r,r=i[I+36>>2],i[g+64>>2]=i[I+32>>2],i[g+68>>2]=r,AI(e,g+80|0,g- -64|0),r=i[g+268>>2],i[I+40>>2]=i[g+264>>2],i[I+44>>2]=r,r=i[g+260>>2],i[I+32>>2]=i[g+256>>2],i[I+36>>2]=r,r=i[I+12>>2],i[g+56>>2]=i[I+8>>2],i[g+60>>2]=r,r=i[I+4>>2],i[g+48>>2]=i[I>>2],i[g+52>>2]=r,r=i[I+28>>2],i[g+40>>2]=i[I+24>>2],i[g+44>>2]=r,r=i[I+20>>2],i[g+32>>2]=i[I+16>>2],i[g+36>>2]=r,AI(e,g+48|0,g+32|0),r=i[g+268>>2],i[I+24>>2]=i[g+264>>2],i[I+28>>2]=r,r=i[g+260>>2],i[I+16>>2]=i[g+256>>2],i[I+20>>2]=r,r=i[g+284>>2],i[g+24>>2]=i[g+280>>2],i[g+28>>2]=r,r=i[g+276>>2],i[g+16>>2]=i[g+272>>2],i[g+20>>2]=r,r=i[I+12>>2],i[g+8>>2]=i[I+8>>2],i[g+12>>2]=r,r=i[I+4>>2],i[g>>2]=i[I>>2],i[g+4>>2]=r,AI(e,g+16|0,g),e=i[g+268>>2],i[I+8>>2]=i[g+264>>2],i[I+12>>2]=e,e=i[g+260>>2],i[I>>2]=i[g+256>>2],i[I+4>>2]=e,i[I+12>>2]=(o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)^c,i[I+8>>2]=(o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24)^_,i[I+4>>2]=(o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)^a,i[I>>2]=(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24)^t,i[A>>2]=(o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24)^E,i[I+68>>2]=(o[I+68|0]|o[I+69|0]<<8|o[I+70|0]<<16|o[I+71|0]<<24)^Q,i[I+72>>2]=(o[I+72|0]|o[I+73|0]<<8|o[I+74|0]<<16|o[I+75|0]<<24)^B,i[I+76>>2]=(o[I+76|0]|o[I+77|0]<<8|o[I+78|0]<<16|o[I+79|0]<<24)^C,s=g+288|0}function Z(A,I,g,C){var B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k=0,F=0,S=0,N=0;s=B=s-240|0,i[B+200>>2]=0,i[B+204>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,Ng(F=B+192|0,I,g),S=o[C+16|0]|o[C+17|0]<<8|o[C+18|0]<<16|o[C+19|0]<<24,N=o[0|(I=C- -64|0)]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=o[C+80|0]|o[C+81|0]<<8|o[C+82|0]<<16|o[C+83|0]<<24,Q=o[C+32|0]|o[C+33|0]<<8|o[C+34|0]<<16|o[C+35|0]<<24,E=o[C+48|0]|o[C+49|0]<<8|o[C+50|0]<<16|o[C+51|0]<<24,a=o[C+20|0]|o[C+21|0]<<8|o[C+22|0]<<16|o[C+23|0]<<24,_=o[C+68|0]|o[C+69|0]<<8|o[C+70|0]<<16|o[C+71|0]<<24,c=o[C+84|0]|o[C+85|0]<<8|o[C+86|0]<<16|o[C+87|0]<<24,t=o[C+36|0]|o[C+37|0]<<8|o[C+38|0]<<16|o[C+39|0]<<24,r=o[C+52|0]|o[C+53|0]<<8|o[C+54|0]<<16|o[C+55|0]<<24,e=o[C+24|0]|o[C+25|0]<<8|o[C+26|0]<<16|o[C+27|0]<<24,y=o[C+72|0]|o[C+73|0]<<8|o[C+74|0]<<16|o[C+75|0]<<24,h=o[C+88|0]|o[C+89|0]<<8|o[C+90|0]<<16|o[C+91|0]<<24,D=o[C+40|0]|o[C+41|0]<<8|o[C+42|0]<<16|o[C+43|0]<<24,f=o[C+56|0]|o[C+57|0]<<8|o[C+58|0]<<16|o[C+59|0]<<24,p=i[B+192>>2],w=i[B+196>>2],n=i[B+200>>2],i[B+204>>2]=(o[C+44|0]|o[C+45|0]<<8|o[C+46|0]<<16|o[C+47|0]<<24)&(o[C+60|0]|o[C+61|0]<<8|o[C+62|0]<<16|o[C+63|0]<<24)^(o[C+28|0]|o[C+29|0]<<8|o[C+30|0]<<16|o[C+31|0]<<24)^(o[C+76|0]|o[C+77|0]<<8|o[C+78|0]<<16|o[C+79|0]<<24)^i[B+204>>2]^(o[C+92|0]|o[C+93|0]<<8|o[C+94|0]<<16|o[C+95|0]<<24),i[B+200>>2]=D&f^h^n^y^e,i[B+196>>2]=t&r^c^w^_^a,i[B+192>>2]=Q&E^S^N^k^p,bg(g+F|0,0,16-g|0),Ng(A,F,g),g=i[B+192>>2],F=i[B+196>>2],S=i[B+200>>2],N=i[B+204>>2],A=i[C+92>>2],i[B+232>>2]=i[C+88>>2],i[B+236>>2]=A,A=i[C+84>>2],i[B+224>>2]=i[C+80>>2],i[B+228>>2]=A,A=i[C+76>>2],i[B+184>>2]=i[C+72>>2],i[B+188>>2]=A,A=i[I+4>>2],i[B+176>>2]=i[I>>2],i[B+180>>2]=A,A=i[C+92>>2],i[B+168>>2]=i[C+88>>2],i[B+172>>2]=A,A=i[C+84>>2],i[B+160>>2]=i[C+80>>2],i[B+164>>2]=A,AI(A=B+208|0,B+176|0,B+160|0),k=i[B+220>>2],i[C+88>>2]=i[B+216>>2],i[C+92>>2]=k,k=i[B+212>>2],i[C+80>>2]=i[B+208>>2],i[C+84>>2]=k,k=i[C+60>>2],i[B+152>>2]=i[C+56>>2],i[B+156>>2]=k,k=i[C+52>>2],i[B+144>>2]=i[C+48>>2],i[B+148>>2]=k,k=i[C+76>>2],i[B+136>>2]=i[C+72>>2],i[B+140>>2]=k,k=i[I+4>>2],i[B+128>>2]=i[I>>2],i[B+132>>2]=k,AI(A,B+144|0,B+128|0),k=i[B+220>>2],i[C+72>>2]=i[B+216>>2],i[C+76>>2]=k,k=i[B+212>>2],i[I>>2]=i[B+208>>2],i[I+4>>2]=k,I=i[C+44>>2],i[B+120>>2]=i[C+40>>2],i[B+124>>2]=I,I=i[C+36>>2],i[B+112>>2]=i[C+32>>2],i[B+116>>2]=I,I=i[C+60>>2],i[B+104>>2]=i[C+56>>2],i[B+108>>2]=I,I=i[C+52>>2],i[B+96>>2]=i[C+48>>2],i[B+100>>2]=I,AI(A,B+112|0,B+96|0),I=i[B+220>>2],i[C+56>>2]=i[B+216>>2],i[C+60>>2]=I,I=i[B+212>>2],i[C+48>>2]=i[B+208>>2],i[C+52>>2]=I,I=i[C+28>>2],i[B+88>>2]=i[C+24>>2],i[B+92>>2]=I,I=i[C+20>>2],i[B+80>>2]=i[C+16>>2],i[B+84>>2]=I,I=i[C+44>>2],i[B+72>>2]=i[C+40>>2],i[B+76>>2]=I,I=i[C+36>>2],i[B+64>>2]=i[C+32>>2],i[B+68>>2]=I,AI(A,B+80|0,B- -64|0),I=i[B+220>>2],i[C+40>>2]=i[B+216>>2],i[C+44>>2]=I,I=i[B+212>>2],i[C+32>>2]=i[B+208>>2],i[C+36>>2]=I,I=i[C+12>>2],i[B+56>>2]=i[C+8>>2],i[B+60>>2]=I,I=i[C+4>>2],i[B+48>>2]=i[C>>2],i[B+52>>2]=I,I=i[C+28>>2],i[B+40>>2]=i[C+24>>2],i[B+44>>2]=I,I=i[C+20>>2],i[B+32>>2]=i[C+16>>2],i[B+36>>2]=I,AI(A,B+48|0,B+32|0),I=i[B+220>>2],i[C+24>>2]=i[B+216>>2],i[C+28>>2]=I,I=i[B+212>>2],i[C+16>>2]=i[B+208>>2],i[C+20>>2]=I,I=i[B+236>>2],i[B+24>>2]=i[B+232>>2],i[B+28>>2]=I,I=i[B+228>>2],i[B+16>>2]=i[B+224>>2],i[B+20>>2]=I,I=i[C+12>>2],i[B+8>>2]=i[C+8>>2],i[B+12>>2]=I,I=i[C+4>>2],i[B>>2]=i[C>>2],i[B+4>>2]=I,AI(A,B+16|0,B),A=i[B+208>>2],I=i[B+212>>2],k=i[B+216>>2],i[C+12>>2]=N^i[B+220>>2],i[C+8>>2]=k^S,i[C+4>>2]=I^F,i[C>>2]=A^g,s=B+240|0}function T(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(a=1886610805^(B=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),E=1936682341^(i=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),c=1852142177^B,_=1819895653^i,i=1852075885^(B=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),Q=1685025377^(r=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^B,r^=1952801890,(0|(h=(I+g|0)-(y=7&g)|0))!=(0|I))for(;t=c=c+(B=t^(w=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,_=_+(r^=n=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24)|0,_=B>>>0>c>>>0?_+1|0:_,E=Q+E|0,E=(s=a)>>>0>(a=i+a|0)>>>0?E+1|0:E,Q=c+(i=UI(i,Q,13)^a)|0,c=_+(e=f^E)|0,e=UI(i,e,17)^Q,D=UI(e,c=(s=Q>>>0<i>>>0?c+1|0:c)^f,13),p=f,B=UI(B,r,16),i=_^f,_=B^t,a=UI(a,E,32),t=c,c=f+i|0,t=1+(a=t+(E=(B=_+a|0)>>>0<a>>>0?c+1|0:c)|0)|0,c=a,c=(a=B+e|0)>>>0<B>>>0?t:c,D=UI(t=a^D,r=c^p,17),p=f,i=UI(_,i,21),E^=f,k=B^i,Q=UI(Q,s,32),i=f+E|0,Q=r+(s=(B=k+Q|0)>>>0<Q>>>0?i+1|0:i)|0,i=(_=B+t|0)^D,Q=(e=_>>>0<B>>>0?Q+1|0:Q)^p,E=UI(k,E,16),r=t=s^f,E=UI(B^=E,t,21),s=f,t=(B=(a=UI(a,c,32))+B|0)^E,c=f+r|0,r=(E=B>>>0<a>>>0?c+1|0:c)^s,c=UI(_,e,32),_=f,a=B^w,E^=n,(0|h)!=(0|(I=I+8|0)););switch(g<<=24,B=0,y-1|0){case 6:g|=o[I+6|0]<<16;case 5:g|=o[I+5|0]<<8;case 4:g|=o[I+4|0];case 3:e=(B=o[I+3|0])>>>8|0,B<<=24,g|=e;case 2:B|=(e=o[I+2|0])<<16,g|=y=e>>>16|0;case 1:B|=(e=o[I+1|0])<<8,g|=y=e>>>24|0;case 0:B=o[0|I]|B}return r=UI(I=B^t,t=g^r,16),_=_+t|0,c=(I=I+c|0)>>>0<c>>>0?_+1|0:_,r=UI(_=I^r,t=c^f,21),e=f,s=1+(E=Q+E|0)|0,y=E,y=a=a>>>0>(E=i+a|0)>>>0?s:y,h=UI(E,a,32),t=f+t|0,e=UI(_=r^(a=_+h|0),r=e^(t=a>>>0<h>>>0?t+1|0:t),16),h=f,Q=UI(i,Q,13)^E,i=(i=c)+(c=f^y)|0,y=UI(I=I+Q|0,E=I>>>0<Q>>>0?i+1|0:i,32),r=f+r|0,y=UI(_=e^(i=_+y|0),e=(r=i>>>0<y>>>0?r+1|0:r)^h,21),h=f,I=a+(Q=c=UI(Q,c,17)^I)|0,a=(E^=f)+t|0,t=Q=I>>>0<Q>>>0?a+1|0:a,s=y,a=_+(y=UI(I,Q,32))|0,_=f+e|0,y=UI(Q=s^a,e=(_=a>>>0<y>>>0?_+1|0:_)^h,16),h=f,s=i,E=UI(c,E,13)^I,c=(t^=f)+r|0,r=i=(I=s+(i=E)|0)>>>0<i>>>0?c+1|0:c,i=UI(I,i,32),c=e+f|0,e=(s=Q)>>>0>(Q=Q+(255^i)|0)>>>0?c+1|0:c,y=UI(c=Q^y,i=h^e,21),h=f,E=UI(E,t,17)^I,g=(t=r^f)+(g^_)|0,_=g=(I=E+(B^=a)|0)>>>0<B>>>0?g+1|0:g,g=UI(I,g,32),B=i+f|0,c=UI(a=(g=g+c|0)^y,B=(i=g>>>0<c>>>0?B+1|0:B)^h,16),r=f,E=UI(E,t,13)^I,t=e+(_^=f)|0,t=Q=(I=Q+E|0)>>>0<Q>>>0?t+1|0:t,Q=UI(I,Q,32),y=r,s=1+(B=B+f|0)|0,r=B,r=(B=Q+a|0)>>>0<a>>>0?s:r,c=UI(a=B^c,Q=y^r,21),e=f,E=UI(E,_,17),s=1+(i=i+(_=t^f)|0)|0,t=i,E=I=(y=g)>>>0>(g=g+(i=I^E)|0)>>>0?s:t,I=UI(g,I,32),Q=Q+f|0,t=(I=I+a|0)>>>0<a>>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,i=UI(i,_,13),_=r+(E^=f)|0,_=g=(r=B)>>>0>(B=B+(i^=g)|0)>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,r=(g=g+a|0)>>>0<a>>>0?Q+1|0:Q,c=UI(a=g^c,Q=r^e,21),e=f,i=UI(i,E,17),y=1+(_=t+(E=_^f)|0)|0,t=_,I=UI(B=I+(_=B^i)|0,i=B>>>0<I>>>0?y:t,32),Q=Q+f|0,t=(I=I+a|0)>>>0<a>>>0?Q+1|0:Q,c=UI(a=I^c,Q=t^e,16),e=f,E=UI(_,E,13),_=r+(i^=f)|0,_=g=(B=g+(E^=B)|0)>>>0<g>>>0?_+1|0:_,g=UI(B,g,32),Q=Q+f|0,a=UI((g=g+a|0)^c,(Q=g>>>0<a>>>0?Q+1|0:Q)^e,21),c=f,B=UI(E,i,17)^B,E=UI(B,i=_^f,13),i=i+t|0,I=f^(I>>>0>(B=I+B|0)>>>0?i+1:i),a=UI(B^=E,I,17)^a,i=f^c,_=1+(I=I+Q|0)|0,Q=I,I=UI(I=g+B|0,g=g>>>0>I>>>0?_:Q,32)^a^I,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,I=g^f^i,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0}function $(A,I){var g,C,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0;s=g=s-624|0,R(a=g+480|0,I),b(a,1632,a),c=i[g+516>>2],i[g+276>>2]=c,t=i[g+512>>2],i[g+272>>2]=t,r=i[g+508>>2],i[g+268>>2]=r,e=i[g+504>>2],i[g+264>>2]=e,y=i[g+500>>2],i[g+260>>2]=y,h=i[g+496>>2],i[g+256>>2]=h,D=i[g+492>>2],i[g+252>>2]=D,f=i[g+488>>2],i[g+248>>2]=f,p=i[g+484>>2],i[g+244>>2]=p,n=i[g+480>>2],i[g+240>>2]=n+1,b(_=g+240|0,_,33968),i[g+468>>2]=c-12055116,i[g+464>>2]=t-18696448,i[g+460>>2]=r-3247719,i[g+456>>2]=e-6275908,i[g+452>>2]=y-8787816,i[g+448>>2]=h+114729,i[g+444>>2]=D+6949391,i[g+440>>2]=f-15372611,i[g+436>>2]=p+13857413,i[g+432>>2]=n-10913610,b(w=g+192|0,a,1584),i[g+228>>2]=0-i[g+228>>2],i[g+224>>2]=0-i[g+224>>2],i[g+220>>2]=0-i[g+220>>2],i[g+216>>2]=0-i[g+216>>2],i[g+212>>2]=0-i[g+212>>2],i[g+208>>2]=0-i[g+208>>2],i[g+204>>2]=0-i[g+204>>2],i[g+200>>2]=0-i[g+200>>2],i[g+196>>2]=0-i[g+196>>2],i[g+192>>2]=~i[g+192>>2],b(w,w,g+432|0),a=GA(C=g+384|0,_,w),b(_=g+336|0,C,I),QI(B=g+576|0,_),E=o[g+576|0],Y=i[g+420>>2],_=i[g+372>>2],J=i[g+416>>2],k=i[g+368>>2],d=i[g+412>>2],F=i[g+364>>2],m=i[g+408>>2],S=i[g+360>>2],l=i[g+404>>2],N=i[g+356>>2],u=i[g+400>>2],G=i[g+352>>2],x=i[g+396>>2],M=i[g+348>>2],v=i[g+392>>2],K=i[g+344>>2],L=i[g+388>>2],U=i[g+340>>2],Q=i[g+384>>2],H=i[g+336>>2],I=a-1|0,i[g+612>>2]=I&c,i[g+608>>2]=I&t,i[g+604>>2]=I&r,i[g+600>>2]=I&e,i[g+596>>2]=I&y,i[g+592>>2]=I&h,i[g+588>>2]=I&D,i[g+584>>2]=I&f,i[g+580>>2]=I&p,i[g+576>>2]=n|0-a,H=I&(0-(H^(a=0-(1&E)|0)&(H^0-H))^Q)^Q,i[g+384>>2]=H,U=L^I&(L^0-(U^a&(U^0-U))),i[g+388>>2]=U,K=v^I&(v^0-(K^a&(K^0-K))),i[g+392>>2]=K,M=x^I&(x^0-(M^a&(M^0-M))),i[g+396>>2]=M,G=u^I&(u^0-(G^a&(G^0-G))),i[g+400>>2]=G,N=l^I&(l^0-(N^a&(N^0-N))),i[g+404>>2]=N,S=m^I&(m^0-(S^a&(S^0-S))),i[g+408>>2]=S,F=d^I&(d^0-(F^a&(F^0-F))),i[g+412>>2]=F,k=J^I&(J^0-(k^a&(k^0-k))),i[g+416>>2]=k,a=Y^I&(Y^0-(_^a&(_^0-_))),i[g+420>>2]=a,i[g+564>>2]=c,i[g+560>>2]=t,i[g+556>>2]=r,i[g+552>>2]=e,i[g+548>>2]=y,i[g+544>>2]=h,i[g+540>>2]=D,i[g+536>>2]=f,i[g+532>>2]=p,i[g+528>>2]=n-1,b(I=g+528|0,I,B),b(I,I,34016),c=i[g+192>>2],t=i[g+528>>2],r=i[g+196>>2],e=i[g+532>>2],y=i[g+200>>2],h=i[g+536>>2],D=i[g+204>>2],f=i[g+540>>2],p=i[g+208>>2],n=i[g+544>>2],_=i[g+212>>2],Y=i[g+548>>2],J=i[g+216>>2],d=i[g+552>>2],m=i[g+220>>2],l=i[g+556>>2],u=i[g+224>>2],x=i[g+560>>2],v=i[g+228>>2],L=i[g+564>>2],i[g+180>>2]=a<<1,i[g+176>>2]=k<<1,i[g+172>>2]=F<<1,i[g+168>>2]=S<<1,i[g+164>>2]=N<<1,i[g+160>>2]=G<<1,i[g+156>>2]=M<<1,i[g+152>>2]=K<<1,i[g+148>>2]=U<<1,i[g+144>>2]=H<<1,i[g+564>>2]=L-v,i[g+560>>2]=x-u,i[g+556>>2]=l-m,i[g+552>>2]=d-J,i[g+548>>2]=Y-_,i[g+544>>2]=n-p,i[g+540>>2]=f-D,i[g+536>>2]=h-y,i[g+532>>2]=e-r,i[g+528>>2]=t-c,b(a=g+144|0,a,w),b(w=g+96|0,I,34064),R(g+288|0,C),I=i[g+324>>2],i[g+84>>2]=0-I,c=i[g+320>>2],i[g+80>>2]=0-c,t=i[g+316>>2],i[g+76>>2]=0-t,r=i[g+312>>2],i[g+72>>2]=0-r,e=i[g+308>>2],i[g+68>>2]=0-e,y=i[g+304>>2],i[g+64>>2]=0-y,h=i[g+300>>2],i[g+60>>2]=0-h,D=i[g+296>>2],i[g+56>>2]=0-D,f=i[g+292>>2],i[g+52>>2]=0-f,p=i[g+288>>2],i[g+48>>2]=1-p,i[g+36>>2]=I,i[g+32>>2]=c,i[g+28>>2]=t,i[g+24>>2]=r,i[g+20>>2]=e,i[g+16>>2]=y,i[g+12>>2]=h,i[g+8>>2]=D,i[g+4>>2]=f,i[g>>2]=p+1,b(A,a,g),b(A+40|0,I=g+48|0,w),b(A+80|0,w,g),b(A+120|0,a,I),s=g+624|0}function AA(A,I,g){var B,E=0,a=0,_=0,c=0,t=0;s=B=s+-64|0;A:{if((g-65&255)>>>0>191){if(a=-1,!(o[A+80|0]|o[A+81|0]<<8|o[A+82|0]<<16|o[A+83|0]<<24|o[A+84|0]|o[A+85|0]<<8|o[A+86|0]<<16|o[A+87|0]<<24)){if((_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)>>>0>=129){if(c=E=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,E=(_=128+(a=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?E+1|0:E,C[A+64|0]=_,C[A+65|0]=_>>>8,C[A+66|0]=_>>>16,C[A+67|0]=_>>>24,C[A+68|0]=E,C[A+69|0]=E>>>8,C[A+70|0]=E>>>16,C[A+71|0]=E>>>24,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a=-1==(0|c)&a>>>0>4294967167)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,p(A,E=A+96|0),a=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=a,C[A+353|0]=a>>>8,C[A+354|0]=a>>>16,C[A+355|0]=a>>>24,a>>>0>=129)break A;Ng(E,A+224|0,a),_=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24}a=t=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,a=(c=_+(E=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<_>>>0?a+1|0:a,C[A+64|0]=c,C[A+65|0]=c>>>8,C[A+66|0]=c>>>16,C[A+67|0]=c>>>24,C[A+68|0]=a,C[A+69|0]=a>>>8,C[A+70|0]=a>>>16,C[A+71|0]=a>>>24,a=(0|a)==(0|t)&E>>>0>c>>>0|a>>>0<t>>>0,E=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,E=(t=a)>>>0>(a=a+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?E+1|0:E,C[A+72|0]=a,C[A+73|0]=a>>>8,C[A+74|0]=a>>>16,C[A+75|0]=a>>>24,C[A+76|0]=E,C[A+77|0]=E>>>8,C[A+78|0]=E>>>16,C[A+79|0]=E>>>24,o[A+356|0]&&(C[A+88|0]=255,C[A+89|0]=255,C[A+90|0]=255,C[A+91|0]=255,C[A+92|0]=255,C[A+93|0]=255,C[A+94|0]=255,C[A+95|0]=255),C[A+80|0]=255,C[A+81|0]=255,C[A+82|0]=255,C[A+83|0]=255,C[A+84|0]=255,C[A+85|0]=255,C[A+86|0]=255,C[A+87|0]=255,bg((a=A+96|0)+_|0,0,256-_|0),p(A,a),E=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[B+4>>2]=E,E=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[B+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[B+12>>2]=E,E=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[B+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[B+20>>2]=E,E=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[B+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[B+28>>2]=E,E=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[B+32>>2]=o[A+32|0]|o[A+33|0]<<8|o[A+34|0]<<16|o[A+35|0]<<24,i[B+36>>2]=E,E=o[A+44|0]|o[A+45|0]<<8|o[A+46|0]<<16|o[A+47|0]<<24,i[B+40>>2]=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[B+44>>2]=E,E=o[A+52|0]|o[A+53|0]<<8|o[A+54|0]<<16|o[A+55|0]<<24,i[B+48>>2]=o[A+48|0]|o[A+49|0]<<8|o[A+50|0]<<16|o[A+51|0]<<24,i[B+52>>2]=E,E=o[A+60|0]|o[A+61|0]<<8|o[A+62|0]<<16|o[A+63|0]<<24,i[B+56>>2]=o[A+56|0]|o[A+57|0]<<8|o[A+58|0]<<16|o[A+59|0]<<24,i[B+60>>2]=E,Ng(I,B,g),XC(A,64),XC(a,256),a=0}return s=B- -64|0,a}rC(),Q()}r(1386,1234,306,1142),Q()}function IA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0,_=0;s=B=s-192|0,i[B+144>>2]=0,i[B+148>>2]=0,i[B+152>>2]=0,i[B+156>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=i[8799],i[B+168>>2]=i[8798],i[B+172>>2]=a,a=i[8801],i[B+176>>2]=i[8800],i[B+180>>2]=a,a=i[8803],i[B+184>>2]=i[8802],i[B+188>>2]=a,i[B+128>>2]=0,i[B+132>>2]=0,i[B+136>>2]=0,i[B+140>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,a=i[8797],i[B+160>>2]=i[8796],i[B+164>>2]=a,a=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+80>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+84>>2]=a,a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+88>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+92>>2]=a,a=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B+64>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+68>>2]=a,a=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+72>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+76>>2]=a,Eg(g=B+128|0,a=B- -64|0),S(g),_=i[B+156>>2],i[B+24>>2]=i[B+152>>2],i[B+28>>2]=_,_=i[B+148>>2],i[B+16>>2]=i[B+144>>2],i[B+20>>2]=_,_=i[B+140>>2],i[B+8>>2]=i[B+136>>2],i[B+12>>2]=_,_=i[B+132>>2],i[B>>2]=i[B+128>>2],i[B+4>>2]=_,i[B+120>>2]=0,i[B+124>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+96>>2]=0,i[B+100>>2]=0,_=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=_,_=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=_,_=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,Q=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,E=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+56>>2]=0,i[B+60>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+40>>2]=0,i[B+44>>2]=0,i[B+64>>2]=E,i[B+68>>2]=I,i[B+72>>2]=_,i[B+76>>2]=Q,i[B+32>>2]=0,i[B+36>>2]=0,og(a,B),I=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=I,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(g),I=i[B+156>>2],a=i[B+152>>2],C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[B+148>>2],a=i[B+144>>2],C[A+16|0]=a,C[A+17|0]=a>>>8,C[A+18|0]=a>>>16,C[A+19|0]=a>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[B+140>>2],a=i[B+136>>2],C[A+8|0]=a,C[A+9|0]=a>>>8,C[A+10|0]=a>>>16,C[A+11|0]=a>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[B+132>>2],a=i[B+128>>2],C[0|A]=a,C[A+1|0]=a>>>8,C[A+2|0]=a>>>16,C[A+3|0]=a>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=B+192|0}function gA(A){var I,g,B,Q,o,E,_,c,t,r,e=0,y=0,h=0,D=0,f=0;for(s=I=s-2048|0,$A(D=I+640|0,A),e=i[A+36>>2],i[I+352>>2]=i[A+32>>2],i[I+356>>2]=e,e=i[A+28>>2],i[I+344>>2]=i[A+24>>2],i[I+348>>2]=e,e=i[A+20>>2],i[I+336>>2]=i[A+16>>2],i[I+340>>2]=e,e=i[A+12>>2],i[I+328>>2]=i[A+8>>2],i[I+332>>2]=e,e=i[A+4>>2],i[I+320>>2]=i[A>>2],i[I+324>>2]=e,e=i[A+52>>2],i[I+368>>2]=i[A+48>>2],i[I+372>>2]=e,e=i[A+60>>2],i[I+376>>2]=i[A+56>>2],i[I+380>>2]=e,e=i[4+(h=A- -64|0)>>2],i[I+384>>2]=i[h>>2],i[I+388>>2]=e,e=i[A+76>>2],i[I+392>>2]=i[A+72>>2],i[I+396>>2]=e,e=i[A+44>>2],i[I+360>>2]=i[A+40>>2],i[I+364>>2]=e,e=i[A+92>>2],i[I+408>>2]=i[A+88>>2],i[I+412>>2]=e,e=i[A+100>>2],i[I+416>>2]=i[A+96>>2],i[I+420>>2]=e,e=i[A+108>>2],i[I+424>>2]=i[A+104>>2],i[I+428>>2]=e,e=i[A+116>>2],i[I+432>>2]=i[A+112>>2],i[I+436>>2]=e,e=i[A+84>>2],i[I+400>>2]=i[A+80>>2],i[I+404>>2]=e,KA(y=I+480|0,h=I+320|0),b(e=I+160|0,y,g=I+600|0),b(I+200|0,B=I+520|0,Q=I+560|0),b(I+240|0,Q,g),b(I+280|0,y,B),sA(y,e,D),b(h,y,g),b(_=I+360|0,B,Q),b(c=I+400|0,Q,g),b(t=I+440|0,y,B),$A(A=I+800|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+960|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1120|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1280|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1440|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(A=I+1600|0,h),sA(y,e,A),b(h,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),$A(I+1760|0,h),i[I+32>>2]=0,i[I+36>>2]=0,i[I+24>>2]=0,i[I+28>>2]=0,i[I+16>>2]=0,i[I+20>>2]=0,i[I+8>>2]=0,i[I+12>>2]=0,i[I+52>>2]=0,i[I+56>>2]=0,i[I+60>>2]=0,i[I+64>>2]=0,i[I+68>>2]=0,i[I+72>>2]=0,i[I+76>>2]=0,i[I+80>>2]=1,i[I>>2]=0,i[I+4>>2]=0,i[I+44>>2]=0,i[I+48>>2]=0,i[I+40>>2]=1,bg(I+84|0,0,76),r=I+120|0,o=I+2008|0,E=I+1968|0,D=I+80|0,h=I+40|0,A=252;e=i[I+36>>2],i[(y=I+1960|0)>>2]=i[I+32>>2],i[y+4>>2]=e,e=i[I+28>>2],i[(y=I+1952|0)>>2]=i[I+24>>2],i[y+4>>2]=e,e=i[I+20>>2],i[(y=I+1944|0)>>2]=i[I+16>>2],i[y+4>>2]=e,e=i[I+12>>2],i[(y=I+1936|0)>>2]=i[I+8>>2],i[y+4>>2]=e,e=i[I+4>>2],i[I+1928>>2]=i[I>>2],i[I+1932>>2]=e,e=i[h+36>>2],i[E+32>>2]=i[h+32>>2],i[E+36>>2]=e,e=i[h+28>>2],i[E+24>>2]=i[h+24>>2],i[E+28>>2]=e,e=i[h+20>>2],i[E+16>>2]=i[h+16>>2],i[E+20>>2]=e,e=i[h+12>>2],i[E+8>>2]=i[h+8>>2],i[E+12>>2]=e,e=i[h+4>>2],i[E>>2]=i[h>>2],i[E+4>>2]=e,e=i[D+36>>2],i[o+32>>2]=i[D+32>>2],i[o+36>>2]=e,e=i[D+28>>2],i[o+24>>2]=i[D+24>>2],i[o+28>>2]=e,e=i[D+20>>2],i[o+16>>2]=i[D+16>>2],i[o+20>>2]=e,e=i[D+12>>2],i[o+8>>2]=i[D+8>>2],i[o+12>>2]=e,e=i[D+4>>2],i[o>>2]=i[D>>2],i[o+4>>2]=e,e=A,f=C[A+33712|0],KA(y=I+480|0,I+1928|0),(0|f)>0?(b(A=I+320|0,y,g),b(_,B,Q),b(c,Q,g),b(t,y,B),sA(y,A,(I+640|0)+a((254&f)>>>1|0,160)|0)):(0|f)>=0||(b(A=I+320|0,y=I+480|0,g),b(_,B,Q),b(c,Q,g),b(t,y,B),hA(y,A,(I+640|0)+a((0-f&254)>>>1|0,160)|0)),b(I,A=I+480|0,g),b(h,B,Q),b(D,Q,g),b(r,A,B),A=e-1|0,e;);return QI(A=I+640|0,I),A=GI(A,32),s=I+2048|0,A}function CA(A,I,g,B,Q){var i,E,a,_,c,t,r,e,y,s,h,D,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0;if(B?(d=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,l=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,m=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,u=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24):(d=1797285236,m=1634760805,l=2036477234,u=857760878),B=i=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,N=E=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,U=a=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,w=d,S=_=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,G=l,b=c=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,M=t=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,n=r=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,I=e=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,K=u,f=y=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,p=s=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,k=h=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,g=D=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,F=m,(0|Q)>0)for(;H=Lg(g+K|0,7)^b,x=Lg(H+K|0,9)^N,Y=Lg(B+F|0,7)^f,v=Lg(Y+F|0,9)^M,R=Lg(Y+v|0,13)^B,J=Lg(w+S|0,7)^p,n=Lg(J+w|0,9)^n,p=Lg(n+J|0,13)^S,w=Lg(n+p|0,18)^w,f=Lg(I+G|0,7)^U,B=R^Lg(w+f|0,7),N=Lg(B+w|0,9)^x,U=Lg(B+N|0,13)^f,w=Lg(N+U|0,18)^w,k=Lg(f+G|0,9)^k,f=Lg(k+f|0,13)^I,I=Lg(f+k|0,18)^G,S=Lg(I+H|0,7)^p,M=Lg(S+I|0,9)^v,b=Lg(S+M|0,13)^H,G=Lg(M+b|0,18)^I,g=Lg(H+x|0,13)^g,p=Lg(g+x|0,18)^K,I=Lg(p+Y|0,7)^f,n=Lg(I+p|0,9)^n,f=Lg(I+n|0,13)^Y,K=Lg(n+f|0,18)^p,F=Lg(v+R|0,18)^F,g=Lg(F+J|0,7)^g,k=Lg(g+F|0,9)^k,p=Lg(g+k|0,13)^J,F=Lg(k+p|0,18)^F,(0|(L=L+2|0))<(0|Q););Q=w+d|0,C[A+60|0]=Q,C[A+61|0]=Q>>>8,C[A+62|0]=Q>>>16,C[A+63|0]=Q>>>24,Q=U+a|0,C[A+56|0]=Q,C[A+57|0]=Q>>>8,C[A+58|0]=Q>>>16,C[A+59|0]=Q>>>24,Q=N+E|0,C[A+52|0]=Q,C[A+53|0]=Q>>>8,C[A+54|0]=Q>>>16,C[A+55|0]=Q>>>24,B=B+i|0,C[A+48|0]=B,C[A+49|0]=B>>>8,C[A+50|0]=B>>>16,C[A+51|0]=B>>>24,B=S+_|0,C[A+44|0]=B,C[A+45|0]=B>>>8,C[A+46|0]=B>>>16,C[A+47|0]=B>>>24,B=G+l|0,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,B=b+c|0,C[A+36|0]=B,C[A+37|0]=B>>>8,C[A+38|0]=B>>>16,C[A+39|0]=B>>>24,B=M+t|0,C[A+32|0]=B,C[A+33|0]=B>>>8,C[A+34|0]=B>>>16,C[A+35|0]=B>>>24,B=n+r|0,C[A+28|0]=B,C[A+29|0]=B>>>8,C[A+30|0]=B>>>16,C[A+31|0]=B>>>24,I=I+e|0,C[A+24|0]=I,C[A+25|0]=I>>>8,C[A+26|0]=I>>>16,C[A+27|0]=I>>>24,I=K+u|0,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=f+y|0,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,I=p+s|0,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=k+h|0,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g+D|0,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=F+m|0,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24}function BA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,a=0,c=0,t=0;A:if(A|=0){Q=(C=A-8|0)+(A=-8&(I=i[A-4>>2]))|0;I:if(!(1&I)){if(!(2&I))break A;if((C=C-(I=i[C>>2])|0)>>>0<E[9409])break A;A=A+I|0;g:{C:{B:{if(i[9410]!=(0|C)){if(g=i[C+12>>2],I>>>0<=255){if((0|(B=i[C+8>>2]))!=(0|g))break B;c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break I}if(a=i[C+24>>2],(0|g)!=(0|C)){I=i[C+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break g}if(B=i[C+20>>2])I=C+20|0;else{if(!(B=i[C+16>>2]))break C;I=C+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break g}if(3&~(I=i[Q+4>>2]))break I;return i[9407]=A,i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,void(i[Q>>2]=A)}i[B+12>>2]=g,i[g+8>>2]=B;break I}g=0}if(a){I=i[C+28>>2];g:{if(i[(B=37924+(I<<2)|0)>>2]==(0|C)){if(i[B>>2]=g,g)break g;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break I}if(i[a+(i[a+16>>2]==(0|C)?16:20)>>2]=g,!g)break I}i[g+24>>2]=a,(I=i[C+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[C+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(!(C>>>0>=Q>>>0)&&1&(I=i[Q+4>>2])){I:{g:{C:{B:{if(!(2&I)){if((0|Q)==i[9411]){if(i[9411]=C,A=i[9408]+A|0,i[9408]=A,i[C+4>>2]=1|A,i[9410]!=(0|C))break A;return i[9407]=0,void(i[9410]=0)}if((0|Q)==i[9410])return i[9410]=C,A=i[9407]+A|0,i[9407]=A,i[C+4>>2]=1|A,void(i[A+C>>2]=A);if(A=(-8&I)+A|0,g=i[Q+12>>2],I>>>0<=255){if((0|(B=i[Q+8>>2]))==(0|g)){c=37620,t=i[9405]&Lg(-2,I>>>3|0),i[c>>2]=t;break g}i[B+12>>2]=g,i[g+8>>2]=B;break g}if(a=i[Q+24>>2],(0|g)!=(0|Q)){I=i[Q+8>>2],i[I+12>>2]=g,i[g+8>>2]=I;break C}if(B=i[Q+20>>2])I=Q+20|0;else{if(!(B=i[Q+16>>2]))break B;I=Q+16|0}for(;o=I,I=(g=B)+20|0,(B=i[g+20>>2])||(I=g+16|0,B=i[g+16>>2]););i[o>>2]=0;break C}i[Q+4>>2]=-2&I,i[C+4>>2]=1|A,i[A+C>>2]=A;break I}g=0}if(a){I=i[Q+28>>2];C:{if((0|Q)==i[(B=37924+(I<<2)|0)>>2]){if(i[B>>2]=g,g)break C;c=37624,t=i[9406]&Lg(-2,I),i[c>>2]=t;break g}if(i[a+((0|Q)==i[a+16>>2]?16:20)>>2]=g,!g)break g}i[g+24>>2]=a,(I=i[Q+16>>2])&&(i[g+16>>2]=I,i[I+24>>2]=g),(I=i[Q+20>>2])&&(i[g+20>>2]=I,i[I+24>>2]=g)}}if(i[C+4>>2]=1|A,i[A+C>>2]=A,i[9410]==(0|C))return void(i[9407]=A)}if(A>>>0<=255)return I=37660+(-8&A)|0,(B=i[9405])&(A=1<<(A>>>3))?A=i[I+8>>2]:(i[9405]=A|B,A=I),i[I+8>>2]=C,i[A+12>>2]=C,i[C+12>>2]=I,void(i[C+8>>2]=A);g=31,A>>>0<=16777215&&(g=62+((A>>>38-(I=_(A>>>8|0))&1)-(I<<1)|0)|0),i[C+28>>2]=g,i[C+16>>2]=0,i[C+20>>2]=0,o=37924+(g<<2)|0;I:{g:{if((I=i[9406])&(B=1<<g)){for(g=A<<(31!=(0|g)?25-(g>>>1|0):0),I=i[o>>2];;){if(B=I,(-8&i[I+4>>2])==(0|A))break g;if(I=g>>>29|0,g<<=1,!(I=i[(o=16+((4&I)+B|0)|0)>>2]))break}g=24,I=B}else i[9406]=I|B,g=24,I=o;B=C,Q=C,A=8;break I}I=i[B+8>>2],i[I+12>>2]=C,g=8,o=B+8|0,Q=0,A=24}i[o>>2]=C,i[g+C>>2]=I,i[C+12>>2]=B,i[A+C>>2]=Q,A=i[9413]-1|0,i[9413]=A||-1}}}function QA(A,I,g,C,B,E,a,_,c){var t=0,r=0,e=0,y=0,h=0,D=0,f=0,w=0;if(I-65>>>0<4294967232|a>>>0>64)A=-1;else{w=t=s,s=t=t-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((D=255&I)-65&255)>>>0<=191|!(!(I=255&a)||E)|I>>>0>=65)){if(I){if(!E)break I;_?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),a=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24),_=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24)):(r=725511199,e=-1694144372,a=-1377402159,_=1359893119),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),f=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24),c=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24)):(y=327033209,h=1541459225,f=-79577749,c=528734635),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=f,i[t+52>>2]=c,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=a,i[t+36>>2]=_,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^(I<<8|D),i[t+4>>2]=I>>>24^1779033703,bg((a=t+384|0)+I|0,0,128-I|0),Ng(a,E,I),Ng(t+96|0,a,128),i[t+352>>2]=128,XC(a,128),I=128}else _?(r=725511199^(o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24),e=-1694144372^(o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24),E=1359893119^(o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24),I=-1377402159^(o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24)):(r=725511199,e=-1694144372,E=1359893119,I=-1377402159),c?(y=327033209^(o[c+8|0]|o[c+9|0]<<8|o[c+10|0]<<16|o[c+11|0]<<24),h=1541459225^(o[c+12|0]|o[c+13|0]<<8|o[c+14|0]<<16|o[c+15|0]<<24),_=528734635^(o[c+4|0]|o[c+5|0]<<8|o[c+6|0]<<16|o[c+7|0]<<24),a=-79577749^(o[0|c]|o[c+1|0]<<8|o[c+2|0]<<16|o[c+3|0]<<24)):(y=327033209,h=1541459225,_=528734635,a=-79577749),bg(t- -64|0,0,293),i[t+56>>2]=y,i[t+60>>2]=h,i[t+48>>2]=a,i[t+52>>2]=_,i[t+40>>2]=r,i[t+44>>2]=e,i[t+32>>2]=I,i[t+36>>2]=E,i[t+24>>2]=1595750129,i[t+28>>2]=-1521486534,i[t+16>>2]=-23791573,i[t+20>>2]=1013904242,i[t+8>>2]=-2067093701,i[t+12>>2]=-1150833019,i[t>>2]=-222443256^D,i[t+4>>2]=1779033703,I=0;g:if(C|B)for(c=t+224|0,_=t+96|0;;){if(a=I+_|0,!B&C>>>0<=(E=256-I|0)>>>0){Ng(a,g,C),i[t+352>>2]=C+i[t+352>>2];break g}if(Ng(a,g,E),i[t+352>>2]=E+i[t+352>>2],r=I=i[t+68>>2],I=(e=(a=i[t+64>>2])+128|0)>>>0<128?I+1|0:I,i[t+64>>2]=e,i[t+68>>2]=I,I=i[t+76>>2],I=(r=a=-1==(0|r)&a>>>0>4294967167)>>>0>(a=a+i[t+72>>2]|0)>>>0?I+1|0:I,i[t+72>>2]=a,i[t+76>>2]=I,p(t,_),Ng(_,c,128),I=i[t+352>>2]-128|0,i[t+352>>2]=I,g=g+E|0,!((B=B-(C>>>0<E>>>0)|0)|(C=C-E|0)))break}AA(t,A,D),s=w;break A}rC(),Q()}A=0}return A}function iA(A,I,g,B,Q,E,_){var c,t,r=0,e=0,y=0;if(s=c=s+-64|0,t=K(32)){i[c+36>>2]=0,i[c+40>>2]=0,i[c+28>>2]=0,i[c+32>>2]=0,i[c+24>>2]=16,i[c+20>>2]=Q,i[c+16>>2]=B,i[c+12>>2]=g,i[c+8>>2]=32,i[c+4>>2]=t,i[c+60>>2]=0,i[c+56>>2]=1,i[c+52>>2]=1,i[c+48>>2]=I,i[c+44>>2]=A;A:if(A=q(c+4|0,_))XC(t,32);else{if(E){r=c+4|0,s=Q=s-32|0,A=-31;I:{g:{C:switch(_-1|0){case 1:A=o[1434]|o[1435]<<8|o[1436]<<16|o[1437]<<24,I=o[1430]|o[1431]<<8|o[1432]<<16|o[1433]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1439]|o[1440]<<8|o[1441]<<16|o[1442]<<24,I=o[1435]|o[1436]<<8|o[1437]<<16|o[1438]<<24,C[E+5|0]=I,C[E+6|0]=I>>>8,C[E+7|0]=I>>>16,C[E+8|0]=I>>>24,C[E+9|0]=A,C[E+10|0]=A>>>8,C[E+11|0]=A>>>16,C[E+12|0]=A>>>24,g=-12,I=12;break g;case 0:break C;default:break I}A=o[1422]|o[1423]<<8|o[1424]<<16|o[1425]<<24,I=o[1418]|o[1419]<<8|o[1420]<<16|o[1421]<<24,C[0|E]=I,C[E+1|0]=I>>>8,C[E+2|0]=I>>>16,C[E+3|0]=I>>>24,C[E+4|0]=A,C[E+5|0]=A>>>8,C[E+6|0]=A>>>16,C[E+7|0]=A>>>24,A=o[1426]|o[1427]<<8|o[1428]<<16|o[1429]<<24,C[E+8|0]=A,C[E+9|0]=A>>>8,C[E+10|0]=A>>>16,C[E+11|0]=A>>>24,g=-11,I=11}if(!(A=nI(r)))if(C[Q+13|0]=0,C[Q+11|0]=49,C[Q+12|0]=57,(g=g+128|0)>>>0<=(A=RI(Q+11|0))>>>0)A=-31;else if(I=Ng(I+E|0,Q+11|0,A+1|0),(e=g-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+I|0)]=36,C[_+1|0]=109,C[_+2|0]=61,C[_+3|0]=0,A=i[r+44>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=116,C[_+2|0]=61,C[_+3|0]=0,A=i[r+40>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););if(Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0)A=-31;else if(g=Ng(_+3|0,Q+11|0,A+1|0),(e=I-A|0)>>>0<4)A=-31;else{for(C[0|(_=A+g|0)]=44,C[_+1|0]=112,C[_+2|0]=61,C[_+3|0]=0,A=i[r+48>>2],I=10;g=I,B=(A>>>0)/10|0,C[0|(y=(I=I-1|0)+(Q+22|0)|0)]=A-a(B,10)|48,!(A>>>0<10)&&(A=B,I););Ng(A=Q+11|0,y,I=11-g|0),C[A+I|0]=0,(I=e-3|0)>>>0<=(A=RI(A))>>>0?A=-31:(g=Ng(_+3|0,Q+11|0,A+1|0),(B=I-A|0)>>>0<2?A=-31:(C[0|(A=A+g|0)]=36,C[A+1|0]=0,XA(I=A+1|0,g=B-1|0,i[r+16>>2],i[r+20>>2],3)?(A=-31,(B=(B=g)-(g=RI(I))|0)>>>0<2||(C[0|(A=I+g|0)]=36,C[A+1|0]=0,A=XA(A+1|0,B-1|0,i[r>>2],i[r+4>>2],3)?0:-31)):A=-31))}}}}if(s=Q+32|0,A){XC(t,32),XC(E,128),A=-31;break A}}XC(t,32),A=0}BA(t)}else A=-22;return s=c- -64|0,A}function oA(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,c=0;g=A+I|0;A:{I:if(!(1&(C=i[A+4>>2]))){if(!(2&C))break A;I=(C=i[A>>2])+I|0;g:{C:{B:{if((0|(A=A-C|0))!=i[9410]){if(B=i[A+12>>2],C>>>0<=255){if((0|(Q=i[A+8>>2]))!=(0|B))break B;a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break I}if(o=i[A+24>>2],(0|A)!=(0|B)){C=i[A+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break g}if(Q=i[A+20>>2])C=A+20|0;else{if(!(Q=i[A+16>>2]))break C;C=A+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break g}if(3&~(C=i[g+4>>2]))break I;return i[9407]=I,i[g+4>>2]=-2&C,i[A+4>>2]=1|I,void(i[g>>2]=I)}i[Q+12>>2]=B,i[B+8>>2]=Q;break I}B=0}if(o){C=i[A+28>>2];g:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|A)){if(i[Q>>2]=B,B)break g;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break I}if(i[o+(i[o+16>>2]==(0|A)?16:20)>>2]=B,!B)break I}i[B+24>>2]=o,(C=i[A+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[A+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}I:{g:{C:{B:{if(!(2&(C=i[g+4>>2]))){if(i[9411]==(0|g)){if(i[9411]=A,I=i[9408]+I|0,i[9408]=I,i[A+4>>2]=1|I,i[9410]!=(0|A))break A;return i[9407]=0,void(i[9410]=0)}if(i[9410]==(0|g))return i[9410]=A,I=i[9407]+I|0,i[9407]=I,i[A+4>>2]=1|I,void(i[A+I>>2]=I);if(I=(-8&C)+I|0,B=i[g+12>>2],C>>>0<=255){if((0|(Q=i[g+8>>2]))==(0|B)){a=37620,c=i[9405]&Lg(-2,C>>>3|0),i[a>>2]=c;break g}i[Q+12>>2]=B,i[B+8>>2]=Q;break g}if(o=i[g+24>>2],(0|B)!=(0|g)){C=i[g+8>>2],i[C+12>>2]=B,i[B+8>>2]=C;break C}if(Q=i[g+20>>2])C=g+20|0;else{if(!(Q=i[g+16>>2]))break B;C=g+16|0}for(;E=C,C=(B=Q)+20|0,(Q=i[B+20>>2])||(C=B+16|0,Q=i[B+16>>2]););i[E>>2]=0;break C}i[g+4>>2]=-2&C,i[A+4>>2]=1|I,i[A+I>>2]=I;break I}B=0}if(o){C=i[g+28>>2];C:{if(i[(Q=37924+(C<<2)|0)>>2]==(0|g)){if(i[Q>>2]=B,B)break C;a=37624,c=i[9406]&Lg(-2,C),i[a>>2]=c;break g}if(i[o+(i[o+16>>2]==(0|g)?16:20)>>2]=B,!B)break g}i[B+24>>2]=o,(C=i[g+16>>2])&&(i[B+16>>2]=C,i[C+24>>2]=B),(C=i[g+20>>2])&&(i[B+20>>2]=C,i[C+24>>2]=B)}}if(i[A+4>>2]=1|I,i[A+I>>2]=I,i[9410]==(0|A))return void(i[9407]=I)}if(I>>>0<=255)return C=37660+(-8&I)|0,(B=i[9405])&(I=1<<(I>>>3))?I=i[C+8>>2]:(i[9405]=I|B,I=C),i[C+8>>2]=A,i[I+12>>2]=A,i[A+12>>2]=C,void(i[A+8>>2]=I);B=31,I>>>0<=16777215&&(B=62+((I>>>38-(C=_(I>>>8|0))&1)-(C<<1)|0)|0),i[A+28>>2]=B,i[A+16>>2]=0,i[A+20>>2]=0,C=37924+(B<<2)|0;I:{if((Q=i[9406])&(E=1<<B)){for(B=I<<(31!=(0|B)?25-(B>>>1|0):0),C=i[C>>2];;){if(Q=C,(-8&i[C+4>>2])==(0|I))break I;if(C=B>>>29|0,B<<=1,!(C=i[16+(E=Q+(4&C)|0)>>2]))break}i[E+16>>2]=A,i[A+24>>2]=Q}else i[9406]=Q|E,i[C>>2]=A,i[A+24>>2]=C;return i[A+12>>2]=A,void(i[A+8>>2]=A)}I=i[Q+8>>2],i[I+12>>2]=A,i[Q+8>>2]=A,i[A+24>>2]=0,i[A+12>>2]=Q,i[A+8>>2]=I}}function EA(A,I){var g,B=0,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0;return s=g=s-512|0,B=-1,E=o[I+31|0],Q=o[0|I],1&(((255&(127&~E|~(o[I+1|0]&o[I+2|0]&o[I+3|0]&o[I+4|0]&o[I+5|0]&o[I+6|0]&o[I+7|0]&o[I+8|0]&o[I+9|0]&o[I+10|0]&o[I+11|0]&o[I+12|0]&o[I+13|0]&o[I+14|0]&o[I+15|0]&o[I+16|0]&o[I+17|0]&o[I+18|0]&o[I+19|0]&o[I+20|0]&o[I+21|0]&o[I+22|0]&o[I+23|0]&o[I+24|0]&o[I+25|0]&o[I+26|0]&o[I+27|0]&o[I+28|0]&o[I+29|0]&o[I+30|0])))-1&236-Q)>>>8|Q|E>>>7)||(fA(E=g+336|0,I),R(g+288|0,E),I=i[g+324>>2],i[g+276>>2]=0-I,B=i[g+320>>2],i[g+272>>2]=0-B,Q=i[g+316>>2],i[g+268>>2]=0-Q,a=i[g+312>>2],i[g+264>>2]=0-a,_=i[g+308>>2],i[g+260>>2]=0-_,c=i[g+304>>2],i[g+256>>2]=0-c,t=i[g+300>>2],i[g+252>>2]=0-t,r=i[g+296>>2],i[g+248>>2]=0-r,e=i[g+292>>2],i[g+244>>2]=0-e,y=i[g+288>>2],i[g+240>>2]=1-y,R(h=g+144|0,p=g+240|0),i[g+228>>2]=I,i[g+224>>2]=B,i[g+220>>2]=Q,i[g+216>>2]=a,i[g+212>>2]=_,i[g+208>>2]=c,i[g+204>>2]=t,i[g+200>>2]=r,i[g+196>>2]=e,i[g+192>>2]=y+1,R(B=g+96|0,a=g+192|0),b(I=g+48|0,1584,h),Q=i[g+96>>2],_=i[g+48>>2],c=i[g+100>>2],t=i[g+52>>2],r=i[g+104>>2],e=i[g+56>>2],y=i[g+108>>2],h=i[g+60>>2],D=i[g+112>>2],f=i[g+64>>2],w=i[g+116>>2],n=i[g+68>>2],k=i[g+120>>2],F=i[g+72>>2],S=i[g+124>>2],N=i[g+76>>2],G=i[g+128>>2],M=i[g+80>>2],i[g+84>>2]=0-(i[g+84>>2]+i[g+132>>2]|0),i[g+80>>2]=0-(G+M|0),i[g+76>>2]=0-(S+N|0),i[g+72>>2]=0-(k+F|0),i[g+68>>2]=0-(w+n|0),i[g+64>>2]=0-(D+f|0),i[g+60>>2]=0-(y+h|0),i[g+56>>2]=0-(r+e|0),i[g+52>>2]=0-(c+t|0),i[g+48>>2]=0-(Q+_|0),b(g,I,B),i[g+404>>2]=0,i[g+408>>2]=0,i[g+412>>2]=0,i[g+416>>2]=0,i[g+420>>2]=0,i[g+388>>2]=0,i[g+392>>2]=0,i[g+384>>2]=1,i[g+396>>2]=0,i[g+400>>2]=0,f=GA(Q=g+432|0,g+384|0,g),b(A,Q,a),b(B=A+40|0,Q,A),b(B,B,I),b(A,A,E),E=i[A+36>>2]<<1,i[A+36>>2]=E,Q=i[A+32>>2]<<1,i[A+32>>2]=Q,a=i[A+28>>2]<<1,i[A+28>>2]=a,_=i[A+24>>2]<<1,i[A+24>>2]=_,c=i[A+20>>2]<<1,i[A+20>>2]=c,t=i[A+16>>2]<<1,i[A+16>>2]=t,r=i[A+12>>2]<<1,i[A+12>>2]=r,e=i[A+8>>2]<<1,i[A+8>>2]=e,y=i[A+4>>2]<<1,i[A+4>>2]=y,h=i[A>>2]<<1,i[A>>2]=h,QI(D=g+480|0,A),I=0-(1&C[g+480|0])|0,i[A+36>>2]=E^I&(E^0-E),i[A+32>>2]=Q^I&(Q^0-Q),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=h^I&(h^0-h),b(B,p,B),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,b(I=A+120|0,A,B),QI(D,I),A=o[g+480|0],QI(D,B),B=0-(GI(D,32)|1-f|1&A)|0),s=g+512|0,B}function aA(A,I,g,B){var Q,o=0,E=0;Q=o=s,s=o=o-576&-64,i[o+188>>2]=I;A:if(I>>>0<=64){if((0|eA(E=o+192|0,0,0,I))<0)break A;if((0|WA(E,o+188|0,4,0))<0)break A;if((0|WA(E,g,B,0))<0)break A;Hg(E,A,I)}else if(!((0|eA(E=o+192|0,0,0,64))<0||(0|WA(E,o+188|0,4,0))<0||(0|WA(E,g,B,0))<0||(0|Hg(E,o+112|0,64))<0)){if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,(I=I-32|0)>>>0>=65)for(;;){if(g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(o+112|0,64,o+48|0,64,0,0,0))<0)break A;if(g=i[o+116>>2],B=i[o+112>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=i[o+124>>2],B=i[o+120>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[o+140>>2],B=i[o+136>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[o+132>>2],B=i[o+128>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,A=A+32|0,!((I=I-32|0)>>>0>64))break}g=i[o+172>>2],i[o+104>>2]=i[o+168>>2],i[o+108>>2]=g,g=i[o+164>>2],i[o+96>>2]=i[o+160>>2],i[o+100>>2]=g,g=i[o+156>>2],i[o+88>>2]=i[o+152>>2],i[o+92>>2]=g,g=i[o+148>>2],i[o+80>>2]=i[o+144>>2],i[o+84>>2]=g,g=i[o+140>>2],i[o+72>>2]=i[o+136>>2],i[o+76>>2]=g,B=i[o+132>>2],i[(g=o- -64|0)>>2]=i[o+128>>2],i[g+4>>2]=B,g=i[o+124>>2],i[o+56>>2]=i[o+120>>2],i[o+60>>2]=g,g=i[o+116>>2],i[o+48>>2]=i[o+112>>2],i[o+52>>2]=g,(0|lA(g=o+112|0,I,o+48|0,64,0,0,0))<0||Ng(A,g,I)}XC(o+192|0,384),s=Q}function _A(A,I,g,B,Q,_,c,t,r,e,y){var h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;if(h=Ig(r,0,t,0),!(n=f)&h>>>0>=1073741824|n)return i[9404]=22,-1;if(1==(0|c)|c>>>0>1)return i[9404]=22,-1;if(h=c,!(!(_&(n=_-1|0)|c&(h=-1!=(0|n)?h+1|0:h))&(!c&_>>>0>=2|!!(0|c))))return i[9404]=28,-1;if(!r||!t)return i[9404]=28,-1;if(!(33554431/(r>>>0)>>>0<t>>>0|t>>>0>16777215)&&!c&33554431/(t>>>0)>>>0>=_>>>0&&!((M=a(G=t<<7,r))>>>0>(h=(k=a(_,G))+M|0)>>>0||(D=h)>>>0>(h=((F=t<<8)+h|0)- -64|0)>>>0)){A:{if(h>>>0>E[A+8>>2]){if(w=-1,Rg(A))break A;if(s=n=s-16|0,D=tI(n+12|0,h),i[9404]=D,D=D?0:i[n+12>>2],i[A+4>>2]=D,i[A>>2]=D,i[A+8>>2]=D?h:0,s=n+16|0,!D)break A}for(DI(I,g,B,Q,U=i[A+4>>2],M),Y=((k=(D=(K=M+U|0)+k|0)+(t<<7)|0)+G|0)-64|0,Q=_-1|0,N=t<<5,b=D+F|0,J=(D+G|0)-64|0;;){for(F=a(G,H)+U|0,w=0;B=(A=w<<2)+F|0,i[A+D>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=4|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,h=(B=8|A)+D|0,B=B+F|0,i[h>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=(A|=12)+D|0,A=A+F|0,i[B>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,n=0,h=0,(0|N)!=(0|(w=w+4|0)););for(B=0,A=0;Ng(K+(a(B,N)<<2)|0,D,G),tA(D,k,b,t),Ng(K+(a(N,1|B)<<2)|0,k,G),tA(k,D,b,t),(0|c)==(0|(A=(B=B+2|0)>>>0<2?A+1|0:A))&B>>>0<_>>>0|A>>>0<c>>>0;);for(;;){for(A=K+(a(N,Q&i[J>>2])<<2)|0,w=0;i[(p=(B=w<<2)+D|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+D|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+D|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););for(tA(D,k,b,t),A=K+(a(N,Q&i[Y>>2])<<2)|0,w=0;i[(p=(B=w<<2)+k|0)>>2]=i[p>>2]^i[A+B>>2],i[(S=(p=4|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(S=(p=8|B)+k|0)>>2]=i[S>>2]^i[A+p>>2],i[(p=(B|=12)+k|0)>>2]=i[p>>2]^i[A+B>>2],(0|N)!=(0|(w=w+4|0)););if(tA(k,D,b,t),w=0,!((0|c)==(0|(h=(n=n+2|0)>>>0<2?h+1|0:h))&_>>>0>n>>>0|c>>>0>h>>>0))break}for(;B=(A=w<<2)+F|0,h=i[A+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=4|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,B=(h=8|A)+F|0,h=i[h+D>>2],C[0|B]=h,C[B+1|0]=h>>>8,C[B+2|0]=h>>>16,C[B+3|0]=h>>>24,A=(B=12|A)+F|0,B=i[B+D>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,(0|N)!=(0|(w=w+4|0)););if((0|(H=H+1|0))==(0|r))break}DI(I,g,U,M,e,y),w=0}return w}return i[9404]=48,-1}function cA(A,I,g){A|=0,I|=0,g|=0;var B,Q,E,a=0;s=B=s-192|0,i[B+96>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+108>>2]=0,i[B+112>>2]=0,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,a=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[B+80>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[B+84>>2]=a,a=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+88>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[B+92>>2]=a,Q=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,I=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[B+40>>2]=0,i[B+44>>2]=0,i[B+48>>2]=0,i[B+52>>2]=0,i[B+56>>2]=0,i[B+60>>2]=0,i[B+64>>2]=a,i[B+68>>2]=I,i[B+72>>2]=Q,i[B+76>>2]=E,i[B+32>>2]=0,i[B+36>>2]=0,I=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,i[B+16>>2]=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,i[B+20>>2]=I,I=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,i[B+24>>2]=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,i[B+28>>2]=I,I=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,i[B>>2]=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24,i[B+4>>2]=I,I=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,i[B+8>>2]=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,i[B+12>>2]=I,og(B- -64|0,B),g=i[B+124>>2],i[B+184>>2]=i[B+120>>2],i[B+188>>2]=g,I=i[B+116>>2],i[B+176>>2]=i[B+112>>2],i[B+180>>2]=I,I=i[B+108>>2],i[B+168>>2]=i[B+104>>2],i[B+172>>2]=I,I=i[B+100>>2],i[B+160>>2]=i[B+96>>2],i[B+164>>2]=I,I=i[B+92>>2],i[B+152>>2]=i[B+88>>2],i[B+156>>2]=I,I=i[B+84>>2],i[B+144>>2]=i[B+80>>2],i[B+148>>2]=I,I=i[B+76>>2],i[B+136>>2]=i[B+72>>2],i[B+140>>2]=I,I=i[B+68>>2],i[B+128>>2]=i[B+64>>2],i[B+132>>2]=I,S(I=B+128|0),a=i[B+156>>2],g=i[B+152>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,a=i[B+148>>2],g=i[B+144>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=a,C[A+21|0]=a>>>8,C[A+22|0]=a>>>16,C[A+23|0]=a>>>24,a=i[B+140>>2],g=i[B+136>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=a,C[A+13|0]=a>>>8,C[A+14|0]=a>>>16,C[A+15|0]=a>>>24,a=i[B+132>>2],g=i[B+128>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=a,C[A+5|0]=a>>>8,C[A+6|0]=a>>>16,C[A+7|0]=a>>>24,XC(I,64),s=B+192|0}function tA(A,I,g,C){var B=0,Q=0,o=0,E=0,a=0;if(Q=i[4+(B=((C<<7)+A|0)-64|0)>>2],i[g>>2]=i[B>>2],i[g+4>>2]=Q,Q=i[B+60>>2],i[g+56>>2]=i[B+56>>2],i[g+60>>2]=Q,Q=i[B+52>>2],i[g+48>>2]=i[B+48>>2],i[g+52>>2]=Q,Q=i[B+44>>2],i[g+40>>2]=i[B+40>>2],i[g+44>>2]=Q,Q=i[B+36>>2],i[g+32>>2]=i[B+32>>2],i[g+36>>2]=Q,Q=i[B+28>>2],i[g+24>>2]=i[B+24>>2],i[g+28>>2]=Q,Q=i[B+20>>2],i[g+16>>2]=i[B+16>>2],i[g+20>>2]=Q,Q=i[B+12>>2],i[g+8>>2]=i[B+8>>2],i[g+12>>2]=Q,C)for(Q=C<<1,a=C<<6;C=(E<<6)+A|0,i[g>>2]=i[g>>2]^i[C>>2],i[g+4>>2]=i[g+4>>2]^i[C+4>>2],i[g+8>>2]=i[g+8>>2]^i[C+8>>2],i[g+12>>2]=i[g+12>>2]^i[C+12>>2],i[g+16>>2]=i[g+16>>2]^i[C+16>>2],i[g+20>>2]=i[g+20>>2]^i[C+20>>2],i[g+24>>2]=i[g+24>>2]^i[C+24>>2],i[g+28>>2]=i[g+28>>2]^i[C+28>>2],i[g+32>>2]=i[g+32>>2]^i[C+32>>2],i[g+36>>2]=i[g+36>>2]^i[C+36>>2],i[g+40>>2]=i[g+40>>2]^i[C+40>>2],i[g+44>>2]=i[g+44>>2]^i[C+44>>2],i[g+48>>2]=i[g+48>>2]^i[C+48>>2],i[g+52>>2]=i[g+52>>2]^i[C+52>>2],i[g+56>>2]=i[g+56>>2]^i[C+56>>2],i[g+60>>2]=i[g+60>>2]^i[C+60>>2],VA(g),o=i[g+60>>2],i[56+(B=(E<<5)+I|0)>>2]=i[g+56>>2],i[B+60>>2]=o,o=i[g+52>>2],i[B+48>>2]=i[g+48>>2],i[B+52>>2]=o,o=i[g+44>>2],i[B+40>>2]=i[g+40>>2],i[B+44>>2]=o,o=i[g+36>>2],i[B+32>>2]=i[g+32>>2],i[B+36>>2]=o,o=i[g+28>>2],i[B+24>>2]=i[g+24>>2],i[B+28>>2]=o,o=i[g+20>>2],i[B+16>>2]=i[g+16>>2],i[B+20>>2]=o,o=i[g+12>>2],i[B+8>>2]=i[g+8>>2],i[B+12>>2]=o,o=i[g+4>>2],i[B>>2]=i[g>>2],i[B+4>>2]=o,i[g>>2]=i[g>>2]^i[C- -64>>2],i[g+4>>2]=i[g+4>>2]^i[C+68>>2],i[g+8>>2]=i[g+8>>2]^i[C+72>>2],i[g+12>>2]=i[g+12>>2]^i[C+76>>2],i[g+16>>2]=i[g+16>>2]^i[C+80>>2],i[g+20>>2]=i[g+20>>2]^i[C+84>>2],i[g+24>>2]=i[g+24>>2]^i[C+88>>2],i[g+28>>2]=i[g+28>>2]^i[C+92>>2],i[g+32>>2]=i[g+32>>2]^i[C+96>>2],i[g+36>>2]=i[g+36>>2]^i[C+100>>2],i[g+40>>2]=i[g+40>>2]^i[C+104>>2],i[g+44>>2]=i[g+44>>2]^i[C+108>>2],i[g+48>>2]=i[g+48>>2]^i[C+112>>2],i[g+52>>2]=i[g+52>>2]^i[C+116>>2],i[g+56>>2]=i[g+56>>2]^i[C+120>>2],i[g+60>>2]=i[g+60>>2]^i[C+124>>2],VA(g),C=B+a|0,B=i[g+60>>2],i[C+56>>2]=i[g+56>>2],i[C+60>>2]=B,B=i[g+52>>2],i[C+48>>2]=i[g+48>>2],i[C+52>>2]=B,B=i[g+44>>2],i[C+40>>2]=i[g+40>>2],i[C+44>>2]=B,B=i[g+36>>2],i[C+32>>2]=i[g+32>>2],i[C+36>>2]=B,B=i[g+28>>2],i[C+24>>2]=i[g+24>>2],i[C+28>>2]=B,B=i[g+20>>2],i[C+16>>2]=i[g+16>>2],i[C+20>>2]=B,B=i[g+12>>2],i[C+8>>2]=i[g+8>>2],i[C+12>>2]=B,B=i[g+4>>2],i[C>>2]=i[g>>2],i[C+4>>2]=B,Q>>>0>(E=E+2|0)>>>0;);}function rA(A,I,g,C){var B=0,Q=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0;if(h=i[A+36>>2],y=i[A+32>>2],s=i[A+28>>2],r=i[A+24>>2],e=i[A+20>>2],!C&g>>>0>=16|C)for(M=!o[A+80|0]<<24,p=i[A+4>>2],K=a(p,5),n=i[A+8>>2],N=a(n,5),F=i[A+12>>2],S=a(F,5),G=i[A+16>>2],k=a(G,5),w=i[A>>2];B=Ig(E=((o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108863)+r|0,0,F,0),c=f,e=(_=Ig(r=(67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))+e|0,0,G,0))+B|0,B=f+c|0,B=_>>>0>e>>>0?B+1|0:B,c=Ig(s=((o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67108863)+s|0,0,n,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(y=((o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6|0)+y|0,0,p,0),B=f+B|0,B=c>>>0>(e=c+e|0)>>>0?B+1|0:B,c=Ig(h=h+M+((o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24)>>>8)|0,0,w,0),B=f+B|0,U=e=c+e|0,e=c>>>0>e>>>0?B+1|0:B,B=Ig(E,0,n,0),c=f,_=Ig(r,0,F,0),Q=f+c|0,Q=(B=_+B|0)>>>0<_>>>0?Q+1|0:Q,c=(_=Ig(s,0,p,0))+B|0,B=f+Q|0,B=_>>>0>c>>>0?B+1|0:B,_=Ig(y,0,w,0),B=f+B|0,B=_>>>0>(c=_+c|0)>>>0?B+1|0:B,_=Ig(h,0,k,0),B=f+B|0,b=c=_+c|0,c=_>>>0>c>>>0?B+1|0:B,B=Ig(E,0,p,0),t=f,_=(Q=Ig(r,0,n,0))+B|0,B=f+t|0,B=Q>>>0>_>>>0?B+1|0:B,t=Ig(s,0,w,0),Q=f+B|0,Q=(_=t+_|0)>>>0<t>>>0?Q+1|0:Q,t=Ig(y,0,k,0),B=f+Q|0,B=(_=t+_|0)>>>0<t>>>0?B+1|0:B,t=Ig(h,0,S,0),B=f+B|0,H=_=t+_|0,_=_>>>0<t>>>0?B+1|0:B,B=Ig(E,0,w,0),Q=f,t=(D=Ig(r,0,p,0))+B|0,B=f+Q|0,B=t>>>0<D>>>0?B+1|0:B,Q=Ig(s,0,k,0),B=f+B|0,B=Q>>>0>(t=Q+t|0)>>>0?B+1|0:B,D=Ig(y,0,S,0),Q=f+B|0,Q=(t=D+t|0)>>>0<D>>>0?Q+1|0:Q,D=Ig(h,0,N,0),B=f+Q|0,B=(t=D+t|0)>>>0<D>>>0?B+1|0:B,D=t,t=B,B=Ig(E,0,k,0),Q=f,E=(r=Ig(r,0,w,0))+B|0,B=f+Q|0,B=E>>>0<r>>>0?B+1|0:B,r=Ig(s,0,S,0),B=f+B|0,B=(E=r+E|0)>>>0<r>>>0?B+1|0:B,r=Ig(y,0,N,0),B=f+B|0,B=(E=r+E|0)>>>0<r>>>0?B+1|0:B,r=Ig(h,0,K,0),Q=f+B|0,Q=(E=r+E|0)>>>0<r>>>0?Q+1|0:Q,r=E,B=t,B=(E=(s=(67108863&Q)<<6|E>>>26)+D|0)>>>0<s>>>0?B+1|0:B,s=E,y=(67108863&B)<<6|E>>>26,B=_,B=(E=y+H|0)>>>0<y>>>0?B+1|0:B,y=E,Q=c,h=B=(E=(67108863&B)<<6|E>>>26)+b|0,c=(67108863&(Q=B>>>0<E>>>0?Q+1|0:Q))<<6|B>>>26,B=e,r=(67108863&s)+((B=a((67108863&((E=c+U|0)>>>0<c>>>0?B+1:B))<<6|E>>>26,5)+(67108863&r)|0)>>>26|0)|0,s=67108863&y,y=67108863&h,h=67108863&E,e=67108863&B,I=I+16|0,!(C=C-(g>>>0<16)|0)&(g=g-16|0)>>>0>15|C;);i[A+20>>2]=e,i[A+36>>2]=h,i[A+32>>2]=y,i[A+28>>2]=s,i[A+24>>2]=r}function eA(A,I,g,B){A|=0,I|=0;var i=0;return i=-1,(B|=0)-65>>>0<4294967232|(g|=0)>>>0>64||(g&&I?(s=i=s-128|0,!I|((B&=255)-65&255)>>>0<=191|((g&=255)-65&255)>>>0<=191?(rC(),Q()):(bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,B=-222443256^(g<<8|B),C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,B=g>>>24^1779033703,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,g=Ng(bg(i,0,128),I,g),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)):(((I=255&B)-65&255)>>>0<=191&&(rC(),Q()),bg(A- -64|0,0,293),C[A+56|0]=121,C[A+57|0]=33,C[A+58|0]=126,C[A+59|0]=19,C[A+60|0]=25,C[A+61|0]=205,C[A+62|0]=224,C[A+63|0]=91,C[A+48|0]=107,C[A+49|0]=189,C[A+50|0]=65,C[A+51|0]=251,C[A+52|0]=171,C[A+53|0]=217,C[A+54|0]=131,C[A+55|0]=31,C[A+40|0]=31,C[A+41|0]=108,C[A+42|0]=62,C[A+43|0]=43,C[A+44|0]=140,C[A+45|0]=104,C[A+46|0]=5,C[A+47|0]=155,C[A+32|0]=209,C[A+33|0]=130,C[A+34|0]=230,C[A+35|0]=173,C[A+36|0]=127,C[A+37|0]=82,C[A+38|0]=14,C[A+39|0]=81,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I^=-222443256,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106),i=0),0|i}function yA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(i=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,E=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,t=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24):(i=2036477234,E=857760878,Q=1634760805,t=1797285236),a=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,e=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,_=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,y=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,c=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,w=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,s=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,B=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,h=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,D=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;r=g,g=Lg((f=I)^(I=g+Q|0),16),r=s=Lg(r^(Q=g+s|0),12),p=Lg((f=I+s|0)^g,8),I=Lg(r^(s=p+Q|0),7),a=Lg((g=B+t|0)^a,16),B=Lg((y=a+y|0)^B,12),r=h,i=Lg((t=i+h|0)^e,16),Q=Lg(r^(h=i+c|0),12),c=Lg((c=i)^(i=Q+t|0),8),g=Lg(c^(t=(n=g+B|0)+I|0),16),e=Lg((E=E+D|0)^_,16),D=Lg((_=e+w|0)^D,12),r=I,I=Lg((E=D+E|0)^e,8),r=Lg(r^(_=(k=I+_|0)+g|0),12),e=Lg(g^(t=r+t|0),8),g=Lg((w=e+_|0)^r,7),a=Lg(a^n,8),B=Lg((y=a+y|0)^B,7),_=Lg((i=B+i|0)^I,16),B=Lg((I=_+s|0)^B,12),_=Lg(_^(i=B+i|0),8),B=Lg((s=I+_|0)^B,7),I=Lg((c=c+h|0)^Q,7),h=Lg((E=I+E|0)^p,16),p=Lg(I^(Q=h+y|0),12),I=Lg(h^(E=p+E|0),8),h=Lg((y=Q+I|0)^p,7),r=c,c=a,Q=Lg(D^k,7),c=Lg(c^(a=Q+f|0),16),f=Lg(Q^(D=r+c|0),12),a=Lg(c^(Q=f+a|0),8),D=Lg((c=D+a|0)^f,7),10!=(0|(F=F+1|0)););return C[0|A]=Q,C[A+1|0]=Q>>>8,C[A+2|0]=Q>>>16,C[A+3|0]=Q>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+24|0]=e,C[A+25|0]=e>>>8,C[A+26|0]=e>>>16,C[A+27|0]=e>>>24,C[A+20|0]=_,C[A+21|0]=_>>>8,C[A+22|0]=_>>>16,C[A+23|0]=_>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=t,C[A+13|0]=t>>>8,C[A+14|0]=t>>>16,C[A+15|0]=t>>>24,C[A+8|0]=i,C[A+9|0]=i>>>8,C[A+10|0]=i>>>16,C[A+11|0]=i>>>24,C[A+4|0]=E,C[A+5|0]=E>>>8,C[A+6|0]=E>>>16,C[A+7|0]=E>>>24,0}function sA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function hA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g+40|0),b(e=A+40|0,e,g),b(A+120|0,g+120|0,I+120|0),b(A,I+80|0,g+80|0),H=i[A+4>>2],Y=i[A+8>>2],Q=i[A+12>>2],o=i[A+16>>2],E=i[A+20>>2],a=i[A+24>>2],_=i[A+28>>2],c=i[A+32>>2],t=i[A+36>>2],I=i[A+44>>2],g=i[A+84>>2],e=i[A+48>>2],h=i[A+88>>2],D=i[A+52>>2],f=i[A+92>>2],p=i[A+56>>2],w=i[A+96>>2],n=i[A+60>>2],k=i[A+100>>2],F=i[y>>2],S=i[A+104>>2],s=i[A+68>>2],N=i[A+108>>2],G=i[A+72>>2],M=i[A+112>>2],r=i[A>>2],K=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=G+M,i[A+68>>2]=s+N,i[y>>2]=F+S,i[A+60>>2]=n+k,i[A+56>>2]=p+w,i[A+52>>2]=D+f,i[A+48>>2]=e+h,i[A+44>>2]=I+g,i[A+40>>2]=K+U,i[A+36>>2]=B-C,i[A+32>>2]=M-G,i[A+28>>2]=N-s,i[A+24>>2]=S-F,i[A+20>>2]=k-n,i[A+16>>2]=w-p,i[A+12>>2]=f-D,i[A+8>>2]=h-e,i[A+4>>2]=g-I,i[A>>2]=U-K,I=i[A+156>>2],g=t<<1,i[A+156>>2]=I+g,y=i[A+152>>2],e=c<<1,i[A+152>>2]=y+e,h=i[A+148>>2],D=_<<1,i[A+148>>2]=h+D,f=i[A+144>>2],p=a<<1,i[A+144>>2]=f+p,w=i[A+140>>2],n=E<<1,i[A+140>>2]=w+n,k=i[A+136>>2],F=o<<1,i[A+136>>2]=k+F,S=i[A+132>>2],s=Q<<1,i[A+132>>2]=S+s,N=i[A+128>>2],G=Y<<1,i[A+128>>2]=N+G,M=i[A+124>>2],K=H<<1,i[A+124>>2]=M+K,U=i[A+120>>2],H=r<<1,i[A+120>>2]=U+H,i[A+112>>2]=e-y,i[A+108>>2]=D-h,i[A+104>>2]=p-f,i[A+100>>2]=n-w,i[A+96>>2]=F-k,i[A+92>>2]=s-S,i[A+88>>2]=G-N,i[A+84>>2]=K-M,i[A+80>>2]=H-U,i[A+116>>2]=g-I}function DA(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0;y=i[I+4>>2],e=i[I+44>>2],h=i[I+8>>2],D=i[I+48>>2],f=i[I+12>>2],p=i[I+52>>2],w=i[I+16>>2],n=i[I+56>>2],k=i[I+20>>2],F=i[I+60>>2],S=i[I+24>>2],N=i[(s=I- -64|0)>>2],G=i[I+28>>2],M=i[I+68>>2],K=i[I+32>>2],U=i[I+72>>2],H=i[I+36>>2],Y=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=H+Y,i[A+32>>2]=K+U,i[A+28>>2]=G+M,i[A+24>>2]=S+N,i[A+20>>2]=k+F,i[A+16>>2]=w+n,i[A+12>>2]=f+p,i[A+8>>2]=h+D,i[A+4>>2]=e+y,e=i[I+4>>2],h=i[I+44>>2],D=i[I+8>>2],f=i[I+48>>2],p=i[I+12>>2],w=i[I+52>>2],n=i[I+16>>2],k=i[I+56>>2],F=i[I+20>>2],S=i[I+60>>2],N=i[I+24>>2],s=i[s>>2],y=i[I+28>>2],G=i[I+68>>2],M=i[I+32>>2],K=i[I+72>>2],U=i[I>>2],H=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=K-M,i[A+68>>2]=G-y,i[(y=A- -64|0)>>2]=s-N,i[A+60>>2]=S-F,i[A+56>>2]=k-n,i[A+52>>2]=w-p,i[A+48>>2]=f-D,i[A+44>>2]=h-e,i[A+40>>2]=H-U,b(A+80|0,A,g),b(e=A+40|0,e,g+40|0),b(A+120|0,g+80|0,I+120|0),H=i[I+84>>2],Y=i[I+88>>2],Q=i[I+92>>2],o=i[I+96>>2],E=i[I+100>>2],a=i[I+104>>2],_=i[I+108>>2],c=i[I+112>>2],t=i[I+116>>2],g=i[A+44>>2],e=i[A+84>>2],h=i[A+48>>2],D=i[A+88>>2],f=i[A+52>>2],p=i[A+92>>2],w=i[A+56>>2],n=i[A+96>>2],k=i[A+60>>2],F=i[A+100>>2],S=i[y>>2],s=i[A+104>>2],N=i[A+68>>2],G=i[A+108>>2],M=i[A+72>>2],K=i[A+112>>2],r=i[I+80>>2],I=i[A+40>>2],U=i[A+80>>2],C=i[A+76>>2],B=i[A+116>>2],i[A+76>>2]=C+B,i[A+72>>2]=M+K,i[A+68>>2]=N+G,i[y>>2]=S+s,i[A+60>>2]=k+F,i[A+56>>2]=w+n,i[A+52>>2]=f+p,i[A+48>>2]=h+D,i[A+44>>2]=g+e,i[A+40>>2]=I+U,i[A+36>>2]=B-C,i[A+32>>2]=K-M,i[A+28>>2]=G-N,i[A+24>>2]=s-S,i[A+20>>2]=F-k,i[A+16>>2]=n-w,i[A+12>>2]=p-f,i[A+8>>2]=D-h,i[A+4>>2]=e-g,i[A>>2]=U-I,I=t<<1,g=i[A+156>>2],i[A+156>>2]=I-g,y=c<<1,e=i[A+152>>2],i[A+152>>2]=y-e,h=_<<1,D=i[A+148>>2],i[A+148>>2]=h-D,f=a<<1,p=i[A+144>>2],i[A+144>>2]=f-p,w=E<<1,n=i[A+140>>2],i[A+140>>2]=w-n,k=o<<1,F=i[A+136>>2],i[A+136>>2]=k-F,S=Q<<1,s=i[A+132>>2],i[A+132>>2]=S-s,N=Y<<1,G=i[A+128>>2],i[A+128>>2]=N-G,M=H<<1,K=i[A+124>>2],i[A+124>>2]=M-K,U=r<<1,H=i[A+120>>2],i[A+120>>2]=U-H,i[A+112>>2]=e+y,i[A+108>>2]=h+D,i[A+104>>2]=f+p,i[A+100>>2]=w+n,i[A+96>>2]=k+F,i[A+92>>2]=S+s,i[A+88>>2]=N+G,i[A+84>>2]=M+K,i[A+80>>2]=U+H,i[A+116>>2]=I+g}function fA(A,I){var g,C,B,Q,E,a,_,c,t,r,e,y,s,h,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0;s=o[I+31|0],g=o[I+30|0],C=o[I+29|0],B=o[I+6|0],Q=o[I+5|0],E=o[I+4|0],a=o[I+9|0],_=o[I+8|0],c=o[I+7|0],t=o[I+12|0],K=o[I+11|0],U=o[I+10|0],r=o[I+15|0],b=o[I+14|0],e=o[I+13|0],S=o[I+28|0],M=o[I+27|0],N=o[I+26|0],F=o[I+25|0],n=o[I+24|0],w=o[I+23|0],h=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,k=(p=o[I+21|0])<<15,p=D=p>>>17|0,G=k,G|=(k=o[I+20|0])<<7,k=(D=k>>>25|0)|p,p=(D=o[I+22|0])>>>9|0,D=D<<23|G,p|=k,y=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=0,k=D,D=(33554431&(I=(G=y+16777216|0)>>>0<16777216?1:I))<<7|G>>>25,I=(I>>>25|0)+p|0,D=(p=k=k+D|0)>>>0<D>>>0?I+1|0:I,I=(k=p+33554432|0)>>>0<33554432?D+1|0:D,i[A+24>>2]=p-(-67108864&k),D=(p=w>>>27|0)|n>>>19|F>>>11,p=w=(n=F<<21|(w=n<<13|w<<5))+(p=(67108863&(p=I))<<6|k>>>26)|0,I=D,D=(w=n+16777216|0)>>>0<16777216?I+1|0:I,i[A+28>>2]=p-(1040187392&w),p=(D=(I=D)>>>25|0)+(p=M>>>20|N>>>28|S>>>12)|0,I=p=(D=w=(I=(33554431&I)<<7|w>>>25)+(M<<12|N<<4|S<<20)|0)>>>0<I>>>0?p+1|0:p,w=(S=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+32>>2]=D-(-67108864&S),p=t>>>13|(D=K>>>21|U>>>29),I=(p=(M=16777216+(K=K<<11|U<<3|t<<19)|0)>>>0<16777216?p+1|0:p)>>>25|0,p=(D=n=b<<10|e<<2|r<<18)+(n=(33554431&p)<<7|M>>>25)|0,D=I+(F=b>>>22|e>>>30|r>>>14)|0,I=D=p>>>0<n>>>0?D+1|0:D,n=((67108863&(I=(n=p+33554432|0)>>>0<33554432?I+1|0:I))<<6|(D=n)>>>26)+(N=y-(-33554432&G)|0)|0,i[A+20>>2]=n,i[A+16>>2]=p-(-67108864&D),D=Q>>>18|E>>>26|B>>>10,p=(D=(N=16777216+(U=Q<<14|E<<6|B<<22)|0)>>>0<16777216?D+1|0:D)>>>25|0,D=(I=n=_<<13|c<<5|a<<21)+(n=(33554431&D)<<7|N>>>25)|0,I=p+(F=_>>>19|c>>>27|a>>>11)|0,I=D>>>0<n>>>0?I+1|0:I,p=(F=D+33554432|0)>>>0<33554432?I+1|0:I,i[A+8>>2]=D-(-67108864&F),S=(w=(67108863&w)<<6|S>>>26)+(b=s<<18&33292288|g<<10|C<<2)|0,I=D=g>>>22|C>>>30,D=(w=b+16777216|0)>>>0<16777216?I+1|0:I,i[A+36>>2]=S-(33554432&w),p=K+((67108863&p)<<6|F>>>26)|0,i[A+12>>2]=p-(234881024&M),n=U-(2113929216&N)|0,p=Ig((33554431&(I=D))<<7|w>>>25,D=I>>>25|0,19,0),I=f,p=(D=p+h|0)>>>0<p>>>0?I+1|0:I,w=((67108863&(p=(I=D+33554432|0)>>>0<33554432?p+1|0:p))<<6|I>>>26)+n|0,i[A+4>>2]=w,i[A>>2]=D-(-67108864&I)}function pA(A,I,g,B,E,a,_,c){A|=0,I|=0,g|=0,B|=0,E|=0,a|=0,_|=0;var t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;if(1==(-7&(c|=0))){A:{I:{g:{C:{B:{Q:{i:{if(B){o:{E:{if(c>>>0<=3){for(;;){y=r;a:{_:{c:{t:{for(;;){if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16336^e))>>>8&63|~(1+(16340^e))>>>8&62,255!=(0|(t|=(t-1&1+(65470^e))>>>8&255)))break t;if(t=0,!E)break o;if(!kI(E,e))break;if((y=y+1|0)>>>0>=B>>>0)break c}r=y;break o}if(D=t+(D<<6)|0,s>>>0>1)break _;s=s+6|0;break a}r=(A=r+1|0)>>>0<B>>>0?B:A;break o}if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,!((r=y+1|0)>>>0<B>>>0))break}break o}for(;;){a:{if(t=(t=(e=C[g+y|0])-65|0)&(~(90-e)&~t)>>>8&255|e+4&(~(e+65488)&~(57-e))>>>8&255|e+185&(~(e+65439)&~(122-e))>>>8&255|~(1+(16288^e))>>>8&63|~(1+(16338^e))>>>8&62,255==(0|(t|=(t-1&1+(65470^e))>>>8&255))){if(t=0,!E)break o;if(kI(E,e)){if((y=y+1|0)>>>0>=B>>>0)break a;continue}r=y;break o}if(D=t+(D<<6)|0,s>>>0<2)s=s+6|0;else{if(s=s-2|0,I>>>0<=h>>>0)break E;C[A+h|0]=D>>>s,h=h+1|0}if(t=0,(r=y+1|0)>>>0>=B>>>0)break o;y=r;continue}break}r=(A=r+1|0)>>>0<B>>>0?B:A;break o}r=y,i[9404]=68,t=1}if(s>>>0>4)break i;A=r}else A=0;if(I=-1,t){r=A;break A}if(~(-1<<s)&D){r=A;break A}if(2&c){c=A;break B}if(s>>>0<2){c=A;break B}if(r=A>>>0>B>>>0?A:B,y=s>>>1|0,!E)break Q;for(c=A;;){if((0|c)==(0|r)){t=68;break C}if(61!=(0|(A=C[g+c|0]))){if(!kI(E,A)){t=28,r=c;break C}}else y=y-1|0;if(c=c+1|0,!y)break}break B}I=-1;break A}if(t=68,A>>>0>=B>>>0)break C;if(61!=o[A+g|0]){r=A,t=28;break C}if(c=A+y|0,1!=(0|y)){if((0|(s=A+1|0))==(0|r))break C;if(61!=o[g+s|0]){r=s,t=28;break C}if(2!=(0|y)){if((0|(A=A+2|0))==(0|r))break C;if(t=28,r=A,61!=o[A+g|0])break C}}}if(I=0,E)break g;break I}i[9404]=t;break A}if(!(B>>>0<=c>>>0)){for(;;){if(!kI(E,C[g+c|0]))break I;if((0|(c=c+1|0))==(0|B))break}c=B}}r=c,f=h}return _?i[_>>2]=g+r:(0|B)!=(0|r)&&(i[9404]=28,I=-1),a&&(i[a>>2]=f),0|I}rC(),Q()}function wA(A,I,g,B){A|=0,I|=0,g|=0;var Q=0,i=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0;for((B|=0)?(Q=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,_=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,c=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,B=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24):(Q=1797285236,_=2036477234,c=857760878,B=1634760805),i=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,a=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,E=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,f=o[g+28|0]|o[g+29|0]<<8|o[g+30|0]<<16|o[g+31|0]<<24,D=o[g+24|0]|o[g+25|0]<<8|o[g+26|0]<<16|o[g+27|0]<<24,p=20,s=o[g+20|0]|o[g+21|0]<<8|o[g+22|0]<<16|o[g+23|0]<<24,h=o[g+16|0]|o[g+17|0]<<8|o[g+18|0]<<16|o[g+19|0]<<24,r=o[g+12|0]|o[g+13|0]<<8|o[g+14|0]<<16|o[g+15|0]<<24,e=o[g+8|0]|o[g+9|0]<<8|o[g+10|0]<<16|o[g+11|0]<<24,y=o[g+4|0]|o[g+5|0]<<8|o[g+6|0]<<16|o[g+7|0]<<24,I=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,g=o[0|g]|o[g+1|0]<<8|o[g+2|0]<<16|o[g+3|0]<<24;t=Lg(g+c|0,7)^i,w=Lg(t+c|0,9)^D,r=Lg(B+s|0,7)^r,n=Lg(r+B|0,9)^a,k=Lg(n+r|0,13)^s,e=Lg(Q+h|0,7)^e,E=Lg(e+Q|0,9)^E,a=Lg(E+e|0,13)^h,Q=Lg(E+a|0,18)^Q,i=Lg(I+_|0,7)^f,s=k^Lg(Q+i|0,7),D=w^Lg(s+Q|0,9),f=Lg(s+D|0,13)^i,Q=Lg(D+f|0,18)^Q,y=Lg(i+_|0,9)^y,F=Lg(y+i|0,13)^I,I=Lg(F+y|0,18)^_,h=Lg(I+t|0,7)^a,a=Lg(h+I|0,9)^n,i=Lg(a+h|0,13)^t,_=Lg(i+a|0,18)^I,t=Lg(t+w|0,13)^g,g=Lg(t+w|0,18)^c,I=Lg(g+r|0,7)^F,E=Lg(I+g|0,9)^E,r=Lg(I+E|0,13)^r,c=Lg(E+r|0,18)^g,B=Lg(n+k|0,18)^B,g=Lg(B+e|0,7)^t,y=Lg(g+B|0,9)^y,e=Lg(g+y|0,13)^e,B=Lg(y+e|0,18)^B,t=p>>>0>2,p=p-2|0,t;);return C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+28|0]=i,C[A+29|0]=i>>>8,C[A+30|0]=i>>>16,C[A+31|0]=i>>>24,C[A+24|0]=a,C[A+25|0]=a>>>8,C[A+26|0]=a>>>16,C[A+27|0]=a>>>24,C[A+20|0]=E,C[A+21|0]=E>>>8,C[A+22|0]=E>>>16,C[A+23|0]=E>>>24,C[A+16|0]=I,C[A+17|0]=I>>>8,C[A+18|0]=I>>>16,C[A+19|0]=I>>>24,C[A+12|0]=Q,C[A+13|0]=Q>>>8,C[A+14|0]=Q>>>16,C[A+15|0]=Q>>>24,C[A+8|0]=_,C[A+9|0]=_>>>8,C[A+10|0]=_>>>16,C[A+11|0]=_>>>24,C[A+4|0]=c,C[A+5|0]=c>>>8,C[A+6|0]=c>>>16,C[A+7|0]=c>>>24,0}function nA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0;for(s=g=s-480|0;c=(_=g+288|0)+(a<<1)|0,t=o[I+a|0],C[c+1|0]=t>>>4,C[0|c]=15&t,_=_+((c=1|a)<<1)|0,c=o[I+c|0],C[_+1|0]=c>>>4,C[0|_]=15&c,32!=(0|(a=a+2|0)););for(I=0;a=8+(_=(a=I)+o[0|(I=(g+288|0)+r|0)]|0)|0,C[0|I]=_-(240&a),a=8+(_=o[I+1|0]+(a<<24>>24>>4)|0)|0,C[I+1|0]=_-(240&a),a=8+(_=o[I+2|0]+(a<<24>>24>>4)|0)|0,C[I+2|0]=_-(240&a),I=a<<24>>24>>4,63!=(0|(r=r+3|0)););for(C[g+351|0]=o[g+351|0]+I,i[A+32>>2]=0,i[A+36>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A>>2]=0,i[A+4>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),Q=A+120|0,r=A+80|0,I=A+40|0,_=g+208|0,B=g+168|0,c=g+248|0,a=1;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),e=a>>>0<62,a=a+2|0,e;);for(a=i[A+36>>2],i[g+392>>2]=i[A+32>>2],i[g+396>>2]=a,a=i[A+28>>2],i[g+384>>2]=i[A+24>>2],i[g+388>>2]=a,a=i[A+20>>2],i[g+376>>2]=i[A+16>>2],i[g+380>>2]=a,a=i[A+12>>2],i[g+368>>2]=i[A+8>>2],i[g+372>>2]=a,a=i[A+4>>2],i[g+360>>2]=i[A>>2],i[g+364>>2]=a,a=i[I+12>>2],i[g+408>>2]=i[I+8>>2],i[g+412>>2]=a,a=i[I+20>>2],i[g+416>>2]=i[I+16>>2],i[g+420>>2]=a,a=i[I+28>>2],i[g+424>>2]=i[I+24>>2],i[g+428>>2]=a,a=i[I+36>>2],i[g+432>>2]=i[I+32>>2],i[g+436>>2]=a,a=i[I+4>>2],i[g+400>>2]=i[I>>2],i[g+404>>2]=a,a=i[r+12>>2],i[g+448>>2]=i[r+8>>2],i[g+452>>2]=a,a=i[r+20>>2],i[g+456>>2]=i[r+16>>2],i[g+460>>2]=a,a=i[r+28>>2],i[g+464>>2]=i[r+24>>2],i[g+468>>2]=a,a=i[r+36>>2],i[g+472>>2]=i[r+32>>2],i[g+476>>2]=a,a=i[r+4>>2],i[g+440>>2]=i[r>>2],i[g+444>>2]=a,KA(t,a=g+360|0),b(a,t,c),b(e=g+400|0,B,_),b(E=g+440|0,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(a,t,c),b(e,B,_),b(E,_,c),KA(t,a),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),a=0;zA(e=g+8|0,a>>>1|0,C[(g+288|0)+a|0]),DA(t=g+128|0,A,e),b(A,t,c),b(I,B,_),b(r,_,c),b(Q,t,B),t=a>>>0<62,a=a+2|0,t;);s=g+480|0}function kA(A,I){A|=0;var g,C,B,Q,i,o=0,E=0,a=0,_=0,c=0,t=0;for(s=g=s-736|0,n(c=g+704|0,I|=0,I),n(E=g+224|0,I,c),n(_=g+672|0,I,E),n(a=g+640|0,_,_),n(C=g+416|0,c,a),n(c=g+320|0,I,C),n(o=g+608|0,a,a),n(a=g+288|0,c,c),n(t=g+576|0,C,a),n(i=g+448|0,o,a),n(B=g+544|0,t,t),n(t=g+384|0,o,B),n(Q=g+352|0,E,t),n(E=g+192|0,o,Q),n(o=g+160|0,_,E),n(g+96|0,_,o),n(E=g+512|0,B,Q),n(o=g+480|0,_,E),n(E=g+256|0,i,o),n(g+128|0,a,E),n(a=g- -64|0,t,o),n(o=g+32|0,_,a),n(g,C,o),n(A,c,g),_=0;n(A,A,A),126!=(0|(_=_+1|0)););return n(A,A,g+352|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+704|0),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+160|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+256|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g- -64|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+96|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+320|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+512|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+192|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+480|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+128|0),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,A),n(A,A,g+32|0),s=g+736|0,0-GI(I,32)|0}function FA(A,I,g){A|=0;var B,Q,i,E,a=0,_=0,c=0,t=0,r=0;return s=i=s-160|0,FI(I|=0,g|=0,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(i,I),tg(A,i),_=o[(Q=g)+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,c=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,t=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,r=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,g=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,E=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,B=I,I=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,C[B+24|0]=I,C[B+25|0]=I>>>8,C[B+26|0]=I>>>16,C[B+27|0]=I>>>24,C[B+28|0]=E,C[B+29|0]=E>>>8,C[B+30|0]=E>>>16,C[B+31|0]=E>>>24,C[B+16|0]=c,C[B+17|0]=c>>>8,C[B+18|0]=c>>>16,C[B+19|0]=c>>>24,C[B+20|0]=t,C[B+21|0]=t>>>8,C[B+22|0]=t>>>16,C[B+23|0]=t>>>24,C[B+8|0]=_,C[B+9|0]=_>>>8,C[B+10|0]=_>>>16,C[B+11|0]=_>>>24,C[B+12|0]=a,C[B+13|0]=a>>>8,C[B+14|0]=a>>>16,C[B+15|0]=a>>>24,C[0|B]=r,C[B+1|0]=r>>>8,C[B+2|0]=r>>>16,C[B+3|0]=r>>>24,C[B+4|0]=g,C[B+5|0]=g>>>8,C[B+6|0]=g>>>16,C[B+7|0]=g>>>24,c=o[(a=A)+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,t=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,r=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,g=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,I=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,A=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,_=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,a=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,C[B+56|0]=a,C[B+57|0]=a>>>8,C[B+58|0]=a>>>16,C[B+59|0]=a>>>24,C[B+60|0]=_,C[B+61|0]=_>>>8,C[B+62|0]=_>>>16,C[B+63|0]=_>>>24,C[B+48|0]=r,C[B+49|0]=r>>>8,C[B+50|0]=r>>>16,C[B+51|0]=r>>>24,C[B+52|0]=g,C[B+53|0]=g>>>8,C[B+54|0]=g>>>16,C[B+55|0]=g>>>24,C[B+40|0]=c,C[B+41|0]=c>>>8,C[B+42|0]=c>>>16,C[B+43|0]=c>>>24,C[B+44|0]=t,C[B+45|0]=t>>>8,C[B+46|0]=t>>>16,C[B+47|0]=t>>>24,C[B+32|0]=I,C[B+33|0]=I>>>8,C[B+34|0]=I>>>16,C[B+35|0]=I>>>24,C[B+36|0]=A,C[B+37|0]=A>>>8,C[B+38|0]=A>>>16,C[B+39|0]=A>>>24,s=i+160|0,0}function SA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-704|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+76>>2])|0,_=(r=i[A+72>>2])+(t=g<<3)|0,i[A+72>>2]=_,E=_>>>0<t>>>0?E+1|0:E,i[A+76>>2]=E,c=i[A+68>>2],E=(E=_=(0|E)==(0|a)&_>>>0<r>>>0|E>>>0<a>>>0)>>>0>(_=_+i[A+64>>2]|0)>>>0?c+1|0:c,_=(t=B>>>29|0)+_|0,i[A+64>>2]=_,i[A+68>>2]=_>>>0<t>>>0?E+1|0:E,_=A+80|0,(0|B)==(0|(c=f=0-((E=0)+((t=127&((7&a)<<29|r>>>3))>>>0>128)|0)|0))&g>>>0>=(r=128-t|0)>>>0|B>>>0>c>>>0){if(a=0,c=0,!E&(127^t)>>>0>=3|E)for(p=252&r;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(t+(E=1|a)|0)|0]=o[I+E|0],C[_+(t+(E=2|a)|0)|0]=o[I+E|0],C[_+(t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&r))for(;C[(E=a+t|0)+_|0]=o[I+a|0],E=c,c=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(k(A,_,Q,a=Q+640|0),I=I+r|0,!(B=B-((g>>>0<r>>>0)+f|0)|0)&(g=g-r|0)>>>0>127|B)for(;k(A,I,Q,a),I=I+128|0,!(B=B-(g>>>0<128)|0)&(g=g-128|0)>>>0>127|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,c=0,!B&g>>>0>=4|B)for(e=124&g,r=0,g=0,B=0;C[a+_|0]=o[I+a|0],C[(E=1|a)+_|0]=o[I+E|0],C[(E=2|a)+_|0]=o[I+E|0],C[(E=3|a)+_|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|r)!=(0|E););if(A|h)for(;C[a+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,704)}else{if(a=0,c=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+t|0)+_|0]=o[I+a|0],C[_+(r=t+(E=1|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=2|a)|0)|0]=o[I+E|0],C[_+(r=t+(E=3|a)|0)|0]=o[I+E|0],E=c,c=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+t|0)+_|0]=o[I+a|0],c=(a=a+1|0)?c:c+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+704|0,0}function NA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],y=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,e=i[A>>2],i[A>>2]=g&(e^i[I>>2])^e,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^y),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(y=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],e=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[y>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^e),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],y=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],e=i[A+116>>2],i[A+116>>2]=g&(e^i[I+116>>2])^e,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^y),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k),B=i[A+124>>2],s=i[I+124>>2],Q=i[A+128>>2],h=i[I+128>>2],o=i[A+132>>2],D=i[I+132>>2],E=i[A+136>>2],f=i[I+136>>2],a=i[A+140>>2],p=i[I+140>>2],_=i[A+144>>2],y=i[I+144>>2],c=i[A+148>>2],w=i[I+148>>2],t=i[A+152>>2],n=i[I+152>>2],r=i[A+120>>2],k=i[I+120>>2],e=i[I+156>>2],I=i[A+156>>2],i[A+156>>2]=g&(e^I)^I,i[A+152>>2]=t^g&(t^n),i[A+148>>2]=c^g&(c^w),i[A+144>>2]=_^g&(_^y),i[A+140>>2]=a^g&(a^p),i[A+136>>2]=E^g&(E^f),i[A+132>>2]=o^g&(o^D),i[A+128>>2]=Q^g&(Q^h),i[A+124>>2]=B^g&(B^s),i[A+120>>2]=r^g&(r^k)}function GA(A,I,g){var B,Q,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0;return s=B=s-320|0,R(o=B+240|0,g),b(o,o,g),R(A,o),b(A,A,g),b(A,A,I),PA(A,A),b(A,A,o),b(A,A,I),R(o=B+192|0,A),b(o,o,g),E=i[I+4>>2],h=i[I+8>>2],f=i[I+12>>2],p=i[I+16>>2],w=i[I+20>>2],n=i[I+24>>2],k=i[I+28>>2],F=i[I+32>>2],S=i[I>>2],g=i[B+192>>2],o=i[B+196>>2],a=i[B+200>>2],_=i[B+204>>2],c=i[B+208>>2],t=i[B+212>>2],r=i[B+216>>2],e=i[B+220>>2],y=i[B+224>>2],D=i[B+228>>2],N=i[I+36>>2],i[B+180>>2]=D-N,i[B+176>>2]=y-F,i[B+172>>2]=e-k,i[B+168>>2]=r-n,i[B+164>>2]=t-w,i[B+160>>2]=c-p,i[B+156>>2]=_-f,i[B+152>>2]=a-h,i[B+148>>2]=o-E,i[B+144>>2]=g-S,i[B+132>>2]=D+N,i[B+128>>2]=y+F,i[B+124>>2]=e+k,i[B+120>>2]=r+n,i[B+116>>2]=t+w,i[B+112>>2]=c+p,i[B+108>>2]=_+f,i[B+104>>2]=a+h,i[B+100>>2]=o+E,i[B+96>>2]=g+S,b(E=B+48|0,I,1632),i[B+84>>2]=D+i[B+84>>2],i[B+80>>2]=y+i[B+80>>2],i[B+76>>2]=e+i[B+76>>2],i[B+72>>2]=r+i[B+72>>2],i[B+68>>2]=t+i[B+68>>2],i[B+64>>2]=c+i[B+64>>2],i[B+60>>2]=_+i[B+60>>2],i[B+56>>2]=a+i[B+56>>2],i[B+52>>2]=o+i[B+52>>2],i[B+48>>2]=g+i[B+48>>2],QI(B,B+144|0),f=GI(B,32),QI(B,B+96|0),h=GI(B,32),QI(B,E),I=GI(B,32),b(B,A,1632),y=i[A+4>>2],e=i[A+8>>2],r=i[A+12>>2],t=i[A+16>>2],c=i[A+20>>2],_=i[A+24>>2],a=i[A+28>>2],o=i[A+32>>2],E=i[A>>2],p=i[B>>2],w=i[B+4>>2],n=i[B+8>>2],k=i[B+12>>2],F=i[B+16>>2],S=i[B+20>>2],D=i[B+24>>2],N=i[B+28>>2],Q=i[B+32>>2],g=(I=0-(I|h)|0)&((g=i[A+36>>2])^i[B+36>>2])^g,i[A+36>>2]=g,o^=I&(o^Q),i[A+32>>2]=o,a^=I&(a^N),i[A+28>>2]=a,_^=I&(_^D),i[A+24>>2]=_,c^=I&(c^S),i[A+20>>2]=c,t^=I&(t^F),i[A+16>>2]=t,r^=I&(r^k),i[A+12>>2]=r,e^=I&(e^n),i[A+8>>2]=e,y^=I&(y^w),i[A+4>>2]=y,E^=I&(E^p),i[A>>2]=E,QI(B+288|0,A),I=0-(1&C[B+288|0])|0,i[A+36>>2]=g^I&(g^0-g),i[A+32>>2]=o^I&(o^0-o),i[A+28>>2]=a^I&(a^0-a),i[A+24>>2]=_^I&(_^0-_),i[A+20>>2]=c^I&(c^0-c),i[A+16>>2]=t^I&(t^0-t),i[A+12>>2]=r^I&(r^0-r),i[A+8>>2]=e^I&(e^0-e),i[A+4>>2]=y^I&(y^0-y),i[A>>2]=E^I&(E^0-E),s=B+320|0,h|f}function MA(A,I){var g,B,Q,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0;return s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(a=g+240|0,B),b(_=g+192|0,a,1584),i[g+192>>2]=i[g+192>>2]+1,c=i[g+240>>2]-1|0,i[g+240>>2]=c,t=i[g+244>>2],r=i[g+248>>2],e=i[g+252>>2],y=i[g+256>>2],h=i[g+260>>2],D=i[g+264>>2],f=i[g+268>>2],p=i[g+272>>2],w=i[g+276>>2],b(A,a,_),PA(A,A),b(A,a,A),R(a=g+144|0,A),b(a,a,_),a=i[g+180>>2],i[g+132>>2]=a-w,_=i[g+176>>2],i[g+128>>2]=_-p,n=i[g+172>>2],i[g+124>>2]=n-f,k=i[g+168>>2],i[g+120>>2]=k-D,F=i[g+164>>2],i[g+116>>2]=F-h,S=i[g+160>>2],i[g+112>>2]=S-y,N=i[g+156>>2],i[g+108>>2]=N-e,G=i[g+152>>2],i[g+104>>2]=G-r,M=i[g+148>>2],i[g+100>>2]=M-t,K=i[g+144>>2],i[g+96>>2]=K-c,i[g+84>>2]=a+w,i[g+80>>2]=_+p,i[g+76>>2]=f+n,i[g+72>>2]=D+k,i[g+68>>2]=h+F,i[g+64>>2]=y+S,i[g+60>>2]=e+N,i[g+56>>2]=r+G,i[g+52>>2]=t+M,i[g+48>>2]=c+K,QI(g,g+96|0),p=GI(g,32),QI(g,g+48|0),n=GI(g,32),b(g,A,1632),f=i[A+4>>2],D=i[A+8>>2],h=i[A+12>>2],y=i[A+16>>2],e=i[A+20>>2],r=i[A+24>>2],t=i[A+28>>2],c=i[A+32>>2],w=i[A>>2],k=i[g>>2],F=i[g+4>>2],S=i[g+8>>2],N=i[g+12>>2],G=i[g+16>>2],M=i[g+20>>2],K=i[g+24>>2],Q=i[g+28>>2],E=i[g+32>>2],_=(a=p-1|0)&((_=i[A+36>>2])^i[g+36>>2])^_,i[A+36>>2]=_,c^=a&(c^E),i[A+32>>2]=c,t^=a&(t^Q),i[A+28>>2]=t,r^=a&(r^K),i[A+24>>2]=r,e^=a&(e^M),i[A+20>>2]=e,y^=a&(y^G),i[A+16>>2]=y,h^=a&(h^N),i[A+12>>2]=h,D^=a&(D^S),i[A+8>>2]=D,f^=a&(f^F),i[A+4>>2]=f,a=w^a&(w^k),i[A>>2]=a,QI(g+288|0,A),I=0-(1&C[g+288|0]^o[I+31|0]>>>7^o[38144]>>>2)|0,i[A+36>>2]=_^I&(_^0-_),i[A+32>>2]=c^I&(c^0-c),i[A+28>>2]=t^I&(t^0-t),i[A+24>>2]=r^I&(r^0-r),i[A+20>>2]=e^I&(e^0-e),i[A+16>>2]=y^I&(y^0-y),i[A+12>>2]=h^I&(h^0-h),i[A+8>>2]=D^I&(D^0-D),i[A+4>>2]=f^I&(f^0-f),i[A>>2]=a^I&(a^0-a),b(A+120|0,A,B),s=g+320|0,(p|n)-1|0}function KA(A,I){var g,C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0;s=g=s-48|0,R(A,I),R(A+80|0,I+40|0),v(A+120|0,I+80|0),h=i[I+44>>2],D=i[I+4>>2],n=i[I+48>>2],f=i[I+8>>2],k=i[I+52>>2],p=i[I+12>>2],F=i[I+56>>2],w=i[I+16>>2],K=i[I+60>>2],S=i[I+20>>2],U=i[I- -64>>2],N=i[I+24>>2],b=i[I+68>>2],G=i[I+28>>2],H=i[I+72>>2],Y=i[I+32>>2],J=i[I+40>>2],M=i[I>>2],i[A+76>>2]=i[I+76>>2]+i[I+36>>2],i[A+72>>2]=H+Y,i[A+68>>2]=b+G,i[(C=A- -64|0)>>2]=U+N,i[A+60>>2]=K+S,i[A+56>>2]=F+w,i[A+52>>2]=k+p,i[A+48>>2]=n+f,i[A+44>>2]=h+D,i[A+40>>2]=J+M,R(g,A+40|0),I=i[A+4>>2],h=i[A+84>>2],D=i[A+8>>2],n=i[A+88>>2],f=i[A+12>>2],k=i[A+92>>2],p=i[A+16>>2],F=i[A+96>>2],w=i[A+20>>2],K=i[A+100>>2],S=i[A+24>>2],U=i[A+104>>2],N=i[A+28>>2],b=i[A+108>>2],G=i[A+32>>2],H=i[A+112>>2],Y=i[A>>2],J=i[A+80>>2],Q=(M=i[A+116>>2])-(B=i[A+36>>2])|0,i[A+116>>2]=Q,o=H-G|0,i[A+112>>2]=o,E=b-N|0,i[A+108>>2]=E,a=U-S|0,i[A+104>>2]=a,_=K-w|0,i[A+100>>2]=_,c=F-p|0,i[A+96>>2]=c,t=k-f|0,i[A+92>>2]=t,r=n-D|0,i[A+88>>2]=r,e=h-I|0,i[A+84>>2]=e,y=J-Y|0,i[A+80>>2]=y,M=M+B|0,i[A+76>>2]=M,G=G+H|0,i[A+72>>2]=G,N=N+b|0,i[A+68>>2]=N,S=S+U|0,i[C>>2]=S,w=w+K|0,i[A+60>>2]=w,p=p+F|0,i[A+56>>2]=p,f=f+k|0,i[A+52>>2]=f,D=D+n|0,i[A+48>>2]=D,I=I+h|0,i[A+44>>2]=I,h=Y+J|0,i[A+40>>2]=h,n=i[g>>2],k=i[g+4>>2],F=i[g+8>>2],K=i[g+12>>2],U=i[g+16>>2],b=i[g+20>>2],H=i[g+24>>2],Y=i[g+28>>2],J=i[g+32>>2],i[A+36>>2]=i[g+36>>2]-M,i[A+32>>2]=J-G,i[A+28>>2]=Y-N,i[A+24>>2]=H-S,i[A+20>>2]=b-w,i[A+16>>2]=U-p,i[A+12>>2]=K-f,i[A+8>>2]=F-D,i[A+4>>2]=k-I,i[A>>2]=n-h,I=i[A+124>>2],h=i[A+128>>2],D=i[A+132>>2],n=i[A+136>>2],f=i[A+140>>2],k=i[A+144>>2],p=i[A+148>>2],F=i[A+152>>2],w=i[A+120>>2],i[A+156>>2]=i[A+156>>2]-Q,i[A+152>>2]=F-o,i[A+148>>2]=p-E,i[A+144>>2]=k-a,i[A+140>>2]=f-_,i[A+136>>2]=n-c,i[A+132>>2]=D-t,i[A+128>>2]=h-r,i[A+124>>2]=I-e,i[A+120>>2]=w-y,s=g+48|0}function UA(A,I,g,B){var Q,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0;if(s=Q=s-288|0,g|B)if(E=(B<<3|g>>>29)+(a=c=i[A+36>>2])|0,_=(t=i[A+32>>2])+(r=g<<3)|0,i[A+32>>2]=_,i[A+36>>2]=_>>>0<r>>>0?E+1|0:E,c=A+40|0,(0|B)==(0|(_=f=0-((E=0)+((r=63&((7&a)<<29|t>>>3))>>>0>64)|0)|0))&g>>>0>=(t=64-r|0)>>>0|B>>>0>_>>>0){if(a=0,_=0,!E&(63^r)>>>0>=3|E)for(p=124&t;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(r+(E=1|a)|0)|0]=o[I+E|0],C[c+(r+(E=2|a)|0)|0]=o[I+E|0],C[c+(r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|e)!=(0|p)|(0|D)!=(0|E););if(h=E=0,E|(e=3&t))for(;C[(E=a+r|0)+c|0]=o[I+a|0],E=_,_=(a=a+1|0)?E:E+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|e)!=(0|y)|(0|h)!=(0|E););if(J(A,c,Q,a=Q+256|0),I=I+t|0,!(B=B-((g>>>0<t>>>0)+f|0)|0)&(g=g-t|0)>>>0>63|B)for(;J(A,I,Q,a),I=I- -64|0,E=B-1|0,!(B=(g=g+-64|0)>>>0<4294967232?E+1|0:E)&g>>>0>63|B;);if(g|B){if(A=3&g,y=0,D=0,a=0,_=0,!B&g>>>0>=4|B)for(e=60&g,t=0,g=0,B=0;C[a+c|0]=o[I+a|0],C[(E=1|a)+c|0]=o[I+E|0],C[(E=2|a)+c|0]=o[I+E|0],C[(E=3|a)+c|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=B,B=E=(g=g+4|0)>>>0<4?E+1|0:E,(0|g)!=(0|e)|(0|t)!=(0|E););if(A|h)for(;C[a+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|A)!=(0|y)|(0|h)!=(0|E););}XC(Q,288)}else{if(a=0,_=0,!B&g>>>0>=4|B)for(A=-4&g;C[(E=a+r|0)+c|0]=o[I+a|0],C[c+(t=r+(E=1|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=2|a)|0)|0]=o[I+E|0],C[c+(t=r+(E=3|a)|0)|0]=o[I+E|0],E=_,_=(a=a+4|0)>>>0<4?E+1|0:E,E=h,h=E=(e=e+4|0)>>>0<4?E+1|0:E,(0|A)!=(0|e)|(0|B)!=(0|E););if((g&=3)|(A=0))for(;C[(B=a+r|0)+c|0]=o[I+a|0],_=(a=a+1|0)?_:_+1|0,E=D,D=E=(y=y+1|0)?E:E+1|0,(0|g)!=(0|y)|(0|A)!=(0|E););}return s=Q+288|0,0}function bA(A,I,g,C,B,Q){var o=0;i[Q>>2]=8;A:{I:{o=A,o=(A=!I&A>>>0<=32768)?32768:o;g:{C:{if(!(A=A?0:I)&g>>>5>>>0<=o>>>0|A){if(g>>>0>=4096)break C;I=1;break g}if(i[B>>2]=1,A=1,(I=(o>>>0)/(i[Q>>2]<<2>>>0)|0)>>>0<4)break A;if(A=2,I>>>0<8)break A;if(I>>>0<16)return void(i[C>>2]=3);if(I>>>0<32)return void(i[C>>2]=4);if(I>>>0<64)return void(i[C>>2]=5);if(I>>>0<128)return void(i[C>>2]=6);if(I>>>0<256)return void(i[C>>2]=7);if(I>>>0<512)return void(i[C>>2]=8);if(I>>>0<1024)return void(i[C>>2]=9);if(I>>>0<2048)return void(i[C>>2]=10);if(I>>>0<4096)return void(i[C>>2]=11);if(I>>>0<8192)return void(i[C>>2]=12);if(I>>>0<16384)return void(i[C>>2]=13);if(I>>>0<32768)return void(i[C>>2]=14);if(I>>>0<65536)return void(i[C>>2]=15);if(I>>>0<131072)return void(i[C>>2]=16);if(I>>>0<262144)return void(i[C>>2]=17);if(I>>>0<524288)return void(i[C>>2]=18);if(I>>>0<1048576)return void(i[C>>2]=19);if(I>>>0<2097152)return void(i[C>>2]=20);if(I>>>0<4194304)return void(i[C>>2]=21);if(I>>>0<8388608)return void(i[C>>2]=22);if(I>>>0<16777216)return void(i[C>>2]=23);if(I>>>0>=33554432)break I;return void(i[C>>2]=24)}I=2,g>>>0<8192||(I=3,g>>>0<16384||(I=4,g>>>0<32768||(I=5,g>>>0<65536||(I=6,g>>>0<131072||(I=7,g>>>0<262144||(I=8,g>>>0<524288||(I=9,g>>>0<1048576||(I=10,g>>>0<2097152||(I=11,g>>>0<4194304||(I=12,g>>>0<8388608||(I=13,g>>>0<16777216||(I=14,g>>>0<33554432||(I=15,g>>>0<67108864||(I=16,g>>>0<134217728||(I=17,g>>>0<268435456||(I=18,g>>>0<536870912||(I=19,g>>>0<1073741824||(I=(0|g)>=0?20:21))))))))))))))))))}return g=I,i[C>>2]=g,A=(I=A)>>>2|0,I=(3&I)<<30|o>>>2,C=31&g,(63&g)>>>0>=32?(g=0,A=A>>>C|0):(g=A>>>C|0,A=((1<<C)-1&A)<<32-C|I>>>C),void(i[B>>2]=((!g&A>>>0>=1073741823|g?1073741823:A)>>>0)/E[Q>>2])}A=I>>>0<67108864?25:26}i[C>>2]=A}function HA(A,I,g){var C,B,Q,o,E,a,_,c,t=0;s=C=s-160|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+44>>2]=0,i[A+48>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,i[A+52>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+64>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[A+80>>2]=1,bg(A+84|0,0,76),NA(A,I,(255&(1^(t=g-((g>>31&g)<<1)|0)))-1>>>31|0),NA(A,I+160|0,(255&(2^t))-1>>>31|0),NA(A,I+320|0,(255&(3^t))-1>>>31|0),NA(A,I+480|0,(255&(4^t))-1>>>31|0),NA(A,I+640|0,(255&(5^t))-1>>>31|0),NA(A,I+800|0,(255&(6^t))-1>>>31|0),NA(A,I+960|0,(255&(7^t))-1>>>31|0),NA(A,I+1120|0,(255&(8^t))-1>>>31|0),I=i[A+76>>2],i[C+32>>2]=i[A+72>>2],i[C+36>>2]=I,t=i[4+(I=A- -64|0)>>2],i[C+24>>2]=i[I>>2],i[C+28>>2]=t,I=i[A+60>>2],i[C+16>>2]=i[A+56>>2],i[C+20>>2]=I,I=i[A+52>>2],i[C+8>>2]=i[A+48>>2],i[C+12>>2]=I,I=i[A+44>>2],i[C>>2]=i[A+40>>2],i[C+4>>2]=I,I=i[A+36>>2],i[C+72>>2]=i[A+32>>2],i[C+76>>2]=I,t=i[A+28>>2],i[(I=C- -64|0)>>2]=i[A+24>>2],i[I+4>>2]=t,I=i[A+20>>2],i[C+56>>2]=i[A+16>>2],i[C+60>>2]=I,I=i[A+12>>2],i[C+48>>2]=i[A+8>>2],i[C+52>>2]=I,I=i[A+4>>2],i[C+40>>2]=i[A>>2],i[C+44>>2]=I,I=i[A+92>>2],i[C+88>>2]=i[A+88>>2],i[C+92>>2]=I,I=i[A+100>>2],i[C+96>>2]=i[A+96>>2],i[C+100>>2]=I,I=i[A+108>>2],i[C+104>>2]=i[A+104>>2],i[C+108>>2]=I,I=i[A+116>>2],i[C+112>>2]=i[A+112>>2],i[C+116>>2]=I,I=i[A+84>>2],i[C+80>>2]=i[A+80>>2],i[C+84>>2]=I,I=i[A+124>>2],t=i[A+128>>2],B=i[A+132>>2],Q=i[A+136>>2],o=i[A+140>>2],E=i[A+144>>2],a=i[A+148>>2],_=i[A+152>>2],c=i[A+120>>2],i[C+156>>2]=0-i[A+156>>2],i[C+152>>2]=0-_,i[C+148>>2]=0-a,i[C+144>>2]=0-E,i[C+140>>2]=0-o,i[C+136>>2]=0-Q,i[C+132>>2]=0-B,i[C+128>>2]=0-t,i[C+124>>2]=0-I,i[C+120>>2]=0-c,NA(A,C,(128&g)>>>7|0),s=C+160|0}function YA(A,I){A|=0,I|=0;var g,B,Q,E,a,_=0,c=0,t=0;return s=c=s-192|0,ag(c,32),FI(I,c,32,0),C[0|I]=248&o[0|I],C[I+31|0]=63&o[I+31|0]|64,nA(t=c+32|0,I),tg(A,t),g=c,t=i[c+28>>2],c=i[c+24>>2],C[I+24|0]=c,C[I+25|0]=c>>>8,C[I+26|0]=c>>>16,C[I+27|0]=c>>>24,C[I+28|0]=t,C[I+29|0]=t>>>8,C[I+30|0]=t>>>16,C[I+31|0]=t>>>24,t=i[g+20>>2],c=i[g+16>>2],C[I+16|0]=c,C[I+17|0]=c>>>8,C[I+18|0]=c>>>16,C[I+19|0]=c>>>24,C[I+20|0]=t,C[I+21|0]=t>>>8,C[I+22|0]=t>>>16,C[I+23|0]=t>>>24,t=i[g+12>>2],c=i[g+8>>2],C[I+8|0]=c,C[I+9|0]=c>>>8,C[I+10|0]=c>>>16,C[I+11|0]=c>>>24,C[I+12|0]=t,C[I+13|0]=t>>>8,C[I+14|0]=t>>>16,C[I+15|0]=t>>>24,t=i[g+4>>2],c=i[g>>2],C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,C[I+4|0]=t,C[I+5|0]=t>>>8,C[I+6|0]=t>>>16,C[I+7|0]=t>>>24,B=o[(_=A)+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,Q=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,E=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,c=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,A=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[I+56|0]=_,C[I+57|0]=_>>>8,C[I+58|0]=_>>>16,C[I+59|0]=_>>>24,C[I+60|0]=a,C[I+61|0]=a>>>8,C[I+62|0]=a>>>16,C[I+63|0]=a>>>24,C[I+48|0]=E,C[I+49|0]=E>>>8,C[I+50|0]=E>>>16,C[I+51|0]=E>>>24,C[I+52|0]=t,C[I+53|0]=t>>>8,C[I+54|0]=t>>>16,C[I+55|0]=t>>>24,C[I+40|0]=B,C[I+41|0]=B>>>8,C[I+42|0]=B>>>16,C[I+43|0]=B>>>24,C[I+44|0]=Q,C[I+45|0]=Q>>>8,C[I+46|0]=Q>>>16,C[I+47|0]=Q>>>24,C[I+32|0]=c,C[I+33|0]=c>>>8,C[I+34|0]=c>>>16,C[I+35|0]=c>>>24,C[I+36|0]=A,C[I+37|0]=A>>>8,C[I+38|0]=A>>>16,C[I+39|0]=A>>>24,XC(g,32),s=g+192|0,0}function JA(A,I){I|=0;var g,B,Q=0,o=0,E=0,a=0;return s=g=s-288|0,o=40+((Q=i[32+(A|=0)>>2]>>>3&63)+A|0)|0,Q>>>0>=56?(Ng(o,35520,64-Q|0),J(A,A+40|0,g,g+256|0),i[A+88>>2]=0,i[A+92>>2]=0,i[A+80>>2]=0,i[A+84>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,i[(Q=A- -64|0)>>2]=0,i[Q+4>>2]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+48>>2]=0,i[A+52>>2]=0,i[A+40>>2]=0,i[A+44>>2]=0):Ng(o,35520,56-Q|0),E=(Q=16711680&(o=i[A+32>>2]))>>>8|0,a=Q<<24,B=(Q=-16777216&o)>>>24|0,Q=(a|=Q<<8)|-16777216&((255&(Q=i[A+36>>2]))<<24|o>>>8)|16711680&((16777215&Q)<<8|o>>>24)|Q>>>8&65280|Q>>>24,C[A+96|0]=Q,C[A+97|0]=Q>>>8,C[A+98|0]=Q>>>16,C[A+99|0]=Q>>>24,Q=E|B|o<<24|(65280&o)<<8,Q|=E=0,C[A+100|0]=Q,C[A+101|0]=Q>>>8,C[A+102|0]=Q>>>16,C[A+103|0]=Q>>>24,J(A,A+40|0,g,g+256|0),Q=(Q=i[A>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,Q=(Q=i[A+4>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+4|0]=Q,C[I+5|0]=Q>>>8,C[I+6|0]=Q>>>16,C[I+7|0]=Q>>>24,Q=(Q=i[A+8>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,Q=(Q=i[A+12>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+12|0]=Q,C[I+13|0]=Q>>>8,C[I+14|0]=Q>>>16,C[I+15|0]=Q>>>24,Q=(Q=i[A+16>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,Q=(Q=i[A+20>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+20|0]=Q,C[I+21|0]=Q>>>8,C[I+22|0]=Q>>>16,C[I+23|0]=Q>>>24,Q=(Q=i[A+24>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,Q=(Q=i[A+28>>2])<<24|(65280&Q)<<8|Q>>>8&65280|Q>>>24,C[I+28|0]=Q,C[I+29|0]=Q>>>8,C[I+30|0]=Q>>>16,C[I+31|0]=Q>>>24,XC(g,288),XC(A,104),s=g+288|0,0}function dA(A,I){A|=0;var g,B=0;s=g=s+-64|0,B=o[60+(I|=0)|0]|o[I+61|0]<<8|o[I+62|0]<<16|o[I+63|0]<<24,i[g+56>>2]=o[I+56|0]|o[I+57|0]<<8|o[I+58|0]<<16|o[I+59|0]<<24,i[g+60>>2]=B,B=o[I+52|0]|o[I+53|0]<<8|o[I+54|0]<<16|o[I+55|0]<<24,i[g+48>>2]=o[I+48|0]|o[I+49|0]<<8|o[I+50|0]<<16|o[I+51|0]<<24,i[g+52>>2]=B,B=o[I+44|0]|o[I+45|0]<<8|o[I+46|0]<<16|o[I+47|0]<<24,i[g+40>>2]=o[I+40|0]|o[I+41|0]<<8|o[I+42|0]<<16|o[I+43|0]<<24,i[g+44>>2]=B,B=o[I+36|0]|o[I+37|0]<<8|o[I+38|0]<<16|o[I+39|0]<<24,i[g+32>>2]=o[I+32|0]|o[I+33|0]<<8|o[I+34|0]<<16|o[I+35|0]<<24,i[g+36>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,S(g),I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(g,64),s=g- -64|0}function mA(A,I,g){A|=0,I|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0;if(s=B=s-96|0,(g|=0)>>>0>=65&&($I(A),UA(A,I,g,0),JA(A,B),g=32,I=B),$I(A),i[B+88>>2]=909522486,i[B+92>>2]=909522486,i[B+80>>2]=909522486,i[B+84>>2]=909522486,i[B+72>>2]=909522486,i[B+76>>2]=909522486,i[(a=r=B- -64|0)>>2]=909522486,i[a+4>>2]=909522486,i[B+56>>2]=909522486,i[B+60>>2]=909522486,i[B+48>>2]=909522486,i[B+52>>2]=909522486,i[B+40>>2]=909522486,i[B+44>>2]=909522486,i[B+32>>2]=909522486,i[B+36>>2]=909522486,g){if(g>>>0>=4)for(_=124&g;C[0|(E=(a=B+32|0)+Q|0)]=o[0|E]^o[I+Q|0],C[0|(e=(E=1|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(e=(E=2|Q)+a|0)]=o[0|e]^o[I+E|0],C[0|(E=(E=a)+(a=3|Q)|0)]=o[0|E]^o[I+a|0],Q=Q+4|0,(0|_)!=(0|(c=c+4|0)););if(c=3&g)for(;C[0|(a=(B+32|0)+Q|0)]=o[0|a]^o[I+Q|0],Q=Q+1|0,(0|c)!=(0|(t=t+1|0)););}if(UA(A,B+32|0,64,0),$I(a=A+104|0),i[B+88>>2]=1549556828,i[B+92>>2]=1549556828,i[B+80>>2]=1549556828,i[B+84>>2]=1549556828,i[B+72>>2]=1549556828,i[B+76>>2]=1549556828,i[r>>2]=1549556828,i[r+4>>2]=1549556828,i[B+56>>2]=1549556828,i[B+60>>2]=1549556828,i[B+48>>2]=1549556828,i[B+52>>2]=1549556828,i[B+40>>2]=1549556828,i[B+44>>2]=1549556828,i[B+32>>2]=1549556828,i[B+36>>2]=1549556828,g){if(t=0,Q=0,g>>>0>=4)for(r=124&g,c=0;C[0|(_=(A=B+32|0)+Q|0)]=o[0|_]^o[I+Q|0],C[0|(E=(_=1|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(E=(_=2|Q)+A|0)]=o[0|E]^o[I+_|0],C[0|(_=(E=A)+(A=3|Q)|0)]=o[0|_]^o[A+I|0],Q=Q+4|0,(0|r)!=(0|(c=c+4|0)););if(A=3&g)for(;C[0|(g=(B+32|0)+Q|0)]=o[0|g]^o[I+Q|0],Q=Q+1|0,(0|A)!=(0|(t=t+1|0)););}return UA(a,A=B+32|0,64,0),XC(A,64),XC(B,32),s=B+96|0,0}function lA(A,I,g,C,B,o,E){var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(I-65>>>0<4294967232|E>>>0>64)A=-1;else{e=a=s,s=a=a-512&-64;A:{I:if(!(!(!(C|B)|g)|!A|((_=255&I)-65&255)>>>0<=191|!(!(I=255&E)||o)|I>>>0>=65)){if(I){if(!o)break I;bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^(I<<8|_),i[a+4>>2]=I>>>24^1779033703,bg((E=a+384|0)+I|0,0,128-I|0),Ng(E,o,I),Ng(a+96|0,E,128),i[a+352>>2]=128,XC(E,128),I=128}else bg(a- -64|0,0,293),i[a+56>>2]=327033209,i[a+60>>2]=1541459225,i[a+48>>2]=-79577749,i[a+52>>2]=528734635,i[a+40>>2]=725511199,i[a+44>>2]=-1694144372,i[a+32>>2]=-1377402159,i[a+36>>2]=1359893119,i[a+24>>2]=1595750129,i[a+28>>2]=-1521486534,i[a+16>>2]=-23791573,i[a+20>>2]=1013904242,i[a+8>>2]=-2067093701,i[a+12>>2]=-1150833019,i[a>>2]=-222443256^_,i[a+4>>2]=1779033703,I=0;g:if(C|B)for(y=a+224|0,c=a+96|0;;){if(E=I+c|0,!B&C>>>0<=(o=256-I|0)>>>0){Ng(E,g,C),i[a+352>>2]=C+i[a+352>>2];break g}if(Ng(E,g,o),i[a+352>>2]=o+i[a+352>>2],t=I=i[a+68>>2],I=(r=(E=i[a+64>>2])+128|0)>>>0<128?I+1|0:I,i[a+64>>2]=r,i[a+68>>2]=I,I=i[a+76>>2],I=(t=E=-1==(0|t)&E>>>0>4294967167)>>>0>(E=E+i[a+72>>2]|0)>>>0?I+1|0:I,i[a+72>>2]=E,i[a+76>>2]=I,p(a,c),Ng(c,y,128),I=i[a+352>>2]-128|0,i[a+352>>2]=I,g=g+o|0,!((B=B-(C>>>0<o>>>0)|0)|(C=C-o|0)))break}AA(a,A,_),s=e;break A}rC(),Q()}A=0}return A}function uA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,C[g+64|0]=1,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function xA(A,I){A|=0,I|=0;var g,B=0;s=g=s-128|0,i[g+80>>2]=0,i[g+84>>2]=0,i[g+88>>2]=0,i[g+92>>2]=0,i[g+40>>2]=0,i[g+44>>2]=0,i[g+48>>2]=0,i[g+52>>2]=0,i[g+56>>2]=0,i[g+60>>2]=0,B=i[8799],i[g+104>>2]=i[8798],i[g+108>>2]=B,B=i[8801],i[g+112>>2]=i[8800],i[g+116>>2]=B,B=i[8803],i[g+120>>2]=i[8802],i[g+124>>2]=B,i[g+64>>2]=0,i[g+68>>2]=0,i[g+72>>2]=0,i[g+76>>2]=0,i[g+32>>2]=0,i[g+36>>2]=0,B=i[8797],i[g+96>>2]=i[8796],i[g+100>>2]=B,B=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[g+16>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[g+20>>2]=B,B=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[g+24>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,i[g+28>>2]=B,B=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24,i[g>>2]=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24,i[g+4>>2]=B,B=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[g+8>>2]=o[I+8|0]|o[I+9|0]<<8|o[I+10|0]<<16|o[I+11|0]<<24,i[g+12>>2]=B,Eg(I=g- -64|0,g),S(I),I=i[g+92>>2],B=i[g+88>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[g+84>>2],B=i[g+80>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+76>>2],B=i[g+72>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+68>>2],B=i[g+64>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=g+128|0}function vA(A,I,g,B){var Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{if((E=i[A+56>>2])|(Q=i[A+60>>2])){if(e=_=16-E|0,t=(_=(0|(a=0-((E>>>0>16)+Q|0)|0))==(0|B)&g>>>0>_>>>0|B>>>0>a>>>0)?e:g,e=_=_?a:B,_|t){if(_=A- -64|0,a=0,E=0,!e&t>>>0>=4|e)for(r=-4&t;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(y=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=(y=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+y|0],Q=E,E=(a=a+4|0)>>>0<4?Q+1|0:Q,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|c)!=(0|r)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&t))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=i[A+56>>2],Q=i[A+60>>2]}if(Q=Q+e|0,Q=(E=E+t|0)>>>0<t>>>0?Q+1|0:Q,i[A+56>>2]=E,i[A+60>>2]=Q,!Q&E>>>0<16)break A;rA(A,A- -64|0,16,0),i[A+56>>2]=0,i[A+60>>2]=0,g=(E=g)-t|0,B=B-((E>>>0<t>>>0)+e|0)|0,I=I+t|0}if(!B&g>>>0>=16|B&&(rA(A,I,E=-16&g,B),g&=15,B=0,I=I+E|0),g|B){if(_=A- -64|0,s=0,D=0,a=0,E=0,!B&g>>>0>=4|B)for(t=12&g,e=0,c=0;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],Q=(r=1|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=2|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],Q=(r=3|a)+i[A+56>>2]|0,C[Q+_|0]=o[I+r|0],E=(a=a+4|0)>>>0<4?E+1|0:E,Q=h,h=Q=(c=c+4|0)>>>0<4?Q+1|0:Q,(0|t)!=(0|c)|(0|e)!=(0|Q););if(h=Q=0,Q|(c=3&g))for(;Q=a+i[A+56>>2]|0,C[Q+_|0]=o[I+a|0],E=(a=a+1|0)?E:E+1|0,Q=D,D=Q=(s=s+1|0)?Q:Q+1|0,(0|c)!=(0|s)|(0|h)!=(0|Q););E=B+i[A+60>>2]|0,E=(I=g+i[A+56>>2]|0)>>>0<g>>>0?E+1|0:E,i[A+56>>2]=I,i[A+60>>2]=E}}}function RA(A,I,g){var C,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0;s=i[I+4>>2],B=i[A+4>>2],h=i[I+8>>2],Q=i[A+8>>2],D=i[I+12>>2],o=i[A+12>>2],f=i[I+16>>2],E=i[A+16>>2],p=i[I+20>>2],a=i[A+20>>2],e=i[I+24>>2],_=i[A+24>>2],w=i[I+28>>2],c=i[A+28>>2],n=i[I+32>>2],t=i[A+32>>2],k=i[I+36>>2],r=i[A+36>>2],g=0-g|0,y=i[A>>2],i[A>>2]=g&(y^i[I>>2])^y,i[A+36>>2]=r^g&(r^k),i[A+32>>2]=t^g&(t^n),i[A+28>>2]=c^g&(c^w),i[A+24>>2]=_^g&(_^e),i[A+20>>2]=a^g&(a^p),i[A+16>>2]=E^g&(E^f),i[A+12>>2]=o^g&(o^D),i[A+8>>2]=Q^g&(Q^h),i[A+4>>2]=B^g&(B^s),B=i[A+44>>2],s=i[I+44>>2],Q=i[A+48>>2],h=i[I+48>>2],o=i[A+52>>2],D=i[I+52>>2],E=i[A+56>>2],f=i[I+56>>2],a=i[A+60>>2],p=i[I+60>>2],_=i[(e=A- -64|0)>>2],w=i[I- -64>>2],c=i[A+68>>2],n=i[I+68>>2],t=i[A+72>>2],k=i[I+72>>2],r=i[A+40>>2],y=i[I+40>>2],C=i[A+76>>2],i[A+76>>2]=C^g&(i[I+76>>2]^C),i[A+72>>2]=t^g&(t^k),i[A+68>>2]=c^g&(c^n),i[e>>2]=_^g&(_^w),i[A+60>>2]=a^g&(a^p),i[A+56>>2]=E^g&(E^f),i[A+52>>2]=o^g&(o^D),i[A+48>>2]=Q^g&(Q^h),i[A+44>>2]=B^g&(B^s),i[A+40>>2]=r^g&(r^y),B=i[A+84>>2],s=i[I+84>>2],Q=i[A+88>>2],h=i[I+88>>2],o=i[A+92>>2],D=i[I+92>>2],E=i[A+96>>2],f=i[I+96>>2],a=i[A+100>>2],p=i[I+100>>2],_=i[A+104>>2],e=i[I+104>>2],c=i[A+108>>2],w=i[I+108>>2],t=i[A+112>>2],n=i[I+112>>2],r=i[A+80>>2],k=i[I+80>>2],y=i[I+116>>2],I=i[A+116>>2],i[A+116>>2]=g&(y^I)^I,i[A+112>>2]=t^g&(t^n),i[A+108>>2]=c^g&(c^w),i[A+104>>2]=_^g&(_^e),i[A+100>>2]=a^g&(a^p),i[A+96>>2]=E^g&(E^f),i[A+92>>2]=o^g&(o^D),i[A+88>>2]=Q^g&(Q^h),i[A+84>>2]=B^g&(B^s),i[A+80>>2]=r^g&(r^k)}function LA(A,I){var g,C,B=0;for(s=g=s-192|0,R(C=g+144|0,I),R(B=g+96|0,C),R(B,B),b(B,I,B),b(C,C,B),R(I=g+48|0,C),b(B,B,I),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(I,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B,I,B),R(I,B),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(I,I,B),R(g,I),I=1;R(g,g),100!=(0|(I=I+1|0)););b(I=g+48|0,g,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),R(I,I),b(B=g+96|0,I,B),R(B,B),R(B,B),R(B,B),R(B,B),R(B,B),b(A,B,g+144|0),s=g+192|0}function PA(A,I){var g,C=0,B=0;for(s=g=s-144|0,R(B=g+96|0,I),R(C=g+48|0,B),R(C,C),b(C,I,C),b(B,B,C),R(B,B),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),R(g,g),b(C,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B,C,B),R(C,B),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(C,C,B),R(g,C),C=1;R(g,g),100!=(0|(C=C+1|0)););b(C=g+48|0,g,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),R(C,C),b(B=g+96|0,C,B),R(B,B),R(B,B),b(A,B,I),s=g+144|0}function qA(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S=0,N=0,G=0,M=0;s=g=s-320|0,fA(B=A+40|0,I),i[A+84>>2]=0,i[A+88>>2]=0,i[A+80>>2]=1,i[A+92>>2]=0,i[A+96>>2]=0,i[A+100>>2]=0,i[A+104>>2]=0,i[A+108>>2]=0,i[A+112>>2]=0,i[A+116>>2]=0,R(G=g+240|0,B),b(N=g+192|0,G,1584),M=-1,Q=i[g+240>>2]-1|0,i[g+240>>2]=Q,i[g+192>>2]=i[g+192>>2]+1,E=i[g+244>>2],a=i[g+248>>2],_=i[g+252>>2],c=i[g+256>>2],t=i[g+260>>2],r=i[g+264>>2],e=i[g+268>>2],y=i[g+272>>2],h=i[g+276>>2],R(S=g+144|0,N),b(S,S,N),R(A,S),b(A,A,N),b(A,A,G),PA(A,A),b(A,A,S),b(A,A,G),R(S=g+96|0,A),b(S,S,N),N=i[g+132>>2],i[g+84>>2]=N-h,S=i[g+128>>2],i[g+80>>2]=S-y,G=i[g+124>>2],i[g+76>>2]=G-e,D=i[g+120>>2],i[g+72>>2]=D-r,f=i[g+116>>2],i[g+68>>2]=f-t,p=i[g+112>>2],i[g+64>>2]=p-c,w=i[g+108>>2],i[g+60>>2]=w-_,n=i[g+104>>2],i[g+56>>2]=n-a,k=i[g+100>>2],i[g+52>>2]=k-E,F=i[g+96>>2],i[g+48>>2]=F-Q,QI(g,g+48|0);A:{if(!GI(g,32)){if(i[g+36>>2]=N+h,i[g+32>>2]=S+y,i[g+28>>2]=G+e,i[g+24>>2]=r+D,i[g+20>>2]=t+f,i[g+16>>2]=c+p,i[g+12>>2]=_+w,i[g+8>>2]=a+n,i[g+4>>2]=E+k,i[g>>2]=Q+F,QI(N=g+288|0,g),!GI(N,32))break A;b(A,A,1632)}QI(g+288|0,A),(1&C[g+288|0])==(o[I+31|0]>>>7|0)&&(i[A>>2]=0-i[A>>2],i[A+36>>2]=0-i[A+36>>2],i[A+32>>2]=0-i[A+32>>2],i[A+28>>2]=0-i[A+28>>2],i[A+24>>2]=0-i[A+24>>2],i[A+20>>2]=0-i[A+20>>2],i[A+16>>2]=0-i[A+16>>2],i[A+12>>2]=0-i[A+12>>2],i[A+8>>2]=0-i[A+8>>2],i[A+4>>2]=0-i[A+4>>2]),b(A+120|0,A,B),M=0}return s=g+320|0,M}function zA(A,I,g){var C,B,Q,o,E,_,c,t,r=0;s=C=s-128|0,i[A>>2]=1,i[A+4>>2]=0,i[A+8>>2]=0,i[A+12>>2]=0,i[A+16>>2]=0,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+40>>2]=1,bg(A+44|0,0,76),RA(A,I=a(I,960)+2992|0,(255&(1^(r=g-((g>>31&g)<<1)|0)))-1>>>31|0),RA(A,I+120|0,(255&(2^r))-1>>>31|0),RA(A,I+240|0,(255&(3^r))-1>>>31|0),RA(A,I+360|0,(255&(4^r))-1>>>31|0),RA(A,I+480|0,(255&(5^r))-1>>>31|0),RA(A,I+600|0,(255&(6^r))-1>>>31|0),RA(A,I+720|0,(255&(7^r))-1>>>31|0),RA(A,I+840|0,(255&(8^r))-1>>>31|0),I=i[A+76>>2],i[C+40>>2]=i[A+72>>2],i[C+44>>2]=I,r=i[4+(I=A- -64|0)>>2],i[C+32>>2]=i[I>>2],i[C+36>>2]=r,I=i[A+60>>2],i[C+24>>2]=i[A+56>>2],i[C+28>>2]=I,I=i[A+52>>2],i[C+16>>2]=i[A+48>>2],i[C+20>>2]=I,I=i[A+44>>2],i[C+8>>2]=i[A+40>>2],i[C+12>>2]=I,I=i[A+12>>2],i[C+56>>2]=i[A+8>>2],i[C+60>>2]=I,r=i[A+20>>2],i[(I=C- -64|0)>>2]=i[A+16>>2],i[I+4>>2]=r,I=i[A+28>>2],i[C+72>>2]=i[A+24>>2],i[C+76>>2]=I,I=i[A+36>>2],i[C+80>>2]=i[A+32>>2],i[C+84>>2]=I,I=i[A+4>>2],i[C+48>>2]=i[A>>2],i[C+52>>2]=I,I=i[A+84>>2],r=i[A+88>>2],B=i[A+92>>2],Q=i[A+96>>2],o=i[A+100>>2],E=i[A+104>>2],_=i[A+108>>2],c=i[A+112>>2],t=i[A+80>>2],i[C+124>>2]=0-i[A+116>>2],i[C+120>>2]=0-c,i[C+116>>2]=0-_,i[C+112>>2]=0-E,i[C+108>>2]=0-o,i[C+104>>2]=0-Q,i[C+100>>2]=0-B,i[C+96>>2]=0-r,i[C+92>>2]=0-I,i[C+88>>2]=0-t,RA(A,C+8|0,(128&g)>>>7|0),s=C+128|0}function jA(A){var I,g,C,B,Q,o,E,a,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0;return s=I=s-320|0,R(c=I+240|0,A),R(t=I+192|0,A+40|0),R(_=I+144|0,A+80|0),A=i[I+240>>2],r=i[I+192>>2],e=i[I+244>>2],y=i[I+196>>2],h=i[I+248>>2],D=i[I+200>>2],f=i[I+252>>2],p=i[I+204>>2],w=i[I+256>>2],n=i[I+208>>2],k=i[I+260>>2],F=i[I+212>>2],S=i[I+264>>2],N=i[I+216>>2],G=i[I+268>>2],M=i[I+220>>2],K=i[I+272>>2],U=i[I+224>>2],i[I+84>>2]=i[I+228>>2]-i[I+276>>2],i[I+80>>2]=U-K,i[I+76>>2]=M-G,i[I+72>>2]=N-S,i[I+68>>2]=F-k,i[I+64>>2]=n-w,i[I+60>>2]=p-f,i[I+56>>2]=D-h,i[I+52>>2]=y-e,i[I+48>>2]=r-A,b(A=I+48|0,A,_),b(I,c,t),b(I,I,1584),R(I+96|0,_),_=i[I+48>>2],c=i[I+96>>2],t=i[I>>2],r=i[I+52>>2],e=i[I+100>>2],y=i[I+4>>2],h=i[I+56>>2],D=i[I+104>>2],f=i[I+8>>2],p=i[I+60>>2],w=i[I+108>>2],n=i[I+12>>2],k=i[I+64>>2],F=i[I+112>>2],S=i[I+16>>2],N=i[I+68>>2],G=i[I+116>>2],M=i[I+20>>2],K=i[I+72>>2],U=i[I+120>>2],g=i[I+24>>2],C=i[I+76>>2],B=i[I+124>>2],Q=i[I+28>>2],o=i[I+80>>2],E=i[I+128>>2],a=i[I+32>>2],i[I+84>>2]=i[I+84>>2]-(i[I+132>>2]+i[I+36>>2]|0),i[I+80>>2]=o-(E+a|0),i[I+76>>2]=C-(B+Q|0),i[I+72>>2]=K-(U+g|0),i[I+68>>2]=N-(G+M|0),i[I+64>>2]=k-(F+S|0),i[I+60>>2]=p-(w+n|0),i[I+56>>2]=h-(D+f|0),i[I+52>>2]=r-(e+y|0),i[I+48>>2]=_-(c+t|0),QI(_=I+288|0,A),A=GI(_,32),s=I+320|0,A}function XA(A,I,g,B,i){A|=0,I|=0,g|=0,B|=0;var E=0,_=0,c=0,t=0,e=0,y=0,s=0;A:{I:{g:{C:{B:{Q:{i:{if(1==(-7&(i|=0))&&(c=(E=(B>>>0)/3|0)<<2,(E=a(E,-3)+B|0)&&(c=2&i?2+((E>>>1|0)+c|0)|0:c+4|0),!(I>>>0<=c>>>0))){if(!(i>>>0>=4)){if(!B){i=0;break C}E=0,i=0;break i}if(!B){i=0;break C}for(E=0,i=0;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&45|_+252&_+65474>>>8&~s|~(_+32705)>>>8&95|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=45,_=32705,B=95;break Q}rC(),Q()}for(;;){for(e=o[g+t|0]|e<<8,E|=8;y=65510+(_=e>>>(E=E-6|0)&63)>>>8|0,s=_+65484>>>8|0,C[A+i|0]=~(1+(16321^_))>>>8&43|_+252&_+65474>>>8&~s|~(_+16321)>>>8&47|y&_+65|s&_+71&~y,i=i+1|0,E>>>0>5;);if((0|(t=t+1|0))==(0|B))break}if(!E)break B;t=43,_=16321,B=47}_=~((g=e<<6-E&63)+_)>>>8&B|(E=g+65510>>>8|0)&g+65,B=g+65484>>>8|0,C[A+i|0]=~(1+(16321^g))>>>8&t|_|g+252&g+65474>>>8&~B|B&g+71&~E,i=i+1|0}if(i>>>0>c>>>0)break g}if(i>>>0<c>>>0)break I;c=i;break A}r(1104,1218,231,1503),Q()}bg(A+i|0,61,c-i|0)}return bg(A+c|0,0,(I>>>0>(g=c+1|0)>>>0?I:g)-c|0),0|A}function OA(A,I,g){var C,B,Q,E=0,_=0,c=0,t=0,r=0;s=C=s-16|0,B=i[A+20>>2],i[A+20>>2]=0,Q=i[A+4>>2],i[A+4>>2]=0,c=-26;A:{I:{g:{C:switch(g-1|0){case 1:if(gg(I,1182,9))break I;I=I+9|0;break g;case 0:break C;default:break A}if(gg(I,1173,8))break I;I=I+8|0}if(36!=o[0|I]|118!=o[I+1|0]||(E=61==o[I+2|0]),E&&!(((t=o[0|(g=I+3|0)])-58&255)>>>0<246)){for(r=E?g:I,I=0,E=t;;){if(_=g,I>>>0>429496729)break I;if((g=(255&E)-48|0)>>>0>~(I=a(I,10))>>>0)break I;if(I=I+g|0,!(((E=o[0|(g=_+1|0)])-58&255)>>>0>245))break}if(!(48==(0|t)&(0|_)!=(0|r)|(0|g)==(0|r))){if(19!=(0|I))break A;if(!(36!=(255&E)|109!=o[_+2|0]|61!=o[_+3|0])&&(g=lI(_+4|0,I=C+12|0))&&(i[A+44>>2]=i[C+12>>2],!(44!=o[0|g]|116!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(i[A+40>>2]=i[C+12>>2],!(44!=o[0|g]|112!=o[g+1|0]|61!=o[g+2|0])&&(g=lI(g+3|0,I))&&(E=i[C+12>>2],i[A+48>>2]=E,i[A+52>>2]=E,36==o[0|g]&&(i[C+12>>2]=B,!pA(_=i[A+16>>2],B,E=g=g+1|0,t=RI(g),0,I,g=C+8|0,3)&&(i[A+20>>2]=i[C+12>>2],E=i[C+8>>2],36==o[0|E]&&(i[C+12>>2]=Q,E=E+1|0,!pA(i[A>>2],Q,E,RI(E),0,I,g,3)))))))){if(i[A+4>>2]=i[C+12>>2],I=i[C+8>>2],c=nI(A))break A;c=o[0|I]?-32:0;break A}}}}c=-32}return s=C+16|0,c}function WA(A,I,g,B){var Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(g|B)A:for(t=A+224|0,_=A+96|0,i=o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24;;){if(Q=i+_|0,!B&g>>>0<=(E=256-i|0)>>>0){Ng(Q,I,g),I=g+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24;break A}if(Ng(Q,I,E),Q=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)+E|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,c=i=o[A+68|0]|o[A+69|0]<<8|o[A+70|0]<<16|o[A+71|0]<<24,i=(a=128+(Q=o[A+64|0]|o[A+65|0]<<8|o[A+66|0]<<16|o[A+67|0]<<24)|0)>>>0<128?i+1|0:i,C[A+64|0]=a,C[A+65|0]=a>>>8,C[A+66|0]=a>>>16,C[A+67|0]=a>>>24,C[A+68|0]=i,C[A+69|0]=i>>>8,C[A+70|0]=i>>>16,C[A+71|0]=i>>>24,i=o[A+76|0]|o[A+77|0]<<8|o[A+78|0]<<16|o[A+79|0]<<24,i=(c=Q=-1==(0|c)&Q>>>0>4294967167)>>>0>(Q=Q+(o[A+72|0]|o[A+73|0]<<8|o[A+74|0]<<16|o[A+75|0]<<24)|0)>>>0?i+1|0:i,C[A+72|0]=Q,C[A+73|0]=Q>>>8,C[A+74|0]=Q>>>16,C[A+75|0]=Q>>>24,C[A+76|0]=i,C[A+77|0]=i>>>8,C[A+78|0]=i>>>16,C[A+79|0]=i>>>24,p(A,_),Ng(_,t,128),Q=i=(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)-128|0,C[A+352|0]=Q,C[A+353|0]=Q>>>8,C[A+354|0]=Q>>>16,C[A+355|0]=Q>>>24,I=I+E|0,!((B=B-(g>>>0<E>>>0)|0)|(g=g-E|0)))break}return 0}function VA(A){var I=0,g=0,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0,n=0;for(g=i[A+60>>2],h=i[A+56>>2],s=i[A+52>>2],e=i[A+48>>2],I=i[A+44>>2],C=i[A+40>>2],D=i[A+36>>2],r=i[A+32>>2],B=i[A+28>>2],Q=i[A+24>>2],o=i[A+20>>2],E=i[A+16>>2],a=i[A+12>>2],_=i[A+8>>2],c=i[A+4>>2],t=i[A>>2];y=Lg(o+c|0,7)^D,f=Lg(y+o|0,9)^s,E=Lg(t+e|0,7)^E,p=Lg(E+t|0,9)^r,w=Lg(p+E|0,13)^e,a=Lg(I+g|0,7)^a,B=Lg(a+g|0,9)^B,r=Lg(B+a|0,13)^I,g=Lg(B+r|0,18)^g,I=Lg(C+Q|0,7)^h,e=w^Lg(g+I|0,7),s=f^Lg(e+g|0,9),h=Lg(e+s|0,13)^I,g=Lg(s+h|0,18)^g,_=Lg(I+C|0,9)^_,Q=Lg(_+I|0,13)^Q,C=Lg(Q+_|0,18)^C,I=Lg(C+y|0,7)^r,r=Lg(I+C|0,9)^p,D=Lg(I+r|0,13)^y,C=Lg(r+D|0,18)^C,c=Lg(y+f|0,13)^c,o=Lg(c+f|0,18)^o,Q=Lg(o+E|0,7)^Q,B=Lg(Q+o|0,9)^B,E=Lg(B+Q|0,13)^E,o=Lg(E+B|0,18)^o,t=Lg(p+w|0,18)^t,c=Lg(t+a|0,7)^c,_=Lg(c+t|0,9)^_,a=Lg(_+c|0,13)^a,t=Lg(a+_|0,18)^t,y=n>>>0<6,n=n+2|0,y;);i[A>>2]=i[A>>2]+t,i[A+4>>2]=i[A+4>>2]+c,i[A+8>>2]=i[A+8>>2]+_,i[A+12>>2]=i[A+12>>2]+a,i[A+16>>2]=i[A+16>>2]+E,i[A+20>>2]=i[A+20>>2]+o,i[A+24>>2]=i[A+24>>2]+Q,i[A+28>>2]=i[A+28>>2]+B,i[A+32>>2]=i[A+32>>2]+r,i[A+36>>2]=i[A+36>>2]+D,i[A+40>>2]=i[A+40>>2]+C,i[A+44>>2]=i[A+44>>2]+I,i[A+48>>2]=i[A+48>>2]+e,i[A+52>>2]=i[A+52>>2]+s,i[A+56>>2]=i[A+56>>2]+h,i[A+60>>2]=i[A+60>>2]+g}function ZA(A,I,g,B){var Q,i=0;return s=Q=s-320|0,i=-1,NI(g)&&(KI(g)||MA(Q,g)||gA(Q)&&(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],g=o[I+31|0],B&&(C[0|A]=248&o[0|A],g|=64),C[A+31|0]=127&g,u(g=Q+160|0,A,Q),tg(A,g),(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(i=GI(I,32)?-1:0))),s=Q+320|0,i}function TA(A,I,g,B,Q){var E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0;if(s=E=s-48|0,Q&&ag(Q,102),!(36!=o[0|B]|55!=o[B+1|0]|36!=o[B+2|0])&&(r=uI(o[B+3|0]))&&(a=PI(E+12|0,B+4|0))&&(t=PI(E+8|0,a))){for(_=RI(t)+1|0;a=0,_&&36!=o[0|(a=t+(_=_-1|0)|0)];);if(c=a-t|0,a||(c=RI(t)),!((c=45+(_=(a=c)+(t-B|0)|0)|0)>>>0>102|a>>>0>c>>>0||(c=A,y=I,h=g,A=31&(r=r-1024|0),(63&r)>>>0>=32?(I=1<<A,g=0):I=(g=1<<A)-1&1>>>32-A,_A(c,y,h,t,a,g,I,i[E+12>>2],i[E+8>>2],E+16|0,32)))){for(a=Ng(Q,B,_),C[0|(A=a+_|0)]=36,e=(c=a+102|0)-(Q=A+1|0)|0,g=0;;){A:if((I=g)>>>0>31)B=Q;else if(A=Q,g=(_=I+1|0)+(y=(g=31-I|0)>>>0>=2?2:g)|0,B=0,t=0,Q=o[(r=E+16|0)+I|0],y&&(Q=o[_+r|0]<<8|Q,(0|(I=I+2|0))!=(0|g)&&(t=1,Q=o[I+r|0]<<16|Q)),e&&(C[0|A]=o[1024+(63&Q)|0],1!=(0|e))){if(C[A+1|0]=o[1024+(Q>>>6&63)|0],y=A+e|0,I=A+2|0,(0|g)!=(0|_)){if(2==(0|e))break A;if(C[A+2|0]=o[1024+(Q>>>12&63)|0],I=A+3|0,t){if(3==(0|e))break A;C[A+3|0]=o[1024+(Q>>>18|0)|0],I=A+4|0}}if(e=y-(Q=I)|0,Q)continue}break}XC(E+16|0,32),e=0,!B|B>>>0>=c>>>0||(C[0|B]=0,e=a)}}return s=E+48|0,e}function $A(A,I){var g,C=0,B=0,Q=0,o=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0,p=0,w=0;C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],s=i[(B=I- -64|0)>>2],h=i[I+28>>2],D=i[I+68>>2],f=i[I+32>>2],p=i[I+72>>2],w=i[I+36>>2],g=i[I+76>>2],i[A>>2]=i[I>>2]+i[I+40>>2],i[A+36>>2]=w+g,i[A+32>>2]=f+p,i[A+28>>2]=h+D,i[A+24>>2]=y+s,i[A+20>>2]=r+e,i[A+16>>2]=c+t,i[A+12>>2]=a+_,i[A+8>>2]=o+E,i[A+4>>2]=C+Q,C=i[I+4>>2],Q=i[I+44>>2],o=i[I+8>>2],E=i[I+48>>2],a=i[I+12>>2],_=i[I+52>>2],c=i[I+16>>2],t=i[I+56>>2],r=i[I+20>>2],e=i[I+60>>2],y=i[I+24>>2],B=i[B>>2],s=i[I+28>>2],h=i[I+68>>2],D=i[I+32>>2],f=i[I+72>>2],p=i[I>>2],w=i[I+40>>2],i[A+76>>2]=i[I+76>>2]-i[I+36>>2],i[A+72>>2]=f-D,i[A+68>>2]=h-s,i[A- -64>>2]=B-y,i[A+60>>2]=e-r,i[A+56>>2]=t-c,i[A+52>>2]=_-a,i[A+48>>2]=E-o,i[A+44>>2]=Q-C,i[A+40>>2]=w-p,C=i[I+84>>2],i[A+80>>2]=i[I+80>>2],i[A+84>>2]=C,C=i[I+92>>2],i[A+88>>2]=i[I+88>>2],i[A+92>>2]=C,C=i[I+100>>2],i[A+96>>2]=i[I+96>>2],i[A+100>>2]=C,C=i[I+108>>2],i[A+104>>2]=i[I+104>>2],i[A+108>>2]=C,C=i[I+116>>2],i[A+112>>2]=i[I+112>>2],i[A+116>>2]=C,b(A+120|0,I+120|0,1680)}function AI(A,I,g){var C,B,Q,o,E,a,_,c,t,r,e,y,h=0,D=0,f=0,p=0,w=0;h=i[I+12>>2],D=i[I+8>>2],f=i[I+4>>2],C=s+-64&-64,I=i[I>>2],i[C>>2]=i[35744+((255&I)<<2)>>2],i[C+4>>2]=i[35744+(f>>>6&1020)>>2],i[C+8>>2]=i[35744+(D>>>14&1020)>>2],i[C+12>>2]=i[35744+(h>>>22&1020)>>2],i[C+16>>2]=i[35744+((255&f)<<2)>>2],i[C+20>>2]=i[35744+(D>>>6&1020)>>2],i[C+24>>2]=i[35744+(h>>>14&1020)>>2],i[C+28>>2]=i[35744+(I>>>22&1020)>>2],i[C+32>>2]=i[35744+((255&D)<<2)>>2],i[C+36>>2]=i[35744+(h>>>6&1020)>>2],i[C+40>>2]=i[35744+(I>>>14&1020)>>2],i[C+44>>2]=i[35744+(f>>>22&1020)>>2],i[C+48>>2]=i[35744+((255&h)<<2)>>2],i[C+52>>2]=i[35744+(I>>>6&1020)>>2],i[C+56>>2]=i[35744+(f>>>14&1020)>>2],i[C+60>>2]=i[35744+(D>>>22&1020)>>2],I=i[C+12>>2],h=i[C>>2],D=i[C+4>>2],f=i[C+8>>2],B=i[C+28>>2],Q=i[C+16>>2],o=i[C+20>>2],E=i[C+24>>2],a=i[C+44>>2],_=i[C+32>>2],c=i[C+36>>2],t=i[C+40>>2],r=i[g>>2],e=i[g+4>>2],y=i[g+8>>2],p=A,w=i[g+12>>2]^i[C+48>>2]^Lg(i[C+52>>2],8)^Lg(i[C+56>>2],16)^Lg(i[C+60>>2],24),i[p+12>>2]=w,p=A,w=Lg(c,8)^_^Lg(t,16)^Lg(a,24)^y,i[p+8>>2]=w,p=A,w=Lg(o,8)^Q^Lg(E,16)^Lg(B,24)^e,i[p+4>>2]=w,p=A,w=Lg(D,8)^h^Lg(f,16)^Lg(I,24)^r,i[p>>2]=w}function II(A,I,g){var B,Q=0;return s=B=s-160|0,C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],Q=o[I+31|0],g&&(C[0|A]=248&o[0|A],Q|=64),C[A+31|0]=127&Q,nA(B,A),tg(A,B),g=-1,(127&o[A+31|0]|o[A+30|0]|o[A+29|0]|o[A+28|0]|o[A+27|0]|o[A+26|0]|o[A+25|0]|o[A+24|0]|o[A+23|0]|o[A+22|0]|o[A+21|0]|o[A+20|0]|o[A+19|0]|o[A+18|0]|o[A+17|0]|o[A+16|0]|o[A+15|0]|o[A+14|0]|o[A+13|0]|o[A+12|0]|o[A+11|0]|o[A+10|0]|o[A+9|0]|o[A+8|0]|o[A+7|0]|o[A+6|0]|o[A+5|0]|o[A+4|0]|o[A+3|0]|o[A+2|0]|o[A+1|0]|1^o[0|A])-1&256||(g=GI(I,32)?-1:0),s=B+160|0,g}function gI(A,I){var g,B,Q,o,E,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,f=0;(_=i[A+56>>2])|(c=i[A+60>>2])&&(C[(r=A- -64|0)+_|0]=1,!((f=_+1|0)?c:c+1|0)&f>>>0<=15&&bg(65+(A+_|0)|0,0,15-_|0),C[A+80|0]=1,rA(A,r,16,0)),f=i[A+52>>2],h=i[A+48>>2],r=i[A+44>>2],_=i[A+24>>2],e=i[A+28>>2]+(_>>>26|0)|0,t=i[A+32>>2]+(e>>>26|0)|0,g=i[A+36>>2]+(t>>>26|0)|0,c=(s=(_=(_=(67108863&_)+((y=i[A+20>>2]+a(g>>>26|0,5)|0)>>>26|0)|0)&(e=(t=(E=(67108863&g)+((o=(B=67108863&t)+((Q=(D=67108863&e)+((y=_+((c=5+(s=67108863&y)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)>>>26|0)|0)-67108864|0)>>31)|y&(t=67108863&(y=(t>>>31|0)-1|0)))<<26|c&t|e&s)+i[A+40>>2]|0,C[0|I]=c,C[I+1|0]=c>>>8,C[I+2|0]=c>>>16,C[I+3|0]=c>>>24,s=c>>>0<s>>>0,c=0,c=(_=(D=e&D|t&Q)<<20|_>>>6)>>>0>(_=_+r|0)>>>0?1:c,c=(r=_)>>>0>(_=_+s|0)>>>0?c+1|0:c,C[I+4|0]=_,C[I+5|0]=_>>>8,C[I+6|0]=_>>>16,C[I+7|0]=_>>>24,_=0,r=(r=(t=e&B|t&o)<<14|D>>>12)>>>0>(h=r+h|0)>>>0?1:_,_=h,h=c,_=_+c|0,c=r,c=_>>>0<h>>>0?c+1|0:c,C[I+8|0]=_,C[I+9|0]=_>>>8,C[I+10|0]=_>>>16,C[I+11|0]=_>>>24,c=(_=(_=(y&E|e&g)<<8|t>>>18)+f|0)+c|0,C[I+12|0]=c,C[I+13|0]=c>>>8,C[I+14|0]=c>>>16,C[I+15|0]=c>>>24,XC(A,88)}function CI(A,I,g){A|=0,I|=0,g|=0;var B,Q=0;return s=B=s-16|0,C[B+15|0]=0,Q=-1,0|pB[i[8930]](A,I,g)||(C[B+15|0]=o[0|A]|o[B+15|0],C[B+15|0]=o[A+1|0]|o[B+15|0],C[B+15|0]=o[A+2|0]|o[B+15|0],C[B+15|0]=o[A+3|0]|o[B+15|0],C[B+15|0]=o[A+4|0]|o[B+15|0],C[B+15|0]=o[A+5|0]|o[B+15|0],C[B+15|0]=o[A+6|0]|o[B+15|0],C[B+15|0]=o[A+7|0]|o[B+15|0],C[B+15|0]=o[A+8|0]|o[B+15|0],C[B+15|0]=o[A+9|0]|o[B+15|0],C[B+15|0]=o[A+10|0]|o[B+15|0],C[B+15|0]=o[A+11|0]|o[B+15|0],C[B+15|0]=o[A+12|0]|o[B+15|0],C[B+15|0]=o[A+13|0]|o[B+15|0],C[B+15|0]=o[A+14|0]|o[B+15|0],C[B+15|0]=o[A+15|0]|o[B+15|0],C[B+15|0]=o[A+16|0]|o[B+15|0],C[B+15|0]=o[A+17|0]|o[B+15|0],C[B+15|0]=o[A+18|0]|o[B+15|0],C[B+15|0]=o[A+19|0]|o[B+15|0],C[B+15|0]=o[A+20|0]|o[B+15|0],C[B+15|0]=o[A+21|0]|o[B+15|0],C[B+15|0]=o[A+22|0]|o[B+15|0],C[B+15|0]=o[A+23|0]|o[B+15|0],C[B+15|0]=o[A+24|0]|o[B+15|0],C[B+15|0]=o[A+25|0]|o[B+15|0],C[B+15|0]=o[A+26|0]|o[B+15|0],C[B+15|0]=o[A+27|0]|o[B+15|0],C[B+15|0]=o[A+28|0]|o[B+15|0],C[B+15|0]=o[A+29|0]|o[B+15|0],C[B+15|0]=o[A+30|0]|o[B+15|0],C[B+15|0]=o[A+31|0]|o[B+15|0],Q=(o[B+15|0]<<23)-8388608>>31),s=B+16|0,0|Q}function BI(A,I,g,C,B){var Q=0,o=0,E=0,a=0,_=0,c=0,t=0;A:{if(1==(0|C)|C>>>0>1)i[9404]=22;else{s=C=s-128|0,i[C- -64>>2]=0,i[C+56>>2]=0,i[C+60>>2]=0,i[C+48>>2]=0,i[C+52>>2]=0,i[C+40>>2]=0,i[C+44>>2]=0,i[C+32>>2]=0,i[C+36>>2]=0,i[C+24>>2]=0,i[C+28>>2]=0,i[C+16>>2]=0,i[C+20>>2]=0,Q=RI(A),i[C+28>>2]=Q,i[C+44>>2]=Q,i[C+12>>2]=Q,o=K(Q),i[C+40>>2]=o,E=K(Q),i[C+24>>2]=E,a=K(Q),i[C+8>>2]=a;I:if(!a|!o|!E||!(Q=K(Q)))BA(o),BA(E),BA(a),A=-22;else{if(A=OA(C+8|0,A,B)){BA(i[C+40>>2]),BA(i[C+24>>2]),BA(i[C+8>>2]),BA(Q);break I}a=i[C+28>>2],_=i[C+24>>2],A=i[C+60>>2],c=i[C+52>>2],t=i[C+48>>2],ag(Q,o=i[C+12>>2]),(E=K(o))?(i[C+100>>2]=0,i[C+104>>2]=0,i[C+92>>2]=0,i[C+96>>2]=0,i[C+88>>2]=a,i[C+84>>2]=_,i[C+80>>2]=g,i[C+76>>2]=I,i[C+72>>2]=o,i[C+68>>2]=E,i[C+124>>2]=0,i[C+120>>2]=A,i[C+116>>2]=A,i[C+112>>2]=c,i[C+108>>2]=t,(A=q(C+68|0,B))||Ng(Q,E,o),XC(E,o),BA(E)):A=-22,BA(i[C+40>>2]),BA(i[C+24>>2]),A||(A=MI(Q,i[C+8>>2],i[C+12>>2])?-35:0),BA(Q),BA(i[C+8>>2])}if(s=C+128|0,I=A,!A)break A;-35==(0|A)&&(i[9404]=28)}I=-1}return I}function QI(A,I){var g,B,Q,o,E,_,c,t=0,r=0;B=i[I+32>>2],Q=i[I+28>>2],o=i[I+24>>2],E=i[I+20>>2],_=i[I+16>>2],c=i[I+12>>2],t=i[I+4>>2],r=i[I>>2],g=i[I+36>>2],I=i[I+8>>2],r=a((B+(Q+(o+(E+(_+(c+((t+(r+(a(g,19)+16777216>>>25|0)>>26)>>25)+I>>26)>>25)>>26)>>25)>>26)>>25)>>26)+g>>25,19)+r|0,C[0|A]=r,C[A+2|0]=r>>>16,C[A+1|0]=r>>>8,t=t+(r>>26)|0,C[A+5|0]=t>>>14,C[A+4|0]=t>>>6,C[A+3|0]=r>>>24&3|t<<2,I=I+(t>>25)|0,C[A+8|0]=I>>>13,C[A+7|0]=I>>>5,C[A+6|0]=I<<3|(29360128&t)>>>22,r=(I>>26)+c|0,C[A+11|0]=r>>>11,C[A+10|0]=r>>>3,C[A+9|0]=r<<5|(65011712&I)>>>21,t=(r>>25)+_|0,C[A+15|0]=t>>>18,C[A+14|0]=t>>>10,C[A+13|0]=t>>>2,I=(t>>26)+E|0,C[A+16|0]=I,C[A+12|0]=t<<6|(33030144&r)>>>19,C[A+18|0]=I>>>16,C[A+17|0]=I>>>8,t=(I>>25)+o|0,C[A+21|0]=t>>>15,C[A+20|0]=t>>>7,C[A+19|0]=I>>>24&1|t<<1,I=(t>>26)+Q|0,C[A+24|0]=I>>>13,C[A+23|0]=I>>>5,C[A+22|0]=I<<3|(58720256&t)>>>23,t=(I>>25)+B|0,C[A+27|0]=t>>>12,C[A+26|0]=t>>>4,C[A+25|0]=t<<4|(31457280&I)>>>21,I=g+(t>>26)|0,C[A+30|0]=I>>>10,C[A+29|0]=I>>>2,C[A+31|0]=(33292288&I)>>>18,C[A+28|0]=I<<6|(66060288&t)>>>20}function iI(A,I,g){A|=0,I|=0;var B,Q=0,i=0,E=0,a=0,_=0,c=0,t=0;if(s=B=s-192|0,(g|=0)>>>0>=129&&(SI(A),SA(A,I,g,0),j(A,B),g=64,I=B),SI(A),bg(B- -64|0,54,128),g){if(g>>>0>=4)for(t=252&g;C[0|(Q=(E=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+E|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=E)+(E=3|i)|0)]=o[0|Q]^o[I+E|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(_=3&g)for(;C[0|(E=(B- -64|0)+i|0)]=o[0|E]^o[I+i|0],i=i+1|0,(0|_)!=(0|(c=c+1|0)););}if(SA(A,i=B- -64|0,128,0),SI(E=A+208|0),bg(i,92,128),g){if(c=0,i=0,g>>>0>=4)for(t=252&g,_=0;C[0|(Q=(A=B- -64|0)+i|0)]=o[0|Q]^o[I+i|0],C[0|(a=(Q=1|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(a=(Q=2|i)+A|0)]=o[0|a]^o[I+Q|0],C[0|(Q=(Q=A)+(A=3|i)|0)]=o[0|Q]^o[A+I|0],i=i+4|0,(0|t)!=(0|(_=_+4|0)););if(A=3&g)for(;C[0|(g=(B- -64|0)+i|0)]=o[0|g]^o[I+i|0],i=i+1|0,(0|A)!=(0|(c=c+1|0)););}return SA(E,A=B- -64|0,128,0),XC(A,128),XC(B,64),s=B+192|0,0}function oI(A,I){var g;return A|=0,I|=0,i[12+(g=s-16|0)>>2]=A,i[g+8>>2]=I,i[g+4>>2]=0,i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]]^o[i[g+8>>2]],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+1|0]^o[i[g+8>>2]+1|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+2|0]^o[i[g+8>>2]+2|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+3|0]^o[i[g+8>>2]+3|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+4|0]^o[i[g+8>>2]+4|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+5|0]^o[i[g+8>>2]+5|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+6|0]^o[i[g+8>>2]+6|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+7|0]^o[i[g+8>>2]+7|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+8|0]^o[i[g+8>>2]+8|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+9|0]^o[i[g+8>>2]+9|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+10|0]^o[i[g+8>>2]+10|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+11|0]^o[i[g+8>>2]+11|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+12|0]^o[i[g+8>>2]+12|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+13|0]^o[i[g+8>>2]+13|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+14|0]^o[i[g+8>>2]+14|0],i[g+4>>2]=i[g+4>>2]|o[i[g+12>>2]+15|0]^o[i[g+8>>2]+15|0],(i[g+4>>2]-1>>>8&1)-1|0}function EI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,yA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,ug(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&mg(A+t|0,g+t|0,C-t|0,B-((C>>>0<t>>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function aI(A,I,g,C,B,Q,o){var E,a,_,c=0,t=0,r=0,e=0;s=E=s-352|0,wA(E,Q,o,0);A:{if(!(((c=!!(0|B))|!B&C>>>0>A-g>>>0)&A>>>0>g>>>0)&(!B&g-A>>>0>=C>>>0|A>>>0>=g>>>0)){if(i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=(c=!!(0|B))|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32,!(C|B)){e=1;break A}}else g=yg(A,g,C),i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,t=(o=c|!B&C>>>0>=32)?32:C,r=o?0:B,o=c|!B&C>>>0>32;Ng(E- -64|0,g,t),e=0}return c=r,aC(a=E+32|0,a,_=t+32|0,c=_>>>0<32?c+1|0:c,c=Q+16|0,E),wC(E+96|0,a),e||Ng(A,E- -64|0,t),XC(E+32|0,64),o&&oC(A+t|0,g+t|0,C-t|0,B-((C>>>0<t>>>0)+r|0)|0,c,1,0,E),XC(E,32),SC(g=E+96|0,A,C,B),nC(g,I),XC(g,256),s=E+352|0,0}function _I(A,I,g,B,Q){var o;return A|=0,I|=0,g|=0,B|=0,s=o=s-480|0,iI(o,Q|=0,32),dC(o,I,g,B),wg(o,o+416|0),I=i[o+444>>2],g=i[o+440>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+436>>2],g=i[o+432>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+428>>2],g=i[o+424>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+420>>2],g=i[o+416>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,s=o+480|0,0}function cI(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s+-64|0,FI(B,g|=0,32,0),g=i[B+28>>2],Q=i[B+24>>2],C[I+24|0]=Q,C[I+25|0]=Q>>>8,C[I+26|0]=Q>>>16,C[I+27|0]=Q>>>24,C[I+28|0]=g,C[I+29|0]=g>>>8,C[I+30|0]=g>>>16,C[I+31|0]=g>>>24,g=i[B+20>>2],Q=i[B+16>>2],C[I+16|0]=Q,C[I+17|0]=Q>>>8,C[I+18|0]=Q>>>16,C[I+19|0]=Q>>>24,C[I+20|0]=g,C[I+21|0]=g>>>8,C[I+22|0]=g>>>16,C[I+23|0]=g>>>24,g=i[B+12>>2],Q=i[B+8>>2],C[I+8|0]=Q,C[I+9|0]=Q>>>8,C[I+10|0]=Q>>>16,C[I+11|0]=Q>>>24,C[I+12|0]=g,C[I+13|0]=g>>>8,C[I+14|0]=g>>>16,C[I+15|0]=g>>>24,g=i[B+4>>2],Q=i[B>>2],C[0|I]=Q,C[I+1|0]=Q>>>8,C[I+2|0]=Q>>>16,C[I+3|0]=Q>>>24,C[I+4|0]=g,C[I+5|0]=g>>>8,C[I+6|0]=g>>>16,C[I+7|0]=g>>>24,XC(B,64),A=pC(A,I),s=B- -64|0,0|A}function tI(A,I){var g=0,C=0,B=0,Q=0,o=0,E=0;return I>>>0>4294967168?48:(I>>>0>=4294967168?(i[9404]=48,g=0):(g=0,(I=K(76+(Q=I>>>0<11?16:I+11&-8)|0))&&(g=I-8|0,63&I?(B=(-8&(E=i[(o=I-4|0)>>2]))-(C=(I=((I=(I+63&-64)-8|0)-g>>>0<=15?64:0)+I|0)-g|0)|0,3&E?(i[I+4>>2]=B|1&i[I+4>>2]|2,i[4+(B=I+B|0)>>2]=1|i[B+4>>2],i[o>>2]=C|1&i[o>>2]|2,i[4+(B=g+C|0)>>2]=1|i[B+4>>2],oA(g,C)):(g=i[g>>2],i[I+4>>2]=B,i[I>>2]=g+C)):I=g,3&(g=i[I+4>>2])&&((C=-8&g)>>>0<=Q+16>>>0||(i[I+4>>2]=Q|1&g|2,g=I+Q|0,Q=C-Q|0,i[g+4>>2]=3|Q,i[4+(C=I+C|0)>>2]=1|i[C+4>>2],oA(g,Q))),g=I+8|0)),g?(i[A>>2]=g,0):48)}function rI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!((!a&E>>>0>=3|!!(0|a))&_>>>0>8191)|(0|C)==(0|t)))return 1==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,1))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function eI(A,I,g,C,B,Q,i){var o,E,a=0,_=0,c=0;s=o=s-96|0,wA(o,Q,i,0),DC(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0<I>>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,a=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,a=Q?0:B;if(Q=a,c=Ng(o- -64|0,I,g),aC(i=o+32|0,i,_=g+32|0,Q=_>>>0<32?Q+1|0:Q,E,o),A=Ng(A,c,g),XC(i,64),Q=0,!B&C>>>0<33)break I;oC(A+g|0,I+g|0,C-g|0,B-(a+(g>>>0>C>>>0)|0)|0,E,1,0,o);break I}aC(A=o+32|0,A,32,0,E,o),XC(A,64)}XC(o,32)}return s=o+96|0,Q}function yI(A,I,g,C,B,Q,o,E,a,_,c){var t;if(t=bg(A,0,I),1==(0|g)|g>>>0>1)return i[9404]=22,-1;if(!(!g&I>>>0<=15)){if(!(!(Q|a)&_>>>0<2147483649))return i[9404]=22,-1;if(!(!(!!(E|a)&_>>>0>8191)|(0|C)==(0|t)))return 2==(0|c)?(Q=_>>>10|0,s=A=s+-64|0,t&&ag(t,I),(g=K(I))?(i[A+36>>2]=0,i[A+40>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+24>>2]=16,i[A+20>>2]=o,i[A+16>>2]=B,i[A+12>>2]=C,i[A+8>>2]=I,i[A+4>>2]=g,i[A+60>>2]=0,i[A+56>>2]=1,i[A+52>>2]=1,i[A+48>>2]=Q,i[A+44>>2]=E,(C=q(A+4|0,2))|!t||Ng(t,g,I),XC(g,I),BA(g)):C=-22,s=A- -64|0,C?-1:0):(i[9404]=28,-1)}return i[9404]=28,-1}function sI(A,I,g,C,B,Q,i){var o,E,a=0,_=0;s=o=s-96|0,yA(o,Q,i,0),Xg(i=o+32|0,32,0,E=Q+16|0,o),Q=-1;A:{I:if(!fC(g,I,C,B,i)){if(Q=0,!A)break A;g:{if(!(((g=!!(0|B))|!B&C>>>0>I-A>>>0)&A>>>0<I>>>0)&(!B&C>>>0<=A-I>>>0|A>>>0<=I>>>0)){if(!(C|B))break g;g=(Q=!B&C>>>0>=32|!!(0|B))?32:C,i=Q?0:B}else I=yg(A,I,C),g=(Q=g|!B&C>>>0>=32)?32:C,i=Q?0:B;if(a=g,_=Ng(o- -64|0,I,g),ug(g=o+32|0,g,Q=a+32|0,Q>>>0<32?i+1|0:i,E,o),g=Ng(A,_,a),Q=0,!B&C>>>0<33)break I;mg(g+a|0,I+a|0,C-a|0,B-(i+(C>>>0<a>>>0)|0)|0,E,1,0,o);break I}ug(A=o+32|0,A,32,0,E,o)}XC(o,32)}return s=o+96|0,Q}function hI(A,I,g,C,B,Q,E,a,_,c){var t,r;return s=t=s-400|0,i[t+4>>2]=0,yA(r=t+16|0,_,c,0),c=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[t+8>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[t+12>>2]=c,jg(c=t+80|0,64,0,t+4|0,r),wC(_=t+144|0,c),XC(c,64),SC(_,Q,E,a),SC(_,35680,0-E&15,0),SC(_,I,g,C),SC(_,35680,0-g&15,0),i[t+72>>2]=E,i[t+76>>2]=a,SC(_,Q=t+72|0,8,0),i[t+72>>2]=g,i[t+76>>2]=C,SC(_,Q,8,0),nC(_,Q=t+48|0),XC(_,256),_=oI(Q,B),XC(Q,16),A&&(_?(bg(A,0,g),_=-1):(Og(A,I,g,C,t+4|0,t+16|0),_=0)),XC(t+16|0,32),s=t+400|0,_}function DI(A,I,g,B,Q,o){var E,a;if(s=E=s-496|0,mA(a=E+288|0,A,I),mC(a,g,B,0),o)for(A=0,I=0;g=(I=I+1|0)<<24|(65280&I)<<8|I>>>8&65280|I>>>24,C[E+76|0]=g,C[E+77|0]=g>>>8,C[E+78|0]=g>>>16,C[E+79|0]=g>>>24,Ng(g=E+80|0,E+288|0,208),mC(g,E+76|0,4,0),Sg(g,E+32|0),g=i[E+60>>2],i[E+24>>2]=i[E+56>>2],i[E+28>>2]=g,g=i[E+52>>2],i[E+16>>2]=i[E+48>>2],i[E+20>>2]=g,g=i[E+44>>2],i[E+8>>2]=i[E+40>>2],i[E+12>>2]=g,g=i[E+36>>2],i[E>>2]=i[E+32>>2],i[E+4>>2]=g,Ng(g=A+Q|0,E,(A=o-A|0)>>>0>=32?32:A),o>>>0>(A=I<<5)>>>0;);XC(E+288|0,208),s=E+496|0}function fI(A,I,g,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<32)&!B||(Ug(o,32,0,Q,i),fC(I+16|0,I+32|0,g-32|0,B-E|0,o)||(Gg(A,I,g,B,Q,i),C[A+24|0]=0,C[A+25|0]=0,C[A+26|0]=0,C[A+27|0]=0,C[A+28|0]=0,C[A+29|0]=0,C[A+30|0]=0,C[A+31|0]=0,C[A+16|0]=0,C[A+17|0]=0,C[A+18|0]=0,C[A+19|0]=0,C[A+20|0]=0,C[A+21|0]=0,C[A+22|0]=0,C[A+23|0]=0,C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,a=0)),s=o+32|0,a}function pI(A,I,g,C,B,Q,E,a,_,c,t){var r,e,y;return s=r=s-384|0,i[r+4>>2]=0,yA(e=r+16|0,c,t,0),t=o[c+20|0]|o[c+21|0]<<8|o[c+22|0]<<16|o[c+23|0]<<24,i[r+8>>2]=o[c+16|0]|o[c+17|0]<<8|o[c+18|0]<<16|o[c+19|0]<<24,i[r+12>>2]=t,jg(t=r- -64|0,64,0,y=r+4|0,e),wC(c=r+128|0,t),XC(t,64),SC(c,E,a,_),SC(c,35680,0-a&15,0),Og(A,C,B,Q,y,e),SC(c,A,B,Q),SC(c,35680,0-B&15,0),i[r+56>>2]=a,i[r+60>>2]=_,SC(c,A=r+56|0,8,0),i[r+56>>2]=B,i[r+60>>2]=Q,SC(c,A,8,0),nC(c,I),XC(c,256),g&&(i[g>>2]=16,i[g+4>>2]=0),XC(r+16|0,32),s=r+384|0,0}function wI(A,I,g,C,B){var Q,E,a=0;return s=Q=s+-64|0,!g&(E=RI(A))>>>0<128?(i[Q+60>>2]=0,i[Q+52>>2]=0,i[Q+56>>2]=0,i[Q+44>>2]=0,i[Q+48>>2]=0,g=0,E&&(g=E,(1|E)>>>0<65536||(g=E)),!(a=K(g))|!(3&o[a-4|0])||bg(a,0,g),a?(i[Q+36>>2]=0,i[Q+40>>2]=0,i[Q+12>>2]=a,i[Q+20>>2]=a,i[Q+24>>2]=E,i[Q+4>>2]=a,i[Q+16>>2]=E,i[Q+28>>2]=0,i[Q+32>>2]=0,i[Q+8>>2]=E,OA(Q+4|0,A,B)?(i[9404]=28,A=-1):A=i[Q+44>>2]!=(0|I)|i[Q+48>>2]!=(C>>>10|0),BA(a)):A=-1):(i[9404]=28,A=-1),s=Q- -64|0,A}function nI(A){var I,g=0,C=0;if(!A)return-25;if(!i[A>>2])return-1;if(E[A+4>>2]<16)return-2;if(!(i[A+8>>2]|!i[A+12>>2]))return-18;if(g=i[A+20>>2],!i[A+16>>2])return g?-19:-6;if(g>>>0<8)return-6;if(!(i[A+24>>2]|!i[A+28>>2]))return-20;if(!(i[A+32>>2]|!i[A+36>>2]))return-21;if(!(g=i[A+48>>2]))return-16;if(g>>>0>16777215)return-17;if(C=-14,!((I=i[A+44>>2])>>>0<8)){if(I>>>0>2097152)return-15;if(!(g<<3>>>0>I>>>0)){if(!i[A+40>>2])return-12;if(!(A=i[A+52>>2]))return-28;C=A>>>0>16777215?-29:0}}return C}function kI(A,I){var g,C=0,B=0;g=I;A:{I:{g:{if(I&=255){if(3&A)for(;;){if(!(C=o[0|A])|(0|I)==(0|C))break A;if(!(3&(A=A+1|0)))break}if(-2139062144!=(-2139062144&((C=i[A>>2])|16843008-C)))break g;for(B=a(I,16843009);;){if(-2139062144!=(-2139062144&(16843008-(I=C^B)|I)))break g;if(C=i[A+4>>2],A=I=A+4|0,-2139062144!=(-2139062144&(16843008-C|C)))break}break I}A=RI(A)+A|0;break A}I=A}for(;;){if(!(C=o[0|(A=I)]))break A;if(I=A+1|0,(0|C)==(255&g))break}}return o[0|A]==(255&g)?A:0}function FI(A,I,g,C){var B,Q=0;return s=B=s-208|0,i[B+72>>2]=0,i[B+76>>2]=0,Q=i[8591],i[B+8>>2]=i[8590],i[B+12>>2]=Q,Q=i[8593],i[B+16>>2]=i[8592],i[B+20>>2]=Q,Q=i[8595],i[B+24>>2]=i[8594],i[B+28>>2]=Q,Q=i[8597],i[B+32>>2]=i[8596],i[B+36>>2]=Q,Q=i[8599],i[B+40>>2]=i[8598],i[B+44>>2]=Q,Q=i[8601],i[B+48>>2]=i[8600],i[B+52>>2]=Q,Q=i[8603],i[B+56>>2]=i[8602],i[B+60>>2]=Q,i[B+64>>2]=0,i[B+68>>2]=0,Q=i[8589],i[B>>2]=i[8588],i[B+4>>2]=Q,SA(B,I,g,C),j(B,A),s=B+208|0,0}function SI(A){var I=0;return i[64+(A|=0)>>2]=0,i[A+68>>2]=0,i[A+72>>2]=0,i[A+76>>2]=0,I=i[8589],i[A>>2]=i[8588],i[A+4>>2]=I,I=i[8591],i[A+8>>2]=i[8590],i[A+12>>2]=I,I=i[8593],i[A+16>>2]=i[8592],i[A+20>>2]=I,I=i[8595],i[A+24>>2]=i[8594],i[A+28>>2]=I,I=i[8597],i[A+32>>2]=i[8596],i[A+36>>2]=I,I=i[8599],i[A+40>>2]=i[8598],i[A+44>>2]=I,I=i[8601],i[A+48>>2]=i[8600],i[A+52>>2]=I,I=i[8603],i[A+56>>2]=i[8602],i[A+60>>2]=I,0}function NI(A){return~((127&~o[A+31|0]|o[A+1|0]&o[A+2|0]&o[A+3|0]&o[A+4|0]&o[A+5|0]&o[A+6|0]&o[A+7|0]&o[A+8|0]&o[A+9|0]&o[A+10|0]&o[A+11|0]&o[A+12|0]&o[A+13|0]&o[A+14|0]&o[A+15|0]&o[A+16|0]&o[A+17|0]&o[A+18|0]&o[A+19|0]&o[A+20|0]&o[A+21|0]&o[A+22|0]&o[A+23|0]&o[A+24|0]&o[A+25|0]&o[A+26|0]&o[A+27|0]&o[A+28|0]&o[A+30|0]&o[A+29|0]^255)-1&236-o[0|A])>>>8&1}function GI(A,I){var g,B=0,Q=0,i=0,E=0;if(C[15+(g=s-16|0)|0]=0,I){if(I>>>0>=4)for(E=-4&I;B=A+Q|0,C[g+15|0]=o[0|B]|o[g+15|0],C[g+15|0]=o[B+1|0]|o[g+15|0],C[g+15|0]=o[B+2|0]|o[g+15|0],C[g+15|0]=o[B+3|0]|o[g+15|0],Q=Q+4|0,(0|E)!=(0|(i=i+4|0)););if(B=3&I)for(I=0;C[g+15|0]=o[A+Q|0]|o[g+15|0],Q=Q+1|0,(0|B)!=(0|(I=I+1|0)););}return o[g+15|0]-1>>>8&1}function MI(A,I,g){var B,Q=0,E=0;if(i[12+(B=s-16|0)>>2]=A,i[B+8>>2]=I,A=0,C[B+7|0]=0,g){if(I=1&g,1!=(0|g))for(E=-2&g,g=0;C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0],Q=1|A,C[B+7|0]=o[B+7|0]|o[Q+i[B+12>>2]|0]^o[i[B+8>>2]+Q|0],A=A+2|0,(0|E)!=(0|(g=g+2|0)););I&&(C[B+7|0]=o[B+7|0]|o[i[B+12>>2]+A|0]^o[i[B+8>>2]+A|0])}return(o[B+7|0]-1>>>8&1)-1|0}function KI(A){for(var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0,_=0,c=0;B=(g=o[A+C|0])^o[0|(I=C+2688|0)]|B,Q=g^o[I+192|0]|Q,i=g^o[I+160|0]|i,E=g^o[I+128|0]|E,a=g^o[I+96|0]|a,_=g^o[I- -64|0]|_,c=g^o[I+32|0]|c,31!=(0|(C=C+1|0)););return((255&((I=127^(A=127&o[A+31|0]))|Q))-1|(255&(I|i))-1|(255&(I|E))-1|(255&(122^A|a))-1|(255&(5^A|_))-1|(255&(A|c))-1|(255&(A|B))-1)>>>8&1}function UI(A,I,g){var C=0,B=0,Q=0,i=0;return B=31&(Q=i=63&g),Q=Q>>>0>=32?-1>>>B|0:(C=-1>>>B|0)|(1<<B)-1<<32-B,Q&=A,C&=I,B=31&i,i>>>0>=32?(C=Q<<B,i=0):(C=(1<<B)-1&Q>>>32-B|C<<B,i=Q<<B),Q=C,C=31&(B=0-g&63),B>>>0>=32?(C=-1<<C,g=0):C=(g=-1<<C)|(1<<C)-1&-1>>>32-C,A&=g,I&=C,C=31&B,B>>>0>=32?(g=0,A=I>>>C|0):(g=I>>>C|0,A=((1<<C)-1&I)<<32-C|A>>>C),f=g|Q,A|i}function bI(A,I,g,C,B,Q){A|=0,I|=0,g|=0;var o=0,E=0;A:I:{g:{if(!(!(B|=0)&(C|=0)>>>0<64||(E=1+(B=B-1|0)|0,o=B,!(C=(B=C+-64|0)>>>0<4294967232?E:o)&B>>>0>4294967231|C))){if(!U(o=g,g=g- -64|0,B,C,Q|=0,0))break g;A&&bg(A,0,B)}if(C=-1,!I)break I;i[I>>2]=0,i[I+4>>2]=0,C=-1;break A}I&&(i[I>>2]=B,i[I+4>>2]=C),C=0,A&&yg(A,g,B)}return 0|C}function HI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,jg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),SC(t,35648,0-o&15,0),SC(t,I,g,C),SC(t,35648,0-g&15,0),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(Cg(A,I,g,C,a,1,_),Q=0)),s=c+352|0,Q}function YI(A,I,g,C,B,Q){var E,a;return A|=0,I|=0,g|=0,C|=0,Q|=0,s=E=s-32|0,a=o[0|(B|=0)]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+24>>2]=0,i[E+28>>2]=0,i[E+16>>2]=a,i[E+20>>2]=B,i[E+8>>2]=0,i[E+12>>2]=0,i[E>>2]=g,i[E+4>>2]=C,I-65>>>0<=4294967246?(i[9404]=28,A=-1):A=QA(A,I,0,0,0,Q,32,E,E+16|0),s=E+32|0,0|A}function JI(A,I,g,C,B){var Q,o;return A|=0,I|=0,g|=0,C|=0,s=Q=s-512|0,iI(o=Q+32|0,B|=0,32),dC(o,I,g,C),wg(o,Q+448|0),I=i[Q+476>>2],i[Q+24>>2]=i[Q+472>>2],i[Q+28>>2]=I,I=i[Q+468>>2],i[Q+16>>2]=i[Q+464>>2],i[Q+20>>2]=I,I=i[Q+460>>2],i[Q+8>>2]=i[Q+456>>2],i[Q+12>>2]=I,I=i[Q+452>>2],i[Q>>2]=i[Q+448>>2],i[Q+4>>2]=I,I=NC(A,Q),g=MI(Q,A,32),s=Q+512|0,((0|A)==(0|Q)?-1:I)|g}function dI(A,I,g,C,B,Q,o,E,a,_){var c,t,r;return s=c=s-352|0,Xg(r=c+32|0,64,0,a,_),wC(t=c+96|0,r),XC(r,64),SC(t,Q,o,E),i[c+24>>2]=o,i[c+28>>2]=E,SC(t,Q=c+24|0,8,0),SC(t,I,g,C),i[c+24>>2]=g,i[c+28>>2]=C,SC(t,Q,8,0),nC(t,c),XC(t,256),Q=oI(c,B),XC(c,16),A&&(Q?(bg(A,0,g),Q=-1):(mg(A,I,g,C,a,1,0,_),Q=0)),s=c+352|0,Q}function mI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,jg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),SC(r,35648,0-E&15,0),Cg(A,C,B,Q,_,1,c),SC(r,A,B,Q),SC(r,35648,0-B&15,0),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,A=t+8|0,8,0),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,A,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function lI(A,I){var g,C=0,B=0,Q=0,E=0,_=0;A:if(!(((g=o[0|A])-58&255)>>>0<246)){for(C=g,B=A;;){if(E=B,Q>>>0>429496729)break A;if((C=(255&C)-48|0)>>>0>~(Q=a(Q,10))>>>0)break A;if(Q=Q+C|0,!(((C=o[0|(B=B+1|0)])-58&255)>>>0>245))break}48==(0|g)&(0|A)!=(0|E)|(0|A)==(0|B)||(i[I>>2]=Q,_=B)}return _}function uI(A){var I=0,g=0,C=0,B=0;I=65,g=1024;A:{I:{if((0|(C=255&A))!=o[1024])for(C=a(C,16843009);;){if(-2139062144!=(-2139062144&((B=C^i[g>>2])|16843008-B)))break I;if(g=g+4|0,!((I=I-4|0)>>>0>3))break}if(!I)break A}for(A&=255;;){if((0|A)==o[0|g])return g;if(g=g+1|0,!(I=I-1|0))break}}return 0}function xI(A,I,g,C,B,Q,o,E,a,_,c){var t,r,e;return s=t=s-336|0,Xg(e=t+16|0,64,0,_,c),wC(r=t+80|0,e),XC(e,64),SC(r,o,E,a),i[t+8>>2]=E,i[t+12>>2]=a,SC(r,o=t+8|0,8,0),mg(A,C,B,Q,_,1,0,c),SC(r,A,B,Q),i[t+8>>2]=B,i[t+12>>2]=Q,SC(r,o,8,0),nC(r,I),XC(r,256),g&&(i[g>>2]=16,i[g+4>>2]=0),s=t+336|0,0}function vI(A,I,g,B,Q,i){return!B&g>>>0>=32|B?(Gg(A,I,g,B,Q,i),hC(A+16|0,A+32|0,g-32|0,B-(g>>>0<32)|0,A),C[A+8|0]=0,C[A+9|0]=0,C[A+10|0]=0,C[A+11|0]=0,C[A+12|0]=0,C[A+13|0]=0,C[A+14|0]=0,C[A+15|0]=0,C[0|A]=0,C[A+1|0]=0,C[A+2|0]=0,C[A+3|0]=0,C[A+4|0]=0,C[A+5|0]=0,C[A+6|0]=0,C[A+7|0]=0,A=0):A=-1,A}function RI(A){var I=0,g=0,C=0;A:{I:if(3&(I=A)){if(!o[0|I])return 0;for(;;){if(!(3&(I=I+1|0)))break I;if(!o[0|I])break}break A}for(;g=I,I=I+4|0,-2139062144==(-2139062144&((C=i[g>>2])|16843008-C)););for(;g=(I=g)+1|0,o[0|I];);}return I-A|0}function LI(A,I,g,C,B,Q){I|=0,B|=0,Q|=0;var o,E=0;return s=o=s-16|0,w(A|=0,o+8|0,yg(A- -64|0,g|=0,C|=0),C,B,Q,0),i[o+12>>2]|64!=i[o+8>>2]?(I&&(i[I>>2]=0,i[I+4>>2]=0),bg(A,0,C- -64|0),E=-1):I&&(i[I>>2]=C- -64,i[I+4>>2]=B-((C>>>0<4294967232)-1|0)),s=o+16|0,0|E}function PI(A,I){var g,C=0,B=0,Q=0,E=0;return(g=uI(o[0|I]))&&(C=uI(o[I+1|0]))&&(B=uI(o[I+2|0]))&&(Q=uI(o[I+3|0]))&&(E=uI(o[I+4|0]))?(i[A>>2]=g-1024|C-1024<<6|B-1024<<12|Q-1024<<18|E-1024<<24,I+5|0):(i[A>>2]=0,0)}function qI(A,I,g){var C;for(i[12+(C=s-16|0)>>2]=A,i[C+8>>2]=I,A=0,i[C+4>>2]=0;i[C+4>>2]=i[C+4>>2]|o[i[C+12>>2]+A|0]^o[i[C+8>>2]+A|0],I=1|A,i[C+4>>2]=i[C+4>>2]|o[I+i[C+12>>2]|0]^o[I+i[C+8>>2]|0],(0|g)!=(0|(A=A+2|0)););return(i[C+4>>2]-1>>>8&1)-1|0}function zI(A,I,g,C,B,Q,o,E,a,_,c){var t=0,r=0,e=0;return r=-1,(t=C>>>0<32)&!B||!(t=B-t|0)&(e=C-32|0)>>>0>4294967263|t|!E&o>>>0>4294967263|E||(r=0|pB[i[c>>2]](A,g,e,(g+C|0)-32|0,32,Q,o,a,_)),I&&(i[I>>2]=r?0:C-32|0,i[I+4>>2]=r?0:B-(C>>>0<32)|0),r}function jI(A,I){var g,C=0,B=0,Q=0;s=g=s-896|0,fA(C=g+848|0,I),fA(B=g+800|0,I+32|0),$(Q=g+320|0,C),$(I=g+160|0,B),$A(C=g+640|0,I),sA(I=g+480|0,Q,C),b(g,I,C=g+600|0),b(g+40|0,B=g+520|0,Q=g+560|0),b(g+80|0,Q,C),b(g+120|0,I,B),W(A,g),s=g+896|0}function XI(A){var I=0,g=0,B=0,Q=0,i=0;for(I=1;g=(B=I)+o[0|(I=A+Q|0)]|0,C[0|I]=g,g=o[I+1|0]+(g>>>8|0)|0,C[I+1|0]=g,g=o[I+2|0]+(g>>>8|0)|0,C[I+2|0]=g,B=I,I=o[I+3|0]+(g>>>8|0)|0,C[B+3|0]=I,I=I>>>8|0,Q=Q+4|0,4!=(0|(i=i+4|0)););}function OI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?(!Q&B>>>0>=3|!!(0|Q))&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,1)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function WI(A,I){var g=0;4&I&&((I=i[A>>2])&&XC(i[I+4>>2],i[A+16>>2]<<10),(I=i[A+4>>2])&&XC(I,i[A+20>>2]<<3)),BA(i[A+4>>2]),i[A+4>>2]=0,(I=i[A>>2])&&(g=i[I>>2])&&BA(g),BA(I),i[A>>2]=0}function VI(A,I,g,C,B,o,E,a,_,c,t){return!B&C>>>0>4294967263|!!(0|B)|!a&E>>>0>=4294967264|!!(0|a)?(rC(),Q()):(A=0|pB[i[t>>2]](A,A+C|0,32,g,C,o,E,_,c),I&&(C=(g=C+32|0)>>>0<32?B+1|0:B,i[I>>2]=A?0:g,i[I+4>>2]=A?0:C)),A}function ZI(A){var I=0,g=0,C=0,B=0,Q=0,i=0,E=0,a=0;for(I=32,g=1;a|=(B=o[(C=I-2|0)+A|0])-(Q=o[C+2912|0])>>8&(I=((i=o[2912+(I=I-1|0)|0])^(E=o[A+I|0]))-1>>8&g)|E-i>>8&g,g=I&(B^Q)-1>>8,I=C;);return!!(255&a)}function TI(A,I,g,C,B,Q,o){var E;return s=E=s-16|0,A=bg(A,0,128),!(C|Q)&o>>>0<2147483649?!!(B|Q)&o>>>0>8191?(ag(E,16),A=iA(B,o>>>10|0,I,g,E,A,2)?-1:0):(i[9404]=28,A=-1):(i[9404]=22,A=-1),s=E+16|0,A}function $I(A){var I=0;return i[32+(A|=0)>>2]=0,i[A+36>>2]=0,I=i[8809],i[A>>2]=i[8808],i[A+4>>2]=I,I=i[8811],i[A+8>>2]=i[8810],i[A+12>>2]=I,I=i[8813],i[A+16>>2]=i[8812],i[A+20>>2]=I,I=i[8815],i[A+24>>2]=i[8814],i[A+28>>2]=I,0}function Ag(A,I,g,C,B,Q,i){var o,E,a=0,_=0;return s=o=s+-64|0,a=-1,(E=g>>>0<16)&!C||CI(_=o+32|0,i,Q)||yA(o,35584,_,0)||(a=sI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o- -64|0,a}function Ig(A,I,g,C){var B,Q,i,o,E=0,_=0;return o=a(E=g>>>16|0,_=A>>>16|0),E=(65535&(_=((i=a(B=65535&g,Q=65535&A))>>>16|0)+a(_,B)|0))+a(E,Q)|0,f=(a(I,g)+o|0)+a(A,C)+(_>>>16)+(E>>>16)|0,65535&i|E<<16}function gg(A,I,g){var C=0,B=0;if(!g)return 0;if(C=o[0|A])A:{for(;;){if((0|(B=o[0|I]))!=(0|C)|!B)break A;if(!(g=g-1|0))break A;if(I=I+1|0,C=o[A+1|0],A=A+1|0,!C)break}C=0}else C=0;return C-o[0|I]|0}function Cg(A,I,g,C,B,o,E){var a=0,_=0;if(a=C,!(1==(((a=(_=g+63|0)>>>0<63?a+1|0:a)>>>6|0)+!!(0|(a=(63&a)<<26|_>>>6))|0)&o>>>0>(_=0-a|0)>>>0|1==(0|C)|C>>>0>1))return 0|pB[i[9199]](A,I,g,C,B,o,E);rC(),Q()}function Bg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=vI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function Qg(A,I,g,C,B,Q,i){var o;return A|=0,I|=0,g|=0,C|=0,B|=0,s=o=s+-64|0,CI(o+32|0,i|=0,Q|=0)?Q=-1:(Q=-1,wA(o,35664,o+32|0,0)||(Q=fI(A,I,g,C,B,o),XC(o,32))),s=o- -64|0,0|Q}function ig(A,I,g,C,B,i,o){var E;if(s=E=s+-64|0,!C&g>>>0<4294967280)return CI(E+32|0,o,i)?o=-1:(o=-1,yA(E,35584,E+32|0,0)||(o=EI(A+16|0,A,I,g,C,B,E),XC(E,32))),s=E- -64|0,o;rC(),Q()}function og(A,I){for(var g=0,B=0,Q=0,i=0,E=0;B=A+Q|0,g=o[I+Q|0]+(o[0|B]+g|0)|0,C[0|B]=g,i=(B=1|Q)+A|0,g=o[I+B|0]+(o[0|i]+(g>>>8|0)|0)|0,C[0|i]=g,g=g>>>8|0,Q=Q+2|0,32!=(0|(E=E+2|0)););}function Eg(A,I){for(var g=0,B=0,Q=0,i=0,E=0;g=(o[0|(B=A+Q|0)]-o[I+Q|0]|0)+g|0,C[0|B]=g,g=(o[0|(i=(B=1|Q)+A|0)]-o[I+B|0]|0)+(g>>8)|0,C[0|i]=g,g>>=8,Q=Q+2|0,64!=(0|(E=E+2|0)););}function ag(A,I){A|=0;var g,B=0,Q=0,i=0;if(s=g=s-16|0,I|=0)for(;C[g+15|0]=0,Q=A+B|0,i=0|t(36800,g+15|0,0),C[0|Q]=i,(0|(B=B+1|0))!=(0|I););s=g+16|0}function _g(A,I,g,C,B,Q,i){var o,E,a=0;return s=o=s-32|0,a=-1,(E=g>>>0<16)&!C||cC(o,Q,i)||(a=eI(A,I+16|0,I,g-16|0,C-E|0,B,o),XC(o,32)),s=o+32|0,a}function cg(A){var I,g;A:{if(!((A=(I=i[8924])+(g=A+7&-8)|0)>>>0<=I>>>0&&g)){if(A>>>0<=wB()<<16>>>0)break A;if(0|y(0|A))break A}return i[9404]=48,-1}return i[8924]=A,I}function tg(A,I){var g,B,Q;s=g=s-176|0,LA(B=g+96|0,I+80|0),b(Q=g+48|0,I,B),b(g,I+40|0,B),QI(A,g),QI(g+144|0,Q),C[A+31|0]=o[A+31|0]^o[g+144|0]<<7,s=g+176|0}function rg(A,I,g,C,B,Q,i,o,E,a){var _,c,t=0,r=0,e=0;return s=_=s-16|0,t=-1,_C(c=_+4|0)||(r=-1,e=_A(c,A,I,g,C,B,Q,i,o,E,a),t=Rg(c)?r:e),s=_+16|0,t}function eg(A,I,g,C,B,o,E,a,_,c,t,r){return g&&(i[g>>2]=32,i[g+4>>2]=0),!_&a>>>0<4294967264&!o&B>>>0<=4294967263||(rC(),Q()),0|pB[i[r>>2]](A,I,32,C,B,E,a,c,t)}function yg(A,I,g){var B=0;if(A>>>0<I>>>0)return Ng(A,I,g);if(g)for(B=A+g|0,I=I+g|0;I=I-1|0,C[0|(B=B-1|0)]=o[0|I],g=g-1|0;);return A}function sg(A,I,g,C,B,i,o){var E,a=0;if(s=E=s-32|0,!C&g>>>0<4294967280)return a=-1,cC(E,i,o)||(a=aI(A+16|0,A,I,g,C,B,E),XC(E,32)),s=E+32|0,a;rC(),Q()}function hg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?eI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function Dg(A,I,g,C,B,Q){return I|=0,0|(!(C|=0)&(g|=0)>>>0>=16|C?sI(A|=0,I+16|0,I,g-16|0,C-(g>>>0<16)|0,B|=0,Q|=0):-1)}function fg(A,I,g,C,B,Q,o,E,a,_,c){return!C&g>>>0>4294967263|C|!E&o>>>0>4294967263|E?-1:0|pB[i[c>>2]](A,I,g,B,32,Q,o,a,_)}function pg(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=wA(A,35664,C,0)),s=C+32|0,0|B}function wg(A,I){var g;return I|=0,s=g=s+-64|0,j(A|=0,g),SA(A=A+208|0,g,64,0),j(A,I),XC(g,64),s=g- -64|0,0}function ng(A,I,g,C){var B;return I|=0,g|=0,C|=0,s=B=s+-64|0,j(A|=0,B),A=w(I,g,B,64,0,C,1),s=B- -64|0,0|A}function kg(A,I){var g,C,B;b(A,I,g=I+120|0),b(A+40|0,C=I+40|0,B=I+80|0),b(A+80|0,B,g),b(A+120|0,I,C)}function Fg(A,I,g,C,B,Q,i){return 0|TI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)}function Sg(A,I){var g;return I|=0,s=g=s-32|0,JA(A|=0,g),UA(A=A+104|0,g,32,0),JA(A,I),XC(g,32),s=g+32|0,0}function Ng(A,I,g){var B=0;if(g)for(B=A;C[0|B]=o[0|I],B=B+1|0,I=I+1|0,g=g-1|0;);return A}function Gg(A,I,g,C,B,Q){var i;return s=i=s-32|0,wA(i,B,Q,0),A=oC(A,I,g,C,B+16|0,0,0,i),XC(i,32),s=i+32|0,A}function Mg(A){for(A|=0;ag(A,32),C[A+31|0]=31&o[A+31|0],!ZI(A)||GI(A,32););}function Kg(A,I,g){var C;return I|=0,g|=0,s=C=s+-64|0,j(A|=0,C),A=U(I,C,64,0,g,1),s=C- -64|0,0|A}function Ug(A,I,g,C,B){var Q;return s=Q=s-32|0,wA(Q,C,B,0),A=DC(A,I,g,C+16|0,Q),XC(Q,32),s=Q+32|0,A}function bg(A,I,g){var B=0;if(g)for(B=A;C[0|B]=I,B=B+1|0,g=g-1|0;);return A}function Hg(A,I,g){return A|=0,I|=0,(g|=0)>>>0>=256&&(r(1366,1279,107,1123),Q()),0|AA(A,I,255&g)}function Yg(A,I,g,C,B,Q,i){return 0|aI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function Jg(A,I,g,C,B,Q,i){return 0|eI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function dg(A,I,g,C,B,Q,i){return 0|EI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function mg(A,I,g,C,B,o,E,a){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,o,E,a)}function lg(A,I,g,C,B,Q,i){return 0|sI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)}function ug(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9198]](A,I,g,C,B,0,0,o)}function xg(A,I,g,C,B,o){return 1==(0|C)|C>>>0>1&&(rC(),Q()),0|pB[i[9199]](A,I,g,C,B,0,o)}function vg(A,I,g,C,B,Q){return w(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,0),0}function Rg(A){var I;return(I=i[A>>2])&&BA(I),i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function Lg(A,I){var g=0;return(-1>>>(g=31&I)&A)<<g|((g=A)&-1<<(A=0-I&31))>>>A}function Pg(A,I,g,C,B,Q){return 0|vI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function qg(A,I,g,C,B,Q){return 0|fI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function zg(A,I,g,C,B,Q){return 0|Gg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)}function jg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9197]](A,I,g,C,B)}function Xg(A,I,g,C,B){return 1==(0|g)|g>>>0>1&&(rC(),Q()),0|pB[i[9196]](A,I,g,C,B)}function Og(A,I,g,C,B,o){1==(0|C)|C>>>0>1&&(rC(),Q()),pB[i[9199]](A,I,g,C,B,1,o)}function Wg(A,I,g,C,B){return 0|U(A|=0,I|=0,g|=0,C|=0,B|=0,0)}function Vg(A,I,g,C,B){return 0|hC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Zg(A,I,g,C,B){return 0|fC(A|=0,I|=0,g|=0,C|=0,B|=0)}function Tg(A,I,g,C,B){return 0|Ug(A|=0,I|=0,g|=0,C|=0,B|=0)}function $g(){var A;s=A=s-16|0,C[A+15|0]=0,t(36836,A+15|0,0),s=A+16|0}function AC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,20),0}function IC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,12),0}function gC(A,I,g,C){return CA(A|=0,I|=0,g|=0,C|=0,8),0}function CC(A,I,g,C){return 0|FI(A|=0,I|=0,g|=0,C|=0)}function BC(A,I,g,C){return 0|SC(A|=0,I|=0,g|=0,C|=0)}function QC(A,I,g,C){return 0|SA(A|=0,I|=0,g|=0,C|=0)}function iC(A,I,g,C){return 0|eA(A|=0,I|=0,g|=0,C|=0)}function oC(A,I,g,C,B,Q,o,E){return 0|pB[i[8933]](A,I,g,C,B,Q,o,E)}function EC(A,I,g,C){return 0|dC(A|=0,I|=0,g|=0,C|=0)}function aC(A,I,g,C,B,Q){return 0|pB[i[8933]](A,I,g,C,B,0,0,Q)}function _C(A){return i[A+8>>2]=0,i[A>>2]=0,i[A+4>>2]=0,0}function cC(A,I,g){return 0|pg(A|=0,I|=0,g|=0)}function tC(A,I,g){return 0|CI(A|=0,I|=0,g|=0)}function rC(){var A;(A=i[9538])&&pB[0|A](),DB(),Q()}function eC(A,I,g){return 0|Hg(A|=0,I|=0,g|=0)}function yC(A,I,g){return 0|iI(A|=0,I|=0,g|=0)}function sC(A,I){return A|=0,ag(I|=0,32),0|pC(A,I)}function hC(A,I,g,C,B){return 0|pB[i[8925]](A,I,g,C,B)}function DC(A,I,g,C,B){return 0|pB[i[8932]](A,I,g,C,B)}function fC(A,I,g,C,B){return 0|pB[i[8926]](A,I,g,C,B)}function pC(A,I){return A|=0,I|=0,0|pB[i[8931]](A,I)}function wC(A,I){return A|=0,I|=0,0|pB[i[8927]](A,I)}function nC(A,I){return A|=0,I|=0,0|pB[i[8929]](A,I)}function kC(A,I,g,C,B,Q,i){return lA(A,I,g,C,B,Q,i)}function FC(A){return A?31-_(A-1^A)|0:32}function SC(A,I,g,C){return 0|pB[i[8928]](A,I,g,C)}function NC(A,I){return 0|qI(A|=0,I|=0,32)}function GC(A,I){return 0|qI(A|=0,I|=0,64)}function MC(A,I,g){n(A|=0,I|=0,g|=0)}function KC(A,I){return 0|pC(A|=0,I|=0)}function UC(A,I){return 0|sC(A|=0,I|=0)}function bC(A,I,g,C){return BI(A,I,g,C,1)}function HC(A,I,g,C){return wI(A,I,g,C,1)}function YC(A,I,g,C){return wI(A,I,g,C,2)}function JC(A,I,g,C){return BI(A,I,g,C,2)}function dC(A,I,g,C){return SA(A,I,g,C),0}function mC(A,I,g,C){return UA(A,I,g,C),0}function lC(A,I,g,C){return WA(A,I,g,C)}function uC(A){return SI(A|=0),0}function xC(){return-2147483648}function vC(){return 1073741824}function RC(){return 268435456}function LC(){return 33554432}function PC(A){ag(A|=0,32)}function qC(){return 67108864}function zC(A){ag(A|=0,16)}function jC(){return 16777216}function XC(A,I){bg(A,0,I)}function OC(){return 1564}function WC(){return 1338}function VC(){return 8192}function ZC(){return 384}function TC(){return 256}function $C(){return 416}function AB(){return 128}function IB(){return 208}function gB(){return 64}function CB(){return 16}function BB(){return 32}function QB(){return-65}function iB(){return-33}function oB(){return 48}function EB(){return-17}function aB(){return 12}function _B(){return 24}function cB(){return-1}function tB(){return 2}function rB(){return 3}function eB(){return 8}function yB(){return 1}function sB(){return 4}function hB(){return 0}function DB(){e(),Q()}B(I=o,1024,\"Li8wMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5egBqcwByYW5kb21ieXRlcwBiNjRfcG9zIDw9IGI2NF9sZW4AY3J5cHRvX2dlbmVyaWNoYXNoX2JsYWtlMmJfZmluYWwAYXJnb24yaWQsYXJnb24yaQAkYXJnb24yaQAkYXJnb24yaWQAcmFuZG9tYnl0ZXMvcmFuZG9tYnl0ZXMuYwBzb2RpdW0vY29kZWNzLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2JsYWtlMmItcmVmLmMAY3J5cHRvX2dlbmVyaWNoYXNoL2JsYWtlMmIvcmVmL2dlbmVyaWNoYXNoX2JsYWtlMmIuYwB4MjU1MTlibGFrZTJiAGJ1Zl9sZW4gPD0gU0laRV9NQVgAb3V0bGVuIDw9IFVJTlQ4X01BWABTLT5idWZsZW4gPD0gQkxBS0UyQl9CTE9DS0JZVEVTACRhcmdvbjJpJHY9ACRhcmdvbjJpZCR2PQBjdXJ2ZTI1NTE5AGVkMjU1MTkAaG1hY3NoYTUxMjI1NgBjdXJ2ZTI1NTE5eHNhbHNhMjBwb2x5MTMwNQBzb2RpdW1fYmluMmJhc2U2NABzaXBoYXNoMjQAc2hhNTEyAHhzYWxzYTIwADEuMC4yMAAkYXJnb24yaSQAJGFyZ29uMmlkJAAkNyQAAAAAAAC2eFn/hXLTAL1uFf8PCmoAKcABAJjoef+8PKD/mXHO/wC34v60DUj/AAAAAAAAAACwoA7+08mG/54YjwB/aTUAYAy9AKfX+/+fTID+amXh/x78BACSDK4=\"),B(I,1680,\"WfGy/grlpv973Sr+HhTUAFKAAwAw0fMAd3lA/zLjnP8AbsUBZxuQ\"),B(I,1728,\"hTuMAb3xJP/4JcMBYNw3ALdMPv/DQj0AMkykAeGkTP9MPaP/dT4fAFGRQP92QQ4AonPW/waKLgB85vT/CoqPADQawgC49EwAgY8pAb70E/97qnr/YoFEAHnVkwBWZR7/oWebAIxZQ//v5b4BQwu1AMbwif7uRbz/Q5fuABMqbP/lVXEBMkSH/xFqCQAyZwH/UAGoASOYHv8QqLkBOFno/2XS/AAp+kcAzKpP/w4u7/9QTe8AvdZL/xGN+QAmUEz/vlV1AFbkqgCc2NABw8+k/5ZCTP+v4RD/jVBiAUzb8gDGonIALtqYAJsr8f6boGj/M7ulAAIRrwBCVKAB9zoeACNBNf5F7L8ALYb1AaN73QAgbhT/NBelALrWRwDpsGAA8u82ATlZigBTAFT/iKBkAFyOeP5ofL4AtbE+//opVQCYgioBYPz2AJeXP/7vhT4AIDicAC2nvf+OhbMBg1bTALuzlv76qg7/0qNOACU0lwBjTRoA7pzV/9XA0QFJLlQAFEEpATbOTwDJg5L+qm8Y/7EhMv6rJsv/Tvd0ANHdmQCFgLIBOiwZAMknOwG9E/wAMeXSAXW7dQC1s7gBAHLbADBekwD1KTgAfQ3M/vStdwAs3SD+VOoUAPmgxgHsfur/L2Oo/qrimf9ms9gA4o16/3pCmf629YYA4+QZAdY56//YrTj/tefSAHeAnf+BX4j/bn4zAAKpt/8HgmL+RbBe/3QE4wHZ8pH/yq0fAWkBJ/8ur0UA5C86/9fgRf7POEX/EP6L/xfP1P/KFH7/X9Vg/wmwIQDIBc//8SqA/iMhwP/45cQBgRF4APtnl/8HNHD/jDhC/yji9f/ZRiX+rNYJ/0hDhgGSwNb/LCZwAES4S//OWvsAleuNALWqOgB09O8AXJ0CAGatYgDpiWABfzHLAAWblAAXlAn/03oMACKGGv/bzIgAhggp/+BTK/5VGfcAbX8A/qmIMADud9v/563VAM4S/v4Iugf/fgkHAW8qSABvNOz+YD+NAJO/f/7NTsD/DmrtAbvbTACv87v+aVmtAFUZWQGi85QAAnbR/iGeCQCLoy7/XUYoAGwqjv5v/I7/m9+QADPlp/9J/Jv/XnQM/5ig2v+c7iX/s+rP/8UAs/+apI0A4cRoAAojGf7R1PL/Yf3e/rhl5QDeEn8BpIiH/x7PjP6SYfMAgcAa/slUIf9vCk7/k1Gy/wQEGACh7tf/Bo0hADXXDv8ptdD/54udALPL3f//uXEAveKs/3FC1v/KPi3/ZkAI/06uEP6FdUT/\"),B(I,2720,\"AQ==\"),B(I,2752,\"JuiVj8KyJ7BFw/SJ8u+Y8NXfrAXTxjM5sTgCiG1T/AXHF2pwPU3YT7o8C3YNEGcPKiBT+iw5zMZOx/13kqwDeuz///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f+3T9VwaYxJY1pz3ot753hQ=\"),B(I,2943,\" \"),B(I,33964,\"AQAAAHbBXwBlcAL/UPyh/vJqxv+FBrIA5N9wAN/uVf4z8xoAPiuL/stBCg==\"),B(I,34016,\"M03tAJGqVv82JjP/8YBl/yl5Sv/sTpsAqZdp/pwpSADCZq//zqJl/wAAAAAAAAAAGy57ARKo/f/Tr5f+w9tgADh2vv7+0fX/mWR+/uiBFf81uPL/x6Td\"),B(I,34144,\"AQ==\"),B(I,34176,\"4Ot6fDtBuK4WVuP68Z/EatoJjeucMrH9hmIFFl9JuABfnJW8o1CMJLHQsVWcg+9bBERcxFgcjobYIk7d0J8RV+z///////////////////////////////////////9/7f///////////////////////////////////////3/u////////////////////////////////////////f0xpYnNvZGl1bURSRwAAAAAIybzzZ+YJajunyoSFrme7K/iU/nLzbjzxNh1fOvVPpdGC5q1/Ug5RH2w+K4xoBZtrvUH7q9mDH3khfhMZzeBbIq4o15gvikLNZe8jkUQ3cS87TezP+8C1vNuJgaXbtek4tUjzW8JWORnQBbbxEfFZm08Zr6SCP5IYgW3a1V4cq0ICA6OYqgfYvm9wRQFbgxKMsuROvoUxJOK0/9XDfQxVb4l78nRdvnKxlhY7/rHegDUSxyWnBtyblCZpz3Txm8HSSvGewWmb5OMlTziGR77vtdWMi8adwQ9lnKx3zKEMJHUCK1lvLOktg+SmbqqEdErU+0G93KmwXLVTEYPaiPl2q99m7lJRPpgQMrQtbcYxqD8h+5jIJwOw5A7vvsd/Wb/Cj6g98wvgxiWnCpNHkafVb4ID4FFjygZwbg4KZykpFPwv0kaFCrcnJskmXDghGy7tKsRa/G0sTd+zlZ0TDThT3mOvi1RzCmWosnc8uwpqduau7UcuycKBOzWCFIUscpJkA/FMoei/ogEwQrxLZhqokZf40HCLS8IwvlQGo1FsxxhS79YZ6JLREKllVSQGmdYqIHFXhTUO9LjRuzJwoGoQyNDSuBbBpBlTq0FRCGw3Hpnrjt9Md0gnqEib4bW8sDRjWsnFswwcOcuKQeNKqthOc+Njd0/KnFujuLLW828uaPyy713ugo90YC8XQ29jpXhyq/ChFHjIhOw5ZBoIAseMKB5jI/r/vpDpvYLe62xQpBV5xrL3o/m+K1Ny4/J4ccacYSbqzj4nygfCwCHHuIbRHuvgzdZ92up40W7uf0999bpvF3KqZ/AGppjIosV9YwquDfm+BJg/ERtHHBM1C3EbhH0EI/V32yiTJMdAe6vKMry+yRUKvp48TA0QnMRnHUO2Qj7LvtTFTCp+ZfycKX9Z7PrWOqtvy18XWEdKjBlEbIA=\"),B(I,35184,\"7dP1XBpjEljWnPei3vneFA==\"),B(I,35215,\"EA==\"),B(I,35232,\"Z+YJaoWuZ7ty8248OvVPpX9SDlGMaAWbq9mDHxnN4FuYL4pCkUQ3cc/7wLWl27XpW8JWOfER8Vmkgj+S1V4cq5iqB9gBW4MSvoUxJMN9DFV0Xb5y/rHegKcG3Jt08ZvBwWmb5IZHvu/GncEPzKEMJG8s6S2qhHRK3KmwXNqI+XZSUT6YbcYxqMgnA7DHf1m/8wvgxkeRp9VRY8oGZykpFIUKtyc4IRsu/G0sTRMNOFNUcwpluwpqdi7JwoGFLHKSoei/oktmGqhwi0vCo1FsxxnoktEkBpnWhTUO9HCgahAWwaQZCGw3Hkx3SCe1vLA0swwcOUqq2E5Pypxb828uaO6Cj3RvY6V4FHjIhAgCx4z6/76Q62xQpPej+b7yeHHGgA==\"),B(I,35600,\"U2lnRWQyNTUxOSBubyBFZDI1NTE5IGNvbGxpc2lvbnMB\"),B(I,35696,\"EJUBAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQ==\"),B(I,35744,\"xmNjpfh8fITud3eZ9nt7jf/y8g3Wa2u93m9vsZHFxVRgMDBQAgEBA85nZ6lWKyt95/7+GbXX12JNq6vm7HZ2mo/KykUfgoKdicnJQPp9fYfv+voVsllZ645HR8n78PALQa2t7LPU1GdfoqL9Ra+v6iOcnL9TpKT35HJylpvAwFt1t7fC4f39HD2Tk65MJiZqbDY2Wn4/P0H19/cCg8zMT2g0NFxRpaX00eXlNPnx8QjicXGTq9jYc2IxMVMqFRU/CAQEDJXHx1JGIyNlncPDXjAYGCg3lpahCgUFDy+amrUOBwcJJBISNhuAgJvf4uI9zevrJk4nJ2l/srLN6nV1nxIJCRsdg4OeWCwsdDQaGi42Gxst3G5usrRaWu5boKD7pFJS9nY7O0231tZhfbOzzlIpKXvd4+M+Xi8vcROEhJemU1P1udHRaAAAAADB7e0sQCAgYOP8/B95sbHItltb7dRqar6Ny8tGZ76+2XI5OUuUSkremExM1LBYWOiFz89Ku9DQa8Xv7ypPqqrl7fv7FoZDQ8WaTU3XZjMzVRGFhZSKRUXP6fn5EAQCAgb+f3+BoFBQ8Hg8PEQln5+6S6io46JRUfNdo6P+gEBAwAWPj4o/kpKtIZ2dvHA4OEjx9fUEY7y833e2tsGv2tp1QiEhYyAQEDDl//8a/fPzDr/S0m2Bzc1MGAwMFCYTEzXD7Owvvl9f4TWXl6KIRETMLhcXOZPExFdVp6fy/H5+gno9PUfIZGSsul1d5zIZGSvmc3OVwGBgoBmBgZieT0/Ro9zcf0QiImZUKip+O5CQqwuIiIOMRkbKx+7uKWu4uNMoFBQ8p97eebxeXuIWCwsdrdvbdtvg4DtkMjJWdDo6ThQKCh6SSUnbDAYGCkgkJGy4XFzkn8LCXb3T025DrKzvxGJipjmRkagxlZWk0+TkN/J5eYvV5+cyi8jIQ243N1nabW23AY2NjLHV1WScTk7SSamp4NhsbLSsVlb68/T0B8/q6iXKZWWv9Hp6jkeurukQCAgYb7q61fB4eIhKJSVvXC4ucjgcHCRXpqbxc7S0x5fGxlHL6Ogjod3dfOh0dJw+Hx8hlktL3WG9vdwNi4uGD4qKheBwcJB8Pj5CcbW1xMxmZqqQSEjYBgMDBff29gEcDg4SwmFho2o1NV+uV1f5abm50BeGhpGZwcFYOh0dJyeenrnZ4eE46/j4EyuYmLMiEREz0mlpu6nZ2XAHjo6JM5SUpy2bm7Y8Hh4iFYeHksnp6SCHzs5JqlVV/1AoKHil3996A4yMj1mhofgJiYmAGg0NF2W/v9rX5uYxhEJCxtBoaLiCQUHDKZmZsFotLXceDw8Re7Cwy6hUVPxtu7vWLBYWOgoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAAAAR\");var fB,pB=(fB=[null,function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-128&-64,i[E>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+4>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+8>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+12>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=_>>>8&1048575,i[E+40>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+44>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+48>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+80|0]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+52>>2]=Q,vA(E,I,g,B),gI(E,A),s=a,0},function(A,I,g,B,Q){var E,a,_;return A|=0,I|=0,g|=0,B|=0,Q|=0,s=E=(a=s)-192&-64,i[E+64>>2]=67108863&(o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),i[E+68>>2]=(o[Q+3|0]|o[Q+4|0]<<8|o[Q+5|0]<<16|o[Q+6|0]<<24)>>>2&67108611,i[E+72>>2]=(o[Q+6|0]|o[Q+7|0]<<8|o[Q+8|0]<<16|o[Q+9|0]<<24)>>>4&67092735,i[E+76>>2]=(o[Q+9|0]|o[Q+10|0]<<8|o[Q+11|0]<<16|o[Q+12|0]<<24)>>>6&66076671,_=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+84>>2]=0,i[E+88>>2]=0,i[E+92>>2]=0,i[E+96>>2]=0,i[E+100>>2]=0,i[E+80>>2]=_>>>8&1048575,i[E+104>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+108>>2]=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+112>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,Q=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,C[E+144|0]=0,i[E+120>>2]=0,i[E+124>>2]=0,i[E+116>>2]=Q,vA(Q=E- -64|0,I,g,B),gI(Q,I=E+48|0),A=oI(A,I),s=a,0|A},function(A,I){var g;return I|=0,i[(A|=0)>>2]=67108863&(o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24),i[A+4>>2]=(o[I+3|0]|o[I+4|0]<<8|o[I+5|0]<<16|o[I+6|0]<<24)>>>2&67108611,i[A+8>>2]=(o[I+6|0]|o[I+7|0]<<8|o[I+8|0]<<16|o[I+9|0]<<24)>>>4&67092735,i[A+12>>2]=(o[I+9|0]|o[I+10|0]<<8|o[I+11|0]<<16|o[I+12|0]<<24)>>>6&66076671,g=o[I+12|0]|o[I+13|0]<<8|o[I+14|0]<<16|o[I+15|0]<<24,i[A+20>>2]=0,i[A+24>>2]=0,i[A+28>>2]=0,i[A+32>>2]=0,i[A+36>>2]=0,i[A+16>>2]=g>>>8&1048575,i[A+40>>2]=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,i[A+44>>2]=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,i[A+48>>2]=o[I+24|0]|o[I+25|0]<<8|o[I+26|0]<<16|o[I+27|0]<<24,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,C[A+80|0]=0,i[A+56>>2]=0,i[A+60>>2]=0,i[A+52>>2]=I,0},function(A,I,g,C){return vA(A|=0,I|=0,g|=0,C|=0),0},function(A,I){return gI(A|=0,I|=0),0},function(A,I,g){A|=0,I|=0,g|=0;var B,Q=0,E=0,a=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,gA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,pA=0,wA=0,nA=0,kA=0;for(s=B=s-368|0;D=(a=o[g+Q|0])^o[0|(c=Q+34112|0)]|D,h=a^o[c+192|0]|h,y=a^o[c+160|0]|y,e=a^o[c+128|0]|e,_=a^o[c+96|0]|_,t=a^o[c- -64|0]|t,E=a^o[c+32|0]|E,31!=(0|(Q=Q+1|0)););if(Q=-1,!(256&((255&((a=127^(c=127&o[g+31|0]))|h))-1|(255&(a|y))-1|(255&(a|e))-1|(255&(87^c|_))-1|(255&(t|c))-1|(255&(E|c))-1|(255&(c|D))-1))){for(Q=I,I=o[I+28|0]|o[I+29|0]<<8|o[I+30|0]<<16|o[I+31|0]<<24,i[B+360>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[B+364>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[B+352>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[B+356>>2]=I,E=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,I=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[B+336>>2]=I,i[B+340>>2]=E,E=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[B+344>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[B+348>>2]=E,C[B+336|0]=248&I,C[B+367|0]=63&o[B+367|0]|64,fA(B+288|0,g),i[B+260>>2]=0,i[B+264>>2]=0,i[B+268>>2]=0,i[B+272>>2]=0,i[B+276>>2]=0,i[B+208>>2]=0,i[B+212>>2]=0,i[B+216>>2]=0,i[B+220>>2]=0,i[B+224>>2]=0,i[B+228>>2]=0,I=i[B+308>>2],i[B+160>>2]=i[B+304>>2],i[B+164>>2]=I,I=i[B+316>>2],i[B+168>>2]=i[B+312>>2],i[B+172>>2]=I,I=i[B+324>>2],i[B+176>>2]=i[B+320>>2],i[B+180>>2]=I,i[B+244>>2]=0,i[B+248>>2]=0,i[B+240>>2]=1,i[B+252>>2]=0,i[B+256>>2]=0,i[B+192>>2]=0,i[B+196>>2]=0,i[B+200>>2]=0,i[B+204>>2]=0,I=i[B+292>>2],i[B+144>>2]=i[B+288>>2],i[B+148>>2]=I,I=i[B+300>>2],i[B+152>>2]=i[B+296>>2],i[B+156>>2]=I,i[B+116>>2]=0,i[B+120>>2]=0,i[B+124>>2]=0,i[B+128>>2]=0,i[B+132>>2]=0,i[B+100>>2]=0,i[B+104>>2]=0,i[B+96>>2]=1,i[B+108>>2]=0,i[B+112>>2]=0,g=254;Z=i[B+276>>2],a=i[B+180>>2],T=i[B+96>>2],$=i[B+192>>2],AA=i[B+144>>2],IA=i[B+240>>2],gA=i[B+100>>2],CA=i[B+196>>2],BA=i[B+148>>2],QA=i[B+244>>2],U=i[B+104>>2],iA=i[B+200>>2],H=i[B+152>>2],oA=i[B+248>>2],d=i[B+108>>2],EA=i[B+204>>2],m=i[B+156>>2],aA=i[B+252>>2],Y=i[B+112>>2],_A=i[B+208>>2],M=i[B+160>>2],cA=i[B+256>>2],D=i[B+116>>2],tA=i[B+212>>2],r=i[B+164>>2],rA=i[B+260>>2],h=i[B+120>>2],eA=i[B+216>>2],y=i[B+168>>2],yA=i[B+264>>2],e=i[B+124>>2],sA=i[B+220>>2],_=i[B+172>>2],hA=i[B+268>>2],t=i[B+128>>2],DA=i[B+224>>2],E=i[B+176>>2],G=i[B+272>>2],pA=g,K=(F=(I=0-((I=V)^(V=o[(wA=B+336|0)+(g>>>3|0)|0]>>>(7&g)&1))|0)&((Q=i[B+132>>2])^(j=i[B+228>>2])))^Q,i[B+132>>2]=K,X=a^(S=I&(a^Z)),i[B+84>>2]=X-K,J=t^(w=I&(t^DA)),i[B+128>>2]=J,O=(N=I&(E^G))^E,i[B+80>>2]=O-J,u=e^(n=I&(e^sA)),i[B+124>>2]=u,nA=_^(k=I&(_^hA)),i[B+76>>2]=nA-u,x=h^(p=I&(h^eA)),i[B+120>>2]=x,kA=y^(c=I&(y^yA)),i[B+72>>2]=kA-x,v=D^(a=I&(D^tA)),i[B+116>>2]=v,L=r^(D=I&(r^rA)),i[B+68>>2]=L-v,P=Y^(h=I&(Y^_A)),i[B+112>>2]=P,l=M^(y=I&(M^cA)),i[B+64>>2]=l-P,q=d^(e=I&(d^EA)),i[B+108>>2]=q,W=m^(_=I&(m^aA)),i[B+60>>2]=W-q,z=U^(t=I&(U^iA)),i[B+104>>2]=z,d=H^(E=I&(H^oA)),i[B+56>>2]=d-z,U=gA^(Q=I&(gA^CA)),i[B+100>>2]=U,m=BA^(g=I&(BA^QA)),i[B+52>>2]=m-U,H=T^(Y=I&(T^$)),i[B+96>>2]=H,M=(I&=AA^IA)^AA,i[B+48>>2]=M-H,r=S^Z,F^=j,i[B+36>>2]=r-F,S=N^G,w^=DA,i[B+32>>2]=S-w,N=k^hA,n^=sA,i[B+28>>2]=N-n,k=c^yA,p^=eA,i[B+24>>2]=k-p,c=D^rA,a^=tA,i[B+20>>2]=c-a,D=y^cA,h^=_A,i[B+16>>2]=D-h,y=_^aA,e^=EA,i[B+12>>2]=y-e,_=E^oA,t^=iA,i[B+8>>2]=_-t,E=g^QA,Q^=CA,i[B+4>>2]=E-Q,g=I^IA,I=Y^$,i[B>>2]=g-I,i[B+276>>2]=r+F,i[B+272>>2]=S+w,i[B+268>>2]=n+N,i[B+264>>2]=p+k,i[B+260>>2]=a+c,i[B+256>>2]=h+D,i[B+248>>2]=_+t,i[B+244>>2]=Q+E,i[B+240>>2]=I+g,i[B+252>>2]=e+y,i[B+228>>2]=K+X,i[B+224>>2]=J+O,i[B+220>>2]=u+nA,i[B+216>>2]=x+kA,i[B+212>>2]=v+L,i[B+208>>2]=l+P,i[B+204>>2]=q+W,i[B+200>>2]=d+z,i[B+196>>2]=U+m,i[B+192>>2]=M+H,b(X=B+96|0,J=B+48|0,K=B+240|0),b(G=B+192|0,G,B),R(J,B),R(B,K),r=i[B+192>>2],F=i[B+96>>2],S=i[B+196>>2],w=i[B+100>>2],N=i[B+200>>2],n=i[B+104>>2],k=i[B+204>>2],p=i[B+108>>2],c=i[B+208>>2],a=i[B+112>>2],D=i[B+212>>2],h=i[B+116>>2],y=i[B+216>>2],e=i[B+120>>2],_=i[B+220>>2],t=i[B+124>>2],E=i[B+224>>2],Q=i[B+128>>2],g=i[B+228>>2],I=i[B+132>>2],i[B+180>>2]=g+I,i[B+176>>2]=Q+E,i[B+172>>2]=_+t,i[B+168>>2]=e+y,i[B+164>>2]=h+D,i[B+160>>2]=a+c,i[B+156>>2]=p+k,i[B+152>>2]=n+N,i[B+148>>2]=S+w,i[B+144>>2]=r+F,i[B+228>>2]=I-g,i[B+224>>2]=Q-E,i[B+220>>2]=t-_,i[B+216>>2]=e-y,i[B+212>>2]=h-D,i[B+208>>2]=a-c,i[B+204>>2]=p-k,i[B+200>>2]=n-N,i[B+196>>2]=w-S,i[B+192>>2]=F-r,b(K,B,J),u=i[B+52>>2],p=i[B+4>>2],x=i[B+56>>2],c=i[B+8>>2],v=i[B+64>>2],y=i[B+16>>2],P=i[B+60>>2],e=i[B+12>>2],q=i[B+72>>2],_=i[B+24>>2],z=i[B+68>>2],t=i[B+20>>2],U=i[B+80>>2],E=i[B+32>>2],H=i[B+76>>2],Q=i[B+28>>2],j=i[B+84>>2],I=i[B+36>>2],O=i[B+48>>2],g=i[B>>2]-O|0,i[B>>2]=g,I=I-j|0,i[B+36>>2]=I,Y=Q-H|0,i[B+28>>2]=Y,M=E-U|0,i[B+32>>2]=M,a=t-z|0,i[B+20>>2]=a,D=_-q|0,i[B+24>>2]=D,h=e-P|0,i[B+12>>2]=h,y=y-v|0,i[B+16>>2]=y,e=c-x|0,i[B+8>>2]=e,E=p-u|0,i[B+4>>2]=E,R(G,G),I=Ig(I,I>>31,121666,0),Q=f,W=I,I=Ig((33554431&(Q=(r=I+16777216|0)>>>0<16777216?Q+1|0:Q))<<7|r>>>25,Q>>25,19,0),t=f,Q=I,I=Ig(g,g>>31,121666,0),l=f+t|0,I=I>>>0>(Q=Q+I|0)>>>0?l+1|0:l,g=(_=Q+33554432|0)>>>0<33554432?I+1|0:I,F=Q-(-67108864&_)|0,i[B+96>>2]=F,t=Ig(E,E>>31,121666,0),Q=f,Q=(E=t+16777216|0)>>>0<16777216?Q+1|0:Q,S=(t-(-33554432&E)|0)+((67108863&g)<<6|_>>>26)|0,i[B+100>>2]=S,l=(I=Q)>>25,Q=(33554431&I)<<7|E>>>25,g=Ig(e,e>>31,121666,0)+Q|0,I=l+f|0,I=g>>>0<Q>>>0?I+1|0:I,t=(w=g+33554432|0)>>>0<33554432?I+1|0:I,N=g-(-67108864&w)|0,i[B+104>>2]=N,Q=Ig(y,y>>31,121666,0),E=f,g=Ig(h,h>>31,121666,0),I=f,L=Q,d=g,Q=(33554431&(I=(n=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|n>>>25,I=(I>>25)+E|0,I=(g=L+Q|0)>>>0<Q>>>0?I+1|0:I,E=(k=g+33554432|0)>>>0<33554432?I+1|0:I,p=g-(-67108864&k)|0,i[B+112>>2]=p,Q=Ig(D,D>>31,121666,0),_=f,g=Ig(a,a>>31,121666,0),I=f,L=Q,m=g,Q=(33554431&(I=(c=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|c>>>25,I=(I>>25)+_|0,I=(g=L+Q|0)>>>0<Q>>>0?I+1|0:I,Q=(a=g+33554432|0)>>>0<33554432?I+1|0:I,D=g-(-67108864&a)|0,i[B+120>>2]=D,_=Ig(M,M>>31,121666,0),e=f,g=Ig(Y,Y>>31,121666,0),I=f,M=g,g=(33554431&(I=(h=g+16777216|0)>>>0<16777216?I+1|0:I))<<7|h>>>25,I=(I>>25)+e|0,I=g>>>0>(_=g+_|0)>>>0?I+1|0:I,g=(y=_+33554432|0)>>>0<33554432?I+1|0:I,e=_-(-67108864&y)|0,i[B+128>>2]=e,_=(t=d+((67108863&t)<<6|w>>>26)|0)-(-33554432&n)|0,i[B+108>>2]=_,t=(E=m+((67108863&E)<<6|k>>>26)|0)-(-33554432&c)|0,i[B+116>>2]=t,E=(I=M+((67108863&Q)<<6|a>>>26)|0)-(-33554432&h)|0,i[B+124>>2]=E,g=(g=W+((67108863&g)<<6|y>>>26)|0)-(-33554432&r)|0,i[B+132>>2]=g,R(I=B+144|0,I),i[B+84>>2]=g+j,i[B+80>>2]=e+U,i[B+76>>2]=E+H,i[B+72>>2]=D+q,i[B+68>>2]=t+z,i[B+64>>2]=p+v,i[B+60>>2]=_+P,i[B+56>>2]=N+x,i[B+52>>2]=S+u,i[B+48>>2]=F+O,g=pA-1|0,b(X,B+288|0,G),b(G,B,J),pA;);D=i[B+144>>2],F=i[B+240>>2],h=i[B+148>>2],S=i[B+244>>2],y=i[B+152>>2],w=i[B+248>>2],e=i[B+156>>2],N=i[B+252>>2],_=i[B+160>>2],n=i[B+256>>2],t=i[B+164>>2],k=i[B+260>>2],E=i[B+168>>2],p=i[B+264>>2],Q=i[B+172>>2],c=i[B+268>>2],g=i[B+176>>2],a=i[B+272>>2],r=0-V|0,I=i[B+276>>2],i[B+276>>2]=r&(I^i[B+180>>2])^I,i[B+272>>2]=a^r&(g^a),i[B+268>>2]=c^r&(Q^c),i[B+264>>2]=p^r&(E^p),i[B+260>>2]=k^r&(t^k),i[B+256>>2]=n^r&(_^n),i[B+252>>2]=N^r&(e^N),i[B+248>>2]=w^r&(y^w),i[B+244>>2]=S^r&(h^S),i[B+240>>2]=F^r&(D^F),F=i[B+192>>2],D=i[B+96>>2],S=i[B+196>>2],h=i[B+100>>2],w=i[B+200>>2],y=i[B+104>>2],N=i[B+204>>2],e=i[B+108>>2],n=i[B+208>>2],_=i[B+112>>2],k=i[B+212>>2],t=i[B+116>>2],p=i[B+216>>2],E=i[B+120>>2],c=i[B+220>>2],Q=i[B+124>>2],a=i[B+224>>2],g=i[B+128>>2],I=i[B+228>>2],i[B+228>>2]=r&(I^i[B+132>>2])^I,i[B+224>>2]=a^r&(g^a),i[B+220>>2]=c^r&(Q^c),i[B+216>>2]=p^r&(E^p),i[B+212>>2]=k^r&(t^k),i[B+208>>2]=n^r&(_^n),i[B+204>>2]=N^r&(e^N),i[B+200>>2]=w^r&(y^w),i[B+196>>2]=S^r&(h^S),i[B+192>>2]=F^r&(D^F),LA(G,G),b(K,K,G),QI(A,K),XC(wA,32),Q=0}return s=B+368|0,0|Q},function(A,I){var g,B,Q,E,a,_,c,t,r,e,y,h,D,f,p,w,n,k,F,S;return I|=0,s=g=s-304|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],I=o[I+31|0],C[0|A]=248&o[0|A],C[A+31|0]=63&I|64,nA(g+48|0,A),I=i[g+128>>2],B=i[g+88>>2],Q=i[g+132>>2],E=i[g+92>>2],a=i[g+136>>2],_=i[g+96>>2],c=i[g+140>>2],t=i[g+100>>2],r=i[g+144>>2],e=i[g+104>>2],y=i[g+148>>2],h=i[g+108>>2],D=i[g+152>>2],f=i[g+112>>2],p=i[g+156>>2],w=i[g+116>>2],n=i[g+160>>2],k=i[g+120>>2],F=i[g+124>>2],S=i[g+164>>2],i[g+292>>2]=F+S,i[g+288>>2]=n+k,i[g+284>>2]=p+w,i[g+280>>2]=D+f,i[g+276>>2]=y+h,i[g+272>>2]=r+e,i[g+268>>2]=c+t,i[g+264>>2]=a+_,i[g+260>>2]=Q+E,i[g+256>>2]=I+B,i[g+244>>2]=S-F,i[g+240>>2]=n-k,i[g+236>>2]=p-w,i[g+232>>2]=D-f,i[g+228>>2]=y-h,i[g+224>>2]=r-e,i[g+220>>2]=c-t,i[g+216>>2]=a-_,i[g+212>>2]=Q-E,i[g+208>>2]=I-B,LA(I=g+208|0,I),b(g,g+256|0,I),QI(A,g),s=g+304|0,0},function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,(I|=0)|(g|=0)){a=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=a,a=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=a,a=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=a,a=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=a,Q=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,B=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=Q,i[E+100>>2]=B;A:{if(!g&I>>>0>=64|g){for(;AC(A,E+96|0,E,0),B=o[E+104|0]+1|0,C[E+104|0]=B,B=o[E+105|0]+(B>>>8|0)|0,C[E+105|0]=B,B=o[E+106|0]+(B>>>8|0)|0,C[E+106|0]=B,B=o[E+107|0]+(B>>>8|0)|0,C[E+107|0]=B,B=o[E+108|0]+(B>>>8|0)|0,C[E+108|0]=B,B=o[E+109|0]+(B>>>8|0)|0,C[E+109|0]=B,B=o[E+110|0]+(B>>>8|0)|0,C[E+110|0]=B,C[E+111|0]=o[E+111|0]+(B>>>8|0),A=A- -64|0,g=g-1|0,!(g=(I=I+-64|0)>>>0<4294967232?g+1|0:g)&I>>>0>63|g;);if(!(I|g))break A}if(B=0,AC(E+32|0,E+96|0,E,0),a=3&I,Q=0,!g&I>>>0>=4|g)for(g=60&I,I=0;_=c=E+32|0,C[A+Q|0]=o[_+Q|0],C[(t=1|Q)+A|0]=o[_+t|0],C[(_=2|Q)+A|0]=o[_+c|0],C[(_=3|Q)+A|0]=o[_+(E+32|0)|0],Q=Q+4|0,(0|g)!=(0|(I=I+4|0)););if(a)for(;C[A+Q|0]=o[(E+32|0)+Q|0],Q=Q+1|0,(0|a)!=(0|(B=B+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},function(A,I,g,B,Q,E,a,_){A|=0,I|=0,Q|=0,E|=0,a|=0,_|=0;var c,t=0;if(s=c=s-112|0,(g|=0)|(B|=0)){t=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,i[c+24>>2]=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,i[c+28>>2]=t,t=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,i[c+16>>2]=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i[c+20>>2]=t,t=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,i[c>>2]=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,i[c+4>>2]=t,t=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,i[c+8>>2]=o[_+8|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,i[c+12>>2]=t,_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[c+96>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[c+100>>2]=_,C[c+104|0]=E,C[c+111|0]=a>>>24,C[c+110|0]=a>>>16,C[c+109|0]=a>>>8,C[c+108|0]=a,C[c+107|0]=(16777215&a)<<8|E>>>24,C[c+106|0]=(65535&a)<<16|E>>>16,C[c+105|0]=(255&a)<<24|E>>>8;A:{if(!B&g>>>0>=64|B){for(;;){for(_=0,AC(c+32|0,c+96|0,c,0);E=c+32|0,C[A+_|0]=o[E+_|0]^o[I+_|0],C[(Q=1|_)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(_=_+2|0)););if(Q=o[c+104|0]+1|0,C[c+104|0]=Q,Q=o[c+105|0]+(Q>>>8|0)|0,C[c+105|0]=Q,Q=o[c+106|0]+(Q>>>8|0)|0,C[c+106|0]=Q,Q=o[c+107|0]+(Q>>>8|0)|0,C[c+107|0]=Q,Q=o[c+108|0]+(Q>>>8|0)|0,C[c+108|0]=Q,Q=o[c+109|0]+(Q>>>8|0)|0,C[c+109|0]=Q,Q=o[c+110|0]+(Q>>>8|0)|0,C[c+110|0]=Q,C[c+111|0]=o[c+111|0]+(Q>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(g=g+-64|0)>>>0<4294967232?B+1|0:B)&g>>>0>63|B))break}if(!(g|B))break A}if(_=0,AC(c+32|0,c+96|0,c,0),E=1&g,1!=(0|g)|B)for(B=62&g,Q=0;a=c+32|0,C[A+_|0]=o[a+_|0]^o[I+_|0],C[(g=1|_)+A|0]=o[g+a|0]^o[I+g|0],_=_+2|0,(0|B)!=(0|(Q=Q+2|0)););E&&(C[A+_|0]=o[(c+32|0)+_|0]^o[I+_|0])}XC(c+32|0,64),XC(c,32)}return s=c+112|0,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-192&-32,P(E|=0,o|=0,a- -64|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a- -64|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a- -64|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);if((o=31&i)&&(bg((c=a+32|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a- -64|0)),E=32,o=0,B>>>0<32)Q=0;else for(;m(A+o|0,C+o|0,a- -64|0),Q=E,(E=(o=E)+32|0)>>>0<=B>>>0;);return(o=31&B)&&(bg((E=a+32|0)|o,0,32-o|0),Ng(E,C+Q|0,o),m(a,E,a- -64|0),Ng(A+Q|0,a,o)),Y(I,g,i,B,a- -64|0),s=_,0},function(A,I,g,C,B,Q,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0;var a,_,c=0;if(_=c=s,s=a=c-224&-32,P(E|=0,o|=0,a+96|0),E=0,i>>>0<=63)o=0;else for(c=64;H(Q+E|0,a+96|0),E=o=c,(c=o- -64|0)>>>0<=i>>>0;);if((c=32|o)>>>0>i>>>0)E=o;else for(;V(Q+o|0,a+96|0),E=c,(c=(o=c)+32|0)>>>0<=i>>>0;);(o=31&i)&&(bg((c=a- -64|0)|o,0,32-o|0),Ng(c,Q+E|0,o),V(c,a+96|0));A:{I:{g:{C:{B:{if(A){if(E=32,g>>>0<32)break B;for(Q=0;d(A+Q|0,I+Q|0,a+96|0),Q=o=E,(E=o+32|0)>>>0<=g>>>0;);}else{if(Q=32,g>>>0<32)break g;for(E=0;d(a+32|0,I+E|0,a+96|0),E=o=Q,(Q=o+32|0)>>>0<=g>>>0;);}if(!(Q=31&g))break A;if(A)break C;break I}if(o=0,Q=g,!g)break A}x(A+o|0,I+o|0,Q,a+96|0);break A}if(o=0,Q=g,!g)break A}x(a+32|0,I+o|0,Q,a+96|0)}Y(a,B,i,g,a+96|0),o=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}o=oI(a,C);break A}o=NC(a,C)}return!A|!o||bg(A,0,g),s=_,0|o},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-528|0,G(_|=0,a|=0,c+400|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+400|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+416|0,y=c+432|0,h=c+448|0,e=c+464|0,D=c+480|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+520>>2]=i[D+8>>2],i[c+524>>2]=a,a=i[D+4>>2],i[c+512>>2]=i[D>>2],i[c+516>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+496|0,c+368|0,c+352|0),t=i[c+508>>2],i[D+8>>2]=i[c+504>>2],i[D+12>>2]=t,t=i[c+500>>2],i[D>>2]=i[c+496>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+508>>2],i[e+8>>2]=i[c+504>>2],i[e+12>>2]=t,t=i[c+500>>2],i[e>>2]=i[c+496>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+508>>2],i[h+8>>2]=i[c+504>>2],i[h+12>>2]=t,t=i[c+500>>2],i[h>>2]=i[c+496>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+508>>2],i[y+8>>2]=i[c+504>>2],i[y+12>>2]=t,t=i[c+500>>2],i[y>>2]=i[c+496>>2],i[y+4>>2]=t,t=i[c+412>>2],i[c+248>>2]=i[c+408>>2],i[c+252>>2]=t,t=i[c+404>>2],i[c+240>>2]=i[c+400>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+508>>2],i[r+8>>2]=i[c+504>>2],i[r+12>>2]=t,t=i[c+500>>2],i[r>>2]=i[c+496>>2],i[r+4>>2]=t,t=i[c+524>>2],i[c+216>>2]=i[c+520>>2],i[c+220>>2]=t,t=i[c+412>>2],i[c+200>>2]=i[c+408>>2],i[c+204>>2]=t,t=i[c+516>>2],i[c+208>>2]=i[c+512>>2],i[c+212>>2]=t,t=i[c+404>>2],i[c+192>>2]=i[c+400>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+412>>2]=n^i[c+508>>2],i[c+408>>2]=i[c+504>>2]^w,i[c+404>>2]=i[c+500>>2]^p,i[c+400>>2]=i[c+496>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);if((_=15&E)&&(bg((r=c+384|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+384>>2],r=i[c+388>>2],y=i[c+392>>2],h=i[c+396>>2],a=i[c+492>>2],Q=i[c+488>>2],i[c+520>>2]=Q,i[c+524>>2]=a,e=i[c+476>>2],i[c+184>>2]=i[c+472>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+484>>2],Q=i[c+480>>2],i[c+512>>2]=Q,i[c+516>>2]=a,e=i[c+468>>2],i[c+176>>2]=i[c+464>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+496|0,c+176|0,c+160|0),a=i[c+508>>2],i[c+488>>2]=i[c+504>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+152>>2]=i[c+456>>2],i[c+156>>2]=a,a=i[c+476>>2],i[c+136>>2]=i[c+472>>2],i[c+140>>2]=a,a=i[c+500>>2],i[c+480>>2]=i[c+496>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+144>>2]=i[c+448>>2],i[c+148>>2]=a,a=i[c+468>>2],i[c+128>>2]=i[c+464>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+508>>2],i[c+472>>2]=i[c+504>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+120>>2]=i[c+440>>2],i[c+124>>2]=a,a=i[c+460>>2],i[c+104>>2]=i[c+456>>2],i[c+108>>2]=a,a=i[c+500>>2],i[c+464>>2]=i[c+496>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+112>>2]=i[c+432>>2],i[c+116>>2]=a,a=i[c+452>>2],i[c+96>>2]=i[c+448>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+508>>2],i[c+456>>2]=i[c+504>>2],i[c+460>>2]=a,a=i[c+428>>2],i[c+88>>2]=i[c+424>>2],i[c+92>>2]=a,a=i[c+444>>2],i[c+72>>2]=i[c+440>>2],i[c+76>>2]=a,a=i[c+500>>2],i[c+448>>2]=i[c+496>>2],i[c+452>>2]=a,a=i[c+420>>2],i[c+80>>2]=i[c+416>>2],i[c+84>>2]=a,a=i[c+436>>2],i[c+64>>2]=i[c+432>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+508>>2],i[c+440>>2]=i[c+504>>2],i[c+444>>2]=a,a=i[c+412>>2],i[c+56>>2]=i[c+408>>2],i[c+60>>2]=a,a=i[c+428>>2],i[c+40>>2]=i[c+424>>2],i[c+44>>2]=a,a=i[c+500>>2],i[c+432>>2]=i[c+496>>2],i[c+436>>2]=a,a=i[c+404>>2],i[c+48>>2]=i[c+400>>2],i[c+52>>2]=a,a=i[c+420>>2],i[c+32>>2]=i[c+416>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+508>>2],i[c+424>>2]=i[c+504>>2],i[c+428>>2]=a,a=i[c+524>>2],i[c+24>>2]=i[c+520>>2],i[c+28>>2]=a,a=i[c+412>>2],i[c+8>>2]=i[c+408>>2],i[c+12>>2]=a,a=i[c+500>>2],i[c+416>>2]=i[c+496>>2],i[c+420>>2]=a,a=i[c+516>>2],i[c+16>>2]=i[c+512>>2],i[c+20>>2]=a,a=i[c+404>>2],i[c>>2]=i[c+400>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+412>>2]=h^i[c+508>>2],i[c+408>>2]=y^i[c+504>>2],i[c+404>>2]=r^i[c+500>>2],i[c+400>>2]=_^i[c+496>>2]),r=16,a=0,B>>>0<16)_=0;else for(;X(A+a|0,C+a|0,c+400|0),_=r,(r=(a=r)+16|0)>>>0<=B>>>0;);return(Q=15&B)&&(bg((a=c+384|0)|Q,0,16-Q|0),Ng(a,C+_|0,Q),X(C=c+512|0,a,c+400|0),Ng(A+_|0,C,Q)),l(I,g,E,B,c+400|0),s=c+528|0,0},function(A,I,g,C,B,Q,E,a,_){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,E|=0;var c,t=0,r=0,e=0,y=0,h=0,D=0,f=0,p=0,w=0,n=0;if(s=c=s-544|0,G(_|=0,a|=0,c+432|0),_=0,E>>>0<=31)a=0;else for(r=32;L(Q+_|0,c+432|0),_=a=r,(r=a+32|0)>>>0<=E>>>0;);if((_=16|a)>>>0<=E>>>0)for(r=c+448|0,y=c+464|0,h=c+480|0,e=c+496|0,D=c+512|0;f=o[0|(a=Q+a|0)]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,p=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,w=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,n=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,a=i[D+12>>2],i[c+392>>2]=i[D+8>>2],i[c+396>>2]=a,a=i[D+4>>2],i[c+384>>2]=i[D>>2],i[c+388>>2]=a,a=i[e+12>>2],i[c+376>>2]=i[e+8>>2],i[c+380>>2]=a,a=i[e+4>>2],i[c+368>>2]=i[e>>2],i[c+372>>2]=a,a=i[D+12>>2],i[c+360>>2]=i[D+8>>2],i[c+364>>2]=a,a=i[D+4>>2],i[c+352>>2]=i[D>>2],i[c+356>>2]=a,AI(a=c+528|0,c+368|0,c+352|0),t=i[c+540>>2],i[D+8>>2]=i[c+536>>2],i[D+12>>2]=t,t=i[c+532>>2],i[D>>2]=i[c+528>>2],i[D+4>>2]=t,t=i[h+12>>2],i[c+344>>2]=i[h+8>>2],i[c+348>>2]=t,t=i[h+4>>2],i[c+336>>2]=i[h>>2],i[c+340>>2]=t,t=i[e+12>>2],i[c+328>>2]=i[e+8>>2],i[c+332>>2]=t,t=i[e+4>>2],i[c+320>>2]=i[e>>2],i[c+324>>2]=t,AI(a,c+336|0,c+320|0),t=i[c+540>>2],i[e+8>>2]=i[c+536>>2],i[e+12>>2]=t,t=i[c+532>>2],i[e>>2]=i[c+528>>2],i[e+4>>2]=t,t=i[y+12>>2],i[c+312>>2]=i[y+8>>2],i[c+316>>2]=t,t=i[y+4>>2],i[c+304>>2]=i[y>>2],i[c+308>>2]=t,t=i[h+12>>2],i[c+296>>2]=i[h+8>>2],i[c+300>>2]=t,t=i[h+4>>2],i[c+288>>2]=i[h>>2],i[c+292>>2]=t,AI(a,c+304|0,c+288|0),t=i[c+540>>2],i[h+8>>2]=i[c+536>>2],i[h+12>>2]=t,t=i[c+532>>2],i[h>>2]=i[c+528>>2],i[h+4>>2]=t,t=i[r+12>>2],i[c+280>>2]=i[r+8>>2],i[c+284>>2]=t,t=i[r+4>>2],i[c+272>>2]=i[r>>2],i[c+276>>2]=t,t=i[y+12>>2],i[c+264>>2]=i[y+8>>2],i[c+268>>2]=t,t=i[y+4>>2],i[c+256>>2]=i[y>>2],i[c+260>>2]=t,AI(a,c+272|0,c+256|0),t=i[c+540>>2],i[y+8>>2]=i[c+536>>2],i[y+12>>2]=t,t=i[c+532>>2],i[y>>2]=i[c+528>>2],i[y+4>>2]=t,t=i[c+444>>2],i[c+248>>2]=i[c+440>>2],i[c+252>>2]=t,t=i[c+436>>2],i[c+240>>2]=i[c+432>>2],i[c+244>>2]=t,t=i[r+12>>2],i[c+232>>2]=i[r+8>>2],i[c+236>>2]=t,t=i[r+4>>2],i[c+224>>2]=i[r>>2],i[c+228>>2]=t,AI(a,c+240|0,c+224|0),t=i[c+540>>2],i[r+8>>2]=i[c+536>>2],i[r+12>>2]=t,t=i[c+532>>2],i[r>>2]=i[c+528>>2],i[r+4>>2]=t,t=i[c+396>>2],i[c+216>>2]=i[c+392>>2],i[c+220>>2]=t,t=i[c+444>>2],i[c+200>>2]=i[c+440>>2],i[c+204>>2]=t,t=i[c+388>>2],i[c+208>>2]=i[c+384>>2],i[c+212>>2]=t,t=i[c+436>>2],i[c+192>>2]=i[c+432>>2],i[c+196>>2]=t,AI(a,c+208|0,c+192|0),i[c+444>>2]=n^i[c+540>>2],i[c+440>>2]=i[c+536>>2]^w,i[c+436>>2]=i[c+532>>2]^p,i[c+432>>2]=i[c+528>>2]^f,(_=(a=_)+16|0)>>>0<=E>>>0;);(_=15&E)&&(bg((r=c+416|0)|_,0,16-_|0),Ng(r,Q+a|0,_),_=i[c+416>>2],r=i[c+420>>2],y=i[c+424>>2],h=i[c+428>>2],a=i[c+524>>2],Q=i[c+520>>2],i[c+392>>2]=Q,i[c+396>>2]=a,e=i[c+508>>2],i[c+184>>2]=i[c+504>>2],i[c+188>>2]=e,i[c+168>>2]=Q,i[c+172>>2]=a,a=i[c+516>>2],Q=i[c+512>>2],i[c+384>>2]=Q,i[c+388>>2]=a,e=i[c+500>>2],i[c+176>>2]=i[c+496>>2],i[c+180>>2]=e,i[c+160>>2]=Q,i[c+164>>2]=a,AI(Q=c+528|0,c+176|0,c+160|0),a=i[c+540>>2],i[c+520>>2]=i[c+536>>2],i[c+524>>2]=a,a=i[c+492>>2],i[c+152>>2]=i[c+488>>2],i[c+156>>2]=a,a=i[c+508>>2],i[c+136>>2]=i[c+504>>2],i[c+140>>2]=a,a=i[c+532>>2],i[c+512>>2]=i[c+528>>2],i[c+516>>2]=a,a=i[c+484>>2],i[c+144>>2]=i[c+480>>2],i[c+148>>2]=a,a=i[c+500>>2],i[c+128>>2]=i[c+496>>2],i[c+132>>2]=a,AI(Q,c+144|0,c+128|0),a=i[c+540>>2],i[c+504>>2]=i[c+536>>2],i[c+508>>2]=a,a=i[c+476>>2],i[c+120>>2]=i[c+472>>2],i[c+124>>2]=a,a=i[c+492>>2],i[c+104>>2]=i[c+488>>2],i[c+108>>2]=a,a=i[c+532>>2],i[c+496>>2]=i[c+528>>2],i[c+500>>2]=a,a=i[c+468>>2],i[c+112>>2]=i[c+464>>2],i[c+116>>2]=a,a=i[c+484>>2],i[c+96>>2]=i[c+480>>2],i[c+100>>2]=a,AI(Q,c+112|0,c+96|0),a=i[c+540>>2],i[c+488>>2]=i[c+536>>2],i[c+492>>2]=a,a=i[c+460>>2],i[c+88>>2]=i[c+456>>2],i[c+92>>2]=a,a=i[c+476>>2],i[c+72>>2]=i[c+472>>2],i[c+76>>2]=a,a=i[c+532>>2],i[c+480>>2]=i[c+528>>2],i[c+484>>2]=a,a=i[c+452>>2],i[c+80>>2]=i[c+448>>2],i[c+84>>2]=a,a=i[c+468>>2],i[c+64>>2]=i[c+464>>2],i[c+68>>2]=a,AI(Q,c+80|0,c- -64|0),a=i[c+540>>2],i[c+472>>2]=i[c+536>>2],i[c+476>>2]=a,a=i[c+444>>2],i[c+56>>2]=i[c+440>>2],i[c+60>>2]=a,a=i[c+460>>2],i[c+40>>2]=i[c+456>>2],i[c+44>>2]=a,a=i[c+532>>2],i[c+464>>2]=i[c+528>>2],i[c+468>>2]=a,a=i[c+436>>2],i[c+48>>2]=i[c+432>>2],i[c+52>>2]=a,a=i[c+452>>2],i[c+32>>2]=i[c+448>>2],i[c+36>>2]=a,AI(Q,c+48|0,c+32|0),a=i[c+540>>2],i[c+456>>2]=i[c+536>>2],i[c+460>>2]=a,a=i[c+396>>2],i[c+24>>2]=i[c+392>>2],i[c+28>>2]=a,a=i[c+444>>2],i[c+8>>2]=i[c+440>>2],i[c+12>>2]=a,a=i[c+532>>2],i[c+448>>2]=i[c+528>>2],i[c+452>>2]=a,a=i[c+388>>2],i[c+16>>2]=i[c+384>>2],i[c+20>>2]=a,a=i[c+436>>2],i[c>>2]=i[c+432>>2],i[c+4>>2]=a,AI(Q,c+16|0,c),i[c+444>>2]=h^i[c+540>>2],i[c+440>>2]=y^i[c+536>>2],i[c+436>>2]=r^i[c+532>>2],i[c+432>>2]=_^i[c+528>>2]);A:{I:{g:{C:{B:{if(A){if(r=16,g>>>0<16)break B;for(_=0;O(A+_|0,I+_|0,c+432|0),_=a=r,(r=a+16|0)>>>0<=g>>>0;);}else{if(_=16,g>>>0<16)break g;for(r=0;O(c+528|0,I+r|0,c+432|0),r=a=_,(_=a+16|0)>>>0<=g>>>0;);}if(!(_=15&g))break A;if(A)break C;break I}if(a=0,!(_=g))break A}Z(A+a|0,I+a|0,_,c+432|0);break A}if(a=0,!(_=g))break A}Z(c+528|0,I+a|0,_,c+432|0)}l(c+384|0,B,E,g,c+432|0),a=-1;A:{I:{if(I=B-16|0){if(16==(0|I))break I;break A}a=oI(c+384|0,C);break A}a=NC(c+384|0,C)}return!A|!a||bg(A,0,g),s=c+544|0,0|a},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+52>>2]=0,i[Q+44>>2]=B,i[Q+56>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+60>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s+-64|0,(I|=0)|(g|=0)&&(i[Q+8>>2]=2036477234,i[Q+12>>2]=1797285236,i[Q>>2]=1634760805,i[Q+4>>2]=857760878,i[Q+16>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[Q+20>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[Q+24>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,i[Q+28>>2]=o[B+12|0]|o[B+13|0]<<8|o[B+14|0]<<16|o[B+15|0]<<24,i[Q+32>>2]=o[B+16|0]|o[B+17|0]<<8|o[B+18|0]<<16|o[B+19|0]<<24,i[Q+36>>2]=o[B+20|0]|o[B+21|0]<<8|o[B+22|0]<<16|o[B+23|0]<<24,i[Q+40>>2]=o[B+24|0]|o[B+25|0]<<8|o[B+26|0]<<16|o[B+27|0]<<24,B=o[B+28|0]|o[B+29|0]<<8|o[B+30|0]<<16|o[B+31|0]<<24,i[Q+48>>2]=0,i[Q+44>>2]=B,i[Q+52>>2]=o[0|C]|o[C+1|0]<<8|o[C+2|0]<<16|o[C+3|0]<<24,i[Q+56>>2]=o[C+4|0]|o[C+5|0]<<8|o[C+6|0]<<16|o[C+7|0]<<24,i[Q+60>>2]=o[C+8|0]|o[C+9|0]<<8|o[C+10|0]<<16|o[C+11|0]<<24,z(Q,A=bg(A,0,I),A,I,g),XC(Q,64)),s=Q- -64|0,0},function(A,I,g,C,B,Q,E,a){var _;return A|=0,I|=0,B|=0,Q|=0,E|=0,a|=0,s=_=s+-64|0,(g|=0)|(C|=0)&&(i[_+8>>2]=2036477234,i[_+12>>2]=1797285236,i[_>>2]=1634760805,i[_+4>>2]=857760878,i[_+16>>2]=o[0|a]|o[a+1|0]<<8|o[a+2|0]<<16|o[a+3|0]<<24,i[_+20>>2]=o[a+4|0]|o[a+5|0]<<8|o[a+6|0]<<16|o[a+7|0]<<24,i[_+24>>2]=o[a+8|0]|o[a+9|0]<<8|o[a+10|0]<<16|o[a+11|0]<<24,i[_+28>>2]=o[a+12|0]|o[a+13|0]<<8|o[a+14|0]<<16|o[a+15|0]<<24,i[_+32>>2]=o[a+16|0]|o[a+17|0]<<8|o[a+18|0]<<16|o[a+19|0]<<24,i[_+36>>2]=o[a+20|0]|o[a+21|0]<<8|o[a+22|0]<<16|o[a+23|0]<<24,i[_+40>>2]=o[a+24|0]|o[a+25|0]<<8|o[a+26|0]<<16|o[a+27|0]<<24,i[_+44>>2]=o[a+28|0]|o[a+29|0]<<8|o[a+30|0]<<16|o[a+31|0]<<24,i[_+48>>2]=Q,i[_+52>>2]=E,i[_+56>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[_+60>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,z(_,I,A,g,C),XC(_,64)),s=_- -64|0,0},function(A,I,g,C,B,Q,E){var a;return A|=0,I|=0,B|=0,Q|=0,E|=0,s=a=s+-64|0,(g|=0)|(C|=0)&&(i[a+8>>2]=2036477234,i[a+12>>2]=1797285236,i[a>>2]=1634760805,i[a+4>>2]=857760878,i[a+16>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+20>>2]=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a+24>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+28>>2]=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+32>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+36>>2]=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+40>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,E=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+48>>2]=Q,i[a+44>>2]=E,i[a+52>>2]=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,i[a+56>>2]=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[a+60>>2]=o[B+8|0]|o[B+9|0]<<8|o[B+10|0]<<16|o[B+11|0]<<24,z(a,I,A,g,C),XC(a,64)),s=a- -64|0,0}],fB.grow=function(A){var I=this.length;return this.length=this.length+A,I},fB.set=function(A,I){this[A]=I},fB.get=function(A){return this[A]},fB);function wB(){return g.byteLength/65536|0}return{e:Object.create(Object.prototype,{grow:{value:function(A){A|=0;var B=0|wB(),Q=B+A|0;if(B<Q&&Q<65536){var _=new ArrayBuffer(a(Q,65536));new Int8Array(_).set(C),C=new Int8Array(_),new Int16Array(_),i=new Int32Array(_),o=new Uint8Array(_),new Uint16Array(_),E=new Uint32Array(_),new Float32Array(_),new Float64Array(_),g=_,I=o}return B}},buffer:{get:function(){return g}}}),f:function(){},g:CB,h:hB,i:CB,j:BB,k:iB,l:zC,m:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|VI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,a|=0,_|=0,36768)},n:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|eg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,_|=0,c|=0,36768)},o:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|zI(A|=0,I|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36772)},p:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|fg(A|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36772)},q:BB,r:hB,s:BB,t:BB,u:iB,v:PC,w:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|VI(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,a|=0,_|=0,36776)},x:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|eg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,_|=0,c|=0,36776)},y:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|zI(A|=0,I|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36780)},z:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|fg(A|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0,_|=0,36780)},A:hB,B:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|xI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},C:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(xI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},D:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|mI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},E:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(mI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},F:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|dI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},G:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=dI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},H:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|HI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},I:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=HI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},J:BB,K:aB,L:hB,M:CB,N:EB,O:PC,P:BB,Q:eB,R:hB,S:CB,T:EB,U:PC,V:function(A,I,g,C,B,Q,i,o,E,a,_,c){return 0|pI(A|=0,I|=0,g|=0,C|=0,(A=0)|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,_|=0,c|=0)},W:function(A,I,g,C,B,o,E,a,_,c,t){return A|=0,I|=0,C|=0,E|=0,_|=0,E|=_=0,!(B|=0)&(C|=_)>>>0<4294967280?(pI(A,A+C|0,0,g|=0,C,B,o|=0,E,a|=0,c|=0,t|=0),I&&(B=(A=C+16|0)>>>0<16?B+1|0:B,i[I>>2]=A,i[I+4>>2]=B)):(rC(),Q()),0},X:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|hI(A|=0,g|=0,(A=0)|(C|=0),B|=0,Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Y:function(A,I,g,C,B,Q,o,E,a,_,c){return I|=0,g|=0,C|=0,B|=0,E|=0,E|=0,g=-1,!(Q|=0)&(B|=0)>>>0>=16|Q&&(g=hI(A|=0,C,B-16|0,Q-(B>>>0<16)|0,(C+B|0)-16|0,o|=0,E,a|=0,_|=0,c|=0)),I&&(i[I>>2]=g?0:B-16|0,i[I+4>>2]=g?0:Q-(B>>>0<16)|0),0|g},Z:BB,_:_B,$:hB,aa:CB,ba:EB,ca:PC,da:BB,ea:BB,fa:function(){return 1462},ga:_I,ha:JI,ia:PC,ja:BB,ka:BB,la:IB,ma:PC,na:mA,oa:function(A,I,g,C){return 0|mC(A|=0,I|=0,g|=0,C|=0)},pa:Sg,qa:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-240|0,mA(Q,B|=0,32),UA(Q,I,g,C),JA(Q,I=Q+208|0),UA(g=Q+104|0,I,32,0),JA(g,A),XC(I,32),s=Q+240|0,0},ra:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-272|0,mA(i=Q+32|0,B|=0,32),UA(i,I,g,C),JA(i,I=Q+240|0),UA(g=Q+136|0,I,32,0),JA(g,Q),XC(I,32),I=NC(A,Q),g=MI(Q,A,32),s=Q+272|0,((0|A)==(0|Q)?-1:I)|g},sa:gB,ta:BB,ua:$C,va:PC,wa:iI,xa:EC,ya:wg,za:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,C|=0,s=Q=s-480|0,iI(Q,B|=0,32),SA(Q,I,g,C),j(Q,I=Q+416|0),SA(g=Q+208|0,I,64,0),j(g,A),XC(I,64),s=Q+480|0,0},Aa:function(A,I,g,C,B){var Q,i;return A|=0,I|=0,g|=0,C|=0,s=Q=s-544|0,iI(i=Q- -64|0,B|=0,32),SA(i,I,g,C),j(i,I=Q+480|0),SA(g=Q+272|0,I,64,0),j(g,Q),XC(I,64),I=GC(A,Q),g=MI(Q,A,64),s=Q+544|0,((0|A)==(0|Q)?-1:I)|g},Ba:BB,Ca:BB,Da:$C,Ea:PC,Fa:yC,Ga:EC,Ha:function(A,I){I|=0;var g,B=0;return s=g=s+-64|0,wg(A|=0,g),B=i[g+28>>2],A=i[g+24>>2],C[I+24|0]=A,C[I+25|0]=A>>>8,C[I+26|0]=A>>>16,C[I+27|0]=A>>>24,C[I+28|0]=B,C[I+29|0]=B>>>8,C[I+30|0]=B>>>16,C[I+31|0]=B>>>24,B=i[g+20>>2],A=i[g+16>>2],C[I+16|0]=A,C[I+17|0]=A>>>8,C[I+18|0]=A>>>16,C[I+19|0]=A>>>24,C[I+20|0]=B,C[I+21|0]=B>>>8,C[I+22|0]=B>>>16,C[I+23|0]=B>>>24,B=i[g+12>>2],A=i[g+8>>2],C[I+8|0]=A,C[I+9|0]=A>>>8,C[I+10|0]=A>>>16,C[I+11|0]=A>>>24,C[I+12|0]=B,C[I+13|0]=B>>>8,C[I+14|0]=B>>>16,C[I+15|0]=B>>>24,B=i[g+4>>2],A=i[g>>2],C[0|I]=A,C[I+1|0]=A>>>8,C[I+2|0]=A>>>16,C[I+3|0]=A>>>24,C[I+4|0]=B,C[I+5|0]=B>>>8,C[I+6|0]=B>>>16,C[I+7|0]=B>>>24,s=g- -64|0,0},Ia:_I,Ja:JI,Ka:BB,La:BB,Ma:BB,Na:BB,Oa:_B,Pa:BB,Qa:CB,Ra:CB,Sa:EB,Ta:function(){return 1476},Ua:function(A,I,g){return 0|cI(A|=0,I|=0,g|=0)},Va:UC,Wa:cC,Xa:Pg,Ya:qg,Za:Bg,_a:Qg,$a:Yg,ab:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=aI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},bb:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|aI(A+16|0,A,I,g,C,B,i)},cb:function(A,I,g,C,B,Q,i){return 0|sg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},db:Jg,eb:function(A,I,g,C,B,Q,i,o){A|=0,I|=0,g|=0,Q|=0;var E,a=0;return a=C|=0,C=B|=0,E=0|a,s=a=s-32|0,B=-1,cC(a,i|=0,o|=0)||(B=eI(A,I,g,E,C,Q,a),XC(a,32)),s=a+32|0,0|B},fb:hg,gb:function(A,I,g,C,B,Q,i){return 0|_g(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},hb:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,UC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=sg(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},ib:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=_g(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},jb:oB,kb:cI,lb:sC,mb:pg,nb:Pg,ob:qg,pb:Bg,qb:Qg,rb:BB,sb:BB,tb:BB,ub:BB,vb:_B,wb:BB,xb:CB,yb:CB,zb:EB,Ab:yA,Bb:BB,Cb:CB,Db:BB,Eb:CB,Fb:wA,Gb:BB,Hb:CB,Ib:BB,Jb:CB,Kb:AC,Lb:gB,Mb:CB,Nb:BB,Ob:CB,Pb:IC,Qb:gB,Rb:CB,Sb:BB,Tb:CB,Ub:gC,Vb:gB,Wb:CB,Xb:BB,Yb:CB,Zb:CB,_b:gB,$b:BB,ac:CB,bc:gB,cc:BB,dc:WC,ec:ZC,fc:function(A,I,g,C,B,Q,i){return 0|kC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},gc:iC,hc:function(A,I,g,C){return 0|lC(A|=0,I|=0,g|=0,C|=0)},ic:eC,jc:PC,kc:CB,lc:gB,mc:BB,nc:CB,oc:gB,pc:BB,qc:CB,rc:CB,sc:ZC,tc:PC,uc:kC,vc:function(A,I,g,C,B,Q,i,o,E){return 0|QA(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0)},wc:eA,xc:function(A,I,g,B,i,E){A|=0,I|=0,i|=0,E|=0;var a=0,_=0,c=0,t=0,r=0,e=0,y=0;if(a=-1,!((B|=0)-65>>>0<4294967232|(g|=0)>>>0>64)){A:{if(!g||!I){if(((t=255&B)-65&255)>>>0>191){i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),I=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,I=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),a=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,a=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=a,C[A+49|0]=a>>>8,C[A+50|0]=a>>>16,C[A+51|0]=a>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=I,C[A+33|0]=I>>>8,C[A+34|0]=I>>>16,C[A+35|0]=I>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,I=-222443256^t,C[0|A]=I,C[A+1|0]=I>>>8,C[A+2|0]=I>>>16,C[A+3|0]=I>>>24,C[A+4|0]=103,C[A+5|0]=230,C[A+6|0]=9,C[A+7|0]=106;break A}rC(),Q()}s=e=s-128|0,!I|((y=255&B)-65&255)>>>0<=191|((t=255&g)-65&255)>>>0<=191?(rC(),Q()):(i?(_=725511199^(o[i+8|0]|o[i+9|0]<<8|o[i+10|0]<<16|o[i+11|0]<<24),g=-1694144372^(o[i+12|0]|o[i+13|0]<<8|o[i+14|0]<<16|o[i+15|0]<<24),a=-1377402159^(o[0|i]|o[i+1|0]<<8|o[i+2|0]<<16|o[i+3|0]<<24),i=1359893119^(o[i+4|0]|o[i+5|0]<<8|o[i+6|0]<<16|o[i+7|0]<<24)):(_=725511199,g=-1694144372,a=-1377402159,i=1359893119),E?(c=327033209^(o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24),B=1541459225^(o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24),r=-79577749^(o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24),E=528734635^(o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24)):(c=327033209,B=1541459225,r=-79577749,E=528734635),bg(A- -64|0,0,293),C[A+56|0]=c,C[A+57|0]=c>>>8,C[A+58|0]=c>>>16,C[A+59|0]=c>>>24,C[A+60|0]=B,C[A+61|0]=B>>>8,C[A+62|0]=B>>>16,C[A+63|0]=B>>>24,C[A+48|0]=r,C[A+49|0]=r>>>8,C[A+50|0]=r>>>16,C[A+51|0]=r>>>24,C[A+52|0]=E,C[A+53|0]=E>>>8,C[A+54|0]=E>>>16,C[A+55|0]=E>>>24,C[A+40|0]=_,C[A+41|0]=_>>>8,C[A+42|0]=_>>>16,C[A+43|0]=_>>>24,C[A+44|0]=g,C[A+45|0]=g>>>8,C[A+46|0]=g>>>16,C[A+47|0]=g>>>24,C[A+32|0]=a,C[A+33|0]=a>>>8,C[A+34|0]=a>>>16,C[A+35|0]=a>>>24,C[A+36|0]=i,C[A+37|0]=i>>>8,C[A+38|0]=i>>>16,C[A+39|0]=i>>>24,C[A+24|0]=241,C[A+25|0]=54,C[A+26|0]=29,C[A+27|0]=95,C[A+28|0]=58,C[A+29|0]=245,C[A+30|0]=79,C[A+31|0]=165,C[A+16|0]=43,C[A+17|0]=248,C[A+18|0]=148,C[A+19|0]=254,C[A+20|0]=114,C[A+21|0]=243,C[A+22|0]=110,C[A+23|0]=60,C[A+8|0]=59,C[A+9|0]=167,C[A+10|0]=202,C[A+11|0]=132,C[A+12|0]=133,C[A+13|0]=174,C[A+14|0]=103,C[A+15|0]=187,g=-222443256^(t<<8|y),C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,g=t>>>24^1779033703,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,g=Ng(bg(e,0,128),I,t),Ng(A+96|0,g,128),I=128+(o[A+352|0]|o[A+353|0]<<8|o[A+354|0]<<16|o[A+355|0]<<24)|0,C[A+352|0]=I,C[A+353|0]=I>>>8,C[A+354|0]=I>>>16,C[A+355|0]=I>>>24,XC(g,128),s=g+128|0)}a=0}return 0|a},yc:lC,zc:Hg,Ac:gB,Bc:CC,Cc:function(){return 1531},Dc:BB,Ec:function(){return 104},Fc:$I,Gc:function(A,I,g,C){return 0|UA(A|=0,I|=0,g|=0,C|=0)},Hc:JA,Ic:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0;return s=B=s-112|0,Q=i[8811],i[B+16>>2]=i[8810],i[B+20>>2]=Q,Q=i[8813],i[B+24>>2]=i[8812],i[B+28>>2]=Q,Q=i[8815],i[B+32>>2]=i[8814],i[B+36>>2]=Q,i[B+40>>2]=0,i[B+44>>2]=0,Q=i[8809],i[B+8>>2]=i[8808],i[B+12>>2]=Q,UA(Q=B+8|0,I,g,C),JA(Q,A),s=B+112|0,0},Jc:gB,Kc:IB,Lc:SI,Mc:QC,Nc:j,Oc:CC,Pc:CB,Qc:gB,Rc:eB,Sc:BB,Tc:YI,Uc:WC,Vc:CB,Wc:gB,Xc:eB,Yc:BB,Zc:YI,_c:PC,$c:function(A,I,g){return 0|mA(A|=0,I|=0,g|=0)},ad:function(A,I,g){return 0|mC(A|=0,I|=0,g|=0,0)},bd:function(A,I){return Sg(A|=0,I|=0),XC(A,4),0},cd:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-208|0,mA(Q,I|=0,g|=0),mC(Q,C,B,0),Sg(Q,A),XC(Q,4),s=Q+208|0,0},dd:PC,ed:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-256|0,C[E+15|0]=1,I>>>0<=8160){if(I>>>0>=32)for(t=A-32|0,a=32;c=a,mA(a=E+48|0,Q,32),_&&mC(a,_+t|0,32,0),mC(a=E+48|0,g,B,0),mC(a,E+15|0,1,0),Sg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)+32|0)>>>0<=I>>>0;);(_=31&I)&&(mA(I=E+48|0,Q,32),c&&mC(I,(A+c|0)-32|0,32,0),mC(I=E+48|0,g,B,0),mC(I,E+15|0,1,0),Sg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,32)),XC(E+48|0,208),A=0}else i[9404]=28,A=-1;return s=E+256|0,0|A},fd:BB,gd:hB,hd:function(){return 8160},id:IB,jd:yC,kd:function(A,I,g){return 0|dC(A|=0,I|=0,g|=0,0)},ld:function(A,I){return wg(A|=0,I|=0),XC(A,4),0},md:function(A,I,g,C,B){var Q;return A|=0,C|=0,B|=0,s=Q=s-416|0,iI(Q,I|=0,g|=0),dC(Q,C,B,0),wg(Q,A),XC(Q,4),s=Q+416|0,0},nd:function(A){ag(A|=0,64)},od:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-496|0,C[E+15|0]=1,I>>>0<=16320){if(I>>>0>=64)for(t=A+-64|0,a=64;c=a,iI(a=E+80|0,Q,64),_&&dC(a,_+t|0,64,0),dC(a=E+80|0,g,B,0),dC(a,E+15|0,1,0),wg(a,A+_|0),C[E+15|0]=o[E+15|0]+1,(a=(_=c)- -64|0)>>>0<=I>>>0;);(_=63&I)&&(iI(I=E+80|0,Q,64),c&&dC(I,(A+c|0)-64|0,64,0),dC(I=E+80|0,g,B,0),dC(I,E+15|0,1,0),wg(g=I,I=E+16|0),Ng(A+c|0,I,_),XC(I,64)),XC(E+80|0,416),A=0}else i[9404]=28,A=-1;return s=E+496|0,0|A},pd:gB,qd:hB,rd:function(){return 16320},sd:$C,td:function(A,I,g){return A|=0,kC(I|=0,32,g|=0,32,0,0,0),0|KC(A,I)},ud:function(A,I){return A|=0,ag(I|=0,32),0|KC(A,I)},vd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,g,32,0),lC(I,i,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+E|0]=o[0|g],C[A+B|0]=o[g+32|0],C[(g=1|A)+E|0]=o[I+g|0],C[g+B|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},wd:function(A,I,g,B,i){I|=0,g|=0,B|=0,i|=0;var E,a,_=0,c=0,t=0;if(a=_=s,s=_=_-512&-64,E=(A|=0)||I){if(t=-1,!tC(c=_+96|0,B,i)){for(B=I||A,A=0,iC(I=_+128|0,0,0,64),lC(I,c,32,0),XC(c,32),lC(I,i,32,0),lC(I,g,32,0),eC(I,_+32|0,64),XC(I,384);g=(I=_+32|0)+A|0,C[A+B|0]=o[0|g],C[A+E|0]=o[g+32|0],C[(g=1|A)+B|0]=o[I+g|0],C[g+E|0]=o[I+(33|A)|0],32!=(0|(A=A+2|0)););XC(I,64),t=0}return s=a,0|t}rC(),Q()},xd:BB,yd:BB,zd:BB,Ad:BB,Bd:function(){return 1332},Cd:TC,Dd:CB,Ed:BB,Fd:Vg,Gd:Zg,Hd:function(A,I){return 0|wC(A|=0,I|=0)},Id:BC,Jd:function(A,I){return 0|nC(A|=0,I|=0)},Kd:function(){return 1494},Ld:PC,Md:Vg,Nd:Zg,Od:wC,Pd:BC,Qd:nC,Rd:CB,Sd:BB,Td:TC,Ud:PC,Vd:yB,Wd:CB,Xd:cB,Yd:hB,Zd:cB,_d:CB,$d:AB,ae:function(){return 1554},be:rB,ce:cB,de:VC,ee:xC,fe:sB,ge:LC,he:function(){return 6},ie:function(){return 134217728},je:eB,ke:function(){return 536870912},le:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|rI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},me:function(A,I,g,C,B,Q,i){return 0|OI(A|=0,I|=0,(A=0)|(g|=0),C|=0,A|(B|=0),Q|=0,i|=0)},ne:function(A,I,g,C){return 0|bC(A|=0,I|=0,g|=0,C|=0)},oe:function(A,I,g,C){return 0|HC(A|=0,I|=0,g|=0,C|=0)},pe:function(A,I,g,C){return 0|YC(A|=0,I|=0,g|=0,C|=0)},qe:tB,re:CB,se:cB,te:hB,ue:cB,ve:CB,we:AB,xe:OC,ye:yB,ze:cB,Ae:VC,Be:xC,Ce:tB,De:qC,Ee:rB,Fe:RC,Ge:sB,He:vC,Ie:function(A,I,g,C,B,Q,i,o,E,a,_){return 0|yI(A|=0,(A=0)|(I|=0),g|=0,C|=0,A|(B|=0),Q|=0,i|=0,A|(o|=0),E|=0,a|=0,_|=0)},Je:Fg,Ke:function(A,I,g,C){return 0|JC(A|=0,I|=0,g|=0,C|=0)},Le:yB,Me:tB,Ne:tB,Oe:CB,Pe:cB,Qe:hB,Re:cB,Se:CB,Te:AB,Ue:OC,Ve:yB,We:cB,Xe:VC,Ye:xC,Ze:tB,_e:qC,$e:rB,af:RC,bf:sB,cf:vC,df:function(A,I,g,C,B,Q,o,E,a,_,c){A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,E|=0,a|=0,_|=0,I|=0,B|=0,E|=0;A:{switch((c|=0)-1|0){case 0:A=rI(A,I,g,C,B,Q,o,E,a,_,1);break A;case 1:A=yI(A,I,g,C,B,Q,o,E,a,_,2);break A}i[9404]=28,A=-1}return 0|A},ef:Fg,ff:function(A,I,g,C,B,i,o,E){A|=0,I|=0,g|=0,C|=0,B|=0,i|=0,o|=0,g|=0,B|=0;A:{switch((E|=0)-1|0){case 1:A=TI(A,I,g,C,B,i,o);break A;default:rC(),Q();case 0:}A=OI(A,I,g,C,B,i,o)}return 0|A},gf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=bC(A,I,g,C):A=JC(A,I,g,C),0|A},hf:function(A,I,g,C){return I|=0,g|=0,C|=0,gg(A|=0,1564,10)?gg(A,1554,9)?(i[9404]=28,A=-1):A=HC(A,I,g,C):A=YC(A,I,g,C),0|A},jf:function(){return 1156},kf:function(){return 1443},lf:KC,mf:tC,nf:BB,of:BB,pf:CI,qf:pC,rf:BB,sf:BB,tf:BB,uf:_B,vf:BB,wf:CB,xf:CB,yf:EB,zf:function(){return 1486},Af:Pg,Bf:qg,Cf:PC,Df:Yg,Ef:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),aI(A+16|0,A,I,g,C,B,i),0},Ff:Jg,Gf:hg,Hf:Pg,If:qg,Jf:BB,Kf:_B,Lf:BB,Mf:CB,Nf:CB,Of:EB,Pf:PC,Qf:PC,Rf:function(A,I,g){return A|=0,g|=0,ag(I|=0,24),yA(A,I,g,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Sf:function(A,I,g){return yA(A|=0,I|=0,g|=0,0),C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,g=o[I+16|0]|o[I+17|0]<<8|o[I+18|0]<<16|o[I+19|0]<<24,I=o[I+20|0]|o[I+21|0]<<8|o[I+22|0]<<16|o[I+23|0]<<24,C[A+44|0]=0,C[A+45|0]=0,C[A+46|0]=0,C[A+47|0]=0,C[A+48|0]=0,C[A+49|0]=0,C[A+50|0]=0,C[A+51|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=I,C[A+41|0]=I>>>8,C[A+42|0]=I>>>16,C[A+43|0]=I>>>24,0},Tf:function(A){var I,g=0,B=0;s=I=s-48|0,g=o[28+(A|=0)|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[I+24>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[I+28>>2]=g,g=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[I+16>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[I+20>>2]=g,g=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[I>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[I+4>>2]=g,g=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[I+8>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[I+12>>2]=g,g=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[I+32>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[I+36>>2]=g,xg(I,I,40,0,A+32|0,A),g=i[I+28>>2],B=i[I+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=g,C[A+29|0]=g>>>8,C[A+30|0]=g>>>16,C[A+31|0]=g>>>24,g=i[I+20>>2],B=i[I+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=g,C[A+21|0]=g>>>8,C[A+22|0]=g>>>16,C[A+23|0]=g>>>24,g=i[I+12>>2],B=i[I+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=g,C[A+13|0]=g>>>8,C[A+14|0]=g>>>16,C[A+15|0]=g>>>24,g=i[I+4>>2],B=i[I>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=g,C[A+5|0]=g>>>8,C[A+6|0]=g>>>16,C[A+7|0]=g>>>24,B=i[I+36>>2],g=i[I+32>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=g,C[A+37|0]=g>>>8,C[A+38|0]=g>>>16,C[A+39|0]=g>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24,s=I+48|0},Uf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,a|=0,_|=0,t|=0,r|=0;var e,y=0,h=0,D=0;return y=E|=0,y|=E=0,e=E|(c|=0),s=E=s-384|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),!a&y>>>0<4294967279?(jg(h=E+16|0,64,0,D=A+32|0,A),wC(c=E+80|0,h),XC(h,64),SC(c,_,e,t),SC(c,35216,0-e&15,0),i[E+72>>2]=0,i[E+76>>2]=0,i[(_=E- -64|0)>>2]=0,i[_+4>>2]=0,i[E+56>>2]=0,i[E+60>>2]=0,i[E+48>>2]=0,i[E+52>>2]=0,i[E+40>>2]=0,i[E+44>>2]=0,i[E+32>>2]=0,i[E+36>>2]=0,i[E+16>>2]=0,i[E+20>>2]=0,i[E+24>>2]=0,i[E+28>>2]=0,C[E+16|0]=r,Cg(h,h,64,0,D,1,A),SC(c,h,64,0),C[0|I]=o[E+16|0],Cg(I=I+1|0,B,y,a,D,2,A),SC(c,I,y,a),SC(c,35216,15&y,0),i[E+8>>2]=e,i[E+12>>2]=t,SC(c,B=E+8|0,8,0),i[E+8>>2]=y- -64,i[E+12>>2]=a-((y>>>0<4294967232)-1|0),SC(c,B,8,0),nC(c,I=I+y|0),XC(c,256),C[A+36|0]=o[A+36|0]^o[0|I],C[A+37|0]=o[A+37|0]^o[I+1|0],C[A+38|0]=o[A+38|0]^o[I+2|0],C[A+39|0]=o[A+39|0]^o[I+3|0],C[A+40|0]=o[A+40|0]^o[I+4|0],C[A+41|0]=o[A+41|0]^o[I+5|0],C[A+42|0]=o[A+42|0]^o[I+6|0],C[A+43|0]=o[A+43|0]^o[I+7|0],XI(D),(2&r||GI(D,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[E+360>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[E+364>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[E+352>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[E+356>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[E+336>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[E+340>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[E+344>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[E+348>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[E+368>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[E+372>>2]=I,xg(I=E+336|0,I,40,0,D,A),I=i[E+364>>2],B=i[E+360>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[E+356>>2],B=i[E+352>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[E+348>>2],B=i[E+344>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[E+340>>2],B=i[E+336>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[E+368>>2],B=i[E+372>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=B,C[A+41|0]=B>>>8,C[A+42|0]=B>>>16,C[A+43|0]=B>>>24),g&&(a=(A=y+17|0)>>>0<17?a+1|0:a,i[g>>2]=A,i[g+4>>2]=a),s=E+384|0):(rC(),Q()),0},Vf:function(A,I,g,B,E,a,_,c,t,r){A|=0,I|=0,B|=0,E|=0,c|=0,r|=0;var e,y=0,h=0,D=0,f=0,p=0,w=0;y=a|=0,a=_|=0,h=0|y,e=t|=0,s=_=s-400|0,(g|=0)&&(i[g>>2]=0,i[g+4>>2]=0),B&&(C[0|B]=255),w=-1;A:{I:{if(!((t=h>>>0<17)&!a)){if(p=y=a-t|0,!y&(t=h-17|0)>>>0>=4294967279|y)break I;jg(D=_+32|0,64,0,f=A+32|0,A),wC(y=_+96|0,D),XC(D,64),SC(y,c,e,r),SC(y,35216,0-e&15,0),i[_+88>>2]=0,i[_+92>>2]=0,i[_+80>>2]=0,i[_+84>>2]=0,i[_+72>>2]=0,i[_+76>>2]=0,i[(c=_- -64|0)>>2]=0,i[c+4>>2]=0,i[_+56>>2]=0,i[_+60>>2]=0,i[_+48>>2]=0,i[_+52>>2]=0,i[_+40>>2]=0,i[_+44>>2]=0,i[_+32>>2]=0,i[_+36>>2]=0,C[_+32|0]=o[0|E],Cg(D,D,64,0,f,1,A),c=o[_+32|0],C[_+32|0]=o[0|E],SC(y,D,64,0),SC(y,E=E+1|0,t,p),SC(y,35216,h-1&15,0),i[_+24>>2]=e,i[_+28>>2]=r,SC(y,r=_+24|0,8,0),a=(h=h+47|0)>>>0<47?a+1|0:a,i[_+24>>2]=h,i[_+28>>2]=a,SC(y,r,8,0),nC(y,_),XC(y,256),MI(_,E+t|0,16)?XC(_,16):(Cg(I,E,t,p,f,2,A),C[A+36|0]=o[A+36|0]^o[0|_],C[A+37|0]=o[A+37|0]^o[_+1|0],C[A+38|0]=o[A+38|0]^o[_+2|0],C[A+39|0]=o[A+39|0]^o[_+3|0],C[A+40|0]=o[A+40|0]^o[_+4|0],C[A+41|0]=o[A+41|0]^o[_+5|0],C[A+42|0]=o[A+42|0]^o[_+6|0],C[A+43|0]=o[A+43|0]^o[_+7|0],XI(f),(2&c||GI(f,4))&&(I=o[A+28|0]|o[A+29|0]<<8|o[A+30|0]<<16|o[A+31|0]<<24,i[_+376>>2]=o[A+24|0]|o[A+25|0]<<8|o[A+26|0]<<16|o[A+27|0]<<24,i[_+380>>2]=I,I=o[A+20|0]|o[A+21|0]<<8|o[A+22|0]<<16|o[A+23|0]<<24,i[_+368>>2]=o[A+16|0]|o[A+17|0]<<8|o[A+18|0]<<16|o[A+19|0]<<24,i[_+372>>2]=I,I=o[A+4|0]|o[A+5|0]<<8|o[A+6|0]<<16|o[A+7|0]<<24,i[_+352>>2]=o[0|A]|o[A+1|0]<<8|o[A+2|0]<<16|o[A+3|0]<<24,i[_+356>>2]=I,I=o[A+12|0]|o[A+13|0]<<8|o[A+14|0]<<16|o[A+15|0]<<24,i[_+360>>2]=o[A+8|0]|o[A+9|0]<<8|o[A+10|0]<<16|o[A+11|0]<<24,i[_+364>>2]=I,I=o[A+40|0]|o[A+41|0]<<8|o[A+42|0]<<16|o[A+43|0]<<24,i[_+384>>2]=o[A+36|0]|o[A+37|0]<<8|o[A+38|0]<<16|o[A+39|0]<<24,i[_+388>>2]=I,xg(I=_+352|0,I,40,0,f,A),I=i[_+380>>2],E=i[_+376>>2],C[A+24|0]=E,C[A+25|0]=E>>>8,C[A+26|0]=E>>>16,C[A+27|0]=E>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[_+372>>2],E=i[_+368>>2],C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[_+364>>2],E=i[_+360>>2],C[A+8|0]=E,C[A+9|0]=E>>>8,C[A+10|0]=E>>>16,C[A+11|0]=E>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[_+356>>2],E=i[_+352>>2],C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[_+384>>2],E=i[_+388>>2],C[A+32|0]=1,C[A+33|0]=0,C[A+34|0]=0,C[A+35|0]=0,C[A+36|0]=I,C[A+37|0]=I>>>8,C[A+38|0]=I>>>16,C[A+39|0]=I>>>24,C[A+40|0]=E,C[A+41|0]=E>>>8,C[A+42|0]=E>>>16,C[A+43|0]=E>>>24),g&&(i[g>>2]=t,i[g+4>>2]=p),w=0,B&&(C[0|B]=c))}s=_+400|0;break A}rC(),Q()}return 0|w},Wf:function(){return 52},Xf:function(){return 17},Yf:_B,Zf:BB,_f:function(){return-18},$f:hB,ag:yB,bg:tB,cg:rB,dg:eB,eg:CB,fg:function(){return 1521},gg:T,hg:zC,ig:eB,jg:CB,kg:T,lg:IB,mg:gB,ng:BB,og:BB,pg:gB,qg:QB,rg:function(){return 1454},sg:function(A,I,g){return 0|FA(A|=0,I|=0,g|=0)},tg:function(A,I){return 0|YA(A|=0,I|=0)},ug:LI,vg:bI,wg:vg,xg:Wg,yg:function(A){return 0|uC(A|=0)},zg:QC,Ag:function(A,I,g,C){return 0|ng(A|=0,I|=0,g|=0,C|=0)},Bg:function(A,I,g){return 0|Kg(A|=0,I|=0,g|=0)},Cg:IB,Dg:gB,Eg:BB,Fg:BB,Gg:gB,Hg:QB,Ig:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[8+(_=I|=0)|0]|o[_+9|0]<<8|o[_+10|0]<<16|o[_+11|0]<<24,B=o[_+12|0]|o[_+13|0]<<8|o[_+14|0]<<16|o[_+15|0]<<24,Q=o[_+16|0]|o[_+17|0]<<8|o[_+18|0]<<16|o[_+19|0]<<24,i=o[_+20|0]|o[_+21|0]<<8|o[_+22|0]<<16|o[_+23|0]<<24,E=o[0|_]|o[_+1|0]<<8|o[_+2|0]<<16|o[_+3|0]<<24,I=o[_+4|0]|o[_+5|0]<<8|o[_+6|0]<<16|o[_+7|0]<<24,a=o[_+28|0]|o[_+29|0]<<8|o[_+30|0]<<16|o[_+31|0]<<24,_=o[_+24|0]|o[_+25|0]<<8|o[_+26|0]<<16|o[_+27|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=Q,C[A+17|0]=Q>>>8,C[A+18|0]=Q>>>16,C[A+19|0]=Q>>>24,C[A+20|0]=i,C[A+21|0]=i>>>8,C[A+22|0]=i>>>16,C[A+23|0]=i>>>24,C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=B,C[A+13|0]=B>>>8,C[A+14|0]=B>>>16,C[A+15|0]=B>>>24,C[0|A]=E,C[A+1|0]=E>>>8,C[A+2|0]=E>>>16,C[A+3|0]=E>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,0},Jg:function(A,I){A|=0;var g,B,Q,i,E,a,_=0;return g=o[32+(_=I|=0)|0]|o[_+33|0]<<8|o[_+34|0]<<16|o[_+35|0]<<24,B=o[_+36|0]|o[_+37|0]<<8|o[_+38|0]<<16|o[_+39|0]<<24,Q=o[_+40|0]|o[_+41|0]<<8|o[_+42|0]<<16|o[_+43|0]<<24,i=o[_+44|0]|o[_+45|0]<<8|o[_+46|0]<<16|o[_+47|0]<<24,E=o[_+48|0]|o[_+49|0]<<8|o[_+50|0]<<16|o[_+51|0]<<24,I=o[_+52|0]|o[_+53|0]<<8|o[_+54|0]<<16|o[_+55|0]<<24,a=o[_+60|0]|o[_+61|0]<<8|o[_+62|0]<<16|o[_+63|0]<<24,_=o[_+56|0]|o[_+57|0]<<8|o[_+58|0]<<16|o[_+59|0]<<24,C[A+24|0]=_,C[A+25|0]=_>>>8,C[A+26|0]=_>>>16,C[A+27|0]=_>>>24,C[A+28|0]=a,C[A+29|0]=a>>>8,C[A+30|0]=a>>>16,C[A+31|0]=a>>>24,C[A+16|0]=E,C[A+17|0]=E>>>8,C[A+18|0]=E>>>16,C[A+19|0]=E>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,C[A+8|0]=Q,C[A+9|0]=Q>>>8,C[A+10|0]=Q>>>16,C[A+11|0]=Q>>>24,C[A+12|0]=i,C[A+13|0]=i>>>8,C[A+14|0]=i>>>16,C[A+15|0]=i>>>24,C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=B,C[A+5|0]=B>>>8,C[A+6|0]=B>>>16,C[A+7|0]=B>>>24,0},Kg:uC,Lg:QC,Mg:ng,Ng:Kg,Og:FA,Pg:YA,Qg:function(A,I){A|=0;var g,C=0,B=0,Q=0,o=0,E=0,_=0,c=0,t=0,r=0,e=0,y=0,h=0,D=0,p=0,w=0,n=0,k=0,F=0,S=0,N=0,G=0,M=0,K=0,U=0,b=0,H=0,Y=0,J=0,d=0,m=0,l=0,u=0,x=0,v=0,R=0,L=0,P=0,q=0,z=0,j=0,X=0,O=0,W=0,V=0,Z=0,T=0,$=0,AA=0,IA=0,CA=0,BA=0,QA=0,iA=0,oA=0,EA=0,aA=0,_A=0,cA=0,tA=0,rA=0,eA=0,yA=0,sA=0,hA=0,DA=0,fA=0,pA=0,wA=0,nA=0,kA=0,FA=0,SA=0,NA=0,GA=0,MA=0,KA=0,UA=0,bA=0,HA=0,YA=0;return s=g=s-256|0,SA=-1,KI(I|=0)||qA(C=g+96|0,I)||gA(C)&&(SA=0,u=i[g+172>>2],i[g+36>>2]=0-u,n=i[g+168>>2],i[g+32>>2]=0-n,x=i[g+164>>2],i[g+28>>2]=0-x,k=i[g+160>>2],i[g+24>>2]=0-k,v=i[g+156>>2],i[g+20>>2]=0-v,F=i[g+152>>2],i[g+16>>2]=0-F,R=i[g+148>>2],i[g+12>>2]=0-R,S=i[g+144>>2],i[g+8>>2]=0-S,L=i[g+140>>2],i[g+4>>2]=0-L,Q=i[g+136>>2],i[g>>2]=1-Q,LA(g,g),I=Ig(N=i[g+4>>2],d=N>>31,G=v<<1,IA=G>>31),C=f,B=Ig(p=i[g>>2],M=p>>31,k,K=k>>31),C=f+C|0,C=(I=B+I|0)>>>0<B>>>0?C+1|0:C,B=(o=Ig(U=i[g+8>>2],P=U>>31,F,b=F>>31))+I|0,I=f+C|0,I=B>>>0<o>>>0?I+1|0:I,C=B,B=Ig(m=i[g+12>>2],j=m>>31,W=R<<1,CA=W>>31),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=Ig(q=i[g+16>>2],V=q>>31,S,H=S>>31),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,fA=o=i[g+20>>2],h=Ig(o,BA=o>>31,Z=L<<1,QA=Z>>31),B=f+I|0,B=(C=h+C|0)>>>0<h>>>0?B+1|0:B,pA=r=i[g+24>>2],I=(Q=Ig(r,sA=r>>31,h=Q+1|0,Y=h>>31))+C|0,C=f+B|0,C=I>>>0<Q>>>0?C+1|0:C,iA=i[g+28>>2],B=(Q=Ig(w=a(iA,19),X=w>>31,T=u<<1,oA=T>>31))+I|0,I=f+C|0,I=B>>>0<Q>>>0?I+1|0:I,C=B,NA=i[g+32>>2],B=Ig(_=a(NA,19),z=_>>31,n,J=n>>31),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,GA=i[g+36>>2],B=Ig(y=a(GA,19),l=y>>31,$=x<<1,EA=$>>31),I=f+I|0,c=C=B+C|0,Q=C>>>0<B>>>0?I+1|0:I,I=Ig(F,b,N,d),C=f,E=Ig(p,M,v,aA=v>>31),B=f+C|0,B=(I=E+I|0)>>>0<E>>>0?B+1|0:B,E=Ig(U,P,R,_A=R>>31),C=f+B|0,C=(I=E+I|0)>>>0<E>>>0?C+1|0:C,B=(E=Ig(S,H,m,j))+I|0,I=f+C|0,I=B>>>0<E>>>0?I+1|0:I,C=B,B=Ig(q,V,L,cA=L>>31),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=Ig(h,Y,o,BA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,E=Ig(r=a(r,19),AA=r>>31,u,tA=u>>31),B=f+I|0,B=(C=E+C|0)>>>0<E>>>0?B+1|0:B,I=(E=Ig(n,J,w,X))+C|0,C=f+B|0,C=I>>>0<E>>>0?C+1|0:C,B=(E=Ig(_,z,x,rA=x>>31))+I|0,I=f+C|0,I=B>>>0<E>>>0?I+1|0:I,C=B,B=Ig(y,l,k,K),I=f+I|0,wA=C=C+B|0,O=C>>>0<B>>>0?I+1|0:I,I=Ig(N,d,W,CA),B=f,C=(E=Ig(p,M,F,b))+I|0,I=f+B|0,I=C>>>0<E>>>0?I+1|0:I,E=Ig(S,H,U,P),B=f+I|0,B=(C=E+C|0)>>>0<E>>>0?B+1|0:B,I=(E=Ig(m,j,Z,QA))+C|0,C=f+B|0,C=I>>>0<E>>>0?C+1|0:C,B=(E=Ig(h,Y,q,V))+I|0,I=f+C|0,I=B>>>0<E>>>0?I+1|0:I,C=B,B=Ig(E=a(o,19),eA=E>>31,T,oA),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=Ig(n,J,r,AA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,o=Ig(w,X,$,EA),B=f+I|0,B=(C=o+C|0)>>>0<o>>>0?B+1|0:B,I=(o=Ig(_,z,k,K))+C|0,C=f+B|0,C=I>>>0<o>>>0?C+1|0:C,B=(o=Ig(y,l,G,IA))+I|0,I=f+C|0,MA=B,KA=I=B>>>0<o>>>0?I+1|0:I,UA=B=B+33554432|0,bA=I=B>>>0<33554432?I+1|0:I,B=(67108863&I)<<6|B>>>26,I=(I>>26)+O|0,wA=o=B+wA|0,I=B>>>0>o>>>0?I+1|0:I,HA=o=o+16777216|0,I=(C=(B=o>>>0<16777216?I+1|0:I)>>25)+Q|0,I=(B=(o=(33554431&B)<<7|o>>>25)+c|0)>>>0<o>>>0?I+1|0:I,D=C=B+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+72>>2]=B-(-67108864&C),I=Ig(N,d,Z,QA),C=f,Q=Ig(p,M,S,H),B=f+C|0,B=(I=Q+I|0)>>>0<Q>>>0?B+1|0:B,C=(Q=Ig(h,Y,U,P))+I|0,I=f+B|0,I=C>>>0<Q>>>0?I+1|0:I,B=Ig(Q=a(m,19),yA=Q>>31,T,oA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=(c=Ig(O=a(q,19),hA=O>>31,n,J))+C|0,C=f+I|0,C=B>>>0<c>>>0?C+1|0:C,c=Ig($,EA,E,eA),I=f+C|0,I=(B=c+B|0)>>>0<c>>>0?I+1|0:I,C=(c=Ig(k,K,r,AA))+B|0,B=f+I|0,B=C>>>0<c>>>0?B+1|0:B,c=Ig(w,X,G,IA),I=f+B|0,I=(C=c+C|0)>>>0<c>>>0?I+1|0:I,B=Ig(_,z,F,b),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=(c=Ig(y,l,W,CA))+C|0,C=f+I|0,e=B,nA=B>>>0<c>>>0?C+1|0:C,I=Ig(h,Y,N,d),C=f,B=(c=Ig(p,M,L,cA))+I|0,I=f+C|0,I=B>>>0<c>>>0?I+1|0:I,c=C=a(U,19),C=(t=Ig(C,DA=C>>31,u,tA))+B|0,B=f+I|0,B=C>>>0<t>>>0?B+1|0:B,t=Ig(n,J,Q,yA),I=f+B|0,I=(C=t+C|0)>>>0<t>>>0?I+1|0:I,B=Ig(O,hA,x,rA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=(t=Ig(k,K,E,eA))+C|0,C=f+I|0,C=B>>>0<t>>>0?C+1|0:C,t=Ig(r,AA,v,aA),I=f+C|0,I=(B=t+B|0)>>>0<t>>>0?I+1|0:I,C=(t=Ig(F,b,w,X))+B|0,B=f+I|0,B=C>>>0<t>>>0?B+1|0:B,t=Ig(_,z,R,_A),I=f+B|0,I=(C=t+C|0)>>>0<t>>>0?I+1|0:I,B=Ig(y,l,S,H),I=f+I|0,kA=C=B+C|0,t=C>>>0<B>>>0?I+1|0:I,I=Ig(I=a(N,19),I>>31,T,oA),C=f,B=Ig(p,M,h,Y),C=f+C|0,C=(I=B+I|0)>>>0<B>>>0?C+1|0:C,B=(c=Ig(n,J,c,DA))+I|0,I=f+C|0,C=(Q=Ig(Q,yA,$,EA))+B|0,B=f+(B>>>0<c>>>0?I+1|0:I)|0,B=C>>>0<Q>>>0?B+1|0:B,Q=Ig(k,K,O,hA),I=f+B|0,I=(C=Q+C|0)>>>0<Q>>>0?I+1|0:I,B=Ig(G,IA,E,eA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=(Q=Ig(F,b,r,AA))+C|0,C=f+I|0,C=B>>>0<Q>>>0?C+1|0:C,Q=Ig(w,X,W,CA),I=f+C|0,I=(B=Q+B|0)>>>0<Q>>>0?I+1|0:I,C=(Q=Ig(_,z,S,H))+B|0,B=f+I|0,B=C>>>0<Q>>>0?B+1|0:B,Q=Ig(y,l,Z,QA),I=f+B|0,c=C=Q+C|0,yA=I=C>>>0<Q>>>0?I+1|0:I,DA=C=C+33554432|0,YA=I=C>>>0<33554432?I+1|0:I,B=I>>26,I=(67108863&I)<<6|C>>>26,C=B+t|0,t=Q=I+kA|0,I=C=I>>>0>Q>>>0?C+1|0:C,kA=Q=Q+16777216|0,Q=(33554431&(I=Q>>>0<16777216?I+1|0:I))<<7|Q>>>25,I=(I>>25)+nA|0,I=(C=Q+e|0)>>>0<Q>>>0?I+1|0:I,B=C,nA=C=C+33554432|0,Q=I=C>>>0<33554432?I+1|0:I,i[g+56>>2]=B-(-67108864&C),I=Ig(k,K,N,d),B=f,C=(e=Ig(p,M,x,rA))+I|0,I=f+B|0,I=C>>>0<e>>>0?I+1|0:I,B=Ig(U,P,v,aA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=Ig(F,b,m,j),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,e=Ig(q,V,R,_A),B=f+I|0,B=(C=e+C|0)>>>0<e>>>0?B+1|0:B,I=(e=Ig(S,H,fA,BA))+C|0,C=f+B|0,C=I>>>0<e>>>0?C+1|0:C,B=(e=Ig(L,cA,pA,sA))+I|0,I=f+C|0,I=B>>>0<e>>>0?I+1|0:I,C=B,B=Ig(iA,FA=iA>>31,h,Y),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=Ig(_,z,u,tA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,e=(B=C)+(C=Ig(y,l,n,J))|0,B=f+I|0,C=(I=o>>26)+(C=C>>>0>e>>>0?B+1|0:B)|0,D=B=(o=(67108863&o)<<6|D>>>26)+e|0,I=C=B>>>0<o>>>0?C+1|0:C,e=B=B+16777216|0,o=I=B>>>0<16777216?I+1|0:I,i[g+76>>2]=D-(-33554432&B),I=Ig(S,H,N,d),C=f,D=Ig(p,M,R,_A),B=f+C|0,B=(I=D+I|0)>>>0<D>>>0?B+1|0:B,D=Ig(U,P,L,cA),C=f+B|0,C=(I=D+I|0)>>>0<D>>>0?C+1|0:C,B=(D=Ig(h,Y,m,j))+I|0,I=f+C|0,I=B>>>0<D>>>0?I+1|0:I,C=B,B=Ig(O,hA,u,tA),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=Ig(n,J,E,eA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,C=(r=Ig(r,AA,x,rA))+C|0,B=f+I|0,I=(w=Ig(k,K,w,X))+C|0,C=f+(C>>>0<r>>>0?B+1|0:B)|0,B=(_=Ig(_,z,v,aA))+I|0,I=f+(I>>>0<w>>>0?C+1|0:C)|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(y,l,F,b),I=f+I|0,D=C=C+B|0,I=(I=C>>>0<B>>>0?I+1|0:I)+(C=Q>>26)|0,_=Q=D+(B=(67108863&Q)<<6|nA>>>26)|0,I=B>>>0>Q>>>0?I+1|0:I,w=C=Q+16777216|0,Q=B=C>>>0<16777216?I+1|0:I,i[g+60>>2]=_-(-33554432&C),I=Ig(N,d,$,EA),B=f,C=(_=Ig(p,M,n,J))+I|0,I=f+B|0,I=C>>>0<_>>>0?I+1|0:I,B=Ig(k,K,U,P),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,_=Ig(m,j,G,IA),B=f+I|0,B=(C=_+C|0)>>>0<_>>>0?B+1|0:B,I=(_=Ig(F,b,q,V))+C|0,C=f+B|0,C=I>>>0<_>>>0?C+1|0:C,B=(_=Ig(W,CA,fA,BA))+I|0,I=f+C|0,I=B>>>0<_>>>0?I+1|0:I,C=B,B=Ig(S,H,pA,sA),I=f+I|0,I=(C=C+B|0)>>>0<B>>>0?I+1|0:I,B=C,C=Ig(iA,FA,Z,QA),I=f+I|0,I=C>>>0>(B=B+C|0)>>>0?I+1|0:I,_=C=NA,C=(G=Ig(C,r=C>>31,h,Y))+B|0,B=f+I|0,I=(y=Ig(y,l,T,oA))+C|0,C=f+(C>>>0<G>>>0?B+1|0:B)|0,B=I>>>0<y>>>0?C+1|0:C,C=I,I=(I=o>>25)+B|0,I=(C=C+(o=(33554431&o)<<7|e>>>25)|0)>>>0<o>>>0?I+1|0:I,B=C,y=C=C+33554432|0,o=I=C>>>0<33554432?I+1|0:I,i[g+80>>2]=B-(-67108864&C),C=Q>>25,B=(Q=(33554431&Q)<<7|w>>>25)+(MA-(I=-67108864&UA)|0)|0,I=C+(KA-((I>>>0>MA>>>0)+bA|0)|0)|0,I=B>>>0<Q>>>0?I+1|0:I,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+(G=wA-(-33554432&HA)|0)|0,i[g+68>>2]=I,i[g+64>>2]=B-(-67108864&C),I=Ig(n,J,N,d),B=f,C=(Q=Ig(p,M,u,tA))+I|0,I=f+B|0,I=C>>>0<Q>>>0?I+1|0:I,B=(Q=Ig(U,P,x,rA))+C|0,C=f+I|0,C=B>>>0<Q>>>0?C+1|0:C,I=(Q=Ig(k,K,m,j))+B|0,B=f+C|0,B=I>>>0<Q>>>0?B+1|0:B,C=(Q=Ig(q,V,v,aA))+I|0,I=f+B|0,I=C>>>0<Q>>>0?I+1|0:I,B=Ig(F,b,fA,BA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=Ig(R,_A,pA,sA),I=f+I|0,I=(C=B+C|0)>>>0<B>>>0?I+1|0:I,B=(Q=Ig(S,H,iA,FA))+C|0,C=f+I|0,C=B>>>0<Q>>>0?C+1|0:C,Q=(I=Ig(_,r,L,cA))+B|0,B=f+C|0,B=I>>>0>Q>>>0?B+1|0:B,C=Q,Q=Ig(I=GA,I>>31,h,Y),I=f+B|0,B=C=C+Q|0,I=(I=C>>>0<Q>>>0?I+1|0:I)+(C=o>>26)|0,I=(B=B+(o=(67108863&o)<<6|y>>>26)|0)>>>0<o>>>0?I+1|0:I,I=(C=B+16777216|0)>>>0<16777216?I+1|0:I,i[g+84>>2]=B-(-33554432&C),o=t-(-33554432&kA)|0,Q=c-(B=-67108864&DA)|0,p=yA-((B>>>0>c>>>0)+YA|0)|0,I=Ig((33554431&(B=I))<<7|C>>>25,I>>=25,19,0),C=f+p|0,I=I>>>0>(B=I+Q|0)>>>0?C+1|0:C,I=((67108863&(I=(C=B+33554432|0)>>>0<33554432?I+1|0:I))<<6|C>>>26)+o|0,i[g+52>>2]=I,i[g+48>>2]=B-(-67108864&C),QI(A,g+48|0)),s=g+256|0,0|SA},Rg:function(A,I){A|=0;var g,B=0;return s=g=s+-64|0,FI(g,I|=0,32,0),C[0|g]=248&o[0|g],C[g+31|0]=63&o[g+31|0]|64,I=i[g+20>>2],B=i[g+16>>2],C[A+16|0]=B,C[A+17|0]=B>>>8,C[A+18|0]=B>>>16,C[A+19|0]=B>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[g+12>>2],B=i[g+8>>2],C[A+8|0]=B,C[A+9|0]=B>>>8,C[A+10|0]=B>>>16,C[A+11|0]=B>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[g+4>>2],B=i[g>>2],C[0|A]=B,C[A+1|0]=B>>>8,C[A+2|0]=B>>>16,C[A+3|0]=B>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,I=i[g+28>>2],B=i[g+24>>2],C[A+24|0]=B,C[A+25|0]=B>>>8,C[A+26|0]=B>>>16,C[A+27|0]=B>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,XC(g,64),s=g- -64|0,0},Sg:Wg,Tg:bI,Ug:vg,Vg:LI,Wg:BB,Xg:eB,Yg:cB,Zg:BB,_g:aB,$g:cB,ah:function(A,I,g,C,B){return 0|Xg(A|=0,I|=0,g|=0,C|=0,B|=0)},bh:function(A,I,g,C,B,Q,i,o){return 0|mg(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},ch:function(A,I,g,C,B,Q){return 0|ug(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},dh:function(A,I,g,C,B){return 0|jg(A|=0,I|=0,g|=0,C|=0,B|=0)},eh:function(A,I,g,C,B,Q,i){return 0|Cg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},fh:function(A,I,g,C,B,Q){return 0|xg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},gh:PC,hh:PC,ih:BB,jh:_B,kh:cB,lh:function(){return 1538},mh:Tg,nh:zg,oh:PC,ph:BB,qh:eB,rh:cB,sh:function(A,I,g,C,B){return 0|DC(A|=0,I|=0,g|=0,C|=0,B|=0)},th:function(A,I,g,C,B,Q,i,o){return 0|oC(A|=0,I|=0,(A=0)|(g|=0),C|=0,B|=0,A|(Q|=0),i|=0,o|=0)},uh:function(A,I,g,C,B,Q){return 0|aC(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0)},vh:PC,wh:Tg,xh:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,wA(E,B|=0,o|=0,0),A=oC(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),XC(E,32),s=E+32|0,0|A},yh:zg,zh:BB,Ah:_B,Bh:cB,Ch:PC,Dh:CB,Eh:BB,Fh:gB,Gh:oI,Hh:NC,Ih:GC,Jh:function(){return 1089},Kh:function(){var A,I;return s=A=s-16|0,C[A+15|0]=0,I=0|t(36800,A+15|0,0),s=A+16|0,0|I},Lh:$g,Mh:function(A){var I,g=0,B=0;if(s=I=s-16|0,(A|=0)>>>0>=2){for(g=(0-A>>>0)%(A>>>0)|0;C[I+15|0]=0,g>>>0>(B=0|t(36800,I+15|0,0))>>>0;);g=(B>>>0)%(A>>>0)|0}return s=I+16|0,0|g},Nh:ag,Oh:function(A,I,g){jg(A|=0,I|=0,0,34336,g|=0)},Ph:BB,Qh:function(){var A=0,I=0;return(A=i[9539])&&(A=i[A+20>>2])&&(I=0|pB[0|A]()),0|I},Rh:function(A,I,g){A|=0,I|=0;var B,i=0,o=0,E=0;if(s=B=s-16|0,g|=0)r(1346,1192,198,1092),Q();else{if(I|g)for(;C[B+15|0]=0,o=A+i|0,E=0|t(36800,B+15|0,0),C[0|o]=E,(0|I)!=(0|(i=i+1|0)););s=B+16|0}},Sh:function(A,I,g,B){A|=0,g|=0;var i=0,E=0,a=0;if(!((B|=0)>>>0>2147483646|B<<1>>>0>=(I|=0)>>>0)){if(I=0,B){for(;i=(I<<1)+A|0,E=15&(a=o[I+g|0]),C[i+1|0]=22272+((E<<8)+(E+65526&55552)|0)>>>8,E=i,i=a>>>4|0,C[0|E]=87+((i+65526>>>8&217)+i|0),(0|B)!=(0|(I=I+1|0)););I=B<<1}else I=0;return C[I+A|0]=0,0|A}rC(),Q()},Th:function(A,I,g,B,Q,E,a){A|=0,I|=0,g|=0,Q|=0,E|=0,a|=0;var _=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0;A:{I:{g:{C:{B:{Q:{i:{o:{E:{if(B|=0){if(Q)break E;for(c=1,Q=0;;){if(!(255&((s=(65526+(t=(223&(e=o[g+_|0]))-55&255)^t+65520)>>>8|0)|(h=65526+(e^=48)>>>8|0))))break i;if(I>>>0<=y>>>0)break o;if(t=t&s|e&h,255&r?(C[A+y|0]=Q|t,y=y+1|0):Q=t<<4,r=~r,(0|(_=_+1|0))==(0|B))break}_=B;break i}if(A=0,!a)break A;break g}for(;;){E:{a:{_:{c:{t:{if(!(255&((e=(65526+(c=(223&(t=o[g+_|0]))-55&255)^c+65520)>>>8|0)|(h=65526+(s=48^t)>>>8|0)))){if(255&r)break Q;if(c=0,!kI(Q,t))break C;if((_=r=_+1|0)>>>0<B>>>0)break t;break C}if(I>>>0<=y>>>0)break o;if(c=c&e|s&h,!(255&r))break c;C[A+y|0]=c|D,y=y+1|0;break E}for(;;){if(!(255&((s=(65526+(e=(223&(t=o[g+_|0]))-55&255)^e+65520)>>>8|0)|(D=65526+(h=48^t)>>>8|0)))){if(!kI(Q,t))break C;if((_=_+1|0)>>>0<B>>>0)continue;break _}break}if(I>>>0<=y>>>0)break a;c=e&s|h&D}D=c<<4,r=0;break E}_=B>>>0>r>>>0?B:r;break C}r=0;break o}if(r=~r,c=1,!((_=_+1|0)>>>0<B>>>0))break}break i}i[9404]=68,c=0}if(!(255&r))break B}i[9404]=28,c=-1,_=_-1|0,y=0;break C}y=c?y:0,c=c-1|0}if(!a){if((0|B)!=(0|_))break I;A=c;break A}}i[a>>2]=g+_,A=c;break A}i[9404]=28,A=-1}return E&&(i[E>>2]=y),0|A},Uh:function(A,I){A|=0;var g=0;return 1!=(-7&(I|=0))&&(rC(),Q()),1+((3&(g=(g=A)+a(A=(A>>>0)/3|0,-3)|0)?2&I?g+1|0:4:0)+(A<<2)|0)|0},Vh:XA,Wh:pA,Xh:function(){var A=0;return i[9537]?A=1:($g(),ag(38128,16),i[9537]=1,A=0),0|A},Yh:function(A,I,g,B,E){A|=0,I|=0,g|=0,E|=0;var a,_=0,c=0,t=0;s=a=s-16|0;A:{if(B|=0){if((_=B-1|0)&B?(c=~g,_=_-((g>>>0)%(B>>>0)|0)|0):_&=c=~g,_>>>0>=c>>>0)break A;if((g=g+_|0)>>>0>=E>>>0)I=-1;else for(A&&(i[A>>2]=g+1),A=I+g|0,I=0,C[a+15|0]=0,g=0;c=E=A-g|0,t=o[0|E]&o[a+15|0],E=(g^_)-1>>>24|0,C[0|c]=t|128&E,C[a+15|0]=E|o[a+15|0],(0|B)!=(0|(g=g+1|0)););}else I=-1;return s=a+16|0,0|I}rC(),Q()},Zh:function(A,I,g,C){A|=0,I|=0,g|=0,C|=0;var B,Q=0,E=0,a=0,_=0,c=0;if(i[12+(B=s-16|0)>>2]=0,C-1>>>0<g>>>0){for(c=(Q=g-1|0)+I|0,g=0,I=0;_=((128^(E=o[c-g|0]))-1&i[B+12>>2]-1&a-1)>>>8&1,i[B+12>>2]=i[B+12>>2]|0-_&g,I|=_,a|=E,(0|C)!=(0|(g=g+1|0)););i[A>>2]=Q-i[B+12>>2],A=(255&I)-1|0}else A=-1;return 0|A},_h:function(){return 1547},$h:function(){return 26},ai:tB,bi:hB,ci:cI,di:sC,ei:function(A,I,g){A|=0;var C,B=0;return s=C=s-32|0,B=-1,CI(C,g|=0,I|=0)||(B=yA(A,35584,C,0)),s=C+32|0,0|B},fi:dg,gi:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=EI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},hi:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),0|EI(A+16|0,A,I,g,C,B,i)},ii:function(A,I,g,C,B,Q,i){return 0|ig(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ji:lg,ki:function(A,I,g,C,B,Q,i,o){var E,a;return A|=0,I|=0,g|=0,Q|=0,a=C|=0,C=B|=0,s=E=s+-64|0,CI(E+32|0,o|=0,i|=0)?B=-1:(B=-1,yA(E,35584,E+32|0,0)||(B=sI(A,I,g,a,C,Q,E),XC(E,32))),s=E- -64|0,0|B},li:Dg,mi:function(A,I,g,C,B,Q,i){return 0|Ag(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0)},ni:BB,oi:BB,pi:BB,qi:BB,ri:_B,si:CB,ti:EB,ui:function(A,I,g,B,Q){A|=0,I|=0,Q|=0;var o,E,a,_,c=0,t=0;return c=g|=0,g=B|=0,_=0|c,c=B=s,s=o=B-512&-64,B=-1,sC(E=o- -64|0,a=o+32|0)||(iC(B=o+128|0,0,0,24),lC(B,E,32,0),lC(B,Q,32,0),eC(B,t=o+96|0,24),B=ig(A+32|0,I,_,g,t,Q,a),I=i[o+92>>2],g=i[o+88>>2],C[A+24|0]=g,C[A+25|0]=g>>>8,C[A+26|0]=g>>>16,C[A+27|0]=g>>>24,C[A+28|0]=I,C[A+29|0]=I>>>8,C[A+30|0]=I>>>16,C[A+31|0]=I>>>24,I=i[o+84>>2],g=i[o+80>>2],C[A+16|0]=g,C[A+17|0]=g>>>8,C[A+18|0]=g>>>16,C[A+19|0]=g>>>24,C[A+20|0]=I,C[A+21|0]=I>>>8,C[A+22|0]=I>>>16,C[A+23|0]=I>>>24,I=i[o+76>>2],g=i[o+72>>2],C[A+8|0]=g,C[A+9|0]=g>>>8,C[A+10|0]=g>>>16,C[A+11|0]=g>>>24,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,I=i[o+68>>2],g=i[o+64>>2],C[0|A]=g,C[A+1|0]=g>>>8,C[A+2|0]=g>>>16,C[A+3|0]=g>>>24,C[A+4|0]=I,C[A+5|0]=I>>>8,C[A+6|0]=I>>>16,C[A+7|0]=I>>>24,XC(a,32),XC(E,32),XC(t,24)),s=c,0|B},vi:function(A,I,g,C,B,Q){A|=0,I|=0,B|=0,Q|=0;var i,o,E=0;return o=E=s,s=i=E-448&-64,E=-1,!(C|=0)&(g|=0)>>>0>=48|C&&(iC(E=i- -64|0,0,0,24),lC(E,I,32,0),lC(E,B,32,0),eC(E,B=i+32|0,24),E=Ag(A,I+32|0,g-32|0,C-(g>>>0<32)|0,B,I,Q)),s=o,0|E},wi:oB,xi:function(A){var I,g=0;return s=I=s-160|0,NI(A|=0)&&(KI(A)||MA(I,A)||jA(I)&&(g=!!(0|gA(I)))),s=I+160|0,0|g},yi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},zi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,MA(B=C+640|0,I|=0)||jA(B)&&(MA(I=C+480|0,g)||jA(I)&&($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),tg(A,g),Q=0)),s=C+800|0,0|Q},Ai:function(A,I){return M(A|=0,I|=0),0},Bi:function(A){var I;A|=0,s=I=s-32|0,ag(I,32),M(A,I),s=I+32|0},Ci:Mg,Di:kA,Ei:xA,Fi:uA,Gi:cA,Hi:dA,Ii:IA,Ji:MC,Ki:BB,Li:gB,Mi:BB,Ni:gB,Oi:BB,Pi:function(A){var I;return s=I=s-160|0,A=EA(I,A|=0),s=I+160|0,0|!A},Qi:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),sA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Ri:function(A,I,g){A|=0,g|=0;var C,B,Q=0;return s=C=s-800|0,Q=-1,EA(B=C+640|0,I|=0)||EA(I=C+480|0,g)||($A(C,I),hA(I=C+160|0,B,C),kg(g=C+320|0,I),W(A,g),Q=0),s=C+800|0,0|Q},Si:function(A,I){return jI(A|=0,I|=0),0},Ti:function(A){var I;A|=0,s=I=s+-64|0,ag(I,64),jI(A,I),s=I- -64|0},Ui:function(A){Mg(A|=0)},Vi:function(A,I){return 0|kA(A|=0,I|=0)},Wi:function(A,I){xA(A|=0,I|=0)},Xi:function(A,I){uA(A|=0,I|=0)},Yi:function(A,I,g){cA(A|=0,I|=0,g|=0)},Zi:function(A,I,g){IA(A|=0,I|=0,g|=0)},_i:MC,$i:function(A,I){dA(A|=0,I|=0)},aj:BB,bj:gB,cj:gB,dj:BB,ej:function(A,I,g,C,B,Q,i,o,E,a){return 0|rg(A|=0,I|=0,g|=0,C|=0,B|=0,Q|=0,i|=0,o|=0,E|=0,a|=0)},fj:CB,gj:cB,hj:hB,ij:cB,jj:BB,kj:function(){return 102},lj:function(){return 1575},mj:function(){return 32768},nj:cB,oj:jC,pj:cB,qj:function(){return 524288},rj:jC,sj:LC,tj:vC,uj:function(A,I,g,C,B,Q,o,E,a,_){var c,t,r;I|=0,g|=0,C|=0,B|=0,Q|=0,o|=0,a|=0,_|=0,t=0|(E|=0),s=E=s-16|0,r=I|=0,c=bg(A|=0,0,I),A=0|B;A:if(1==(0|(B=g|Q))|B>>>0>1)i[9404]=22,A=-1;else if(!g&I>>>0>=16|g){if(bA(t,a,_,E+12|0,E+8|0,E+4|0),(0|C)==(0|c)){i[9404]=28,A=-1;break A}B=A,A=31&(I=i[E+12>>2]),(63&I)>>>0>=32?(I=1<<A,g=0):I=(g=1<<A)-1&1>>>32-A,A=rg(C,B,o,32,g,I,i[E+4>>2],i[E+8>>2],c,r)}else i[9404]=28,A=-1;return s=E+16|0,0|A},vj:function(A,I,g,B,Q,E,a){I|=0,g|=0,B|=0,E|=0,a|=0;var _,c,t,r=0,e=0,y=0,h=0,D=0,p=0,w=0;r=Q|=0,r|=Q=0,s=_=s-128|0,c=bg(A|=0,0,102),D=22,t=g|Q;A:{I:{if(!B){bA(r,E,a,_+16|0,_+12|0,_+8|0),ag(e=_+96|0,32),D=28,g=_+32|0,E=i[_+16>>2],a=Ig(A=i[_+12>>2],0,B=i[_+8>>2],0);g:if(!(!(r=f)&a>>>0>1073741823|r|E>>>0>63)&&(C[0|g]=36,C[g+1|0]=55,C[g+2|0]=36,C[g+4|0]=o[1024+(63&B)|0],C[g+3|0]=o[E+1024|0],C[g+8|0]=o[1024+(B>>>24&63)|0],C[g+7|0]=o[1024+(B>>>18&63)|0],C[g+6|0]=o[1024+(B>>>12&63)|0],C[g+5|0]=o[1024+(B>>>6&63)|0],(B=g+9|0)&&(0|B)!=(0|(y=g+58|0))&&(C[0|B]=o[1024+(63&A)|0],1!=(0|(B=y-B|0))&&(C[g+10|0]=o[1024+(A>>>6&63)|0],2!=(0|B)&&(C[g+11|0]=o[1024+(A>>>12&63)|0],3!=(0|B)&&(C[g+12|0]=o[1024+(A>>>18&63)|0],4!=(0|B)&&(C[g+13|0]=o[1024+(A>>>24&63)|0],E=g+14|0))))))){for(r=y-E|0,A=0;;){if(B=E,!(A>>>0>=32)){if(E=o[A+e|0],(p=(a=A+1|0)>>>0>=32)?h=0:(E=o[a+e|0]<<8|E,(a=A+2|0)>>>0>=32?h=0:(E=o[a+e|0]<<16|E,h=1,a=A+3|0)),A=a,!r)break g;if(C[0|B]=o[1024+(63&E)|0],1==(0|r))break g;if(C[B+1|0]=o[1024+(E>>>6&63)|0],w=B+r|0,a=B+2|0,!p){if(2==(0|r))break g;if(C[B+2|0]=o[1024+(E>>>12&63)|0],a=B+3|0,h){if(3==(0|r))break g;C[B+3|0]=o[1024+(E>>>18|0)|0],a=B+4|0}}if(r=w-(E=a)|0,E)continue;break g}break}B>>>0>=y>>>0||(C[0|B]=0,Q=g)}if(Q){if(_C(A=_+20|0))break I;if(I=TA(A,I,t,g,c),Rg(A),I){A=0;break A}}}i[9404]=D}A=-1}return s=_+128|0,0|A},wj:function(A,I,g,C){I|=0,C|=0;var B,Q,i=0;B=A|=0,Q=g|=0,g=0,s=C=s-128|0;A:{I:{for(;;){if(!o[g+B|0]){A=g;break I}if(!o[B+(A=g+1|0)|0])break I;if(!o[B+(A=g+2|0)|0])break I;if(102==(0|(g=g+3|0)))break}g=-1;break A}g=-1,101==(0|A)&&(_C(i=C+4|0)||(bg(A=C+16|0,0,102),I=TA(i,I,Q,B,A),Rg(i),I&&(g=MI(A,B,102),XC(A,102))))}return s=C+128|0,0|g},xj:function(A,I,g,C){var B,Q;Q=A|=0,s=B=s-32|0,bA(I|=0,g|=0,C|=0,B+28|0,B+20|0,B+12|0),A=0;A:{I:{g:{for(;;){if(o[A+Q|0]){if(o[Q+(I=A+1|0)|0]&&o[Q+(I=A+2|0)|0]){if(102!=(0|(A=A+3|0)))continue;break g}}else I=A;break}if(101==(0|I)){if(g=B+8|0,C=B+16|0,A=0,36!=o[0|Q]|55!=o[Q+1|0]|36!=o[Q+2|0]||(I=uI(o[Q+3|0]),i[B+24>>2]=I?I-1024|0:0,I&&(I=PI(g,Q+4|0))&&(A=PI(C,I))),A)break I;i[9404]=28,A=-1;break A}}i[9404]=28,A=-1;break A}A=1,i[B+28>>2]!=i[B+24>>2]|i[B+12>>2]!=i[B+8>>2]||(A=i[B+20>>2]!=i[B+16>>2])}return s=B+32|0,0|A},yj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,1)},zj:function(A,I,g){return 0|ZA(A|=0,I|=0,g|=0,0)},Aj:function(A,I){return 0|II(A|=0,I|=0,1)},Bj:function(A,I){return 0|II(A|=0,I|=0,0)},Cj:BB,Dj:BB,Ej:function(A,I,g){A|=0,I|=0;var B,Q=0;return s=B=s-320|0,Q=-1,EA(B,g|=0)||(C[0|A]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],u(I=B+160|0,A,B),W(A,I),Q=GI(A,32)?-1:0),s=B+320|0,0|Q},Fj:function(A,I){var g;return I|=0,s=g=s-160|0,C[0|(A|=0)]=o[0|I],C[A+1|0]=o[I+1|0],C[A+2|0]=o[I+2|0],C[A+3|0]=o[I+3|0],C[A+4|0]=o[I+4|0],C[A+5|0]=o[I+5|0],C[A+6|0]=o[I+6|0],C[A+7|0]=o[I+7|0],C[A+8|0]=o[I+8|0],C[A+9|0]=o[I+9|0],C[A+10|0]=o[I+10|0],C[A+11|0]=o[I+11|0],C[A+12|0]=o[I+12|0],C[A+13|0]=o[I+13|0],C[A+14|0]=o[I+14|0],C[A+15|0]=o[I+15|0],C[A+16|0]=o[I+16|0],C[A+17|0]=o[I+17|0],C[A+18|0]=o[I+18|0],C[A+19|0]=o[I+19|0],C[A+20|0]=o[I+20|0],C[A+21|0]=o[I+21|0],C[A+22|0]=o[I+22|0],C[A+23|0]=o[I+23|0],C[A+24|0]=o[I+24|0],C[A+25|0]=o[I+25|0],C[A+26|0]=o[I+26|0],C[A+27|0]=o[I+27|0],C[A+28|0]=o[I+28|0],C[A+29|0]=o[I+29|0],C[A+30|0]=o[I+30|0],C[A+31|0]=127&o[I+31|0],nA(g,A),W(A,g),A=GI(A,32),s=g+160|0,0|(A?-1:0)},Gj:BB,Hj:BB,Ij:dg,Jj:function(A,I,g,C,B,i){return A|=0,I|=0,B|=0,i|=0,!(C|=0)&(g|=0)>>>0>=4294967280|C&&(rC(),Q()),EI(A+16|0,A,I,g,C,B,i),0},Kj:lg,Lj:Dg,Mj:BB,Nj:_B,Oj:CB,Pj:EB,Qj:CB,Rj:CB,Sj:function(A,I,g,B,Q){A|=0,I|=0,g|=0,B|=0;var i,E,a=0,_=0,c=0,t=0,r=0,e=0,y=0,s=0,h=0,D=0,p=0,w=0,n=0,k=0;if(p=1886610805^(a=o[0|(Q|=0)]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24),D=1936682341^(_=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24),a^=1852142177,c=1819895653^_,w=1852075907^(_=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24),n=1685025377^(Q=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24),t=2037671283^_,_=1952801890^Q,s=g,(0|(E=(g+I|0)-(i=7&g)|0))!=(0|I))for(;g=(e=_^(k=o[I+4|0]|o[I+5|0]<<8|o[I+6|0]<<16|o[I+7|0]<<24))+c|0,t=B=a+(Q=t^(y=o[0|I]|o[I+1|0]<<8|o[I+2|0]<<16|o[I+3|0]<<24))|0,r=g=B>>>0<Q>>>0?g+1|0:g,a=B,B=g,g=D+n|0,g=(_=p+w|0)>>>0<p>>>0?g+1|0:g,h=(c=UI(w,n,13)^_)+a|0,B=(a=f^g)+B|0,a=UI(c,a,17)^h,p=UI(a,B=(c=c>>>0>h>>>0?B+1|0:B)^f,13),D=f,e=UI(Q,e,16),Q=r^f,e^=t,r=UI(_,g,32),g=f+Q|0,g=(t=B)+(B=(_=e+r|0)>>>0<r>>>0?g+1|0:g)|0,r=g=(t=a+_|0)>>>0<_>>>0?g+1|0:g,p=UI(a=t^p,g^=D,17),D=f,e=UI(e,Q,21),Q=B^f,e^=_,_=UI(h,c,32),B=f+Q|0,g=(_=(c=e+_|0)>>>0<_>>>0?B+1|0:B)+g|0,w=(a=a+c|0)^p,B=g=a>>>0<c>>>0?g+1|0:g,n=g^D,g=UI(e,Q,16),e=_^=f,h=UI(g^=c,_,21),c=f,r=(_=UI(t,r,32))+g|0,g=f+e|0,t=r^h,_=(g=_>>>0>r>>>0?g+1|0:g)^c,a=UI(a,B,32),c=f,p=y^r,D=g^k,(0|E)!=(0|(I=I+8|0)););switch(y=0,Q=s<<24,i-1|0){case 6:Q|=o[I+6|0]<<16;case 5:Q|=o[I+5|0]<<8;case 4:Q|=o[I+4|0];case 3:y|=(g=o[I+3|0])<<24,Q|=B=g>>>8|0;case 2:y|=(B=o[I+2|0])<<16,Q|=g=B>>>16|0;case 1:y|=(g=o[I+1|0])<<8,Q|=B=g>>>24|0;case 0:y=o[0|I]|y}return h=Q,I=Q^_,B=UI(Q=t^y,I,16),I=I+c|0,r=I=(t=Q+a|0)>>>0<a>>>0?I+1|0:I,s=UI(Q=B^t,I^=g=f,21),_=f,g=D+n|0,B=g=(a=p+w|0)>>>0<p>>>0?g+1|0:g,c=Q,Q=UI(a,g,32),g=f+I|0,I=_,_=g=Q>>>0>(c=c+Q|0)>>>0?g+1|0:g,p=UI(Q=c^s,I^=g,16),D=f,g=(a=e=UI(w,n,13)^a)+t|0,B=(t=f^B)+r|0,r=Q,Q=UI(g,B=g>>>0<a>>>0?B+1|0:B,32),I=f+I|0,k=Q=(a=Q>>>0>(s=r+Q|0)>>>0?I+1|0:I)^D,r=p^=s,D=UI(e,t,17)^g,g=(e=f^B)+_|0,I=g=(B=c=(I=D)+c|0)>>>0<I>>>0?g+1|0:g,_=UI(B,g,32),g=f+Q|0,c=(t=_+r|0)^y,h^=r=_>>>0>t>>>0?g+1|0:g,Q=UI(D,e,13)^B,B=UI(Q,I^=f,17),I=I+a|0,Q=B^(_=Q+s|0),B=I=_>>>0<s>>>0?I+1|0:I,g=(I^=g=f)+h|0,g=Q>>>0>(c=Q+c|0)>>>0?g+1|0:g,Q=UI(Q,I,13)^c,a=g,s=UI(Q,I=g^f,17),y=f,h=UI(p,k,21),e=r^f,r=t^h,_=238^UI(_,B,32),g=f+e|0,g=(h=I)+(I=(B=r+_|0)>>>0<_>>>0?g+1|0:g)|0,_=g=(t=B+Q|0)>>>0<B>>>0?g+1|0:g,y=UI(Q=t^s,g^=y,13),h=f,r=UI(r,e,16),e=I^f,s=B^r,B=UI(c,a,32),I=f+e|0,B=(c=g)+(g=B>>>0>(a=s+B|0)>>>0?I+1|0:I)|0,c=B=(r=Q+a|0)>>>0<a>>>0?B+1|0:B,y=UI(Q=y^r,I=B^h,17),h=f,B=UI(s,e,21),e=g^f,s=B^a,B=UI(t,_,32),g=f+e|0,g=(B=B>>>0>(a=s+B|0)>>>0?g+1|0:g)+I|0,_=g=(t=Q+a|0)>>>0<a>>>0?g+1|0:g,y=UI(Q=t^y,I=g^h,13),h=f,g=UI(s,e,16),e=B^f,s=g^a,g=UI(r,c,32),B=f+e|0,g=(B=g>>>0>(a=s+g|0)>>>0?B+1|0:B)+I|0,c=g=(r=Q+a|0)>>>0<a>>>0?g+1|0:g,y=UI(Q=y^r,I=g^h,17),h=f,g=UI(s,e,21),e=B^f,s=g^a,a=UI(t,_,32),g=f+e|0,I=(g=(B=s+a|0)>>>0<a>>>0?g+1|0:g)+I|0,a=I=(_=B+Q|0)>>>0<B>>>0?I+1|0:I,y=UI(Q=_^y,I^=h,13),h=f,t=UI(s,e,16),s=g^f,t^=B,c=UI(r,c,32),g=f+s|0,g=(r=I)+(I=(B=t+c|0)>>>0<c>>>0?g+1|0:g)|0,c=g=(r=B+Q|0)>>>0<B>>>0?g+1|0:g,y=UI(Q=y^r,g^=h,17),h=f,t=UI(t,s,21),s=I^f,t^=B,B=UI(_,a,32),I=f+s|0,B=(_=g)+(g=B>>>0>(a=t+B|0)>>>0?I+1|0:I)|0,_=Q=(B=(I=Q+a|0)>>>0<a>>>0?B+1|0:B)^h,y^=I,t=UI(t,s,16),e=g^f,a=(t^=a)+(c=UI(r,c,32))|0,g=f+e|0,I=UI(I,B,32),s=f,B=g=a>>>0<c>>>0?g+1|0:g,c=A,t=(r=UI(t,e,21)^a)^I^a^y,C[0|c]=t,C[c+1|0]=t>>>8,C[c+2|0]=t>>>16,C[c+3|0]=t>>>24,g=(e=s^g^Q)^(Q=g^f),C[c+4|0]=g,C[c+5|0]=g>>>8,C[c+6|0]=g>>>16,C[c+7|0]=g>>>24,g=Q+s|0,g=(c=I)>>>0>(I=I+r|0)>>>0?g+1|0:g,h=I,Q=UI(r,Q,16)^I,r=g,s=I=g^f,B=(g=_)+B|0,_=a=(c=y^=221)+a|0,a=UI(a,B=a>>>0<c>>>0?B+1|0:B,32),I=f+I|0,I=a>>>0>(t=a+Q|0)>>>0?I+1|0:I,a=UI(Q,s,21)^t,c=I,D=UI(a,Q=I^f,16),e=f,I=UI(y,g,13),g=r+(s=B^f)|0,I=g=(B=h+(y=I^_)|0)>>>0<h>>>0?g+1|0:g,_=a,a=UI(B,g,32),g=f+Q|0,e=g=(_=a>>>0>(r=_+a|0)>>>0?g+1|0:g)^e,h=UI(D^=r,g,21),a=f,g=UI(y,s,17),I=c+(s=I^f)|0,B=I=(Q=t+(y=g^B)|0)>>>0<t>>>0?I+1|0:I,I=UI(Q,I,32),g=e+f|0,e=g=(c=a)^(a=(I=I+D|0)>>>0<D>>>0?g+1|0:g),c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),g=_+(s=B^f)|0,I=UI(Q=r+(y=I^Q)|0,g=Q>>>0<r>>>0?g+1|0:g,32),B=e+f|0,e=B=(_=(I=I+D|0)>>>0<D>>>0?B+1|0:B)^t,r=I,h=UI(D=h^I,B,21),t=f,I=UI(y,s,17),g=a+(s=g^f)|0,B=g=(Q=c+(y=I^Q)|0)>>>0<c>>>0?g+1|0:g,I=UI(Q,g,32),g=e+f|0,e=g=(a=(I=I+D|0)>>>0<D>>>0?g+1|0:g)^t,c=I,h=UI(D=h^I,g,16),t=f,I=UI(y,s,13),B=_+(s=B^f)|0,g=UI(Q=r+(y=I^Q)|0,B=Q>>>0<r>>>0?B+1|0:B,32),I=e+f|0,_=g=g+D|0,h=UI(h^g,(I=g>>>0<D>>>0?I+1|0:I)^t,21),t=f,r=UI(y,s,17),g=B^f,r=UI(B=Q^r,g,13),g=g+a|0,g=(B=B+c|0)>>>0<c>>>0?g+1|0:g,Q=UI(a=B^r,g^=Q=f,17)^h,B=f^t,g=I+g|0,I=UI(I=a+_|0,g=I>>>0<_>>>0?g+1|0:g,32)^Q^I,C[A+8|0]=I,C[A+9|0]=I>>>8,C[A+10|0]=I>>>16,C[A+11|0]=I>>>24,I=g^f^B,C[A+12|0]=I,C[A+13|0]=I>>>8,C[A+14|0]=I>>>16,C[A+15|0]=I>>>24,0},Tj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;IC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,IC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},Uj:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,IC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,IC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},Vj:BB,Wj:eB,Xj:cB,Yj:PC,Zj:function(A,I,g,B,Q){A|=0,B|=0,Q|=0;var E,a=0,_=0,c=0,t=0;if(s=E=s-112|0,a=I|=0,I|(_=g|=0)){I=o[Q+28|0]|o[Q+29|0]<<8|o[Q+30|0]<<16|o[Q+31|0]<<24,i[E+24>>2]=o[Q+24|0]|o[Q+25|0]<<8|o[Q+26|0]<<16|o[Q+27|0]<<24,i[E+28>>2]=I,I=o[Q+20|0]|o[Q+21|0]<<8|o[Q+22|0]<<16|o[Q+23|0]<<24,i[E+16>>2]=o[Q+16|0]|o[Q+17|0]<<8|o[Q+18|0]<<16|o[Q+19|0]<<24,i[E+20>>2]=I,I=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[E>>2]=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,i[E+4>>2]=I,I=o[Q+12|0]|o[Q+13|0]<<8|o[Q+14|0]<<16|o[Q+15|0]<<24,i[E+8>>2]=o[Q+8|0]|o[Q+9|0]<<8|o[Q+10|0]<<16|o[Q+11|0]<<24,i[E+12>>2]=I,I=o[0|B]|o[B+1|0]<<8|o[B+2|0]<<16|o[B+3|0]<<24,g=o[B+4|0]|o[B+5|0]<<8|o[B+6|0]<<16|o[B+7|0]<<24,i[E+104>>2]=0,i[E+108>>2]=0,i[E+96>>2]=I,i[E+100>>2]=g;A:{if(!_&a>>>0>=64|_){for(;gC(A,E+96|0,E,0),I=o[E+104|0]+1|0,C[E+104|0]=I,I=o[E+105|0]+(I>>>8|0)|0,C[E+105|0]=I,I=o[E+106|0]+(I>>>8|0)|0,C[E+106|0]=I,I=o[E+107|0]+(I>>>8|0)|0,C[E+107|0]=I,I=o[E+108|0]+(I>>>8|0)|0,C[E+108|0]=I,I=o[E+109|0]+(I>>>8|0)|0,C[E+109|0]=I,I=o[E+110|0]+(I>>>8|0)|0,C[E+110|0]=I,C[E+111|0]=o[E+111|0]+(I>>>8|0),A=A- -64|0,_=_-1|0,!(_=(a=a+-64|0)>>>0<4294967232?_+1|0:_)&a>>>0>63|_;);if(!(a|_))break A}if(g=0,gC(E+32|0,E+96|0,E,0),B=3&a,I=0,!_&a>>>0>=4|_)for(_=60&a,Q=0;a=t=E+32|0,C[A+I|0]=o[a+I|0],C[(c=1|I)+A|0]=o[a+c|0],C[(c=2|I)+A|0]=o[a+c|0],C[(a=3|I)+A|0]=o[a+t|0],I=I+4|0,(0|_)!=(0|(Q=Q+4|0)););if(B)for(;C[A+I|0]=o[(E+32|0)+I|0],I=I+1|0,(0|B)!=(0|(g=g+1|0)););}XC(E+32|0,64),XC(E,32)}return s=E+112|0,0},_j:function(A,I,g,B,Q,E){A|=0,I|=0,Q|=0,E|=0;var a,_=0,c=0;if(s=a=s-112|0,_=g|=0,(B|=0)|g){g=o[E+28|0]|o[E+29|0]<<8|o[E+30|0]<<16|o[E+31|0]<<24,i[a+24>>2]=o[E+24|0]|o[E+25|0]<<8|o[E+26|0]<<16|o[E+27|0]<<24,i[a+28>>2]=g,g=o[E+20|0]|o[E+21|0]<<8|o[E+22|0]<<16|o[E+23|0]<<24,i[a+16>>2]=o[E+16|0]|o[E+17|0]<<8|o[E+18|0]<<16|o[E+19|0]<<24,i[a+20>>2]=g,g=o[E+4|0]|o[E+5|0]<<8|o[E+6|0]<<16|o[E+7|0]<<24,i[a>>2]=o[0|E]|o[E+1|0]<<8|o[E+2|0]<<16|o[E+3|0]<<24,i[a+4>>2]=g,g=o[E+12|0]|o[E+13|0]<<8|o[E+14|0]<<16|o[E+15|0]<<24,i[a+8>>2]=o[E+8|0]|o[E+9|0]<<8|o[E+10|0]<<16|o[E+11|0]<<24,i[a+12>>2]=g,g=o[0|Q]|o[Q+1|0]<<8|o[Q+2|0]<<16|o[Q+3|0]<<24,Q=o[Q+4|0]|o[Q+5|0]<<8|o[Q+6|0]<<16|o[Q+7|0]<<24,i[a+104>>2]=0,i[a+108>>2]=0,i[a+96>>2]=g,i[a+100>>2]=Q;A:{if(!B&_>>>0>=64|B){for(;;){for(g=0,gC(a+32|0,a+96|0,a,0);E=a+32|0,C[A+g|0]=o[E+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+E|0]^o[I+Q|0],64!=(0|(g=g+2|0)););if(g=o[a+104|0]+1|0,C[a+104|0]=g,g=o[a+105|0]+(g>>>8|0)|0,C[a+105|0]=g,g=o[a+106|0]+(g>>>8|0)|0,C[a+106|0]=g,g=o[a+107|0]+(g>>>8|0)|0,C[a+107|0]=g,g=o[a+108|0]+(g>>>8|0)|0,C[a+108|0]=g,g=o[a+109|0]+(g>>>8|0)|0,C[a+109|0]=g,g=o[a+110|0]+(g>>>8|0)|0,C[a+110|0]=g,C[a+111|0]=o[a+111|0]+(g>>>8|0),I=I- -64|0,A=A- -64|0,B=B-1|0,!(!(B=(_=_+-64|0)>>>0<4294967232?B+1|0:B)&_>>>0>63|B))break}if(!(B|_))break A}if(g=0,gC(a+32|0,a+96|0,a,0),E=1&_,1!=(0|_)|B)for(_&=62,B=0;c=a+32|0,C[A+g|0]=o[c+g|0]^o[I+g|0],C[(Q=1|g)+A|0]=o[Q+c|0]^o[I+Q|0],g=g+2|0,(0|_)!=(0|(B=B+2|0)););E&&(C[A+g|0]=o[(a+32|0)+g|0]^o[I+g|0])}XC(a+32|0,64),XC(a,32)}return s=a+112|0,0},$j:BB,ak:eB,bk:cB,ck:PC,dk:BB,ek:_B,fk:cB,gk:function(A,I,g,C,B){var Q;return A|=0,I|=0,g|=0,s=Q=s-32|0,yA(Q,C|=0,B|=0,0),A=Xg(A,I,g,C+16|0,Q),s=Q+32|0,0|A},hk:function(A,I,g,C,B,Q,i,o){var E;return A|=0,I|=0,g|=0,C|=0,Q|=0,i|=0,s=E=s-32|0,yA(E,B|=0,o|=0,0),A=mg(o=A,I,(A=0)|g,C,B+16|0,A|Q,i,E),s=E+32|0,0|A},ik:function(A,I,g,C,B,Q){var i;return A|=0,I|=0,g|=0,C|=0,s=i=s-32|0,yA(i,B|=0,Q|=0,0),A=mg(A,I,g,C,B+16|0,0,0,i),s=i+32|0,0|A},jk:PC,kk:K,lk:BA,mk:pB}}(A)}(I)},instantiate:function(A,I){return{then:function(g){var C=new y.Module(A);g({instance:new y.Instance(C,I)})}}},RuntimeError:Error};t=[];var s,h,D,f,p,w,n,k=!1;function F(){var A=e.buffer;B.HEAP8=s=new Int8Array(A),B.HEAP16=D=new Int16Array(A),B.HEAPU8=h=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=f=new Int32Array(A),B.HEAPU32=p=new Uint32Array(A),B.HEAPF32=w=new Float32Array(A),B.HEAPF64=n=new Float64Array(A)}var S=[],N=[],G=[],M=0,K=null,U=null;function b(A){throw B.onAbort?.(A),r(A=\"Aborted(\"+A+\")\"),k=!0,A+=\". Build with -sASSERTIONS for more info.\",new y.RuntimeError(A)}var H,Y=A=>A.startsWith(\"file://\");var J={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},d=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var m,l=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,u=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&l)return l.decode(A.subarray(I,B));for(var Q=\"\";I<B;){var i=A[I++];if(128&i){var o=63&A[I++];if(192!=(224&i)){var E=63&A[I++];if((i=224==(240&i)?(15&i)<<12|o<<6|E:(7&i)<<18|o<<12|E<<6|63&A[I++])<65536)Q+=String.fromCharCode(i);else{var a=i-65536;Q+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(h,A,I):\"\",x=[],v=A=>{var I=(A-e.buffer.byteLength+65535)/65536;try{return e.grow(I),F(),1}catch(A){}},R={b:(A,I,g,C)=>{b(`Assertion failed: ${u(A)}, at: `+[I?u(I):\"unknown filename\",g,C?u(C):\"unknown function\"])},c:()=>{b(\"\")},a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(x.length=0;g=h[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,x.push(112==g?p[I>>2]:105==g?f[I>>2]:n[I>>3]),I+=C?8:4}return x})(I,g);return J[A](...C)})(A,I,g),d:A=>{var I=h.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(v(i))return!0}return!1}},L=function(){var A={a:R};function I(A,I){var g;return L=A.exports,e=L.e,F(),g=L.f,N.unshift(g),function(A){if(M--,B.monitorRunDependencies?.(M),0==M&&(null!==K&&(clearInterval(K),K=null),U)){var I=U;U=null,I()}}(),L}if(M++,B.monitorRunDependencies?.(M),B.instantiateWasm)try{return B.instantiateWasm(A,I)}catch(A){return r(`Module.instantiateWasm callback failed with error: ${A}`),!1}return H||(H=\"<<< WASM_BINARY_FILE >>>\"),function(A,I,C){(function(A){return Promise.resolve().then((()=>function(A){if(A==H&&t)return new Uint8Array(t);if(g)return g(A);throw\"both async and sync fetching of the wasm failed\"}(A)))})(A).then((A=>y.instantiate(A,I))).then(C,(A=>{r(`failed to asynchronously prepare wasm: ${A}`),b(A)}))}(H,A,(function(A){I(A.instance)})),{}}();function P(){function A(){m||(m=!0,B.calledRun=!0,k||(d(N),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),G.unshift(A);var A;d(G)}()))}M>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),S.unshift(A);var A;d(S)}(),M>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=L.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=L.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=L.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=L.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=L.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=L.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=L.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=L.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=L.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=L.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=L.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=L.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=L.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=L.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=L.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=L.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=L.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=L.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=L.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=L.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=L.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=L.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=L.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=L.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=L.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=L.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=L.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=L.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=L.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=L.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=L.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=L.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=L.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=L.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=L.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=L.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=L.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=L.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=L.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=L.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=L.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=L.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=L.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=L.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=L.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=L.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=L._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=L.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=L.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=L.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=L.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=L.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=L.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=L.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=L.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=L.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=L.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=L.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=L.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=L.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=L.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=L.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=L.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=L.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=L.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=L.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=L.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=L.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=L.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=L.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=L.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=L.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=L.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=L.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=L.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=L.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=L.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=L.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=L.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=L.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=L.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=L.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=L.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=L.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=L.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=L.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=L.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=L.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=L.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=L.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=L.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=L.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=L.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=L.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=L.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=L.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=L.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=L.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=L.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=L.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=L._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=L.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=L.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=L.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=L.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=L.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=L.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=L.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=L.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=L.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=L.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=L.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=L.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=L.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=L.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=L.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=L.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=L.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=L.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=L.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=L.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=L.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=L.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=L.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=L.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=L.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=L.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=L.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=L.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=L.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=L.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=L.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=L.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=L.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=L.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=L.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=L.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=L.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=L.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=L.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=L.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=L.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=L.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=L.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=L.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=L.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=L.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=L.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=L.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=L.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=L.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=L.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=L.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=L.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=L._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=L.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=L.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=L.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=L.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=L.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=L.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=L.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=L.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=L.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=L.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=L.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=L.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=L.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=L.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=L.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=L.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=L.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=L.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=L.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=L.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=L.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=L.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=L.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=L.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=L.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=L.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=L.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=L.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=L.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=L.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=L.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=L.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=L.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=L.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=L.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=L.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=L.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=L.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=L.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=L.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=L.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=L.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=L.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=L.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=L.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=L.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=L.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=L.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=L.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=L.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=L.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=L.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=L.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=L._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=L.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=L.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=L.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=L.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=L.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=L.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=L.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=L.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=L.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=L.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=L.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=L.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=L.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=L.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=L.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=L.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=L.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=L.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=L.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=L.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=L.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=L.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=L.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=L.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=L.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=L.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=L.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=L.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=L.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=L.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=L.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=L.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=L.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=L.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=L.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=L.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=L.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=L.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=L.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=L.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=L.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=L.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=L.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=L.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=L.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=L.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=L.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=L.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=L.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=L.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=L.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=L.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=L.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=L._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=L.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=L.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=L.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=L.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=L.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=L.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=L.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=L.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=L.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=L.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=L.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=L.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=L.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=L.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=L.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=L.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=L.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=L.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=L.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=L.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=L.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=L.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=L.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=L.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=L.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=L.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=L.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=L.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=L.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=L.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=L.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=L.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=L.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=L.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=L.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=L.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=L.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=L.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=L.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=L.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=L.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=L.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=L.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=L.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=L.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=L.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=L.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=L.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=L.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=L.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=L.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=L.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=L.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=L._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=L.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=L.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=L.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=L.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=L.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=L.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=L.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=L.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=L.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=L.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=L.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=L.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=L.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=L.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=L.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=L.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=L.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=L.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=L.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=L.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=L.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=L.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=L.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=L.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=L.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=L.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=L.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=L.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=L.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=L.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=L.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=L.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=L.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=L.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=L.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=L.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=L.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=L.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=L.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=L.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=L.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=L.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=L.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=L.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=L.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=L.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=L.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=L.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=L.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=L.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=L.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=L.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=L._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=L.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=L.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=L.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=L.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=L.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=L.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=L.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=L.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=L.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=L.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=L.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=L.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=L.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=L.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=L.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=L.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=L.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=L.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=L.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=L.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=L.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=L.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=L.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=L.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=L.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=L.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=L.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=L.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=L.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=L.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=L.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=L.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=L.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=L.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=L.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=L.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=L.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=L.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=L.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=L.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=L.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=L.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=L.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=L.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=L.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=L.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=L.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=L.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=L.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=L.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=L.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=L.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=L.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=L._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=L.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=L.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=L.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=L.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=L.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=L.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=L.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=L.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=L.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=L.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=L.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=L.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=L.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=L.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=L.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=L.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=L.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=L.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=L.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=L.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=L.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=L.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=L.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=L.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=L.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=L.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=L.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=L.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=L.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=L.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=L.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=L.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=L.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=L.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=L.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=L.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=L.Jh)(),B._randombytes_random=()=>(B._randombytes_random=L.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=L.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=L.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=L.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=L.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=L.Ph)(),B._randombytes_close=()=>(B._randombytes_close=L.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=L.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=L.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=L.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=L.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=L.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=L.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=L.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=L.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=L.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=L._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=L.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=L.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=L.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=L.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=L.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=L.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=L.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=L.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=L.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=L.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=L.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=L.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=L.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=L.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=L.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=L.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=L.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=L.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=L.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=L.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=L.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=L.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=L.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=L.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=L.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=L.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=L.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=L.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=L.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=L.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=L.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=L.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=L.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=L.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=L.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=L.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=L.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=L.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=L.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=L.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=L.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=L.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=L.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=L.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=L.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=L.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=L.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=L.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=L.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=L.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=L.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=L.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=L.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=L._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=L.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=L.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=L.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=L.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=L.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=L.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=L.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=L.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=L.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=L.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=L.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=L.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=L.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=L.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=L.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=L.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=L.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=L.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=L.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=L.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=L.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=L.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=L.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=L.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=L.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=L.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=L.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=L.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=L.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=L.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=L.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=L.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=L.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=L.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=L.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=L.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=L.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=L.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=L.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=L.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=L.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=L.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=L.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=L.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=L.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=L.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=L.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=L.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=L.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=L.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=L.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=L.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=L.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=L._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=L.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=L.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=L.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=L.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=L.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=L.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=L.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=L.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=L.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=L.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=L.jk)(A),B._malloc=A=>(B._malloc=L.kk)(A),B._free=A=>(B._free=L.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":s[A]=I;break;case\"i16\":D[A>>1]=I;break;case\"i32\":f[A>>2]=I;break;case\"i64\":b(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":w[A>>2]=I;break;case\"double\":n[A>>3]=I;break;case\"*\":p[A>>2]=I;break;default:b(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return s[A];case\"i16\":return D[A>>1];case\"i32\":return f[A>>2];case\"i64\":b(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return w[A>>2];case\"double\":return n[A>>3];case\"*\":return p[A>>2];default:b(`invalid type for getValue: ${I}`)}},B.UTF8ToString=u,U=function A(){m||P(),m||(U=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();P()}))};var g,B=void 0!==B?B:{},Q=\"object\"==typeof window,i=\"function\"==typeof importScripts,o=\"object\"==typeof process&&\"object\"==typeof process.versions&&\"string\"==typeof process.versions.node,E=Object.assign({},B),a=\"\";if(o){var _=__webpack_require__(/*! fs */ \"?0b9d\"),c=__webpack_require__(/*! path */ \"?5b1a\");a=__dirname+\"/\",g=A=>(A=Y(A)?new URL(A):c.normalize(A),_.readFileSync(A)),!B.thisProgram&&process.argv.length>1&&process.argv[1].replace(/\\\\/g,\"/\"),process.argv.slice(2), true&&(module.exports=B)}else(Q||i)&&(i?a=self.location.href:\"undefined\"!=typeof document&&document.currentScript&&(a=document.currentScript.src),a=a.startsWith(\"blob:\")?\"\":a.substr(0,a.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1),i&&(g=A=>{var I=new XMLHttpRequest;return I.open(\"GET\",A,!1),I.responseType=\"arraybuffer\",I.send(null),new Uint8Array(I.response)}));B.print;var t,r,e=B.printErr||void 0;Object.assign(B,E),E=null,B.arguments&&B.arguments,B.thisProgram&&B.thisProgram,B.quit&&B.quit,B.wasmBinary&&(t=B.wasmBinary);var y,s,h,D,f,p,w,n=!1;function k(){var A=r.buffer;B.HEAP8=y=new Int8Array(A),B.HEAP16=h=new Int16Array(A),B.HEAPU8=s=new Uint8Array(A),B.HEAPU16=new Uint16Array(A),B.HEAP32=D=new Int32Array(A),B.HEAPU32=f=new Uint32Array(A),B.HEAPF32=p=new Float32Array(A),B.HEAPF64=w=new Float64Array(A)}var F=[],S=[],N=[],G=0,M=null,K=null;function U(A){throw B.onAbort?.(A),e(A=\"Aborted(\"+A+\")\"),n=!0,A+=\". Build with -sASSERTIONS for more info.\",new WebAssembly.RuntimeError(A)}var b,H=\"data:application/octet-stream;base64,\",Y=A=>A.startsWith(\"file://\");function J(A){return Promise.resolve().then((()=>function(A){if(A==b&&t)return new Uint8Array(t);var I=function(A){if((A=>A.startsWith(H))(A))return function(A){if(void 0!==o&&o){var I=Buffer.from(A,\"base64\");return new Uint8Array(I.buffer,I.byteOffset,I.length)}for(var g=atob(A),C=new Uint8Array(g.length),B=0;B<g.length;++B)C[B]=g.charCodeAt(B);return C}(A.slice(37))}(A);if(I)return I;if(g)return g(A);throw\"both async and sync fetching of the wasm failed\"}(A)))}var d={36800:()=>B.getRandomValue(),36836:()=>{if(void 0===B.getRandomValue)try{var A=\"object\"==typeof window?window:self,I=void 0!==A.crypto?A.crypto:A.msCrypto;I=void 0===I?C:I;var g=function(){var A=new Uint32Array(1);return I.getRandomValues(A),A[0]>>>0};g(),B.getRandomValue=g}catch(A){try{var C=__webpack_require__(/*! crypto */ \"./node_modules/crypto-browserify/index.js\"),Q=function(){var A=C.randomBytes(4);return(A[0]<<24|A[1]<<16|A[2]<<8|A[3])>>>0};Q(),B.getRandomValue=Q}catch(A){throw\"No secure random number generator found\"}}}},m=A=>{for(;A.length>0;)A.shift()(B)};B.noExitRuntime;var l,u=\"undefined\"!=typeof TextDecoder?new TextDecoder:void 0,x=(A,I)=>A?((A,I,g)=>{for(var C=I+g,B=I;A[B]&&!(B>=C);)++B;if(B-I>16&&A.buffer&&u)return u.decode(A.subarray(I,B));for(var Q=\"\";I<B;){var i=A[I++];if(128&i){var o=63&A[I++];if(192!=(224&i)){var E=63&A[I++];if((i=224==(240&i)?(15&i)<<12|o<<6|E:(7&i)<<18|o<<12|E<<6|63&A[I++])<65536)Q+=String.fromCharCode(i);else{var a=i-65536;Q+=String.fromCharCode(55296|a>>10,56320|1023&a)}}else Q+=String.fromCharCode((31&i)<<6|o)}else Q+=String.fromCharCode(i)}return Q})(s,A,I):\"\",v=[],R=A=>{var I=(A-r.buffer.byteLength+65535)/65536;try{return r.grow(I),k(),1}catch(A){}},L={b:(A,I,g,C)=>{U(`Assertion failed: ${x(A)}, at: `+[I?x(I):\"unknown filename\",g,C?x(C):\"unknown function\"])},c:()=>{U(\"\")},d:(A,I,g)=>s.copyWithin(A,I,I+g),a:(A,I,g)=>((A,I,g)=>{var C=((A,I)=>{var g;for(v.length=0;g=s[A++];){var C=105!=g;I+=(C&=112!=g)&&I%8?4:0,v.push(112==g?f[I>>2]:105==g?D[I>>2]:w[I>>3]),I+=C?8:4}return v})(I,g);return d[A](...C)})(A,I,g),e:A=>{var I=s.length,g=2147483648;if((A>>>=0)>g)return!1;for(var C,B=1;B<=4;B*=2){var Q=I*(1+.2/B);Q=Math.min(Q,A+100663296);var i=Math.min(g,(C=Math.max(A,Q))+(65536-C%65536)%65536);if(R(i))return!0}return!1}},P=function(){var A,I={a:L};function g(A,I){return P=A.exports,r=P.f,k(),function(A){if(G--,B.monitorRunDependencies?.(G),0==G&&(null!==M&&(clearInterval(M),M=null),K)){var I=K;K=null,I()}}(),P}if(G++,B.monitorRunDependencies?.(G),B.instantiateWasm)try{return B.instantiateWasm(I,g)}catch(A){return e(`Module.instantiateWasm callback failed with error: ${A}`),!1}return b||(b=\"data:application/octet-stream;base64, \"),A=I,J(b).then((I=>WebAssembly.instantiate(I,A))).then((function(A){g(A.instance)}),(A=>{e(`failed to asynchronously prepare wasm: ${A}`),U(A)})),{}}();function q(){function A(){l||(l=!0,B.calledRun=!0,n||(m(S),B.onRuntimeInitialized?.(),function(){if(B.postRun)for(\"function\"==typeof B.postRun&&(B.postRun=[B.postRun]);B.postRun.length;)A=B.postRun.shift(),N.unshift(A);var A;m(N)}()))}G>0||(function(){if(B.preRun)for(\"function\"==typeof B.preRun&&(B.preRun=[B.preRun]);B.preRun.length;)A=B.preRun.shift(),F.unshift(A);var A;m(F)}(),G>0||(B.setStatus?(B.setStatus(\"Running...\"),setTimeout((function(){setTimeout((function(){B.setStatus(\"\")}),1),A()}),1)):A()))}if(B._crypto_aead_aegis128l_keybytes=()=>(B._crypto_aead_aegis128l_keybytes=P.g)(),B._crypto_aead_aegis128l_nsecbytes=()=>(B._crypto_aead_aegis128l_nsecbytes=P.h)(),B._crypto_aead_aegis128l_npubbytes=()=>(B._crypto_aead_aegis128l_npubbytes=P.i)(),B._crypto_aead_aegis128l_abytes=()=>(B._crypto_aead_aegis128l_abytes=P.j)(),B._crypto_aead_aegis128l_messagebytes_max=()=>(B._crypto_aead_aegis128l_messagebytes_max=P.k)(),B._crypto_aead_aegis128l_keygen=A=>(B._crypto_aead_aegis128l_keygen=P.l)(A),B._crypto_aead_aegis128l_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_encrypt=P.m)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis128l_encrypt_detached=P.n)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis128l_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt=P.o)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis128l_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis128l_decrypt_detached=P.p)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_keybytes=()=>(B._crypto_aead_aegis256_keybytes=P.q)(),B._crypto_aead_aegis256_nsecbytes=()=>(B._crypto_aead_aegis256_nsecbytes=P.r)(),B._crypto_aead_aegis256_npubbytes=()=>(B._crypto_aead_aegis256_npubbytes=P.s)(),B._crypto_aead_aegis256_abytes=()=>(B._crypto_aead_aegis256_abytes=P.t)(),B._crypto_aead_aegis256_messagebytes_max=()=>(B._crypto_aead_aegis256_messagebytes_max=P.u)(),B._crypto_aead_aegis256_keygen=A=>(B._crypto_aead_aegis256_keygen=P.v)(A),B._crypto_aead_aegis256_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_encrypt=P.w)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_aegis256_encrypt_detached=P.x)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_aegis256_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt=P.y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aegis256_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_aegis256_decrypt_detached=P.z)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_aes256gcm_is_available=()=>(B._crypto_aead_aes256gcm_is_available=P.A)(),B._crypto_aead_chacha20poly1305_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_encrypt_detached=P.B)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_encrypt=P.C)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt_detached=P.D)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_chacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_encrypt=P.E)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt_detached=P.F)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_decrypt=P.G)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt_detached=P.H)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_chacha20poly1305_ietf_decrypt=P.I)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_chacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_chacha20poly1305_ietf_keybytes=P.J)(),B._crypto_aead_chacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_npubbytes=P.K)(),B._crypto_aead_chacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_ietf_nsecbytes=P.L)(),B._crypto_aead_chacha20poly1305_ietf_abytes=()=>(B._crypto_aead_chacha20poly1305_ietf_abytes=P.M)(),B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_ietf_messagebytes_max=P.N)(),B._crypto_aead_chacha20poly1305_ietf_keygen=A=>(B._crypto_aead_chacha20poly1305_ietf_keygen=P.O)(A),B._crypto_aead_chacha20poly1305_keybytes=()=>(B._crypto_aead_chacha20poly1305_keybytes=P.P)(),B._crypto_aead_chacha20poly1305_npubbytes=()=>(B._crypto_aead_chacha20poly1305_npubbytes=P.Q)(),B._crypto_aead_chacha20poly1305_nsecbytes=()=>(B._crypto_aead_chacha20poly1305_nsecbytes=P.R)(),B._crypto_aead_chacha20poly1305_abytes=()=>(B._crypto_aead_chacha20poly1305_abytes=P.S)(),B._crypto_aead_chacha20poly1305_messagebytes_max=()=>(B._crypto_aead_chacha20poly1305_messagebytes_max=P.T)(),B._crypto_aead_chacha20poly1305_keygen=A=>(B._crypto_aead_chacha20poly1305_keygen=P.U)(A),B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c,t)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt_detached=P.V)(A,I,g,C,Q,i,o,E,a,_,c,t),B._crypto_aead_xchacha20poly1305_ietf_encrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_encrypt=P.W)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt_detached=P.X)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_decrypt=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_aead_xchacha20poly1305_ietf_decrypt=P.Y)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_aead_xchacha20poly1305_ietf_keybytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_keybytes=P.Z)(),B._crypto_aead_xchacha20poly1305_ietf_npubbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_npubbytes=P._)(),B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_nsecbytes=P.$)(),B._crypto_aead_xchacha20poly1305_ietf_abytes=()=>(B._crypto_aead_xchacha20poly1305_ietf_abytes=P.aa)(),B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=()=>(B._crypto_aead_xchacha20poly1305_ietf_messagebytes_max=P.ba)(),B._crypto_aead_xchacha20poly1305_ietf_keygen=A=>(B._crypto_aead_xchacha20poly1305_ietf_keygen=P.ca)(A),B._crypto_auth_bytes=()=>(B._crypto_auth_bytes=P.da)(),B._crypto_auth_keybytes=()=>(B._crypto_auth_keybytes=P.ea)(),B._crypto_auth_primitive=()=>(B._crypto_auth_primitive=P.fa)(),B._crypto_auth=(A,I,g,C,Q)=>(B._crypto_auth=P.ga)(A,I,g,C,Q),B._crypto_auth_verify=(A,I,g,C,Q)=>(B._crypto_auth_verify=P.ha)(A,I,g,C,Q),B._crypto_auth_keygen=A=>(B._crypto_auth_keygen=P.ia)(A),B._crypto_auth_hmacsha256_bytes=()=>(B._crypto_auth_hmacsha256_bytes=P.ja)(),B._crypto_auth_hmacsha256_keybytes=()=>(B._crypto_auth_hmacsha256_keybytes=P.ka)(),B._crypto_auth_hmacsha256_statebytes=()=>(B._crypto_auth_hmacsha256_statebytes=P.la)(),B._crypto_auth_hmacsha256_keygen=A=>(B._crypto_auth_hmacsha256_keygen=P.ma)(A),B._crypto_auth_hmacsha256_init=(A,I,g)=>(B._crypto_auth_hmacsha256_init=P.na)(A,I,g),B._crypto_auth_hmacsha256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha256_update=P.oa)(A,I,g,C),B._crypto_auth_hmacsha256_final=(A,I)=>(B._crypto_auth_hmacsha256_final=P.pa)(A,I),B._crypto_auth_hmacsha256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256=P.qa)(A,I,g,C,Q),B._crypto_auth_hmacsha256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha256_verify=P.ra)(A,I,g,C,Q),B._crypto_auth_hmacsha512_bytes=()=>(B._crypto_auth_hmacsha512_bytes=P.sa)(),B._crypto_auth_hmacsha512_keybytes=()=>(B._crypto_auth_hmacsha512_keybytes=P.ta)(),B._crypto_auth_hmacsha512_statebytes=()=>(B._crypto_auth_hmacsha512_statebytes=P.ua)(),B._crypto_auth_hmacsha512_keygen=A=>(B._crypto_auth_hmacsha512_keygen=P.va)(A),B._crypto_auth_hmacsha512_init=(A,I,g)=>(B._crypto_auth_hmacsha512_init=P.wa)(A,I,g),B._crypto_auth_hmacsha512_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512_update=P.xa)(A,I,g,C),B._crypto_auth_hmacsha512_final=(A,I)=>(B._crypto_auth_hmacsha512_final=P.ya)(A,I),B._crypto_auth_hmacsha512=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512=P.za)(A,I,g,C,Q),B._crypto_auth_hmacsha512_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512_verify=P.Aa)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_bytes=()=>(B._crypto_auth_hmacsha512256_bytes=P.Ba)(),B._crypto_auth_hmacsha512256_keybytes=()=>(B._crypto_auth_hmacsha512256_keybytes=P.Ca)(),B._crypto_auth_hmacsha512256_statebytes=()=>(B._crypto_auth_hmacsha512256_statebytes=P.Da)(),B._crypto_auth_hmacsha512256_keygen=A=>(B._crypto_auth_hmacsha512256_keygen=P.Ea)(A),B._crypto_auth_hmacsha512256_init=(A,I,g)=>(B._crypto_auth_hmacsha512256_init=P.Fa)(A,I,g),B._crypto_auth_hmacsha512256_update=(A,I,g,C)=>(B._crypto_auth_hmacsha512256_update=P.Ga)(A,I,g,C),B._crypto_auth_hmacsha512256_final=(A,I)=>(B._crypto_auth_hmacsha512256_final=P.Ha)(A,I),B._crypto_auth_hmacsha512256=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256=P.Ia)(A,I,g,C,Q),B._crypto_auth_hmacsha512256_verify=(A,I,g,C,Q)=>(B._crypto_auth_hmacsha512256_verify=P.Ja)(A,I,g,C,Q),B._crypto_box_seedbytes=()=>(B._crypto_box_seedbytes=P.Ka)(),B._crypto_box_publickeybytes=()=>(B._crypto_box_publickeybytes=P.La)(),B._crypto_box_secretkeybytes=()=>(B._crypto_box_secretkeybytes=P.Ma)(),B._crypto_box_beforenmbytes=()=>(B._crypto_box_beforenmbytes=P.Na)(),B._crypto_box_noncebytes=()=>(B._crypto_box_noncebytes=P.Oa)(),B._crypto_box_zerobytes=()=>(B._crypto_box_zerobytes=P.Pa)(),B._crypto_box_boxzerobytes=()=>(B._crypto_box_boxzerobytes=P.Qa)(),B._crypto_box_macbytes=()=>(B._crypto_box_macbytes=P.Ra)(),B._crypto_box_messagebytes_max=()=>(B._crypto_box_messagebytes_max=P.Sa)(),B._crypto_box_primitive=()=>(B._crypto_box_primitive=P.Ta)(),B._crypto_box_seed_keypair=(A,I,g)=>(B._crypto_box_seed_keypair=P.Ua)(A,I,g),B._crypto_box_keypair=(A,I)=>(B._crypto_box_keypair=P.Va)(A,I),B._crypto_box_beforenm=(A,I,g)=>(B._crypto_box_beforenm=P.Wa)(A,I,g),B._crypto_box_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_afternm=P.Xa)(A,I,g,C,Q,i),B._crypto_box_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_afternm=P.Ya)(A,I,g,C,Q,i),B._crypto_box=(A,I,g,C,Q,i,o)=>(B._crypto_box=P.Za)(A,I,g,C,Q,i,o),B._crypto_box_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_open=P._a)(A,I,g,C,Q,i,o),B._crypto_box_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_detached_afternm=P.$a)(A,I,g,C,Q,i,o),B._crypto_box_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_detached=P.ab)(A,I,g,C,Q,i,o,E),B._crypto_box_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_easy_afternm=P.bb)(A,I,g,C,Q,i),B._crypto_box_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_easy=P.cb)(A,I,g,C,Q,i,o),B._crypto_box_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_detached_afternm=P.db)(A,I,g,C,Q,i,o),B._crypto_box_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_open_detached=P.eb)(A,I,g,C,Q,i,o,E),B._crypto_box_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_open_easy_afternm=P.fb)(A,I,g,C,Q,i),B._crypto_box_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_open_easy=P.gb)(A,I,g,C,Q,i,o),B._crypto_box_seal=(A,I,g,C,Q)=>(B._crypto_box_seal=P.hb)(A,I,g,C,Q),B._crypto_box_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_seal_open=P.ib)(A,I,g,C,Q,i),B._crypto_box_sealbytes=()=>(B._crypto_box_sealbytes=P.jb)(),B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_seed_keypair=P.kb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xsalsa20poly1305_keypair=P.lb)(A,I),B._crypto_box_curve25519xsalsa20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xsalsa20poly1305_beforenm=P.mb)(A,I,g),B._crypto_box_curve25519xsalsa20poly1305_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_afternm=P.nb)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305_open_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xsalsa20poly1305_open_afternm=P.ob)(A,I,g,C,Q,i),B._crypto_box_curve25519xsalsa20poly1305=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305=P.pb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_open=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xsalsa20poly1305_open=P.qb)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xsalsa20poly1305_seedbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_seedbytes=P.rb)(),B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_publickeybytes=P.sb)(),B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_secretkeybytes=P.tb)(),B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_beforenmbytes=P.ub)(),B._crypto_box_curve25519xsalsa20poly1305_noncebytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_noncebytes=P.vb)(),B._crypto_box_curve25519xsalsa20poly1305_zerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_zerobytes=P.wb)(),B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_boxzerobytes=P.xb)(),B._crypto_box_curve25519xsalsa20poly1305_macbytes=()=>(B._crypto_box_curve25519xsalsa20poly1305_macbytes=P.yb)(),B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xsalsa20poly1305_messagebytes_max=P.zb)(),B._crypto_core_hchacha20=(A,I,g,C)=>(B._crypto_core_hchacha20=P.Ab)(A,I,g,C),B._crypto_core_hchacha20_outputbytes=()=>(B._crypto_core_hchacha20_outputbytes=P.Bb)(),B._crypto_core_hchacha20_inputbytes=()=>(B._crypto_core_hchacha20_inputbytes=P.Cb)(),B._crypto_core_hchacha20_keybytes=()=>(B._crypto_core_hchacha20_keybytes=P.Db)(),B._crypto_core_hchacha20_constbytes=()=>(B._crypto_core_hchacha20_constbytes=P.Eb)(),B._crypto_core_hsalsa20=(A,I,g,C)=>(B._crypto_core_hsalsa20=P.Fb)(A,I,g,C),B._crypto_core_hsalsa20_outputbytes=()=>(B._crypto_core_hsalsa20_outputbytes=P.Gb)(),B._crypto_core_hsalsa20_inputbytes=()=>(B._crypto_core_hsalsa20_inputbytes=P.Hb)(),B._crypto_core_hsalsa20_keybytes=()=>(B._crypto_core_hsalsa20_keybytes=P.Ib)(),B._crypto_core_hsalsa20_constbytes=()=>(B._crypto_core_hsalsa20_constbytes=P.Jb)(),B._crypto_core_salsa20=(A,I,g,C)=>(B._crypto_core_salsa20=P.Kb)(A,I,g,C),B._crypto_core_salsa20_outputbytes=()=>(B._crypto_core_salsa20_outputbytes=P.Lb)(),B._crypto_core_salsa20_inputbytes=()=>(B._crypto_core_salsa20_inputbytes=P.Mb)(),B._crypto_core_salsa20_keybytes=()=>(B._crypto_core_salsa20_keybytes=P.Nb)(),B._crypto_core_salsa20_constbytes=()=>(B._crypto_core_salsa20_constbytes=P.Ob)(),B._crypto_core_salsa2012=(A,I,g,C)=>(B._crypto_core_salsa2012=P.Pb)(A,I,g,C),B._crypto_core_salsa2012_outputbytes=()=>(B._crypto_core_salsa2012_outputbytes=P.Qb)(),B._crypto_core_salsa2012_inputbytes=()=>(B._crypto_core_salsa2012_inputbytes=P.Rb)(),B._crypto_core_salsa2012_keybytes=()=>(B._crypto_core_salsa2012_keybytes=P.Sb)(),B._crypto_core_salsa2012_constbytes=()=>(B._crypto_core_salsa2012_constbytes=P.Tb)(),B._crypto_core_salsa208=(A,I,g,C)=>(B._crypto_core_salsa208=P.Ub)(A,I,g,C),B._crypto_core_salsa208_outputbytes=()=>(B._crypto_core_salsa208_outputbytes=P.Vb)(),B._crypto_core_salsa208_inputbytes=()=>(B._crypto_core_salsa208_inputbytes=P.Wb)(),B._crypto_core_salsa208_keybytes=()=>(B._crypto_core_salsa208_keybytes=P.Xb)(),B._crypto_core_salsa208_constbytes=()=>(B._crypto_core_salsa208_constbytes=P.Yb)(),B._crypto_generichash_bytes_min=()=>(B._crypto_generichash_bytes_min=P.Zb)(),B._crypto_generichash_bytes_max=()=>(B._crypto_generichash_bytes_max=P._b)(),B._crypto_generichash_bytes=()=>(B._crypto_generichash_bytes=P.$b)(),B._crypto_generichash_keybytes_min=()=>(B._crypto_generichash_keybytes_min=P.ac)(),B._crypto_generichash_keybytes_max=()=>(B._crypto_generichash_keybytes_max=P.bc)(),B._crypto_generichash_keybytes=()=>(B._crypto_generichash_keybytes=P.cc)(),B._crypto_generichash_primitive=()=>(B._crypto_generichash_primitive=P.dc)(),B._crypto_generichash_statebytes=()=>(B._crypto_generichash_statebytes=P.ec)(),B._crypto_generichash=(A,I,g,C,Q,i,o)=>(B._crypto_generichash=P.fc)(A,I,g,C,Q,i,o),B._crypto_generichash_init=(A,I,g,C)=>(B._crypto_generichash_init=P.gc)(A,I,g,C),B._crypto_generichash_update=(A,I,g,C)=>(B._crypto_generichash_update=P.hc)(A,I,g,C),B._crypto_generichash_final=(A,I,g)=>(B._crypto_generichash_final=P.ic)(A,I,g),B._crypto_generichash_keygen=A=>(B._crypto_generichash_keygen=P.jc)(A),B._crypto_generichash_blake2b_bytes_min=()=>(B._crypto_generichash_blake2b_bytes_min=P.kc)(),B._crypto_generichash_blake2b_bytes_max=()=>(B._crypto_generichash_blake2b_bytes_max=P.lc)(),B._crypto_generichash_blake2b_bytes=()=>(B._crypto_generichash_blake2b_bytes=P.mc)(),B._crypto_generichash_blake2b_keybytes_min=()=>(B._crypto_generichash_blake2b_keybytes_min=P.nc)(),B._crypto_generichash_blake2b_keybytes_max=()=>(B._crypto_generichash_blake2b_keybytes_max=P.oc)(),B._crypto_generichash_blake2b_keybytes=()=>(B._crypto_generichash_blake2b_keybytes=P.pc)(),B._crypto_generichash_blake2b_saltbytes=()=>(B._crypto_generichash_blake2b_saltbytes=P.qc)(),B._crypto_generichash_blake2b_personalbytes=()=>(B._crypto_generichash_blake2b_personalbytes=P.rc)(),B._crypto_generichash_blake2b_statebytes=()=>(B._crypto_generichash_blake2b_statebytes=P.sc)(),B._crypto_generichash_blake2b_keygen=A=>(B._crypto_generichash_blake2b_keygen=P.tc)(A),B._crypto_generichash_blake2b=(A,I,g,C,Q,i,o)=>(B._crypto_generichash_blake2b=P.uc)(A,I,g,C,Q,i,o),B._crypto_generichash_blake2b_salt_personal=(A,I,g,C,Q,i,o,E,a)=>(B._crypto_generichash_blake2b_salt_personal=P.vc)(A,I,g,C,Q,i,o,E,a),B._crypto_generichash_blake2b_init=(A,I,g,C)=>(B._crypto_generichash_blake2b_init=P.wc)(A,I,g,C),B._crypto_generichash_blake2b_init_salt_personal=(A,I,g,C,Q,i)=>(B._crypto_generichash_blake2b_init_salt_personal=P.xc)(A,I,g,C,Q,i),B._crypto_generichash_blake2b_update=(A,I,g,C)=>(B._crypto_generichash_blake2b_update=P.yc)(A,I,g,C),B._crypto_generichash_blake2b_final=(A,I,g)=>(B._crypto_generichash_blake2b_final=P.zc)(A,I,g),B._crypto_hash_bytes=()=>(B._crypto_hash_bytes=P.Ac)(),B._crypto_hash=(A,I,g,C)=>(B._crypto_hash=P.Bc)(A,I,g,C),B._crypto_hash_primitive=()=>(B._crypto_hash_primitive=P.Cc)(),B._crypto_hash_sha256_bytes=()=>(B._crypto_hash_sha256_bytes=P.Dc)(),B._crypto_hash_sha256_statebytes=()=>(B._crypto_hash_sha256_statebytes=P.Ec)(),B._crypto_hash_sha256_init=A=>(B._crypto_hash_sha256_init=P.Fc)(A),B._crypto_hash_sha256_update=(A,I,g,C)=>(B._crypto_hash_sha256_update=P.Gc)(A,I,g,C),B._crypto_hash_sha256_final=(A,I)=>(B._crypto_hash_sha256_final=P.Hc)(A,I),B._crypto_hash_sha256=(A,I,g,C)=>(B._crypto_hash_sha256=P.Ic)(A,I,g,C),B._crypto_hash_sha512_bytes=()=>(B._crypto_hash_sha512_bytes=P.Jc)(),B._crypto_hash_sha512_statebytes=()=>(B._crypto_hash_sha512_statebytes=P.Kc)(),B._crypto_hash_sha512_init=A=>(B._crypto_hash_sha512_init=P.Lc)(A),B._crypto_hash_sha512_update=(A,I,g,C)=>(B._crypto_hash_sha512_update=P.Mc)(A,I,g,C),B._crypto_hash_sha512_final=(A,I)=>(B._crypto_hash_sha512_final=P.Nc)(A,I),B._crypto_hash_sha512=(A,I,g,C)=>(B._crypto_hash_sha512=P.Oc)(A,I,g,C),B._crypto_kdf_blake2b_bytes_min=()=>(B._crypto_kdf_blake2b_bytes_min=P.Pc)(),B._crypto_kdf_blake2b_bytes_max=()=>(B._crypto_kdf_blake2b_bytes_max=P.Qc)(),B._crypto_kdf_blake2b_contextbytes=()=>(B._crypto_kdf_blake2b_contextbytes=P.Rc)(),B._crypto_kdf_blake2b_keybytes=()=>(B._crypto_kdf_blake2b_keybytes=P.Sc)(),B._crypto_kdf_blake2b_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_blake2b_derive_from_key=P.Tc)(A,I,g,C,Q,i),B._crypto_kdf_primitive=()=>(B._crypto_kdf_primitive=P.Uc)(),B._crypto_kdf_bytes_min=()=>(B._crypto_kdf_bytes_min=P.Vc)(),B._crypto_kdf_bytes_max=()=>(B._crypto_kdf_bytes_max=P.Wc)(),B._crypto_kdf_contextbytes=()=>(B._crypto_kdf_contextbytes=P.Xc)(),B._crypto_kdf_keybytes=()=>(B._crypto_kdf_keybytes=P.Yc)(),B._crypto_kdf_derive_from_key=(A,I,g,C,Q,i)=>(B._crypto_kdf_derive_from_key=P.Zc)(A,I,g,C,Q,i),B._crypto_kdf_keygen=A=>(B._crypto_kdf_keygen=P._c)(A),B._crypto_kdf_hkdf_sha256_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_init=P.$c)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha256_extract_update=P.ad)(A,I,g),B._crypto_kdf_hkdf_sha256_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha256_extract_final=P.bd)(A,I),B._crypto_kdf_hkdf_sha256_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_extract=P.cd)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keygen=A=>(B._crypto_kdf_hkdf_sha256_keygen=P.dd)(A),B._crypto_kdf_hkdf_sha256_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha256_expand=P.ed)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha256_keybytes=()=>(B._crypto_kdf_hkdf_sha256_keybytes=P.fd)(),B._crypto_kdf_hkdf_sha256_bytes_min=()=>(B._crypto_kdf_hkdf_sha256_bytes_min=P.gd)(),B._crypto_kdf_hkdf_sha256_bytes_max=()=>(B._crypto_kdf_hkdf_sha256_bytes_max=P.hd)(),B._crypto_kdf_hkdf_sha256_statebytes=()=>(B._crypto_kdf_hkdf_sha256_statebytes=P.id)(),B._crypto_kdf_hkdf_sha512_extract_init=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_init=P.jd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_update=(A,I,g)=>(B._crypto_kdf_hkdf_sha512_extract_update=P.kd)(A,I,g),B._crypto_kdf_hkdf_sha512_extract_final=(A,I)=>(B._crypto_kdf_hkdf_sha512_extract_final=P.ld)(A,I),B._crypto_kdf_hkdf_sha512_extract=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_extract=P.md)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keygen=A=>(B._crypto_kdf_hkdf_sha512_keygen=P.nd)(A),B._crypto_kdf_hkdf_sha512_expand=(A,I,g,C,Q)=>(B._crypto_kdf_hkdf_sha512_expand=P.od)(A,I,g,C,Q),B._crypto_kdf_hkdf_sha512_keybytes=()=>(B._crypto_kdf_hkdf_sha512_keybytes=P.pd)(),B._crypto_kdf_hkdf_sha512_bytes_min=()=>(B._crypto_kdf_hkdf_sha512_bytes_min=P.qd)(),B._crypto_kdf_hkdf_sha512_bytes_max=()=>(B._crypto_kdf_hkdf_sha512_bytes_max=P.rd)(),B._crypto_kdf_hkdf_sha512_statebytes=()=>(B._crypto_kdf_hkdf_sha512_statebytes=P.sd)(),B._crypto_kx_seed_keypair=(A,I,g)=>(B._crypto_kx_seed_keypair=P.td)(A,I,g),B._crypto_kx_keypair=(A,I)=>(B._crypto_kx_keypair=P.ud)(A,I),B._crypto_kx_client_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_client_session_keys=P.vd)(A,I,g,C,Q),B._crypto_kx_server_session_keys=(A,I,g,C,Q)=>(B._crypto_kx_server_session_keys=P.wd)(A,I,g,C,Q),B._crypto_kx_publickeybytes=()=>(B._crypto_kx_publickeybytes=P.xd)(),B._crypto_kx_secretkeybytes=()=>(B._crypto_kx_secretkeybytes=P.yd)(),B._crypto_kx_seedbytes=()=>(B._crypto_kx_seedbytes=P.zd)(),B._crypto_kx_sessionkeybytes=()=>(B._crypto_kx_sessionkeybytes=P.Ad)(),B._crypto_kx_primitive=()=>(B._crypto_kx_primitive=P.Bd)(),B._crypto_onetimeauth_statebytes=()=>(B._crypto_onetimeauth_statebytes=P.Cd)(),B._crypto_onetimeauth_bytes=()=>(B._crypto_onetimeauth_bytes=P.Dd)(),B._crypto_onetimeauth_keybytes=()=>(B._crypto_onetimeauth_keybytes=P.Ed)(),B._crypto_onetimeauth=(A,I,g,C,Q)=>(B._crypto_onetimeauth=P.Fd)(A,I,g,C,Q),B._crypto_onetimeauth_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_verify=P.Gd)(A,I,g,C,Q),B._crypto_onetimeauth_init=(A,I)=>(B._crypto_onetimeauth_init=P.Hd)(A,I),B._crypto_onetimeauth_update=(A,I,g,C)=>(B._crypto_onetimeauth_update=P.Id)(A,I,g,C),B._crypto_onetimeauth_final=(A,I)=>(B._crypto_onetimeauth_final=P.Jd)(A,I),B._crypto_onetimeauth_primitive=()=>(B._crypto_onetimeauth_primitive=P.Kd)(),B._crypto_onetimeauth_keygen=A=>(B._crypto_onetimeauth_keygen=P.Ld)(A),B._crypto_onetimeauth_poly1305=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305=P.Md)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_verify=(A,I,g,C,Q)=>(B._crypto_onetimeauth_poly1305_verify=P.Nd)(A,I,g,C,Q),B._crypto_onetimeauth_poly1305_init=(A,I)=>(B._crypto_onetimeauth_poly1305_init=P.Od)(A,I),B._crypto_onetimeauth_poly1305_update=(A,I,g,C)=>(B._crypto_onetimeauth_poly1305_update=P.Pd)(A,I,g,C),B._crypto_onetimeauth_poly1305_final=(A,I)=>(B._crypto_onetimeauth_poly1305_final=P.Qd)(A,I),B._crypto_onetimeauth_poly1305_bytes=()=>(B._crypto_onetimeauth_poly1305_bytes=P.Rd)(),B._crypto_onetimeauth_poly1305_keybytes=()=>(B._crypto_onetimeauth_poly1305_keybytes=P.Sd)(),B._crypto_onetimeauth_poly1305_statebytes=()=>(B._crypto_onetimeauth_poly1305_statebytes=P.Td)(),B._crypto_onetimeauth_poly1305_keygen=A=>(B._crypto_onetimeauth_poly1305_keygen=P.Ud)(A),B._crypto_pwhash_argon2i_alg_argon2i13=()=>(B._crypto_pwhash_argon2i_alg_argon2i13=P.Vd)(),B._crypto_pwhash_argon2i_bytes_min=()=>(B._crypto_pwhash_argon2i_bytes_min=P.Wd)(),B._crypto_pwhash_argon2i_bytes_max=()=>(B._crypto_pwhash_argon2i_bytes_max=P.Xd)(),B._crypto_pwhash_argon2i_passwd_min=()=>(B._crypto_pwhash_argon2i_passwd_min=P.Yd)(),B._crypto_pwhash_argon2i_passwd_max=()=>(B._crypto_pwhash_argon2i_passwd_max=P.Zd)(),B._crypto_pwhash_argon2i_saltbytes=()=>(B._crypto_pwhash_argon2i_saltbytes=P._d)(),B._crypto_pwhash_argon2i_strbytes=()=>(B._crypto_pwhash_argon2i_strbytes=P.$d)(),B._crypto_pwhash_argon2i_strprefix=()=>(B._crypto_pwhash_argon2i_strprefix=P.ae)(),B._crypto_pwhash_argon2i_opslimit_min=()=>(B._crypto_pwhash_argon2i_opslimit_min=P.be)(),B._crypto_pwhash_argon2i_opslimit_max=()=>(B._crypto_pwhash_argon2i_opslimit_max=P.ce)(),B._crypto_pwhash_argon2i_memlimit_min=()=>(B._crypto_pwhash_argon2i_memlimit_min=P.de)(),B._crypto_pwhash_argon2i_memlimit_max=()=>(B._crypto_pwhash_argon2i_memlimit_max=P.ee)(),B._crypto_pwhash_argon2i_opslimit_interactive=()=>(B._crypto_pwhash_argon2i_opslimit_interactive=P.fe)(),B._crypto_pwhash_argon2i_memlimit_interactive=()=>(B._crypto_pwhash_argon2i_memlimit_interactive=P.ge)(),B._crypto_pwhash_argon2i_opslimit_moderate=()=>(B._crypto_pwhash_argon2i_opslimit_moderate=P.he)(),B._crypto_pwhash_argon2i_memlimit_moderate=()=>(B._crypto_pwhash_argon2i_memlimit_moderate=P.ie)(),B._crypto_pwhash_argon2i_opslimit_sensitive=()=>(B._crypto_pwhash_argon2i_opslimit_sensitive=P.je)(),B._crypto_pwhash_argon2i_memlimit_sensitive=()=>(B._crypto_pwhash_argon2i_memlimit_sensitive=P.ke)(),B._crypto_pwhash_argon2i=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2i=P.le)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2i_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2i_str=P.me)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2i_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_verify=P.ne)(A,I,g,C),B._crypto_pwhash_argon2i_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2i_str_needs_rehash=P.oe)(A,I,g,C),B._crypto_pwhash_argon2id_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_needs_rehash=P.pe)(A,I,g,C),B._crypto_pwhash_argon2id_alg_argon2id13=()=>(B._crypto_pwhash_argon2id_alg_argon2id13=P.qe)(),B._crypto_pwhash_argon2id_bytes_min=()=>(B._crypto_pwhash_argon2id_bytes_min=P.re)(),B._crypto_pwhash_argon2id_bytes_max=()=>(B._crypto_pwhash_argon2id_bytes_max=P.se)(),B._crypto_pwhash_argon2id_passwd_min=()=>(B._crypto_pwhash_argon2id_passwd_min=P.te)(),B._crypto_pwhash_argon2id_passwd_max=()=>(B._crypto_pwhash_argon2id_passwd_max=P.ue)(),B._crypto_pwhash_argon2id_saltbytes=()=>(B._crypto_pwhash_argon2id_saltbytes=P.ve)(),B._crypto_pwhash_argon2id_strbytes=()=>(B._crypto_pwhash_argon2id_strbytes=P.we)(),B._crypto_pwhash_argon2id_strprefix=()=>(B._crypto_pwhash_argon2id_strprefix=P.xe)(),B._crypto_pwhash_argon2id_opslimit_min=()=>(B._crypto_pwhash_argon2id_opslimit_min=P.ye)(),B._crypto_pwhash_argon2id_opslimit_max=()=>(B._crypto_pwhash_argon2id_opslimit_max=P.ze)(),B._crypto_pwhash_argon2id_memlimit_min=()=>(B._crypto_pwhash_argon2id_memlimit_min=P.Ae)(),B._crypto_pwhash_argon2id_memlimit_max=()=>(B._crypto_pwhash_argon2id_memlimit_max=P.Be)(),B._crypto_pwhash_argon2id_opslimit_interactive=()=>(B._crypto_pwhash_argon2id_opslimit_interactive=P.Ce)(),B._crypto_pwhash_argon2id_memlimit_interactive=()=>(B._crypto_pwhash_argon2id_memlimit_interactive=P.De)(),B._crypto_pwhash_argon2id_opslimit_moderate=()=>(B._crypto_pwhash_argon2id_opslimit_moderate=P.Ee)(),B._crypto_pwhash_argon2id_memlimit_moderate=()=>(B._crypto_pwhash_argon2id_memlimit_moderate=P.Fe)(),B._crypto_pwhash_argon2id_opslimit_sensitive=()=>(B._crypto_pwhash_argon2id_opslimit_sensitive=P.Ge)(),B._crypto_pwhash_argon2id_memlimit_sensitive=()=>(B._crypto_pwhash_argon2id_memlimit_sensitive=P.He)(),B._crypto_pwhash_argon2id=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash_argon2id=P.Ie)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_argon2id_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_argon2id_str=P.Je)(A,I,g,C,Q,i,o),B._crypto_pwhash_argon2id_str_verify=(A,I,g,C)=>(B._crypto_pwhash_argon2id_str_verify=P.Ke)(A,I,g,C),B._crypto_pwhash_alg_argon2i13=()=>(B._crypto_pwhash_alg_argon2i13=P.Le)(),B._crypto_pwhash_alg_argon2id13=()=>(B._crypto_pwhash_alg_argon2id13=P.Me)(),B._crypto_pwhash_alg_default=()=>(B._crypto_pwhash_alg_default=P.Ne)(),B._crypto_pwhash_bytes_min=()=>(B._crypto_pwhash_bytes_min=P.Oe)(),B._crypto_pwhash_bytes_max=()=>(B._crypto_pwhash_bytes_max=P.Pe)(),B._crypto_pwhash_passwd_min=()=>(B._crypto_pwhash_passwd_min=P.Qe)(),B._crypto_pwhash_passwd_max=()=>(B._crypto_pwhash_passwd_max=P.Re)(),B._crypto_pwhash_saltbytes=()=>(B._crypto_pwhash_saltbytes=P.Se)(),B._crypto_pwhash_strbytes=()=>(B._crypto_pwhash_strbytes=P.Te)(),B._crypto_pwhash_strprefix=()=>(B._crypto_pwhash_strprefix=P.Ue)(),B._crypto_pwhash_opslimit_min=()=>(B._crypto_pwhash_opslimit_min=P.Ve)(),B._crypto_pwhash_opslimit_max=()=>(B._crypto_pwhash_opslimit_max=P.We)(),B._crypto_pwhash_memlimit_min=()=>(B._crypto_pwhash_memlimit_min=P.Xe)(),B._crypto_pwhash_memlimit_max=()=>(B._crypto_pwhash_memlimit_max=P.Ye)(),B._crypto_pwhash_opslimit_interactive=()=>(B._crypto_pwhash_opslimit_interactive=P.Ze)(),B._crypto_pwhash_memlimit_interactive=()=>(B._crypto_pwhash_memlimit_interactive=P._e)(),B._crypto_pwhash_opslimit_moderate=()=>(B._crypto_pwhash_opslimit_moderate=P.$e)(),B._crypto_pwhash_memlimit_moderate=()=>(B._crypto_pwhash_memlimit_moderate=P.af)(),B._crypto_pwhash_opslimit_sensitive=()=>(B._crypto_pwhash_opslimit_sensitive=P.bf)(),B._crypto_pwhash_memlimit_sensitive=()=>(B._crypto_pwhash_memlimit_sensitive=P.cf)(),B._crypto_pwhash=(A,I,g,C,Q,i,o,E,a,_,c)=>(B._crypto_pwhash=P.df)(A,I,g,C,Q,i,o,E,a,_,c),B._crypto_pwhash_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_str=P.ef)(A,I,g,C,Q,i,o),B._crypto_pwhash_str_alg=(A,I,g,C,Q,i,o,E)=>(B._crypto_pwhash_str_alg=P.ff)(A,I,g,C,Q,i,o,E),B._crypto_pwhash_str_verify=(A,I,g,C)=>(B._crypto_pwhash_str_verify=P.gf)(A,I,g,C),B._crypto_pwhash_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_str_needs_rehash=P.hf)(A,I,g,C),B._crypto_pwhash_primitive=()=>(B._crypto_pwhash_primitive=P.jf)(),B._crypto_scalarmult_primitive=()=>(B._crypto_scalarmult_primitive=P.kf)(),B._crypto_scalarmult_base=(A,I)=>(B._crypto_scalarmult_base=P.lf)(A,I),B._crypto_scalarmult=(A,I,g)=>(B._crypto_scalarmult=P.mf)(A,I,g),B._crypto_scalarmult_bytes=()=>(B._crypto_scalarmult_bytes=P.nf)(),B._crypto_scalarmult_scalarbytes=()=>(B._crypto_scalarmult_scalarbytes=P.of)(),B._crypto_scalarmult_curve25519=(A,I,g)=>(B._crypto_scalarmult_curve25519=P.pf)(A,I,g),B._crypto_scalarmult_curve25519_base=(A,I)=>(B._crypto_scalarmult_curve25519_base=P.qf)(A,I),B._crypto_scalarmult_curve25519_bytes=()=>(B._crypto_scalarmult_curve25519_bytes=P.rf)(),B._crypto_scalarmult_curve25519_scalarbytes=()=>(B._crypto_scalarmult_curve25519_scalarbytes=P.sf)(),B._crypto_secretbox_keybytes=()=>(B._crypto_secretbox_keybytes=P.tf)(),B._crypto_secretbox_noncebytes=()=>(B._crypto_secretbox_noncebytes=P.uf)(),B._crypto_secretbox_zerobytes=()=>(B._crypto_secretbox_zerobytes=P.vf)(),B._crypto_secretbox_boxzerobytes=()=>(B._crypto_secretbox_boxzerobytes=P.wf)(),B._crypto_secretbox_macbytes=()=>(B._crypto_secretbox_macbytes=P.xf)(),B._crypto_secretbox_messagebytes_max=()=>(B._crypto_secretbox_messagebytes_max=P.yf)(),B._crypto_secretbox_primitive=()=>(B._crypto_secretbox_primitive=P.zf)(),B._crypto_secretbox=(A,I,g,C,Q,i)=>(B._crypto_secretbox=P.Af)(A,I,g,C,Q,i),B._crypto_secretbox_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open=P.Bf)(A,I,g,C,Q,i),B._crypto_secretbox_keygen=A=>(B._crypto_secretbox_keygen=P.Cf)(A),B._crypto_secretbox_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_detached=P.Df)(A,I,g,C,Q,i,o),B._crypto_secretbox_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_easy=P.Ef)(A,I,g,C,Q,i),B._crypto_secretbox_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_open_detached=P.Ff)(A,I,g,C,Q,i,o),B._crypto_secretbox_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_open_easy=P.Gf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305=P.Hf)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_open=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xsalsa20poly1305_open=P.If)(A,I,g,C,Q,i),B._crypto_secretbox_xsalsa20poly1305_keybytes=()=>(B._crypto_secretbox_xsalsa20poly1305_keybytes=P.Jf)(),B._crypto_secretbox_xsalsa20poly1305_noncebytes=()=>(B._crypto_secretbox_xsalsa20poly1305_noncebytes=P.Kf)(),B._crypto_secretbox_xsalsa20poly1305_zerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_zerobytes=P.Lf)(),B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=()=>(B._crypto_secretbox_xsalsa20poly1305_boxzerobytes=P.Mf)(),B._crypto_secretbox_xsalsa20poly1305_macbytes=()=>(B._crypto_secretbox_xsalsa20poly1305_macbytes=P.Nf)(),B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xsalsa20poly1305_messagebytes_max=P.Of)(),B._crypto_secretbox_xsalsa20poly1305_keygen=A=>(B._crypto_secretbox_xsalsa20poly1305_keygen=P.Pf)(A),B._crypto_secretstream_xchacha20poly1305_keygen=A=>(B._crypto_secretstream_xchacha20poly1305_keygen=P.Qf)(A),B._crypto_secretstream_xchacha20poly1305_init_push=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_push=P.Rf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_init_pull=(A,I,g)=>(B._crypto_secretstream_xchacha20poly1305_init_pull=P.Sf)(A,I,g),B._crypto_secretstream_xchacha20poly1305_rekey=A=>(B._crypto_secretstream_xchacha20poly1305_rekey=P.Tf)(A),B._crypto_secretstream_xchacha20poly1305_push=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_push=P.Uf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_pull=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_secretstream_xchacha20poly1305_pull=P.Vf)(A,I,g,C,Q,i,o,E,a,_),B._crypto_secretstream_xchacha20poly1305_statebytes=()=>(B._crypto_secretstream_xchacha20poly1305_statebytes=P.Wf)(),B._crypto_secretstream_xchacha20poly1305_abytes=()=>(B._crypto_secretstream_xchacha20poly1305_abytes=P.Xf)(),B._crypto_secretstream_xchacha20poly1305_headerbytes=()=>(B._crypto_secretstream_xchacha20poly1305_headerbytes=P.Yf)(),B._crypto_secretstream_xchacha20poly1305_keybytes=()=>(B._crypto_secretstream_xchacha20poly1305_keybytes=P.Zf)(),B._crypto_secretstream_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretstream_xchacha20poly1305_messagebytes_max=P._f)(),B._crypto_secretstream_xchacha20poly1305_tag_message=()=>(B._crypto_secretstream_xchacha20poly1305_tag_message=P.$f)(),B._crypto_secretstream_xchacha20poly1305_tag_push=()=>(B._crypto_secretstream_xchacha20poly1305_tag_push=P.ag)(),B._crypto_secretstream_xchacha20poly1305_tag_rekey=()=>(B._crypto_secretstream_xchacha20poly1305_tag_rekey=P.bg)(),B._crypto_secretstream_xchacha20poly1305_tag_final=()=>(B._crypto_secretstream_xchacha20poly1305_tag_final=P.cg)(),B._crypto_shorthash_bytes=()=>(B._crypto_shorthash_bytes=P.dg)(),B._crypto_shorthash_keybytes=()=>(B._crypto_shorthash_keybytes=P.eg)(),B._crypto_shorthash_primitive=()=>(B._crypto_shorthash_primitive=P.fg)(),B._crypto_shorthash=(A,I,g,C,Q)=>(B._crypto_shorthash=P.gg)(A,I,g,C,Q),B._crypto_shorthash_keygen=A=>(B._crypto_shorthash_keygen=P.hg)(A),B._crypto_shorthash_siphash24_bytes=()=>(B._crypto_shorthash_siphash24_bytes=P.ig)(),B._crypto_shorthash_siphash24_keybytes=()=>(B._crypto_shorthash_siphash24_keybytes=P.jg)(),B._crypto_shorthash_siphash24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphash24=P.kg)(A,I,g,C,Q),B._crypto_sign_statebytes=()=>(B._crypto_sign_statebytes=P.lg)(),B._crypto_sign_bytes=()=>(B._crypto_sign_bytes=P.mg)(),B._crypto_sign_seedbytes=()=>(B._crypto_sign_seedbytes=P.ng)(),B._crypto_sign_publickeybytes=()=>(B._crypto_sign_publickeybytes=P.og)(),B._crypto_sign_secretkeybytes=()=>(B._crypto_sign_secretkeybytes=P.pg)(),B._crypto_sign_messagebytes_max=()=>(B._crypto_sign_messagebytes_max=P.qg)(),B._crypto_sign_primitive=()=>(B._crypto_sign_primitive=P.rg)(),B._crypto_sign_seed_keypair=(A,I,g)=>(B._crypto_sign_seed_keypair=P.sg)(A,I,g),B._crypto_sign_keypair=(A,I)=>(B._crypto_sign_keypair=P.tg)(A,I),B._crypto_sign=(A,I,g,C,Q,i)=>(B._crypto_sign=P.ug)(A,I,g,C,Q,i),B._crypto_sign_open=(A,I,g,C,Q,i)=>(B._crypto_sign_open=P.vg)(A,I,g,C,Q,i),B._crypto_sign_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_detached=P.wg)(A,I,g,C,Q,i),B._crypto_sign_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_verify_detached=P.xg)(A,I,g,C,Q),B._crypto_sign_init=A=>(B._crypto_sign_init=P.yg)(A),B._crypto_sign_update=(A,I,g,C)=>(B._crypto_sign_update=P.zg)(A,I,g,C),B._crypto_sign_final_create=(A,I,g,C)=>(B._crypto_sign_final_create=P.Ag)(A,I,g,C),B._crypto_sign_final_verify=(A,I,g)=>(B._crypto_sign_final_verify=P.Bg)(A,I,g),B._crypto_sign_ed25519ph_statebytes=()=>(B._crypto_sign_ed25519ph_statebytes=P.Cg)(),B._crypto_sign_ed25519_bytes=()=>(B._crypto_sign_ed25519_bytes=P.Dg)(),B._crypto_sign_ed25519_seedbytes=()=>(B._crypto_sign_ed25519_seedbytes=P.Eg)(),B._crypto_sign_ed25519_publickeybytes=()=>(B._crypto_sign_ed25519_publickeybytes=P.Fg)(),B._crypto_sign_ed25519_secretkeybytes=()=>(B._crypto_sign_ed25519_secretkeybytes=P.Gg)(),B._crypto_sign_ed25519_messagebytes_max=()=>(B._crypto_sign_ed25519_messagebytes_max=P.Hg)(),B._crypto_sign_ed25519_sk_to_seed=(A,I)=>(B._crypto_sign_ed25519_sk_to_seed=P.Ig)(A,I),B._crypto_sign_ed25519_sk_to_pk=(A,I)=>(B._crypto_sign_ed25519_sk_to_pk=P.Jg)(A,I),B._crypto_sign_ed25519ph_init=A=>(B._crypto_sign_ed25519ph_init=P.Kg)(A),B._crypto_sign_ed25519ph_update=(A,I,g,C)=>(B._crypto_sign_ed25519ph_update=P.Lg)(A,I,g,C),B._crypto_sign_ed25519ph_final_create=(A,I,g,C)=>(B._crypto_sign_ed25519ph_final_create=P.Mg)(A,I,g,C),B._crypto_sign_ed25519ph_final_verify=(A,I,g)=>(B._crypto_sign_ed25519ph_final_verify=P.Ng)(A,I,g),B._crypto_sign_ed25519_seed_keypair=(A,I,g)=>(B._crypto_sign_ed25519_seed_keypair=P.Og)(A,I,g),B._crypto_sign_ed25519_keypair=(A,I)=>(B._crypto_sign_ed25519_keypair=P.Pg)(A,I),B._crypto_sign_ed25519_pk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_pk_to_curve25519=P.Qg)(A,I),B._crypto_sign_ed25519_sk_to_curve25519=(A,I)=>(B._crypto_sign_ed25519_sk_to_curve25519=P.Rg)(A,I),B._crypto_sign_ed25519_verify_detached=(A,I,g,C,Q)=>(B._crypto_sign_ed25519_verify_detached=P.Sg)(A,I,g,C,Q),B._crypto_sign_ed25519_open=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_open=P.Tg)(A,I,g,C,Q,i),B._crypto_sign_ed25519_detached=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519_detached=P.Ug)(A,I,g,C,Q,i),B._crypto_sign_ed25519=(A,I,g,C,Q,i)=>(B._crypto_sign_ed25519=P.Vg)(A,I,g,C,Q,i),B._crypto_stream_chacha20_keybytes=()=>(B._crypto_stream_chacha20_keybytes=P.Wg)(),B._crypto_stream_chacha20_noncebytes=()=>(B._crypto_stream_chacha20_noncebytes=P.Xg)(),B._crypto_stream_chacha20_messagebytes_max=()=>(B._crypto_stream_chacha20_messagebytes_max=P.Yg)(),B._crypto_stream_chacha20_ietf_keybytes=()=>(B._crypto_stream_chacha20_ietf_keybytes=P.Zg)(),B._crypto_stream_chacha20_ietf_noncebytes=()=>(B._crypto_stream_chacha20_ietf_noncebytes=P._g)(),B._crypto_stream_chacha20_ietf_messagebytes_max=()=>(B._crypto_stream_chacha20_ietf_messagebytes_max=P.$g)(),B._crypto_stream_chacha20=(A,I,g,C,Q)=>(B._crypto_stream_chacha20=P.ah)(A,I,g,C,Q),B._crypto_stream_chacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_chacha20_xor_ic=P.bh)(A,I,g,C,Q,i,o,E),B._crypto_stream_chacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_xor=P.ch)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf=(A,I,g,C,Q)=>(B._crypto_stream_chacha20_ietf=P.dh)(A,I,g,C,Q),B._crypto_stream_chacha20_ietf_xor_ic=(A,I,g,C,Q,i,o)=>(B._crypto_stream_chacha20_ietf_xor_ic=P.eh)(A,I,g,C,Q,i,o),B._crypto_stream_chacha20_ietf_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_chacha20_ietf_xor=P.fh)(A,I,g,C,Q,i),B._crypto_stream_chacha20_ietf_keygen=A=>(B._crypto_stream_chacha20_ietf_keygen=P.gh)(A),B._crypto_stream_chacha20_keygen=A=>(B._crypto_stream_chacha20_keygen=P.hh)(A),B._crypto_stream_keybytes=()=>(B._crypto_stream_keybytes=P.ih)(),B._crypto_stream_noncebytes=()=>(B._crypto_stream_noncebytes=P.jh)(),B._crypto_stream_messagebytes_max=()=>(B._crypto_stream_messagebytes_max=P.kh)(),B._crypto_stream_primitive=()=>(B._crypto_stream_primitive=P.lh)(),B._crypto_stream=(A,I,g,C,Q)=>(B._crypto_stream=P.mh)(A,I,g,C,Q),B._crypto_stream_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xor=P.nh)(A,I,g,C,Q,i),B._crypto_stream_keygen=A=>(B._crypto_stream_keygen=P.oh)(A),B._crypto_stream_salsa20_keybytes=()=>(B._crypto_stream_salsa20_keybytes=P.ph)(),B._crypto_stream_salsa20_noncebytes=()=>(B._crypto_stream_salsa20_noncebytes=P.qh)(),B._crypto_stream_salsa20_messagebytes_max=()=>(B._crypto_stream_salsa20_messagebytes_max=P.rh)(),B._crypto_stream_salsa20=(A,I,g,C,Q)=>(B._crypto_stream_salsa20=P.sh)(A,I,g,C,Q),B._crypto_stream_salsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_salsa20_xor_ic=P.th)(A,I,g,C,Q,i,o,E),B._crypto_stream_salsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa20_xor=P.uh)(A,I,g,C,Q,i),B._crypto_stream_salsa20_keygen=A=>(B._crypto_stream_salsa20_keygen=P.vh)(A),B._crypto_stream_xsalsa20=(A,I,g,C,Q)=>(B._crypto_stream_xsalsa20=P.wh)(A,I,g,C,Q),B._crypto_stream_xsalsa20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xsalsa20_xor_ic=P.xh)(A,I,g,C,Q,i,o,E),B._crypto_stream_xsalsa20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xsalsa20_xor=P.yh)(A,I,g,C,Q,i),B._crypto_stream_xsalsa20_keybytes=()=>(B._crypto_stream_xsalsa20_keybytes=P.zh)(),B._crypto_stream_xsalsa20_noncebytes=()=>(B._crypto_stream_xsalsa20_noncebytes=P.Ah)(),B._crypto_stream_xsalsa20_messagebytes_max=()=>(B._crypto_stream_xsalsa20_messagebytes_max=P.Bh)(),B._crypto_stream_xsalsa20_keygen=A=>(B._crypto_stream_xsalsa20_keygen=P.Ch)(A),B._crypto_verify_16_bytes=()=>(B._crypto_verify_16_bytes=P.Dh)(),B._crypto_verify_32_bytes=()=>(B._crypto_verify_32_bytes=P.Eh)(),B._crypto_verify_64_bytes=()=>(B._crypto_verify_64_bytes=P.Fh)(),B._crypto_verify_16=(A,I)=>(B._crypto_verify_16=P.Gh)(A,I),B._crypto_verify_32=(A,I)=>(B._crypto_verify_32=P.Hh)(A,I),B._crypto_verify_64=(A,I)=>(B._crypto_verify_64=P.Ih)(A,I),B._randombytes_implementation_name=()=>(B._randombytes_implementation_name=P.Jh)(),B._randombytes_random=()=>(B._randombytes_random=P.Kh)(),B._randombytes_stir=()=>(B._randombytes_stir=P.Lh)(),B._randombytes_uniform=A=>(B._randombytes_uniform=P.Mh)(A),B._randombytes_buf=(A,I)=>(B._randombytes_buf=P.Nh)(A,I),B._randombytes_buf_deterministic=(A,I,g)=>(B._randombytes_buf_deterministic=P.Oh)(A,I,g),B._randombytes_seedbytes=()=>(B._randombytes_seedbytes=P.Ph)(),B._randombytes_close=()=>(B._randombytes_close=P.Qh)(),B._randombytes=(A,I,g)=>(B._randombytes=P.Rh)(A,I,g),B._sodium_bin2hex=(A,I,g,C)=>(B._sodium_bin2hex=P.Sh)(A,I,g,C),B._sodium_hex2bin=(A,I,g,C,Q,i,o)=>(B._sodium_hex2bin=P.Th)(A,I,g,C,Q,i,o),B._sodium_base64_encoded_len=(A,I)=>(B._sodium_base64_encoded_len=P.Uh)(A,I),B._sodium_bin2base64=(A,I,g,C,Q)=>(B._sodium_bin2base64=P.Vh)(A,I,g,C,Q),B._sodium_base642bin=(A,I,g,C,Q,i,o,E)=>(B._sodium_base642bin=P.Wh)(A,I,g,C,Q,i,o,E),B._sodium_init=()=>(B._sodium_init=P.Xh)(),B._sodium_pad=(A,I,g,C,Q)=>(B._sodium_pad=P.Yh)(A,I,g,C,Q),B._sodium_unpad=(A,I,g,C)=>(B._sodium_unpad=P.Zh)(A,I,g,C),B._sodium_version_string=()=>(B._sodium_version_string=P._h)(),B._sodium_library_version_major=()=>(B._sodium_library_version_major=P.$h)(),B._sodium_library_version_minor=()=>(B._sodium_library_version_minor=P.ai)(),B._sodium_library_minimal=()=>(B._sodium_library_minimal=P.bi)(),B._crypto_box_curve25519xchacha20poly1305_seed_keypair=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_seed_keypair=P.ci)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_keypair=(A,I)=>(B._crypto_box_curve25519xchacha20poly1305_keypair=P.di)(A,I),B._crypto_box_curve25519xchacha20poly1305_beforenm=(A,I,g)=>(B._crypto_box_curve25519xchacha20poly1305_beforenm=P.ei)(A,I,g),B._crypto_box_curve25519xchacha20poly1305_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_detached_afternm=P.fi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_detached=P.gi)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_easy_afternm=P.hi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_easy=P.ii)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached_afternm=P.ji)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o,E)=>(B._crypto_box_curve25519xchacha20poly1305_open_detached=P.ki)(A,I,g,C,Q,i,o,E),B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy_afternm=P.li)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_open_easy=(A,I,g,C,Q,i,o)=>(B._crypto_box_curve25519xchacha20poly1305_open_easy=P.mi)(A,I,g,C,Q,i,o),B._crypto_box_curve25519xchacha20poly1305_seedbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_seedbytes=P.ni)(),B._crypto_box_curve25519xchacha20poly1305_publickeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_publickeybytes=P.oi)(),B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=()=>(B._crypto_box_curve25519xchacha20poly1305_secretkeybytes=P.pi)(),B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_beforenmbytes=P.qi)(),B._crypto_box_curve25519xchacha20poly1305_noncebytes=()=>(B._crypto_box_curve25519xchacha20poly1305_noncebytes=P.ri)(),B._crypto_box_curve25519xchacha20poly1305_macbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_macbytes=P.si)(),B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=()=>(B._crypto_box_curve25519xchacha20poly1305_messagebytes_max=P.ti)(),B._crypto_box_curve25519xchacha20poly1305_seal=(A,I,g,C,Q)=>(B._crypto_box_curve25519xchacha20poly1305_seal=P.ui)(A,I,g,C,Q),B._crypto_box_curve25519xchacha20poly1305_seal_open=(A,I,g,C,Q,i)=>(B._crypto_box_curve25519xchacha20poly1305_seal_open=P.vi)(A,I,g,C,Q,i),B._crypto_box_curve25519xchacha20poly1305_sealbytes=()=>(B._crypto_box_curve25519xchacha20poly1305_sealbytes=P.wi)(),B._crypto_core_ed25519_is_valid_point=A=>(B._crypto_core_ed25519_is_valid_point=P.xi)(A),B._crypto_core_ed25519_add=(A,I,g)=>(B._crypto_core_ed25519_add=P.yi)(A,I,g),B._crypto_core_ed25519_sub=(A,I,g)=>(B._crypto_core_ed25519_sub=P.zi)(A,I,g),B._crypto_core_ed25519_from_uniform=(A,I)=>(B._crypto_core_ed25519_from_uniform=P.Ai)(A,I),B._crypto_core_ed25519_random=A=>(B._crypto_core_ed25519_random=P.Bi)(A),B._crypto_core_ed25519_scalar_random=A=>(B._crypto_core_ed25519_scalar_random=P.Ci)(A),B._crypto_core_ed25519_scalar_invert=(A,I)=>(B._crypto_core_ed25519_scalar_invert=P.Di)(A,I),B._crypto_core_ed25519_scalar_negate=(A,I)=>(B._crypto_core_ed25519_scalar_negate=P.Ei)(A,I),B._crypto_core_ed25519_scalar_complement=(A,I)=>(B._crypto_core_ed25519_scalar_complement=P.Fi)(A,I),B._crypto_core_ed25519_scalar_add=(A,I,g)=>(B._crypto_core_ed25519_scalar_add=P.Gi)(A,I,g),B._crypto_core_ed25519_scalar_reduce=(A,I)=>(B._crypto_core_ed25519_scalar_reduce=P.Hi)(A,I),B._crypto_core_ed25519_scalar_sub=(A,I,g)=>(B._crypto_core_ed25519_scalar_sub=P.Ii)(A,I,g),B._crypto_core_ed25519_scalar_mul=(A,I,g)=>(B._crypto_core_ed25519_scalar_mul=P.Ji)(A,I,g),B._crypto_core_ed25519_bytes=()=>(B._crypto_core_ed25519_bytes=P.Ki)(),B._crypto_core_ed25519_nonreducedscalarbytes=()=>(B._crypto_core_ed25519_nonreducedscalarbytes=P.Li)(),B._crypto_core_ed25519_uniformbytes=()=>(B._crypto_core_ed25519_uniformbytes=P.Mi)(),B._crypto_core_ed25519_hashbytes=()=>(B._crypto_core_ed25519_hashbytes=P.Ni)(),B._crypto_core_ed25519_scalarbytes=()=>(B._crypto_core_ed25519_scalarbytes=P.Oi)(),B._crypto_core_ristretto255_is_valid_point=A=>(B._crypto_core_ristretto255_is_valid_point=P.Pi)(A),B._crypto_core_ristretto255_add=(A,I,g)=>(B._crypto_core_ristretto255_add=P.Qi)(A,I,g),B._crypto_core_ristretto255_sub=(A,I,g)=>(B._crypto_core_ristretto255_sub=P.Ri)(A,I,g),B._crypto_core_ristretto255_from_hash=(A,I)=>(B._crypto_core_ristretto255_from_hash=P.Si)(A,I),B._crypto_core_ristretto255_random=A=>(B._crypto_core_ristretto255_random=P.Ti)(A),B._crypto_core_ristretto255_scalar_random=A=>(B._crypto_core_ristretto255_scalar_random=P.Ui)(A),B._crypto_core_ristretto255_scalar_invert=(A,I)=>(B._crypto_core_ristretto255_scalar_invert=P.Vi)(A,I),B._crypto_core_ristretto255_scalar_negate=(A,I)=>(B._crypto_core_ristretto255_scalar_negate=P.Wi)(A,I),B._crypto_core_ristretto255_scalar_complement=(A,I)=>(B._crypto_core_ristretto255_scalar_complement=P.Xi)(A,I),B._crypto_core_ristretto255_scalar_add=(A,I,g)=>(B._crypto_core_ristretto255_scalar_add=P.Yi)(A,I,g),B._crypto_core_ristretto255_scalar_sub=(A,I,g)=>(B._crypto_core_ristretto255_scalar_sub=P.Zi)(A,I,g),B._crypto_core_ristretto255_scalar_mul=(A,I,g)=>(B._crypto_core_ristretto255_scalar_mul=P._i)(A,I,g),B._crypto_core_ristretto255_scalar_reduce=(A,I)=>(B._crypto_core_ristretto255_scalar_reduce=P.$i)(A,I),B._crypto_core_ristretto255_bytes=()=>(B._crypto_core_ristretto255_bytes=P.aj)(),B._crypto_core_ristretto255_nonreducedscalarbytes=()=>(B._crypto_core_ristretto255_nonreducedscalarbytes=P.bj)(),B._crypto_core_ristretto255_hashbytes=()=>(B._crypto_core_ristretto255_hashbytes=P.cj)(),B._crypto_core_ristretto255_scalarbytes=()=>(B._crypto_core_ristretto255_scalarbytes=P.dj)(),B._crypto_pwhash_scryptsalsa208sha256_ll=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256_ll=P.ej)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_bytes_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_min=P.fj)(),B._crypto_pwhash_scryptsalsa208sha256_bytes_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_bytes_max=P.gj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_min=P.hj)(),B._crypto_pwhash_scryptsalsa208sha256_passwd_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_passwd_max=P.ij)(),B._crypto_pwhash_scryptsalsa208sha256_saltbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_saltbytes=P.jj)(),B._crypto_pwhash_scryptsalsa208sha256_strbytes=()=>(B._crypto_pwhash_scryptsalsa208sha256_strbytes=P.kj)(),B._crypto_pwhash_scryptsalsa208sha256_strprefix=()=>(B._crypto_pwhash_scryptsalsa208sha256_strprefix=P.lj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_min=P.mj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_max=P.nj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_min=P.oj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_max=P.pj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_interactive=P.qj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_interactive=P.rj)(),B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_opslimit_sensitive=P.sj)(),B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=()=>(B._crypto_pwhash_scryptsalsa208sha256_memlimit_sensitive=P.tj)(),B._crypto_pwhash_scryptsalsa208sha256=(A,I,g,C,Q,i,o,E,a,_)=>(B._crypto_pwhash_scryptsalsa208sha256=P.uj)(A,I,g,C,Q,i,o,E,a,_),B._crypto_pwhash_scryptsalsa208sha256_str=(A,I,g,C,Q,i,o)=>(B._crypto_pwhash_scryptsalsa208sha256_str=P.vj)(A,I,g,C,Q,i,o),B._crypto_pwhash_scryptsalsa208sha256_str_verify=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_verify=P.wj)(A,I,g,C),B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=(A,I,g,C)=>(B._crypto_pwhash_scryptsalsa208sha256_str_needs_rehash=P.xj)(A,I,g,C),B._crypto_scalarmult_ed25519=(A,I,g)=>(B._crypto_scalarmult_ed25519=P.yj)(A,I,g),B._crypto_scalarmult_ed25519_noclamp=(A,I,g)=>(B._crypto_scalarmult_ed25519_noclamp=P.zj)(A,I,g),B._crypto_scalarmult_ed25519_base=(A,I)=>(B._crypto_scalarmult_ed25519_base=P.Aj)(A,I),B._crypto_scalarmult_ed25519_base_noclamp=(A,I)=>(B._crypto_scalarmult_ed25519_base_noclamp=P.Bj)(A,I),B._crypto_scalarmult_ed25519_bytes=()=>(B._crypto_scalarmult_ed25519_bytes=P.Cj)(),B._crypto_scalarmult_ed25519_scalarbytes=()=>(B._crypto_scalarmult_ed25519_scalarbytes=P.Dj)(),B._crypto_scalarmult_ristretto255=(A,I,g)=>(B._crypto_scalarmult_ristretto255=P.Ej)(A,I,g),B._crypto_scalarmult_ristretto255_base=(A,I)=>(B._crypto_scalarmult_ristretto255_base=P.Fj)(A,I),B._crypto_scalarmult_ristretto255_bytes=()=>(B._crypto_scalarmult_ristretto255_bytes=P.Gj)(),B._crypto_scalarmult_ristretto255_scalarbytes=()=>(B._crypto_scalarmult_ristretto255_scalarbytes=P.Hj)(),B._crypto_secretbox_xchacha20poly1305_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_detached=P.Ij)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_easy=P.Jj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_open_detached=(A,I,g,C,Q,i,o)=>(B._crypto_secretbox_xchacha20poly1305_open_detached=P.Kj)(A,I,g,C,Q,i,o),B._crypto_secretbox_xchacha20poly1305_open_easy=(A,I,g,C,Q,i)=>(B._crypto_secretbox_xchacha20poly1305_open_easy=P.Lj)(A,I,g,C,Q,i),B._crypto_secretbox_xchacha20poly1305_keybytes=()=>(B._crypto_secretbox_xchacha20poly1305_keybytes=P.Mj)(),B._crypto_secretbox_xchacha20poly1305_noncebytes=()=>(B._crypto_secretbox_xchacha20poly1305_noncebytes=P.Nj)(),B._crypto_secretbox_xchacha20poly1305_macbytes=()=>(B._crypto_secretbox_xchacha20poly1305_macbytes=P.Oj)(),B._crypto_secretbox_xchacha20poly1305_messagebytes_max=()=>(B._crypto_secretbox_xchacha20poly1305_messagebytes_max=P.Pj)(),B._crypto_shorthash_siphashx24_bytes=()=>(B._crypto_shorthash_siphashx24_bytes=P.Qj)(),B._crypto_shorthash_siphashx24_keybytes=()=>(B._crypto_shorthash_siphashx24_keybytes=P.Rj)(),B._crypto_shorthash_siphashx24=(A,I,g,C,Q)=>(B._crypto_shorthash_siphashx24=P.Sj)(A,I,g,C,Q),B._crypto_stream_salsa2012=(A,I,g,C,Q)=>(B._crypto_stream_salsa2012=P.Tj)(A,I,g,C,Q),B._crypto_stream_salsa2012_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa2012_xor=P.Uj)(A,I,g,C,Q,i),B._crypto_stream_salsa2012_keybytes=()=>(B._crypto_stream_salsa2012_keybytes=P.Vj)(),B._crypto_stream_salsa2012_noncebytes=()=>(B._crypto_stream_salsa2012_noncebytes=P.Wj)(),B._crypto_stream_salsa2012_messagebytes_max=()=>(B._crypto_stream_salsa2012_messagebytes_max=P.Xj)(),B._crypto_stream_salsa2012_keygen=A=>(B._crypto_stream_salsa2012_keygen=P.Yj)(A),B._crypto_stream_salsa208=(A,I,g,C,Q)=>(B._crypto_stream_salsa208=P.Zj)(A,I,g,C,Q),B._crypto_stream_salsa208_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_salsa208_xor=P._j)(A,I,g,C,Q,i),B._crypto_stream_salsa208_keybytes=()=>(B._crypto_stream_salsa208_keybytes=P.$j)(),B._crypto_stream_salsa208_noncebytes=()=>(B._crypto_stream_salsa208_noncebytes=P.ak)(),B._crypto_stream_salsa208_messagebytes_max=()=>(B._crypto_stream_salsa208_messagebytes_max=P.bk)(),B._crypto_stream_salsa208_keygen=A=>(B._crypto_stream_salsa208_keygen=P.ck)(A),B._crypto_stream_xchacha20_keybytes=()=>(B._crypto_stream_xchacha20_keybytes=P.dk)(),B._crypto_stream_xchacha20_noncebytes=()=>(B._crypto_stream_xchacha20_noncebytes=P.ek)(),B._crypto_stream_xchacha20_messagebytes_max=()=>(B._crypto_stream_xchacha20_messagebytes_max=P.fk)(),B._crypto_stream_xchacha20=(A,I,g,C,Q)=>(B._crypto_stream_xchacha20=P.gk)(A,I,g,C,Q),B._crypto_stream_xchacha20_xor_ic=(A,I,g,C,Q,i,o,E)=>(B._crypto_stream_xchacha20_xor_ic=P.hk)(A,I,g,C,Q,i,o,E),B._crypto_stream_xchacha20_xor=(A,I,g,C,Q,i)=>(B._crypto_stream_xchacha20_xor=P.ik)(A,I,g,C,Q,i),B._crypto_stream_xchacha20_keygen=A=>(B._crypto_stream_xchacha20_keygen=P.jk)(A),B._malloc=A=>(B._malloc=P.kk)(A),B._free=A=>(B._free=P.lk)(A),B.setValue=function(A,I,g=\"i8\"){switch(g.endsWith(\"*\")&&(g=\"*\"),g){case\"i1\":case\"i8\":y[A]=I;break;case\"i16\":h[A>>1]=I;break;case\"i32\":D[A>>2]=I;break;case\"i64\":U(\"to do setValue(i64) use WASM_BIGINT\");case\"float\":p[A>>2]=I;break;case\"double\":w[A>>3]=I;break;case\"*\":f[A>>2]=I;break;default:U(`invalid type for setValue: ${g}`)}},B.getValue=function(A,I=\"i8\"){switch(I.endsWith(\"*\")&&(I=\"*\"),I){case\"i1\":case\"i8\":return y[A];case\"i16\":return h[A>>1];case\"i32\":return D[A>>2];case\"i64\":U(\"to do getValue(i64) use WASM_BIGINT\");case\"float\":return p[A>>2];case\"double\":return w[A>>3];case\"*\":return f[A>>2];default:U(`invalid type for getValue: ${I}`)}},B.UTF8ToString=x,K=function A(){l||q(),l||(K=A)},B.preInit)for(\"function\"==typeof B.preInit&&(B.preInit=[B.preInit]);B.preInit.length>0;)B.preInit.pop()();q()})).catch((function(){return C.useBackupModule()})),I} true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (I),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0}(this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js?");

/***/ }),

/***/ "./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js":
/*!**************************************************************************************!*\
  !*** ./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js ***!
  \**************************************************************************************/
/***/ (function(module, exports, __webpack_require__) {

eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;!function(e){function a(e,a){\"use strict\";var r,t=\"uint8array\",_=a.ready.then((function(){function t(){if(0!==r._sodium_init())throw new Error(\"libsodium was not correctly initialized.\");for(var a=[\"crypto_aead_aegis128l_decrypt\",\"crypto_aead_aegis128l_decrypt_detached\",\"crypto_aead_aegis128l_encrypt\",\"crypto_aead_aegis128l_encrypt_detached\",\"crypto_aead_aegis128l_keygen\",\"crypto_aead_aegis256_decrypt\",\"crypto_aead_aegis256_decrypt_detached\",\"crypto_aead_aegis256_encrypt\",\"crypto_aead_aegis256_encrypt_detached\",\"crypto_aead_aegis256_keygen\",\"crypto_aead_chacha20poly1305_decrypt\",\"crypto_aead_chacha20poly1305_decrypt_detached\",\"crypto_aead_chacha20poly1305_encrypt\",\"crypto_aead_chacha20poly1305_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_decrypt\",\"crypto_aead_chacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_encrypt\",\"crypto_aead_chacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_chacha20poly1305_ietf_keygen\",\"crypto_aead_chacha20poly1305_keygen\",\"crypto_aead_xchacha20poly1305_ietf_decrypt\",\"crypto_aead_xchacha20poly1305_ietf_decrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_encrypt\",\"crypto_aead_xchacha20poly1305_ietf_encrypt_detached\",\"crypto_aead_xchacha20poly1305_ietf_keygen\",\"crypto_auth\",\"crypto_auth_hmacsha256\",\"crypto_auth_hmacsha256_final\",\"crypto_auth_hmacsha256_init\",\"crypto_auth_hmacsha256_keygen\",\"crypto_auth_hmacsha256_update\",\"crypto_auth_hmacsha256_verify\",\"crypto_auth_hmacsha512\",\"crypto_auth_hmacsha512256\",\"crypto_auth_hmacsha512256_final\",\"crypto_auth_hmacsha512256_init\",\"crypto_auth_hmacsha512256_keygen\",\"crypto_auth_hmacsha512256_update\",\"crypto_auth_hmacsha512256_verify\",\"crypto_auth_hmacsha512_final\",\"crypto_auth_hmacsha512_init\",\"crypto_auth_hmacsha512_keygen\",\"crypto_auth_hmacsha512_update\",\"crypto_auth_hmacsha512_verify\",\"crypto_auth_keygen\",\"crypto_auth_verify\",\"crypto_box_beforenm\",\"crypto_box_curve25519xchacha20poly1305_beforenm\",\"crypto_box_curve25519xchacha20poly1305_detached\",\"crypto_box_curve25519xchacha20poly1305_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_easy\",\"crypto_box_curve25519xchacha20poly1305_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_keypair\",\"crypto_box_curve25519xchacha20poly1305_open_detached\",\"crypto_box_curve25519xchacha20poly1305_open_detached_afternm\",\"crypto_box_curve25519xchacha20poly1305_open_easy\",\"crypto_box_curve25519xchacha20poly1305_open_easy_afternm\",\"crypto_box_curve25519xchacha20poly1305_seal\",\"crypto_box_curve25519xchacha20poly1305_seal_open\",\"crypto_box_curve25519xchacha20poly1305_seed_keypair\",\"crypto_box_detached\",\"crypto_box_easy\",\"crypto_box_easy_afternm\",\"crypto_box_keypair\",\"crypto_box_open_detached\",\"crypto_box_open_easy\",\"crypto_box_open_easy_afternm\",\"crypto_box_seal\",\"crypto_box_seal_open\",\"crypto_box_seed_keypair\",\"crypto_core_ed25519_add\",\"crypto_core_ed25519_from_hash\",\"crypto_core_ed25519_from_uniform\",\"crypto_core_ed25519_is_valid_point\",\"crypto_core_ed25519_random\",\"crypto_core_ed25519_scalar_add\",\"crypto_core_ed25519_scalar_complement\",\"crypto_core_ed25519_scalar_invert\",\"crypto_core_ed25519_scalar_mul\",\"crypto_core_ed25519_scalar_negate\",\"crypto_core_ed25519_scalar_random\",\"crypto_core_ed25519_scalar_reduce\",\"crypto_core_ed25519_scalar_sub\",\"crypto_core_ed25519_sub\",\"crypto_core_hchacha20\",\"crypto_core_hsalsa20\",\"crypto_core_ristretto255_add\",\"crypto_core_ristretto255_from_hash\",\"crypto_core_ristretto255_is_valid_point\",\"crypto_core_ristretto255_random\",\"crypto_core_ristretto255_scalar_add\",\"crypto_core_ristretto255_scalar_complement\",\"crypto_core_ristretto255_scalar_invert\",\"crypto_core_ristretto255_scalar_mul\",\"crypto_core_ristretto255_scalar_negate\",\"crypto_core_ristretto255_scalar_random\",\"crypto_core_ristretto255_scalar_reduce\",\"crypto_core_ristretto255_scalar_sub\",\"crypto_core_ristretto255_sub\",\"crypto_generichash\",\"crypto_generichash_blake2b_salt_personal\",\"crypto_generichash_final\",\"crypto_generichash_init\",\"crypto_generichash_keygen\",\"crypto_generichash_update\",\"crypto_hash\",\"crypto_hash_sha256\",\"crypto_hash_sha256_final\",\"crypto_hash_sha256_init\",\"crypto_hash_sha256_update\",\"crypto_hash_sha512\",\"crypto_hash_sha512_final\",\"crypto_hash_sha512_init\",\"crypto_hash_sha512_update\",\"crypto_kdf_derive_from_key\",\"crypto_kdf_keygen\",\"crypto_kx_client_session_keys\",\"crypto_kx_keypair\",\"crypto_kx_seed_keypair\",\"crypto_kx_server_session_keys\",\"crypto_onetimeauth\",\"crypto_onetimeauth_final\",\"crypto_onetimeauth_init\",\"crypto_onetimeauth_keygen\",\"crypto_onetimeauth_update\",\"crypto_onetimeauth_verify\",\"crypto_pwhash\",\"crypto_pwhash_scryptsalsa208sha256\",\"crypto_pwhash_scryptsalsa208sha256_ll\",\"crypto_pwhash_scryptsalsa208sha256_str\",\"crypto_pwhash_scryptsalsa208sha256_str_verify\",\"crypto_pwhash_str\",\"crypto_pwhash_str_needs_rehash\",\"crypto_pwhash_str_verify\",\"crypto_scalarmult\",\"crypto_scalarmult_base\",\"crypto_scalarmult_ed25519\",\"crypto_scalarmult_ed25519_base\",\"crypto_scalarmult_ed25519_base_noclamp\",\"crypto_scalarmult_ed25519_noclamp\",\"crypto_scalarmult_ristretto255\",\"crypto_scalarmult_ristretto255_base\",\"crypto_secretbox_detached\",\"crypto_secretbox_easy\",\"crypto_secretbox_keygen\",\"crypto_secretbox_open_detached\",\"crypto_secretbox_open_easy\",\"crypto_secretstream_xchacha20poly1305_init_pull\",\"crypto_secretstream_xchacha20poly1305_init_push\",\"crypto_secretstream_xchacha20poly1305_keygen\",\"crypto_secretstream_xchacha20poly1305_pull\",\"crypto_secretstream_xchacha20poly1305_push\",\"crypto_secretstream_xchacha20poly1305_rekey\",\"crypto_shorthash\",\"crypto_shorthash_keygen\",\"crypto_shorthash_siphashx24\",\"crypto_sign\",\"crypto_sign_detached\",\"crypto_sign_ed25519_pk_to_curve25519\",\"crypto_sign_ed25519_sk_to_curve25519\",\"crypto_sign_ed25519_sk_to_pk\",\"crypto_sign_ed25519_sk_to_seed\",\"crypto_sign_final_create\",\"crypto_sign_final_verify\",\"crypto_sign_init\",\"crypto_sign_keypair\",\"crypto_sign_open\",\"crypto_sign_seed_keypair\",\"crypto_sign_update\",\"crypto_sign_verify_detached\",\"crypto_stream_chacha20\",\"crypto_stream_chacha20_ietf_xor\",\"crypto_stream_chacha20_ietf_xor_ic\",\"crypto_stream_chacha20_keygen\",\"crypto_stream_chacha20_xor\",\"crypto_stream_chacha20_xor_ic\",\"crypto_stream_keygen\",\"crypto_stream_xchacha20_keygen\",\"crypto_stream_xchacha20_xor\",\"crypto_stream_xchacha20_xor_ic\",\"randombytes_buf\",\"randombytes_buf_deterministic\",\"randombytes_close\",\"randombytes_random\",\"randombytes_set_implementation\",\"randombytes_stir\",\"randombytes_uniform\",\"sodium_version_string\"],t=[x,k,S,T,w,Y,B,A,M,I,K,N,L,O,U,C,P,R,X,G,D,F,V,H,W,q,j,z,J,Q,Z,$,ee,ae,re,te,_e,ne,se,ce,oe,he,pe,ye,ie,le,ue,de,ve,ge,be,fe,me,Ee,xe,ke,Se,Te,we,Ye,Be,Ae,Me,Ie,Ke,Ne,Le,Oe,Ue,Ce,Pe,Re,Xe,Ge,De,Fe,Ve,He,We,qe,je,ze,Je,Qe,Ze,$e,ea,aa,ra,ta,_a,na,sa,ca,oa,ha,pa,ya,ia,la,ua,da,va,ga,ba,fa,ma,Ea,xa,ka,Sa,Ta,wa,Ya,Ba,Aa,Ma,Ia,Ka,Na,La,Oa,Ua,Ca,Pa,Ra,Xa,Ga,Da,Fa,Va,Ha,Wa,qa,ja,za,Ja,Qa,Za,$a,er,ar,rr,tr,_r,nr,sr,cr,or,hr,pr,yr,ir,lr,ur,dr,vr,gr,br,fr,mr,Er,xr,kr,Sr,Tr,wr,Yr,Br,Ar,Mr,Ir,Kr,Nr,Lr,Or,Ur,Cr,Pr,Rr,Xr,Gr,Dr,Fr,Vr,Hr,Wr,qr],_=0;_<t.length;_++)\"function\"==typeof r[\"_\"+a[_]]&&(e[a[_]]=t[_]);var n=[\"SODIUM_LIBRARY_VERSION_MAJOR\",\"SODIUM_LIBRARY_VERSION_MINOR\",\"crypto_aead_aegis128l_ABYTES\",\"crypto_aead_aegis128l_KEYBYTES\",\"crypto_aead_aegis128l_MESSAGEBYTES_MAX\",\"crypto_aead_aegis128l_NPUBBYTES\",\"crypto_aead_aegis128l_NSECBYTES\",\"crypto_aead_aegis256_ABYTES\",\"crypto_aead_aegis256_KEYBYTES\",\"crypto_aead_aegis256_MESSAGEBYTES_MAX\",\"crypto_aead_aegis256_NPUBBYTES\",\"crypto_aead_aegis256_NSECBYTES\",\"crypto_aead_aes256gcm_ABYTES\",\"crypto_aead_aes256gcm_KEYBYTES\",\"crypto_aead_aes256gcm_MESSAGEBYTES_MAX\",\"crypto_aead_aes256gcm_NPUBBYTES\",\"crypto_aead_aes256gcm_NSECBYTES\",\"crypto_aead_chacha20poly1305_ABYTES\",\"crypto_aead_chacha20poly1305_IETF_ABYTES\",\"crypto_aead_chacha20poly1305_IETF_KEYBYTES\",\"crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX\",\"crypto_aead_chacha20poly1305_IETF_NPUBBYTES\",\"crypto_aead_chacha20poly1305_IETF_NSECBYTES\",\"crypto_aead_chacha20poly1305_KEYBYTES\",\"crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX\",\"crypto_aead_chacha20poly1305_NPUBBYTES\",\"crypto_aead_chacha20poly1305_NSECBYTES\",\"crypto_aead_chacha20poly1305_ietf_ABYTES\",\"crypto_aead_chacha20poly1305_ietf_KEYBYTES\",\"crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX\",\"crypto_aead_chacha20poly1305_ietf_NPUBBYTES\",\"crypto_aead_chacha20poly1305_ietf_NSECBYTES\",\"crypto_aead_xchacha20poly1305_IETF_ABYTES\",\"crypto_aead_xchacha20poly1305_IETF_KEYBYTES\",\"crypto_aead_xchacha20poly1305_IETF_MESSAGEBYTES_MAX\",\"crypto_aead_xchacha20poly1305_IETF_NPUBBYTES\",\"crypto_aead_xchacha20poly1305_IETF_NSECBYTES\",\"crypto_aead_xchacha20poly1305_ietf_ABYTES\",\"crypto_aead_xchacha20poly1305_ietf_KEYBYTES\",\"crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX\",\"crypto_aead_xchacha20poly1305_ietf_NPUBBYTES\",\"crypto_aead_xchacha20poly1305_ietf_NSECBYTES\",\"crypto_auth_BYTES\",\"crypto_auth_KEYBYTES\",\"crypto_auth_hmacsha256_BYTES\",\"crypto_auth_hmacsha256_KEYBYTES\",\"crypto_auth_hmacsha512256_BYTES\",\"crypto_auth_hmacsha512256_KEYBYTES\",\"crypto_auth_hmacsha512_BYTES\",\"crypto_auth_hmacsha512_KEYBYTES\",\"crypto_box_BEFORENMBYTES\",\"crypto_box_MACBYTES\",\"crypto_box_MESSAGEBYTES_MAX\",\"crypto_box_NONCEBYTES\",\"crypto_box_PUBLICKEYBYTES\",\"crypto_box_SEALBYTES\",\"crypto_box_SECRETKEYBYTES\",\"crypto_box_SEEDBYTES\",\"crypto_box_curve25519xchacha20poly1305_BEFORENMBYTES\",\"crypto_box_curve25519xchacha20poly1305_MACBYTES\",\"crypto_box_curve25519xchacha20poly1305_MESSAGEBYTES_MAX\",\"crypto_box_curve25519xchacha20poly1305_NONCEBYTES\",\"crypto_box_curve25519xchacha20poly1305_PUBLICKEYBYTES\",\"crypto_box_curve25519xchacha20poly1305_SEALBYTES\",\"crypto_box_curve25519xchacha20poly1305_SECRETKEYBYTES\",\"crypto_box_curve25519xchacha20poly1305_SEEDBYTES\",\"crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES\",\"crypto_box_curve25519xsalsa20poly1305_MACBYTES\",\"crypto_box_curve25519xsalsa20poly1305_MESSAGEBYTES_MAX\",\"crypto_box_curve25519xsalsa20poly1305_NONCEBYTES\",\"crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES\",\"crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES\",\"crypto_box_curve25519xsalsa20poly1305_SEEDBYTES\",\"crypto_core_ed25519_BYTES\",\"crypto_core_ed25519_HASHBYTES\",\"crypto_core_ed25519_NONREDUCEDSCALARBYTES\",\"crypto_core_ed25519_SCALARBYTES\",\"crypto_core_ed25519_UNIFORMBYTES\",\"crypto_core_hchacha20_CONSTBYTES\",\"crypto_core_hchacha20_INPUTBYTES\",\"crypto_core_hchacha20_KEYBYTES\",\"crypto_core_hchacha20_OUTPUTBYTES\",\"crypto_core_hsalsa20_CONSTBYTES\",\"crypto_core_hsalsa20_INPUTBYTES\",\"crypto_core_hsalsa20_KEYBYTES\",\"crypto_core_hsalsa20_OUTPUTBYTES\",\"crypto_core_ristretto255_BYTES\",\"crypto_core_ristretto255_HASHBYTES\",\"crypto_core_ristretto255_NONREDUCEDSCALARBYTES\",\"crypto_core_ristretto255_SCALARBYTES\",\"crypto_core_salsa2012_CONSTBYTES\",\"crypto_core_salsa2012_INPUTBYTES\",\"crypto_core_salsa2012_KEYBYTES\",\"crypto_core_salsa2012_OUTPUTBYTES\",\"crypto_core_salsa208_CONSTBYTES\",\"crypto_core_salsa208_INPUTBYTES\",\"crypto_core_salsa208_KEYBYTES\",\"crypto_core_salsa208_OUTPUTBYTES\",\"crypto_core_salsa20_CONSTBYTES\",\"crypto_core_salsa20_INPUTBYTES\",\"crypto_core_salsa20_KEYBYTES\",\"crypto_core_salsa20_OUTPUTBYTES\",\"crypto_generichash_BYTES\",\"crypto_generichash_BYTES_MAX\",\"crypto_generichash_BYTES_MIN\",\"crypto_generichash_KEYBYTES\",\"crypto_generichash_KEYBYTES_MAX\",\"crypto_generichash_KEYBYTES_MIN\",\"crypto_generichash_blake2b_BYTES\",\"crypto_generichash_blake2b_BYTES_MAX\",\"crypto_generichash_blake2b_BYTES_MIN\",\"crypto_generichash_blake2b_KEYBYTES\",\"crypto_generichash_blake2b_KEYBYTES_MAX\",\"crypto_generichash_blake2b_KEYBYTES_MIN\",\"crypto_generichash_blake2b_PERSONALBYTES\",\"crypto_generichash_blake2b_SALTBYTES\",\"crypto_hash_BYTES\",\"crypto_hash_sha256_BYTES\",\"crypto_hash_sha512_BYTES\",\"crypto_kdf_BYTES_MAX\",\"crypto_kdf_BYTES_MIN\",\"crypto_kdf_CONTEXTBYTES\",\"crypto_kdf_KEYBYTES\",\"crypto_kdf_blake2b_BYTES_MAX\",\"crypto_kdf_blake2b_BYTES_MIN\",\"crypto_kdf_blake2b_CONTEXTBYTES\",\"crypto_kdf_blake2b_KEYBYTES\",\"crypto_kdf_hkdf_sha256_BYTES_MAX\",\"crypto_kdf_hkdf_sha256_BYTES_MIN\",\"crypto_kdf_hkdf_sha256_KEYBYTES\",\"crypto_kdf_hkdf_sha512_BYTES_MAX\",\"crypto_kdf_hkdf_sha512_BYTES_MIN\",\"crypto_kdf_hkdf_sha512_KEYBYTES\",\"crypto_kx_PUBLICKEYBYTES\",\"crypto_kx_SECRETKEYBYTES\",\"crypto_kx_SEEDBYTES\",\"crypto_kx_SESSIONKEYBYTES\",\"crypto_onetimeauth_BYTES\",\"crypto_onetimeauth_KEYBYTES\",\"crypto_onetimeauth_poly1305_BYTES\",\"crypto_onetimeauth_poly1305_KEYBYTES\",\"crypto_pwhash_ALG_ARGON2I13\",\"crypto_pwhash_ALG_ARGON2ID13\",\"crypto_pwhash_ALG_DEFAULT\",\"crypto_pwhash_BYTES_MAX\",\"crypto_pwhash_BYTES_MIN\",\"crypto_pwhash_MEMLIMIT_INTERACTIVE\",\"crypto_pwhash_MEMLIMIT_MAX\",\"crypto_pwhash_MEMLIMIT_MIN\",\"crypto_pwhash_MEMLIMIT_MODERATE\",\"crypto_pwhash_MEMLIMIT_SENSITIVE\",\"crypto_pwhash_OPSLIMIT_INTERACTIVE\",\"crypto_pwhash_OPSLIMIT_MAX\",\"crypto_pwhash_OPSLIMIT_MIN\",\"crypto_pwhash_OPSLIMIT_MODERATE\",\"crypto_pwhash_OPSLIMIT_SENSITIVE\",\"crypto_pwhash_PASSWD_MAX\",\"crypto_pwhash_PASSWD_MIN\",\"crypto_pwhash_SALTBYTES\",\"crypto_pwhash_STRBYTES\",\"crypto_pwhash_argon2i_BYTES_MAX\",\"crypto_pwhash_argon2i_BYTES_MIN\",\"crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE\",\"crypto_pwhash_argon2i_MEMLIMIT_MAX\",\"crypto_pwhash_argon2i_MEMLIMIT_MIN\",\"crypto_pwhash_argon2i_MEMLIMIT_MODERATE\",\"crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE\",\"crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE\",\"crypto_pwhash_argon2i_OPSLIMIT_MAX\",\"crypto_pwhash_argon2i_OPSLIMIT_MIN\",\"crypto_pwhash_argon2i_OPSLIMIT_MODERATE\",\"crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE\",\"crypto_pwhash_argon2i_PASSWD_MAX\",\"crypto_pwhash_argon2i_PASSWD_MIN\",\"crypto_pwhash_argon2i_SALTBYTES\",\"crypto_pwhash_argon2i_STRBYTES\",\"crypto_pwhash_argon2id_BYTES_MAX\",\"crypto_pwhash_argon2id_BYTES_MIN\",\"crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE\",\"crypto_pwhash_argon2id_MEMLIMIT_MAX\",\"crypto_pwhash_argon2id_MEMLIMIT_MIN\",\"crypto_pwhash_argon2id_MEMLIMIT_MODERATE\",\"crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE\",\"crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE\",\"crypto_pwhash_argon2id_OPSLIMIT_MAX\",\"crypto_pwhash_argon2id_OPSLIMIT_MIN\",\"crypto_pwhash_argon2id_OPSLIMIT_MODERATE\",\"crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE\",\"crypto_pwhash_argon2id_PASSWD_MAX\",\"crypto_pwhash_argon2id_PASSWD_MIN\",\"crypto_pwhash_argon2id_SALTBYTES\",\"crypto_pwhash_argon2id_STRBYTES\",\"crypto_pwhash_scryptsalsa208sha256_BYTES_MAX\",\"crypto_pwhash_scryptsalsa208sha256_BYTES_MIN\",\"crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE\",\"crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX\",\"crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN\",\"crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE\",\"crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE\",\"crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX\",\"crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN\",\"crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE\",\"crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX\",\"crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN\",\"crypto_pwhash_scryptsalsa208sha256_SALTBYTES\",\"crypto_pwhash_scryptsalsa208sha256_STRBYTES\",\"crypto_scalarmult_BYTES\",\"crypto_scalarmult_SCALARBYTES\",\"crypto_scalarmult_curve25519_BYTES\",\"crypto_scalarmult_curve25519_SCALARBYTES\",\"crypto_scalarmult_ed25519_BYTES\",\"crypto_scalarmult_ed25519_SCALARBYTES\",\"crypto_scalarmult_ristretto255_BYTES\",\"crypto_scalarmult_ristretto255_SCALARBYTES\",\"crypto_secretbox_KEYBYTES\",\"crypto_secretbox_MACBYTES\",\"crypto_secretbox_MESSAGEBYTES_MAX\",\"crypto_secretbox_NONCEBYTES\",\"crypto_secretbox_xchacha20poly1305_KEYBYTES\",\"crypto_secretbox_xchacha20poly1305_MACBYTES\",\"crypto_secretbox_xchacha20poly1305_MESSAGEBYTES_MAX\",\"crypto_secretbox_xchacha20poly1305_NONCEBYTES\",\"crypto_secretbox_xsalsa20poly1305_KEYBYTES\",\"crypto_secretbox_xsalsa20poly1305_MACBYTES\",\"crypto_secretbox_xsalsa20poly1305_MESSAGEBYTES_MAX\",\"crypto_secretbox_xsalsa20poly1305_NONCEBYTES\",\"crypto_secretstream_xchacha20poly1305_ABYTES\",\"crypto_secretstream_xchacha20poly1305_HEADERBYTES\",\"crypto_secretstream_xchacha20poly1305_KEYBYTES\",\"crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX\",\"crypto_secretstream_xchacha20poly1305_TAG_FINAL\",\"crypto_secretstream_xchacha20poly1305_TAG_MESSAGE\",\"crypto_secretstream_xchacha20poly1305_TAG_PUSH\",\"crypto_secretstream_xchacha20poly1305_TAG_REKEY\",\"crypto_shorthash_BYTES\",\"crypto_shorthash_KEYBYTES\",\"crypto_shorthash_siphash24_BYTES\",\"crypto_shorthash_siphash24_KEYBYTES\",\"crypto_shorthash_siphashx24_BYTES\",\"crypto_shorthash_siphashx24_KEYBYTES\",\"crypto_sign_BYTES\",\"crypto_sign_MESSAGEBYTES_MAX\",\"crypto_sign_PUBLICKEYBYTES\",\"crypto_sign_SECRETKEYBYTES\",\"crypto_sign_SEEDBYTES\",\"crypto_sign_ed25519_BYTES\",\"crypto_sign_ed25519_MESSAGEBYTES_MAX\",\"crypto_sign_ed25519_PUBLICKEYBYTES\",\"crypto_sign_ed25519_SECRETKEYBYTES\",\"crypto_sign_ed25519_SEEDBYTES\",\"crypto_stream_KEYBYTES\",\"crypto_stream_MESSAGEBYTES_MAX\",\"crypto_stream_NONCEBYTES\",\"crypto_stream_chacha20_IETF_KEYBYTES\",\"crypto_stream_chacha20_IETF_MESSAGEBYTES_MAX\",\"crypto_stream_chacha20_IETF_NONCEBYTES\",\"crypto_stream_chacha20_KEYBYTES\",\"crypto_stream_chacha20_MESSAGEBYTES_MAX\",\"crypto_stream_chacha20_NONCEBYTES\",\"crypto_stream_chacha20_ietf_KEYBYTES\",\"crypto_stream_chacha20_ietf_MESSAGEBYTES_MAX\",\"crypto_stream_chacha20_ietf_NONCEBYTES\",\"crypto_stream_salsa2012_KEYBYTES\",\"crypto_stream_salsa2012_MESSAGEBYTES_MAX\",\"crypto_stream_salsa2012_NONCEBYTES\",\"crypto_stream_salsa208_KEYBYTES\",\"crypto_stream_salsa208_MESSAGEBYTES_MAX\",\"crypto_stream_salsa208_NONCEBYTES\",\"crypto_stream_salsa20_KEYBYTES\",\"crypto_stream_salsa20_MESSAGEBYTES_MAX\",\"crypto_stream_salsa20_NONCEBYTES\",\"crypto_stream_xchacha20_KEYBYTES\",\"crypto_stream_xchacha20_MESSAGEBYTES_MAX\",\"crypto_stream_xchacha20_NONCEBYTES\",\"crypto_stream_xsalsa20_KEYBYTES\",\"crypto_stream_xsalsa20_MESSAGEBYTES_MAX\",\"crypto_stream_xsalsa20_NONCEBYTES\",\"crypto_verify_16_BYTES\",\"crypto_verify_32_BYTES\",\"crypto_verify_64_BYTES\"];for(_=0;_<n.length;_++)\"function\"==typeof(c=r[\"_\"+n[_].toLowerCase()])&&(e[n[_]]=c());var s=[\"SODIUM_VERSION_STRING\",\"crypto_pwhash_STRPREFIX\",\"crypto_pwhash_argon2i_STRPREFIX\",\"crypto_pwhash_argon2id_STRPREFIX\",\"crypto_pwhash_scryptsalsa208sha256_STRPREFIX\"];for(_=0;_<s.length;_++){var c;\"function\"==typeof(c=r[\"_\"+s[_].toLowerCase()])&&(e[s[_]]=r.UTF8ToString(c()))}}r=a;try{t();var _=new Uint8Array([98,97,108,108,115]),n=e.randombytes_buf(e.crypto_secretbox_NONCEBYTES),s=e.randombytes_buf(e.crypto_secretbox_KEYBYTES),c=e.crypto_secretbox_easy(_,n,s),o=e.crypto_secretbox_open_easy(c,n,s);if(e.memcmp(_,o))return}catch(e){if(null==r.useBackupModule)throw new Error(\"Both wasm and asm failed to load\"+e)}r.useBackupModule(),t()}));function n(e){if(\"function\"==typeof TextEncoder)return(new TextEncoder).encode(e);e=unescape(encodeURIComponent(e));for(var a=new Uint8Array(e.length),r=0,t=e.length;r<t;r++)a[r]=e.charCodeAt(r);return a}function s(e){if(\"function\"==typeof TextDecoder)return new TextDecoder(\"utf-8\",{fatal:!0}).decode(e);var a=8192,r=Math.ceil(e.length/a);if(r<=1)try{return decodeURIComponent(escape(String.fromCharCode.apply(null,e)))}catch(e){throw new TypeError(\"The encoded data was not valid.\")}for(var t=\"\",_=0,n=0;n<r;n++){var c=Array.prototype.slice.call(e,n*a+_,(n+1)*a+_);if(0!=c.length){var o,h=c.length,p=0;do{var y=c[--h];y>=240?(p=4,o=!0):y>=224?(p=3,o=!0):y>=192?(p=2,o=!0):y<128&&(p=1,o=!0)}while(!o);for(var i=p-(c.length-h),l=0;l<i;l++)_--,c.pop();t+=s(c)}}return t}function c(e){e=E(null,e,\"input\");for(var a,r,t,_=\"\",n=0;n<e.length;n++)t=87+(r=15&e[n])+(r-10>>8&-39)<<8|87+(a=e[n]>>>4)+(a-10>>8&-39),_+=String.fromCharCode(255&t)+String.fromCharCode(t>>>8);return _}var o={ORIGINAL:1,ORIGINAL_NO_PADDING:3,URLSAFE:5,URLSAFE_NO_PADDING:7};function h(e){if(null==e)return o.URLSAFE_NO_PADDING;if(e!==o.ORIGINAL&&e!==o.ORIGINAL_NO_PADDING&&e!==o.URLSAFE&&e!=o.URLSAFE_NO_PADDING)throw new Error(\"unsupported base64 variant\");return e}function p(e,a){a=h(a),e=E(_,e,\"input\");var t,_=[],n=0|Math.floor(e.length/3),c=e.length-3*n,o=4*n+(0!==c?2&a?2+(c>>>1):4:0),p=new u(o+1),y=d(e);return _.push(y),_.push(p.address),0===r._sodium_bin2base64(p.address,p.length,y,e.length,a)&&b(_,\"conversion failed\"),p.length=o,t=s(p.to_Uint8Array()),g(_),t}function y(e,a){var r=a||t;if(!i(r))throw new Error(r+\" output format is not available\");if(e instanceof u){if(\"uint8array\"===r)return e.to_Uint8Array();if(\"text\"===r)return s(e.to_Uint8Array());if(\"hex\"===r)return c(e.to_Uint8Array());if(\"base64\"===r)return p(e.to_Uint8Array(),o.URLSAFE_NO_PADDING);throw new Error('What is output format \"'+r+'\"?')}if(\"object\"==typeof e){for(var _=Object.keys(e),n={},h=0;h<_.length;h++)n[_[h]]=y(e[_[h]],r);return n}if(\"string\"==typeof e)return e;throw new TypeError(\"Cannot format output\")}function i(e){for(var a=[\"uint8array\",\"text\",\"hex\",\"base64\"],r=0;r<a.length;r++)if(a[r]===e)return!0;return!1}function l(e){if(e){if(\"string\"!=typeof e)throw new TypeError(\"When defined, the output format must be a string\");if(!i(e))throw new Error(e+\" is not a supported output format\")}}function u(e){this.length=e,this.address=v(e)}function d(e){var a=v(e.length);return r.HEAPU8.set(e,a),a}function v(e){var a=r._malloc(e);if(0===a)throw{message:\"_malloc() failed\",length:e};return a}function g(e){if(e)for(var a=0;a<e.length;a++)t=e[a],r._free(t);var t}function b(e,a){throw g(e),new Error(a)}function f(e,a){throw g(e),new TypeError(a)}function m(e,a,r){null==a&&f(e,r+\" cannot be null or undefined\")}function E(e,a,r){return m(e,a,r),a instanceof Uint8Array?a:\"string\"==typeof a?n(a):void f(e,\"unsupported input type for \"+r)}function x(e,a,t,_,n,s){var c=[];l(s);var o=null;null!=e&&(o=d(e=E(c,e,\"secret_nonce\")),e.length,c.push(o)),a=E(c,a,\"ciphertext\");var h,p=r._crypto_aead_aegis128l_abytes(),i=a.length;i<p&&f(c,\"ciphertext is too short\"),h=d(a),c.push(h);var v=null,m=0;null!=t&&(v=d(t=E(c,t,\"additional_data\")),m=t.length,c.push(v)),_=E(c,_,\"public_nonce\");var x,k=0|r._crypto_aead_aegis128l_npubbytes();_.length!==k&&f(c,\"invalid public_nonce length\"),x=d(_),c.push(x),n=E(c,n,\"key\");var S,T=0|r._crypto_aead_aegis128l_keybytes();n.length!==T&&f(c,\"invalid key length\"),S=d(n),c.push(S);var w=new u(i-r._crypto_aead_aegis128l_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_aegis128l_decrypt(Y,null,o,h,i,0,v,m,0,x,S)){var B=y(w,s);return g(c),B}b(c,\"ciphertext cannot be decrypted using that key\")}function k(e,a,t,_,n,s,c){var o=[];l(c);var h=null;null!=e&&(h=d(e=E(o,e,\"secret_nonce\")),e.length,o.push(h));var p=d(a=E(o,a,\"ciphertext\")),i=a.length;o.push(p),t=E(o,t,\"mac\");var v,m=0|r._crypto_box_macbytes();t.length!==m&&f(o,\"invalid mac length\"),v=d(t),o.push(v);var x=null,k=0;null!=_&&(x=d(_=E(o,_,\"additional_data\")),k=_.length,o.push(x)),n=E(o,n,\"public_nonce\");var S,T=0|r._crypto_aead_aegis128l_npubbytes();n.length!==T&&f(o,\"invalid public_nonce length\"),S=d(n),o.push(S),s=E(o,s,\"key\");var w,Y=0|r._crypto_aead_aegis128l_keybytes();s.length!==Y&&f(o,\"invalid key length\"),w=d(s),o.push(w);var B=new u(0|i),A=B.address;if(o.push(A),0===r._crypto_aead_aegis128l_decrypt_detached(A,h,p,i,0,v,x,k,0,S,w)){var M=y(B,c);return g(o),M}b(o,\"ciphertext cannot be decrypted using that key\")}function S(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_aegis128l_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_aegis128l_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(h+r._crypto_aead_aegis128l_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_aegis128l_encrypt(w,null,o,h,0,p,i,0,v,m,k)){var Y=y(T,s);return g(c),Y}b(c,\"invalid usage\")}function T(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_aegis128l_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_aegis128l_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(0|h),w=T.address;c.push(w);var Y=new u(0|r._crypto_aead_aegis128l_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_aegis128l_encrypt_detached(w,B,null,o,h,0,p,i,0,v,m,k)){var A=y({ciphertext:T,mac:Y},s);return g(c),A}b(c,\"invalid usage\")}function w(e){var a=[];l(e);var t=new u(0|r._crypto_aead_aegis128l_keybytes()),_=t.address;a.push(_),r._crypto_aead_aegis128l_keygen(_);var n=y(t,e);return g(a),n}function Y(e,a,t,_,n,s){var c=[];l(s);var o=null;null!=e&&(o=d(e=E(c,e,\"secret_nonce\")),e.length,c.push(o)),a=E(c,a,\"ciphertext\");var h,p=r._crypto_aead_aegis256_abytes(),i=a.length;i<p&&f(c,\"ciphertext is too short\"),h=d(a),c.push(h);var v=null,m=0;null!=t&&(v=d(t=E(c,t,\"additional_data\")),m=t.length,c.push(v)),_=E(c,_,\"public_nonce\");var x,k=0|r._crypto_aead_aegis256_npubbytes();_.length!==k&&f(c,\"invalid public_nonce length\"),x=d(_),c.push(x),n=E(c,n,\"key\");var S,T=0|r._crypto_aead_aegis256_keybytes();n.length!==T&&f(c,\"invalid key length\"),S=d(n),c.push(S);var w=new u(i-r._crypto_aead_aegis256_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_aegis256_decrypt(Y,null,o,h,i,0,v,m,0,x,S)){var B=y(w,s);return g(c),B}b(c,\"ciphertext cannot be decrypted using that key\")}function B(e,a,t,_,n,s,c){var o=[];l(c);var h=null;null!=e&&(h=d(e=E(o,e,\"secret_nonce\")),e.length,o.push(h));var p=d(a=E(o,a,\"ciphertext\")),i=a.length;o.push(p),t=E(o,t,\"mac\");var v,m=0|r._crypto_box_macbytes();t.length!==m&&f(o,\"invalid mac length\"),v=d(t),o.push(v);var x=null,k=0;null!=_&&(x=d(_=E(o,_,\"additional_data\")),k=_.length,o.push(x)),n=E(o,n,\"public_nonce\");var S,T=0|r._crypto_aead_aegis256_npubbytes();n.length!==T&&f(o,\"invalid public_nonce length\"),S=d(n),o.push(S),s=E(o,s,\"key\");var w,Y=0|r._crypto_aead_aegis256_keybytes();s.length!==Y&&f(o,\"invalid key length\"),w=d(s),o.push(w);var B=new u(0|i),A=B.address;if(o.push(A),0===r._crypto_aead_aegis256_decrypt_detached(A,h,p,i,0,v,x,k,0,S,w)){var M=y(B,c);return g(o),M}b(o,\"ciphertext cannot be decrypted using that key\")}function A(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_aegis256_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_aegis256_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(h+r._crypto_aead_aegis256_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_aegis256_encrypt(w,null,o,h,0,p,i,0,v,m,k)){var Y=y(T,s);return g(c),Y}b(c,\"invalid usage\")}function M(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_aegis256_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_aegis256_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(0|h),w=T.address;c.push(w);var Y=new u(0|r._crypto_aead_aegis256_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_aegis256_encrypt_detached(w,B,null,o,h,0,p,i,0,v,m,k)){var A=y({ciphertext:T,mac:Y},s);return g(c),A}b(c,\"invalid usage\")}function I(e){var a=[];l(e);var t=new u(0|r._crypto_aead_aegis256_keybytes()),_=t.address;a.push(_),r._crypto_aead_aegis256_keygen(_);var n=y(t,e);return g(a),n}function K(e,a,t,_,n,s){var c=[];l(s);var o=null;null!=e&&(o=d(e=E(c,e,\"secret_nonce\")),e.length,c.push(o)),a=E(c,a,\"ciphertext\");var h,p=r._crypto_aead_chacha20poly1305_abytes(),i=a.length;i<p&&f(c,\"ciphertext is too short\"),h=d(a),c.push(h);var v=null,m=0;null!=t&&(v=d(t=E(c,t,\"additional_data\")),m=t.length,c.push(v)),_=E(c,_,\"public_nonce\");var x,k=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==k&&f(c,\"invalid public_nonce length\"),x=d(_),c.push(x),n=E(c,n,\"key\");var S,T=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==T&&f(c,\"invalid key length\"),S=d(n),c.push(S);var w=new u(i-r._crypto_aead_chacha20poly1305_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_chacha20poly1305_decrypt(Y,null,o,h,i,0,v,m,0,x,S)){var B=y(w,s);return g(c),B}b(c,\"ciphertext cannot be decrypted using that key\")}function N(e,a,t,_,n,s,c){var o=[];l(c);var h=null;null!=e&&(h=d(e=E(o,e,\"secret_nonce\")),e.length,o.push(h));var p=d(a=E(o,a,\"ciphertext\")),i=a.length;o.push(p),t=E(o,t,\"mac\");var v,m=0|r._crypto_box_macbytes();t.length!==m&&f(o,\"invalid mac length\"),v=d(t),o.push(v);var x=null,k=0;null!=_&&(x=d(_=E(o,_,\"additional_data\")),k=_.length,o.push(x)),n=E(o,n,\"public_nonce\");var S,T=0|r._crypto_aead_chacha20poly1305_npubbytes();n.length!==T&&f(o,\"invalid public_nonce length\"),S=d(n),o.push(S),s=E(o,s,\"key\");var w,Y=0|r._crypto_aead_chacha20poly1305_keybytes();s.length!==Y&&f(o,\"invalid key length\"),w=d(s),o.push(w);var B=new u(0|i),A=B.address;if(o.push(A),0===r._crypto_aead_chacha20poly1305_decrypt_detached(A,h,p,i,0,v,x,k,0,S,w)){var M=y(B,c);return g(o),M}b(o,\"ciphertext cannot be decrypted using that key\")}function L(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(h+r._crypto_aead_chacha20poly1305_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_chacha20poly1305_encrypt(w,null,o,h,0,p,i,0,v,m,k)){var Y=y(T,s);return g(c),Y}b(c,\"invalid usage\")}function O(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_chacha20poly1305_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_chacha20poly1305_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(0|h),w=T.address;c.push(w);var Y=new u(0|r._crypto_aead_chacha20poly1305_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_chacha20poly1305_encrypt_detached(w,B,null,o,h,0,p,i,0,v,m,k)){var A=y({ciphertext:T,mac:Y},s);return g(c),A}b(c,\"invalid usage\")}function U(e,a,t,_,n,s){var c=[];l(s);var o=null;null!=e&&(o=d(e=E(c,e,\"secret_nonce\")),e.length,c.push(o)),a=E(c,a,\"ciphertext\");var h,p=r._crypto_aead_chacha20poly1305_ietf_abytes(),i=a.length;i<p&&f(c,\"ciphertext is too short\"),h=d(a),c.push(h);var v=null,m=0;null!=t&&(v=d(t=E(c,t,\"additional_data\")),m=t.length,c.push(v)),_=E(c,_,\"public_nonce\");var x,k=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==k&&f(c,\"invalid public_nonce length\"),x=d(_),c.push(x),n=E(c,n,\"key\");var S,T=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==T&&f(c,\"invalid key length\"),S=d(n),c.push(S);var w=new u(i-r._crypto_aead_chacha20poly1305_ietf_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_chacha20poly1305_ietf_decrypt(Y,null,o,h,i,0,v,m,0,x,S)){var B=y(w,s);return g(c),B}b(c,\"ciphertext cannot be decrypted using that key\")}function C(e,a,t,_,n,s,c){var o=[];l(c);var h=null;null!=e&&(h=d(e=E(o,e,\"secret_nonce\")),e.length,o.push(h));var p=d(a=E(o,a,\"ciphertext\")),i=a.length;o.push(p),t=E(o,t,\"mac\");var v,m=0|r._crypto_box_macbytes();t.length!==m&&f(o,\"invalid mac length\"),v=d(t),o.push(v);var x=null,k=0;null!=_&&(x=d(_=E(o,_,\"additional_data\")),k=_.length,o.push(x)),n=E(o,n,\"public_nonce\");var S,T=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();n.length!==T&&f(o,\"invalid public_nonce length\"),S=d(n),o.push(S),s=E(o,s,\"key\");var w,Y=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();s.length!==Y&&f(o,\"invalid key length\"),w=d(s),o.push(w);var B=new u(0|i),A=B.address;if(o.push(A),0===r._crypto_aead_chacha20poly1305_ietf_decrypt_detached(A,h,p,i,0,v,x,k,0,S,w)){var M=y(B,c);return g(o),M}b(o,\"ciphertext cannot be decrypted using that key\")}function P(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(h+r._crypto_aead_chacha20poly1305_ietf_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_chacha20poly1305_ietf_encrypt(w,null,o,h,0,p,i,0,v,m,k)){var Y=y(T,s);return g(c),Y}b(c,\"invalid usage\")}function R(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_chacha20poly1305_ietf_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_chacha20poly1305_ietf_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(0|h),w=T.address;c.push(w);var Y=new u(0|r._crypto_aead_chacha20poly1305_ietf_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_chacha20poly1305_ietf_encrypt_detached(w,B,null,o,h,0,p,i,0,v,m,k)){var A=y({ciphertext:T,mac:Y},s);return g(c),A}b(c,\"invalid usage\")}function X(e){var a=[];l(e);var t=new u(0|r._crypto_aead_chacha20poly1305_ietf_keybytes()),_=t.address;a.push(_),r._crypto_aead_chacha20poly1305_ietf_keygen(_);var n=y(t,e);return g(a),n}function G(e){var a=[];l(e);var t=new u(0|r._crypto_aead_chacha20poly1305_keybytes()),_=t.address;a.push(_),r._crypto_aead_chacha20poly1305_keygen(_);var n=y(t,e);return g(a),n}function D(e,a,t,_,n,s){var c=[];l(s);var o=null;null!=e&&(o=d(e=E(c,e,\"secret_nonce\")),e.length,c.push(o)),a=E(c,a,\"ciphertext\");var h,p=r._crypto_aead_xchacha20poly1305_ietf_abytes(),i=a.length;i<p&&f(c,\"ciphertext is too short\"),h=d(a),c.push(h);var v=null,m=0;null!=t&&(v=d(t=E(c,t,\"additional_data\")),m=t.length,c.push(v)),_=E(c,_,\"public_nonce\");var x,k=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==k&&f(c,\"invalid public_nonce length\"),x=d(_),c.push(x),n=E(c,n,\"key\");var S,T=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==T&&f(c,\"invalid key length\"),S=d(n),c.push(S);var w=new u(i-r._crypto_aead_xchacha20poly1305_ietf_abytes()|0),Y=w.address;if(c.push(Y),0===r._crypto_aead_xchacha20poly1305_ietf_decrypt(Y,null,o,h,i,0,v,m,0,x,S)){var B=y(w,s);return g(c),B}b(c,\"ciphertext cannot be decrypted using that key\")}function F(e,a,t,_,n,s,c){var o=[];l(c);var h=null;null!=e&&(h=d(e=E(o,e,\"secret_nonce\")),e.length,o.push(h));var p=d(a=E(o,a,\"ciphertext\")),i=a.length;o.push(p),t=E(o,t,\"mac\");var v,m=0|r._crypto_box_macbytes();t.length!==m&&f(o,\"invalid mac length\"),v=d(t),o.push(v);var x=null,k=0;null!=_&&(x=d(_=E(o,_,\"additional_data\")),k=_.length,o.push(x)),n=E(o,n,\"public_nonce\");var S,T=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();n.length!==T&&f(o,\"invalid public_nonce length\"),S=d(n),o.push(S),s=E(o,s,\"key\");var w,Y=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();s.length!==Y&&f(o,\"invalid key length\"),w=d(s),o.push(w);var B=new u(0|i),A=B.address;if(o.push(A),0===r._crypto_aead_xchacha20poly1305_ietf_decrypt_detached(A,h,p,i,0,v,x,k,0,S,w)){var M=y(B,c);return g(o),M}b(o,\"ciphertext cannot be decrypted using that key\")}function V(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(h+r._crypto_aead_xchacha20poly1305_ietf_abytes()|0),w=T.address;if(c.push(w),0===r._crypto_aead_xchacha20poly1305_ietf_encrypt(w,null,o,h,0,p,i,0,v,m,k)){var Y=y(T,s);return g(c),Y}b(c,\"invalid usage\")}function H(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"message\")),h=e.length;c.push(o);var p=null,i=0;null!=a&&(p=d(a=E(c,a,\"additional_data\")),i=a.length,c.push(p));var v=null;null!=t&&(v=d(t=E(c,t,\"secret_nonce\")),t.length,c.push(v)),_=E(c,_,\"public_nonce\");var m,x=0|r._crypto_aead_xchacha20poly1305_ietf_npubbytes();_.length!==x&&f(c,\"invalid public_nonce length\"),m=d(_),c.push(m),n=E(c,n,\"key\");var k,S=0|r._crypto_aead_xchacha20poly1305_ietf_keybytes();n.length!==S&&f(c,\"invalid key length\"),k=d(n),c.push(k);var T=new u(0|h),w=T.address;c.push(w);var Y=new u(0|r._crypto_aead_xchacha20poly1305_ietf_abytes()),B=Y.address;if(c.push(B),0===r._crypto_aead_xchacha20poly1305_ietf_encrypt_detached(w,B,null,o,h,0,p,i,0,v,m,k)){var A=y({ciphertext:T,mac:Y},s);return g(c),A}b(c,\"invalid usage\")}function W(e){var a=[];l(e);var t=new u(0|r._crypto_aead_xchacha20poly1305_ietf_keybytes()),_=t.address;a.push(_),r._crypto_aead_xchacha20poly1305_ietf_keygen(_);var n=y(t,e);return g(a),n}function q(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_auth_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_auth_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_auth(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function j(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_auth_hmacsha256_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_auth_hmacsha256_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_auth_hmacsha256(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function z(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_auth_hmacsha256_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_auth_hmacsha256_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function J(e,a){var t=[];l(a);var _=null,n=0;null!=e&&(_=d(e=E(t,e,\"key\")),n=e.length,t.push(_));var s=new u(208).address;if(!(0|r._crypto_auth_hmacsha256_init(s,_,n))){var c=s;return g(t),c}b(t,\"invalid usage\")}function Q(e){var a=[];l(e);var t=new u(0|r._crypto_auth_hmacsha256_keybytes()),_=t.address;a.push(_),r._crypto_auth_hmacsha256_keygen(_);var n=y(t,e);return g(a),n}function Z(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_auth_hmacsha256_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function $(e,a,t){var _=[];e=E(_,e,\"tag\");var n,s=0|r._crypto_auth_hmacsha256_bytes();e.length!==s&&f(_,\"invalid tag length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_auth_hmacsha256_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_auth_hmacsha256_verify(n,c,o,0,h));return g(_),y}function ee(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_auth_hmacsha512_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_auth_hmacsha512_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_auth_hmacsha512(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function ae(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_auth_hmacsha512256_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_auth_hmacsha512256_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_auth_hmacsha512256(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function re(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_auth_hmacsha512256_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_auth_hmacsha512256_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function te(e,a){var t=[];l(a);var _=null,n=0;null!=e&&(_=d(e=E(t,e,\"key\")),n=e.length,t.push(_));var s=new u(416).address;if(!(0|r._crypto_auth_hmacsha512256_init(s,_,n))){var c=s;return g(t),c}b(t,\"invalid usage\")}function _e(e){var a=[];l(e);var t=new u(0|r._crypto_auth_hmacsha512256_keybytes()),_=t.address;a.push(_),r._crypto_auth_hmacsha512256_keygen(_);var n=y(t,e);return g(a),n}function ne(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_auth_hmacsha512256_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function se(e,a,t){var _=[];e=E(_,e,\"tag\");var n,s=0|r._crypto_auth_hmacsha512256_bytes();e.length!==s&&f(_,\"invalid tag length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_auth_hmacsha512256_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_auth_hmacsha512256_verify(n,c,o,0,h));return g(_),y}function ce(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_auth_hmacsha512_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_auth_hmacsha512_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function oe(e,a){var t=[];l(a);var _=null,n=0;null!=e&&(_=d(e=E(t,e,\"key\")),n=e.length,t.push(_));var s=new u(416).address;if(!(0|r._crypto_auth_hmacsha512_init(s,_,n))){var c=s;return g(t),c}b(t,\"invalid usage\")}function he(e){var a=[];l(e);var t=new u(0|r._crypto_auth_hmacsha512_keybytes()),_=t.address;a.push(_),r._crypto_auth_hmacsha512_keygen(_);var n=y(t,e);return g(a),n}function pe(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_auth_hmacsha512_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function ye(e,a,t){var _=[];e=E(_,e,\"tag\");var n,s=0|r._crypto_auth_hmacsha512_bytes();e.length!==s&&f(_,\"invalid tag length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_auth_hmacsha512_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_auth_hmacsha512_verify(n,c,o,0,h));return g(_),y}function ie(e){var a=[];l(e);var t=new u(0|r._crypto_auth_keybytes()),_=t.address;a.push(_),r._crypto_auth_keygen(_);var n=y(t,e);return g(a),n}function le(e,a,t){var _=[];e=E(_,e,\"tag\");var n,s=0|r._crypto_auth_bytes();e.length!==s&&f(_,\"invalid tag length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_auth_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_auth_verify(n,c,o,0,h));return g(_),y}function ue(e,a,t){var _=[];l(t),e=E(_,e,\"publicKey\");var n,s=0|r._crypto_box_publickeybytes();e.length!==s&&f(_,\"invalid publicKey length\"),n=d(e),_.push(n),a=E(_,a,\"privateKey\");var c,o=0|r._crypto_box_secretkeybytes();a.length!==o&&f(_,\"invalid privateKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_box_beforenmbytes()),p=h.address;if(_.push(p),!(0|r._crypto_box_beforenm(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function de(e,a,t){var _=[];l(t),e=E(_,e,\"publicKey\");var n,s=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();e.length!==s&&f(_,\"invalid publicKey length\"),n=d(e),_.push(n),a=E(_,a,\"privateKey\");var c,o=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();a.length!==o&&f(_,\"invalid privateKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_box_curve25519xchacha20poly1305_beforenmbytes()),p=h.address;if(_.push(p),!(0|r._crypto_box_curve25519xchacha20poly1305_beforenm(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function ve(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),t=E(s,t,\"publicKey\");var i,v=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();t.length!==v&&f(s,\"invalid publicKey length\"),i=d(t),s.push(i),_=E(s,_,\"privateKey\");var m,x=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();_.length!==x&&f(s,\"invalid privateKey length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;s.push(S);var T=new u(0|r._crypto_box_curve25519xchacha20poly1305_macbytes()),w=T.address;if(s.push(w),!(0|r._crypto_box_curve25519xchacha20poly1305_detached(S,w,c,o,0,h,i,m))){var Y=y({ciphertext:k,mac:T},n);return g(s),Y}b(s,\"invalid usage\")}function ge(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"sharedKey\");var p,i=0|r._crypto_box_curve25519xchacha20poly1305_beforenmbytes();t.length!==i&&f(n,\"invalid sharedKey length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;n.push(m);var x=new u(0|r._crypto_box_curve25519xchacha20poly1305_macbytes()),k=x.address;if(n.push(k),!(0|r._crypto_box_curve25519xchacha20poly1305_detached_afternm(m,k,s,c,0,o,p))){var S=y({ciphertext:v,mac:x},_);return g(n),S}b(n,\"invalid usage\")}function be(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),t=E(s,t,\"publicKey\");var i,v=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();t.length!==v&&f(s,\"invalid publicKey length\"),i=d(t),s.push(i),_=E(s,_,\"privateKey\");var m,x=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();_.length!==x&&f(s,\"invalid privateKey length\"),m=d(_),s.push(m);var k=new u(o+r._crypto_box_curve25519xchacha20poly1305_macbytes()|0),S=k.address;if(s.push(S),!(0|r._crypto_box_curve25519xchacha20poly1305_easy(S,c,o,0,h,i,m))){var T=y(k,n);return g(s),T}b(s,\"invalid usage\")}function fe(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"sharedKey\");var p,i=0|r._crypto_box_curve25519xchacha20poly1305_beforenmbytes();t.length!==i&&f(n,\"invalid sharedKey length\"),p=d(t),n.push(p);var v=new u(c+r._crypto_box_curve25519xchacha20poly1305_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_box_curve25519xchacha20poly1305_easy_afternm(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function me(e){var a=[];l(e);var t=new u(0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes()),s=n.address;a.push(s),r._crypto_box_curve25519xchacha20poly1305_keypair(_,s);var c=y({publicKey:t,privateKey:n,keyType:\"curve25519\"},e);return g(a),c}function Ee(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"ciphertext\")),h=e.length;c.push(o),a=E(c,a,\"mac\");var p,i=0|r._crypto_box_curve25519xchacha20poly1305_macbytes();a.length!==i&&f(c,\"invalid mac length\"),p=d(a),c.push(p),t=E(c,t,\"nonce\");var v,m=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();t.length!==m&&f(c,\"invalid nonce length\"),v=d(t),c.push(v),_=E(c,_,\"publicKey\");var x,k=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();_.length!==k&&f(c,\"invalid publicKey length\"),x=d(_),c.push(x),n=E(c,n,\"privateKey\");var S,T=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();n.length!==T&&f(c,\"invalid privateKey length\"),S=d(n),c.push(S);var w=new u(0|h),Y=w.address;if(c.push(Y),!(0|r._crypto_box_curve25519xchacha20poly1305_open_detached(Y,o,p,h,0,v,x,S))){var B=y(w,s);return g(c),B}b(c,\"incorrect key pair for the given ciphertext\")}function xe(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"ciphertext\")),o=e.length;s.push(c),a=E(s,a,\"mac\");var h,p=0|r._crypto_box_curve25519xchacha20poly1305_macbytes();a.length!==p&&f(s,\"invalid mac length\"),h=d(a),s.push(h),t=E(s,t,\"nonce\");var i,v=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();t.length!==v&&f(s,\"invalid nonce length\"),i=d(t),s.push(i),_=E(s,_,\"sharedKey\");var m,x=0|r._crypto_box_curve25519xchacha20poly1305_beforenmbytes();_.length!==x&&f(s,\"invalid sharedKey length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;if(s.push(S),!(0|r._crypto_box_curve25519xchacha20poly1305_open_detached_afternm(S,c,h,o,0,i,m))){var T=y(k,n);return g(s),T}b(s,\"incorrect secret key for the given ciphertext\")}function ke(e,a,t,_,n){var s=[];l(n),e=E(s,e,\"ciphertext\");var c,o=r._crypto_box_curve25519xchacha20poly1305_macbytes(),h=e.length;h<o&&f(s,\"ciphertext is too short\"),c=d(e),s.push(c),a=E(s,a,\"nonce\");var p,i=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==i&&f(s,\"invalid nonce length\"),p=d(a),s.push(p),t=E(s,t,\"publicKey\");var v,m=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();t.length!==m&&f(s,\"invalid publicKey length\"),v=d(t),s.push(v),_=E(s,_,\"privateKey\");var x,k=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();_.length!==k&&f(s,\"invalid privateKey length\"),x=d(_),s.push(x);var S=new u(h-r._crypto_box_curve25519xchacha20poly1305_macbytes()|0),T=S.address;if(s.push(T),!(0|r._crypto_box_curve25519xchacha20poly1305_open_easy(T,c,h,0,p,v,x))){var w=y(S,n);return g(s),w}b(s,\"incorrect key pair for the given ciphertext\")}function Se(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"ciphertext\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_box_curve25519xchacha20poly1305_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"sharedKey\");var p,i=0|r._crypto_box_curve25519xchacha20poly1305_beforenmbytes();t.length!==i&&f(n,\"invalid sharedKey length\"),p=d(t),n.push(p);var v=new u(c-r._crypto_box_curve25519xchacha20poly1305_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_box_curve25519xchacha20poly1305_open_easy_afternm(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"incorrect secret key for the given ciphertext\")}function Te(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"publicKey\");var c,o=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();a.length!==o&&f(_,\"invalid publicKey length\"),c=d(a),_.push(c);var h=new u(s+r._crypto_box_curve25519xchacha20poly1305_sealbytes()|0),p=h.address;_.push(p),r._crypto_box_curve25519xchacha20poly1305_seal(p,n,s,0,c);var i=y(h,t);return g(_),i}function we(e,a,t,_){var n=[];l(_),e=E(n,e,\"ciphertext\");var s,c=r._crypto_box_curve25519xchacha20poly1305_sealbytes(),o=e.length;o<c&&f(n,\"ciphertext is too short\"),s=d(e),n.push(s),a=E(n,a,\"publicKey\");var h,p=0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes();a.length!==p&&f(n,\"invalid publicKey length\"),h=d(a),n.push(h),t=E(n,t,\"secretKey\");var i,v=0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes();t.length!==v&&f(n,\"invalid secretKey length\"),i=d(t),n.push(i);var b=new u(o-r._crypto_box_curve25519xchacha20poly1305_sealbytes()|0),m=b.address;n.push(m),r._crypto_box_curve25519xchacha20poly1305_seal_open(m,s,o,0,h,i);var x=y(b,_);return g(n),x}function Ye(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_box_curve25519xchacha20poly1305_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_box_curve25519xchacha20poly1305_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_box_curve25519xchacha20poly1305_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_box_curve25519xchacha20poly1305_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"x25519\"};return g(t),p}b(t,\"invalid usage\")}function Be(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_box_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),t=E(s,t,\"publicKey\");var i,v=0|r._crypto_box_publickeybytes();t.length!==v&&f(s,\"invalid publicKey length\"),i=d(t),s.push(i),_=E(s,_,\"privateKey\");var m,x=0|r._crypto_box_secretkeybytes();_.length!==x&&f(s,\"invalid privateKey length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;s.push(S);var T=new u(0|r._crypto_box_macbytes()),w=T.address;if(s.push(w),!(0|r._crypto_box_detached(S,w,c,o,0,h,i,m))){var Y=y({ciphertext:k,mac:T},n);return g(s),Y}b(s,\"invalid usage\")}function Ae(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_box_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),t=E(s,t,\"publicKey\");var i,v=0|r._crypto_box_publickeybytes();t.length!==v&&f(s,\"invalid publicKey length\"),i=d(t),s.push(i),_=E(s,_,\"privateKey\");var m,x=0|r._crypto_box_secretkeybytes();_.length!==x&&f(s,\"invalid privateKey length\"),m=d(_),s.push(m);var k=new u(o+r._crypto_box_macbytes()|0),S=k.address;if(s.push(S),!(0|r._crypto_box_easy(S,c,o,0,h,i,m))){var T=y(k,n);return g(s),T}b(s,\"invalid usage\")}function Me(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_box_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"sharedKey\");var p,i=0|r._crypto_box_beforenmbytes();t.length!==i&&f(n,\"invalid sharedKey length\"),p=d(t),n.push(p);var v=new u(c+r._crypto_box_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_box_easy_afternm(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function Ie(e){var a=[];l(e);var t=new u(0|r._crypto_box_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_box_secretkeybytes()),s=n.address;if(a.push(s),!(0|r._crypto_box_keypair(_,s))){var c={publicKey:y(t,e),privateKey:y(n,e),keyType:\"x25519\"};return g(a),c}b(a,\"internal error\")}function Ke(e,a,t,_,n,s){var c=[];l(s);var o=d(e=E(c,e,\"ciphertext\")),h=e.length;c.push(o),a=E(c,a,\"mac\");var p,i=0|r._crypto_box_macbytes();a.length!==i&&f(c,\"invalid mac length\"),p=d(a),c.push(p),t=E(c,t,\"nonce\");var v,m=0|r._crypto_box_noncebytes();t.length!==m&&f(c,\"invalid nonce length\"),v=d(t),c.push(v),_=E(c,_,\"publicKey\");var x,k=0|r._crypto_box_publickeybytes();_.length!==k&&f(c,\"invalid publicKey length\"),x=d(_),c.push(x),n=E(c,n,\"privateKey\");var S,T=0|r._crypto_box_secretkeybytes();n.length!==T&&f(c,\"invalid privateKey length\"),S=d(n),c.push(S);var w=new u(0|h),Y=w.address;if(c.push(Y),!(0|r._crypto_box_open_detached(Y,o,p,h,0,v,x,S))){var B=y(w,s);return g(c),B}b(c,\"incorrect key pair for the given ciphertext\")}function Ne(e,a,t,_,n){var s=[];l(n),e=E(s,e,\"ciphertext\");var c,o=r._crypto_box_macbytes(),h=e.length;h<o&&f(s,\"ciphertext is too short\"),c=d(e),s.push(c),a=E(s,a,\"nonce\");var p,i=0|r._crypto_box_noncebytes();a.length!==i&&f(s,\"invalid nonce length\"),p=d(a),s.push(p),t=E(s,t,\"publicKey\");var v,m=0|r._crypto_box_publickeybytes();t.length!==m&&f(s,\"invalid publicKey length\"),v=d(t),s.push(v),_=E(s,_,\"privateKey\");var x,k=0|r._crypto_box_secretkeybytes();_.length!==k&&f(s,\"invalid privateKey length\"),x=d(_),s.push(x);var S=new u(h-r._crypto_box_macbytes()|0),T=S.address;if(s.push(T),!(0|r._crypto_box_open_easy(T,c,h,0,p,v,x))){var w=y(S,n);return g(s),w}b(s,\"incorrect key pair for the given ciphertext\")}function Le(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"ciphertext\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_box_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"sharedKey\");var p,i=0|r._crypto_box_beforenmbytes();t.length!==i&&f(n,\"invalid sharedKey length\"),p=d(t),n.push(p);var v=new u(c-r._crypto_box_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_box_open_easy_afternm(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"incorrect secret key for the given ciphertext\")}function Oe(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"publicKey\");var c,o=0|r._crypto_box_publickeybytes();a.length!==o&&f(_,\"invalid publicKey length\"),c=d(a),_.push(c);var h=new u(s+r._crypto_box_sealbytes()|0),p=h.address;if(_.push(p),!(0|r._crypto_box_seal(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function Ue(e,a,t,_){var n=[];l(_),e=E(n,e,\"ciphertext\");var s,c=r._crypto_box_sealbytes(),o=e.length;o<c&&f(n,\"ciphertext is too short\"),s=d(e),n.push(s),a=E(n,a,\"publicKey\");var h,p=0|r._crypto_box_publickeybytes();a.length!==p&&f(n,\"invalid publicKey length\"),h=d(a),n.push(h),t=E(n,t,\"privateKey\");var i,v=0|r._crypto_box_secretkeybytes();t.length!==v&&f(n,\"invalid privateKey length\"),i=d(t),n.push(i);var m=new u(o-r._crypto_box_sealbytes()|0),x=m.address;if(n.push(x),!(0|r._crypto_box_seal_open(x,s,o,0,h,i))){var k=y(m,_);return g(n),k}b(n,\"incorrect key pair for the given ciphertext\")}function Ce(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_box_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_box_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_box_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_box_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"x25519\"};return g(t),p}b(t,\"invalid usage\")}function Pe(e,a,t){var _=[];l(t),e=E(_,e,\"p\");var n,s=0|r._crypto_core_ed25519_bytes();e.length!==s&&f(_,\"invalid p length\"),n=d(e),_.push(n),a=E(_,a,\"q\");var c,o=0|r._crypto_core_ed25519_bytes();a.length!==o&&f(_,\"invalid q length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_core_ed25519_add(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"input is an invalid element\")}function Re(e,a){var t=[];l(a);var _=d(e=E(t,e,\"r\"));e.length,t.push(_);var n=new u(0|r._crypto_core_ed25519_bytes()),s=n.address;if(t.push(s),!(0|r._crypto_core_ed25519_from_hash(s,_))){var c=y(n,a);return g(t),c}b(t,\"invalid usage\")}function Xe(e,a){var t=[];l(a);var _=d(e=E(t,e,\"r\"));e.length,t.push(_);var n=new u(0|r._crypto_core_ed25519_bytes()),s=n.address;if(t.push(s),!(0|r._crypto_core_ed25519_from_uniform(s,_))){var c=y(n,a);return g(t),c}b(t,\"invalid usage\")}function Ge(e,a){var t=[];l(a),e=E(t,e,\"repr\");var _,n=0|r._crypto_core_ed25519_bytes();e.length!==n&&f(t,\"invalid repr length\"),_=d(e),t.push(_);var s=1==(0|r._crypto_core_ed25519_is_valid_point(_));return g(t),s}function De(e){var a=[];l(e);var t=new u(0|r._crypto_core_ed25519_bytes()),_=t.address;a.push(_),r._crypto_core_ed25519_random(_);var n=y(t,e);return g(a),n}function Fe(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ed25519_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ed25519_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ed25519_scalar_add(p,n,c);var i=y(h,t);return g(_),i}function Ve(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ed25519_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ed25519_scalar_complement(c,_);var o=y(s,a);return g(t),o}function He(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ed25519_scalarbytes()),c=s.address;if(t.push(c),!(0|r._crypto_core_ed25519_scalar_invert(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid reciprocate\")}function We(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ed25519_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ed25519_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ed25519_scalar_mul(p,n,c);var i=y(h,t);return g(_),i}function qe(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ed25519_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ed25519_scalar_negate(c,_);var o=y(s,a);return g(t),o}function je(e){var a=[];l(e);var t=new u(0|r._crypto_core_ed25519_scalarbytes()),_=t.address;a.push(_),r._crypto_core_ed25519_scalar_random(_);var n=y(t,e);return g(a),n}function ze(e,a){var t=[];l(a),e=E(t,e,\"sample\");var _,n=0|r._crypto_core_ed25519_nonreducedscalarbytes();e.length!==n&&f(t,\"invalid sample length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ed25519_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ed25519_scalar_reduce(c,_);var o=y(s,a);return g(t),o}function Je(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ed25519_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ed25519_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ed25519_scalar_sub(p,n,c);var i=y(h,t);return g(_),i}function Qe(e,a,t){var _=[];l(t),e=E(_,e,\"p\");var n,s=0|r._crypto_core_ed25519_bytes();e.length!==s&&f(_,\"invalid p length\"),n=d(e),_.push(n),a=E(_,a,\"q\");var c,o=0|r._crypto_core_ed25519_bytes();a.length!==o&&f(_,\"invalid q length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_core_ed25519_sub(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"input is an invalid element\")}function Ze(e,a,t,_){var n=[];l(_),e=E(n,e,\"input\");var s,c=0|r._crypto_core_hchacha20_inputbytes();e.length!==c&&f(n,\"invalid input length\"),s=d(e),n.push(s),a=E(n,a,\"privateKey\");var o,h=0|r._crypto_core_hchacha20_keybytes();a.length!==h&&f(n,\"invalid privateKey length\"),o=d(a),n.push(o);var p=null;null!=t&&(p=d(t=E(n,t,\"constant\")),t.length,n.push(p));var i=new u(0|r._crypto_core_hchacha20_outputbytes()),v=i.address;if(n.push(v),!(0|r._crypto_core_hchacha20(v,s,o,p))){var m=y(i,_);return g(n),m}b(n,\"invalid usage\")}function $e(e,a,t,_){var n=[];l(_),e=E(n,e,\"input\");var s,c=0|r._crypto_core_hsalsa20_inputbytes();e.length!==c&&f(n,\"invalid input length\"),s=d(e),n.push(s),a=E(n,a,\"privateKey\");var o,h=0|r._crypto_core_hsalsa20_keybytes();a.length!==h&&f(n,\"invalid privateKey length\"),o=d(a),n.push(o);var p=null;null!=t&&(p=d(t=E(n,t,\"constant\")),t.length,n.push(p));var i=new u(0|r._crypto_core_hsalsa20_outputbytes()),v=i.address;if(n.push(v),!(0|r._crypto_core_hsalsa20(v,s,o,p))){var m=y(i,_);return g(n),m}b(n,\"invalid usage\")}function ea(e,a,t){var _=[];l(t),e=E(_,e,\"p\");var n,s=0|r._crypto_core_ristretto255_bytes();e.length!==s&&f(_,\"invalid p length\"),n=d(e),_.push(n),a=E(_,a,\"q\");var c,o=0|r._crypto_core_ristretto255_bytes();a.length!==o&&f(_,\"invalid q length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ristretto255_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_core_ristretto255_add(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"input is an invalid element\")}function aa(e,a){var t=[];l(a);var _=d(e=E(t,e,\"r\"));e.length,t.push(_);var n=new u(0|r._crypto_core_ristretto255_bytes()),s=n.address;if(t.push(s),!(0|r._crypto_core_ristretto255_from_hash(s,_))){var c=y(n,a);return g(t),c}b(t,\"invalid usage\")}function ra(e,a){var t=[];l(a),e=E(t,e,\"repr\");var _,n=0|r._crypto_core_ristretto255_bytes();e.length!==n&&f(t,\"invalid repr length\"),_=d(e),t.push(_);var s=1==(0|r._crypto_core_ristretto255_is_valid_point(_));return g(t),s}function ta(e){var a=[];l(e);var t=new u(0|r._crypto_core_ristretto255_bytes()),_=t.address;a.push(_),r._crypto_core_ristretto255_random(_);var n=y(t,e);return g(a),n}function _a(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ristretto255_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ristretto255_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ristretto255_scalar_add(p,n,c);var i=y(h,t);return g(_),i}function na(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ristretto255_scalar_complement(c,_);var o=y(s,a);return g(t),o}function sa(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_scalarbytes()),c=s.address;if(t.push(c),!(0|r._crypto_core_ristretto255_scalar_invert(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid reciprocate\")}function ca(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ristretto255_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ristretto255_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ristretto255_scalar_mul(p,n,c);var i=y(h,t);return g(_),i}function oa(e,a){var t=[];l(a),e=E(t,e,\"s\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid s length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ristretto255_scalar_negate(c,_);var o=y(s,a);return g(t),o}function ha(e){var a=[];l(e);var t=new u(0|r._crypto_core_ristretto255_scalarbytes()),_=t.address;a.push(_),r._crypto_core_ristretto255_scalar_random(_);var n=y(t,e);return g(a),n}function pa(e,a){var t=[];l(a),e=E(t,e,\"sample\");var _,n=0|r._crypto_core_ristretto255_nonreducedscalarbytes();e.length!==n&&f(t,\"invalid sample length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_scalarbytes()),c=s.address;t.push(c),r._crypto_core_ristretto255_scalar_reduce(c,_);var o=y(s,a);return g(t),o}function ya(e,a,t){var _=[];l(t),e=E(_,e,\"x\");var n,s=0|r._crypto_core_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid x length\"),n=d(e),_.push(n),a=E(_,a,\"y\");var c,o=0|r._crypto_core_ristretto255_scalarbytes();a.length!==o&&f(_,\"invalid y length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ristretto255_scalarbytes()),p=h.address;_.push(p),r._crypto_core_ristretto255_scalar_sub(p,n,c);var i=y(h,t);return g(_),i}function ia(e,a,t){var _=[];l(t),e=E(_,e,\"p\");var n,s=0|r._crypto_core_ristretto255_bytes();e.length!==s&&f(_,\"invalid p length\"),n=d(e),_.push(n),a=E(_,a,\"q\");var c,o=0|r._crypto_core_ristretto255_bytes();a.length!==o&&f(_,\"invalid q length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_core_ristretto255_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_core_ristretto255_sub(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"input is an invalid element\")}function la(e,a,t,_){var n=[];l(_),m(n,e,\"hash_length\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(n,\"hash_length must be an unsigned integer\");var s=d(a=E(n,a,\"message\")),c=a.length;n.push(s);var o=null,h=0;null!=t&&(o=d(t=E(n,t,\"key\")),h=t.length,n.push(o));var p=new u(e|=0),i=p.address;if(n.push(i),!(0|r._crypto_generichash(i,e,s,c,0,o,h))){var v=y(p,_);return g(n),v}b(n,\"invalid usage\")}function ua(e,a,t,_,n){var s=[];l(n),m(s,e,\"subkey_len\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(s,\"subkey_len must be an unsigned integer\");var c=null,o=0;null!=a&&(c=d(a=E(s,a,\"key\")),o=a.length,s.push(c));var h=null,p=0;null!=t&&(t=E(s,t,\"id\"),p=0|r._crypto_generichash_blake2b_saltbytes(),t.length!==p&&f(s,\"invalid id length\"),h=d(t),s.push(h));var i=null,v=0;null!=_&&(_=E(s,_,\"ctx\"),v=0|r._crypto_generichash_blake2b_personalbytes(),_.length!==v&&f(s,\"invalid ctx length\"),i=d(_),s.push(i));var x=new u(0|e),k=x.address;if(s.push(k),!(0|r._crypto_generichash_blake2b_salt_personal(k,e,null,0,0,c,o,h,i))){var S=y(x,n);return g(s),S}b(s,\"invalid usage\")}function da(e,a,t){var _=[];l(t),m(_,e,\"state_address\"),m(_,a,\"hash_length\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(_,\"hash_length must be an unsigned integer\");var n=new u(a|=0),s=n.address;if(_.push(s),!(0|r._crypto_generichash_final(e,s,a))){var c=(r._free(e),y(n,t));return g(_),c}b(_,\"invalid usage\")}function va(e,a,t){var _=[];l(t);var n=null,s=0;null!=e&&(n=d(e=E(_,e,\"key\")),s=e.length,_.push(n)),m(_,a,\"hash_length\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(_,\"hash_length must be an unsigned integer\");var c=new u(357).address;if(!(0|r._crypto_generichash_init(c,n,s,a))){var o=c;return g(_),o}b(_,\"invalid usage\")}function ga(e){var a=[];l(e);var t=new u(0|r._crypto_generichash_keybytes()),_=t.address;a.push(_),r._crypto_generichash_keygen(_);var n=y(t,e);return g(a),n}function ba(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_generichash_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function fa(e,a){var t=[];l(a);var _=d(e=E(t,e,\"message\")),n=e.length;t.push(_);var s=new u(0|r._crypto_hash_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_hash(c,_,n,0))){var o=y(s,a);return g(t),o}b(t,\"invalid usage\")}function ma(e,a){var t=[];l(a);var _=d(e=E(t,e,\"message\")),n=e.length;t.push(_);var s=new u(0|r._crypto_hash_sha256_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_hash_sha256(c,_,n,0))){var o=y(s,a);return g(t),o}b(t,\"invalid usage\")}function Ea(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_hash_sha256_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_hash_sha256_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function xa(e){var a=[];l(e);var t=new u(104).address;if(!(0|r._crypto_hash_sha256_init(t))){var _=t;return g(a),_}b(a,\"invalid usage\")}function ka(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_hash_sha256_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function Sa(e,a){var t=[];l(a);var _=d(e=E(t,e,\"message\")),n=e.length;t.push(_);var s=new u(0|r._crypto_hash_sha512_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_hash_sha512(c,_,n,0))){var o=y(s,a);return g(t),o}b(t,\"invalid usage\")}function Ta(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_hash_sha512_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_hash_sha512_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function wa(e){var a=[];l(e);var t=new u(208).address;if(!(0|r._crypto_hash_sha512_init(t))){var _=t;return g(a),_}b(a,\"invalid usage\")}function Ya(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_hash_sha512_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function Ba(e,a,t,_,s){var c=[];l(s),m(c,e,\"subkey_len\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(c,\"subkey_len must be an unsigned integer\"),m(c,a,\"subkey_id\");var o,h=0;if(\"bigint\"==typeof a&&a>=BigInt(0)){const e=a>>BigInt(32);e>BigInt(4294967295)&&f(c,\"subkey_id cannot be more than 64 bits\"),h=Number(e),o=Number(a&BigInt(4294967295))}else\"number\"==typeof a&&(0|a)===a&&a>=0?o=a:f(c,\"subkey_id must be an unsigned integer or bigint\");\"string\"!=typeof t&&f(c,\"ctx must be a string\"),t=n(t+\"\\0\"),null!=i&&t.length-1!==i&&f(c,\"invalid ctx length\");var p=d(t),i=t.length-1;c.push(p),_=E(c,_,\"key\");var v,b=0|r._crypto_kdf_keybytes();_.length!==b&&f(c,\"invalid key length\"),v=d(_),c.push(v);var x=new u(0|e),k=x.address;c.push(k),r._crypto_kdf_derive_from_key(k,e,o,h,p,v);var S=y(x,s);return g(c),S}function Aa(e){var a=[];l(e);var t=new u(0|r._crypto_kdf_keybytes()),_=t.address;a.push(_),r._crypto_kdf_keygen(_);var n=y(t,e);return g(a),n}function Ma(e,a,t,_){var n=[];l(_),e=E(n,e,\"clientPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid clientPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"clientSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid clientSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"serverPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid serverPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_client_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function Ia(e){var a=[];l(e);var t=new u(0|r._crypto_kx_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_kx_secretkeybytes()),s=n.address;if(a.push(s),!(0|r._crypto_kx_keypair(_,s))){var c={publicKey:y(t,e),privateKey:y(n,e),keyType:\"x25519\"};return g(a),c}b(a,\"internal error\")}function Ka(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_kx_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_kx_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_kx_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_kx_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"x25519\"};return g(t),p}b(t,\"internal error\")}function Na(e,a,t,_){var n=[];l(_),e=E(n,e,\"serverPublicKey\");var s,c=0|r._crypto_kx_publickeybytes();e.length!==c&&f(n,\"invalid serverPublicKey length\"),s=d(e),n.push(s),a=E(n,a,\"serverSecretKey\");var o,h=0|r._crypto_kx_secretkeybytes();a.length!==h&&f(n,\"invalid serverSecretKey length\"),o=d(a),n.push(o),t=E(n,t,\"clientPublicKey\");var p,i=0|r._crypto_kx_publickeybytes();t.length!==i&&f(n,\"invalid clientPublicKey length\"),p=d(t),n.push(p);var v=new u(0|r._crypto_kx_sessionkeybytes()),m=v.address;n.push(m);var x=new u(0|r._crypto_kx_sessionkeybytes()),k=x.address;if(n.push(k),!(0|r._crypto_kx_server_session_keys(m,k,s,o,p))){var S=y({sharedRx:v,sharedTx:x},_);return g(n),S}b(n,\"invalid usage\")}function La(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_onetimeauth_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_onetimeauth_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_onetimeauth(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function Oa(e,a){var t=[];l(a),m(t,e,\"state_address\");var _=new u(0|r._crypto_onetimeauth_bytes()),n=_.address;if(t.push(n),!(0|r._crypto_onetimeauth_final(e,n))){var s=(r._free(e),y(_,a));return g(t),s}b(t,\"invalid usage\")}function Ua(e,a){var t=[];l(a);var _=null;null!=e&&(_=d(e=E(t,e,\"key\")),e.length,t.push(_));var n=new u(144).address;if(!(0|r._crypto_onetimeauth_init(n,_))){var s=n;return g(t),s}b(t,\"invalid usage\")}function Ca(e){var a=[];l(e);var t=new u(0|r._crypto_onetimeauth_keybytes()),_=t.address;a.push(_),r._crypto_onetimeauth_keygen(_);var n=y(t,e);return g(a),n}function Pa(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_onetimeauth_update(e,n,s)&&b(_,\"invalid usage\"),g(_)}function Ra(e,a,t){var _=[];e=E(_,e,\"hash\");var n,s=0|r._crypto_onetimeauth_bytes();e.length!==s&&f(_,\"invalid hash length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"key\");var h,p=0|r._crypto_onetimeauth_keybytes();t.length!==p&&f(_,\"invalid key length\"),h=d(t),_.push(h);var y=!(0|r._crypto_onetimeauth_verify(n,c,o,0,h));return g(_),y}function Xa(e,a,t,_,n,s,c){var o=[];l(c),m(o,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(o,\"keyLength must be an unsigned integer\");var h=d(a=E(o,a,\"password\")),p=a.length;o.push(h),t=E(o,t,\"salt\");var i,v=0|r._crypto_pwhash_saltbytes();t.length!==v&&f(o,\"invalid salt length\"),i=d(t),o.push(i),m(o,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"memLimit must be an unsigned integer\"),m(o,s,\"algorithm\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"algorithm must be an unsigned integer\");var x=new u(0|e),k=x.address;if(o.push(k),!(0|r._crypto_pwhash(k,e,0,h,p,0,i,_,0,n,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Ga(e,a,t,_,n,s){var c=[];l(s),m(c,e,\"keyLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(c,\"keyLength must be an unsigned integer\");var o=d(a=E(c,a,\"password\")),h=a.length;c.push(o),t=E(c,t,\"salt\");var p,i=0|r._crypto_pwhash_scryptsalsa208sha256_saltbytes();t.length!==i&&f(c,\"invalid salt length\"),p=d(t),c.push(p),m(c,_,\"opsLimit\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(c,\"opsLimit must be an unsigned integer\"),m(c,n,\"memLimit\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(c,\"memLimit must be an unsigned integer\");var v=new u(0|e),x=v.address;if(c.push(x),!(0|r._crypto_pwhash_scryptsalsa208sha256(x,e,0,o,h,0,p,_,0,n))){var k=y(v,s);return g(c),k}b(c,\"invalid usage\")}function Da(e,a,t,_,n,s,c){var o=[];l(c);var h=d(e=E(o,e,\"password\")),p=e.length;o.push(h);var i=d(a=E(o,a,\"salt\")),v=a.length;o.push(i),m(o,t,\"opsLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(o,\"opsLimit must be an unsigned integer\"),m(o,_,\"r\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(o,\"r must be an unsigned integer\"),m(o,n,\"p\"),(\"number\"!=typeof n||(0|n)!==n||n<0)&&f(o,\"p must be an unsigned integer\"),m(o,s,\"keyLength\"),(\"number\"!=typeof s||(0|s)!==s||s<0)&&f(o,\"keyLength must be an unsigned integer\");var x=new u(0|s),k=x.address;if(o.push(k),!(0|r._crypto_pwhash_scryptsalsa208sha256_ll(h,p,i,v,t,0,_,n,k,s))){var S=y(x,c);return g(o),S}b(o,\"invalid usage\")}function Fa(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_scryptsalsa208sha256_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_scryptsalsa208sha256_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Va(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_scryptsalsa208sha256_str_verify(s,o,h,0));return g(_),p}function Ha(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"password\")),c=e.length;n.push(s),m(n,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(n,\"opsLimit must be an unsigned integer\"),m(n,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(n,\"memLimit must be an unsigned integer\");var o=new u(0|r._crypto_pwhash_strbytes()).address;if(n.push(o),!(0|r._crypto_pwhash_str(o,s,c,0,a,0,t))){var h=r.UTF8ToString(o);return g(n),h}b(n,\"invalid usage\")}function Wa(e,a,t,_){var s=[];l(_),\"string\"!=typeof e&&f(s,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=o&&e.length-1!==o&&f(s,\"invalid hashed_password length\");var c=d(e),o=e.length-1;s.push(c),m(s,a,\"opsLimit\"),(\"number\"!=typeof a||(0|a)!==a||a<0)&&f(s,\"opsLimit must be an unsigned integer\"),m(s,t,\"memLimit\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"memLimit must be an unsigned integer\");var h=!!(0|r._crypto_pwhash_str_needs_rehash(c,a,0,t));return g(s),h}function qa(e,a,t){var _=[];l(t),\"string\"!=typeof e&&f(_,\"hashed_password must be a string\"),e=n(e+\"\\0\"),null!=c&&e.length-1!==c&&f(_,\"invalid hashed_password length\");var s=d(e),c=e.length-1;_.push(s);var o=d(a=E(_,a,\"password\")),h=a.length;_.push(o);var p=!(0|r._crypto_pwhash_str_verify(s,o,h,0));return g(_),p}function ja(e,a,t){var _=[];l(t),e=E(_,e,\"privateKey\");var n,s=0|r._crypto_scalarmult_scalarbytes();e.length!==s&&f(_,\"invalid privateKey length\"),n=d(e),_.push(n),a=E(_,a,\"publicKey\");var c,o=0|r._crypto_scalarmult_bytes();a.length!==o&&f(_,\"invalid publicKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"weak public key\")}function za(e,a){var t=[];l(a),e=E(t,e,\"privateKey\");var _,n=0|r._crypto_scalarmult_scalarbytes();e.length!==n&&f(t,\"invalid privateKey length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"unknown error\")}function Ja(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function Qa(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function Za(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_ed25519_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ed25519_base_noclamp(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function $a(e,a,t){var _=[];l(t),e=E(_,e,\"n\");var n,s=0|r._crypto_scalarmult_ed25519_scalarbytes();e.length!==s&&f(_,\"invalid n length\"),n=d(e),_.push(n),a=E(_,a,\"p\");var c,o=0|r._crypto_scalarmult_ed25519_bytes();a.length!==o&&f(_,\"invalid p length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ed25519_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ed25519_noclamp(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"invalid point or scalar is 0\")}function er(e,a,t){var _=[];l(t),e=E(_,e,\"scalar\");var n,s=0|r._crypto_scalarmult_ristretto255_scalarbytes();e.length!==s&&f(_,\"invalid scalar length\"),n=d(e),_.push(n),a=E(_,a,\"element\");var c,o=0|r._crypto_scalarmult_ristretto255_bytes();a.length!==o&&f(_,\"invalid element length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_scalarmult_ristretto255_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_scalarmult_ristretto255(p,n,c))){var i=y(h,t);return g(_),i}b(_,\"result is identity element\")}function ar(e,a){var t=[];l(a),e=E(t,e,\"scalar\");var _,n=0|r._crypto_core_ristretto255_scalarbytes();e.length!==n&&f(t,\"invalid scalar length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_core_ristretto255_bytes()),c=s.address;if(t.push(c),!(0|r._crypto_scalarmult_ristretto255_base(c,_))){var o=y(s,a);return g(t),o}b(t,\"scalar is 0\")}function rr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;n.push(m);var x=new u(0|r._crypto_secretbox_macbytes()),k=x.address;if(n.push(k),!(0|r._crypto_secretbox_detached(m,k,s,c,0,o,p))){var S=y({mac:x,cipher:v},_);return g(n),S}b(n,\"invalid usage\")}function tr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_secretbox_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_secretbox_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(c+r._crypto_secretbox_macbytes()|0),m=v.address;if(n.push(m),!(0|r._crypto_secretbox_easy(m,s,c,0,o,p))){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function _r(e){var a=[];l(e);var t=new u(0|r._crypto_secretbox_keybytes()),_=t.address;a.push(_),r._crypto_secretbox_keygen(_);var n=y(t,e);return g(a),n}function nr(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"ciphertext\")),o=e.length;s.push(c),a=E(s,a,\"mac\");var h,p=0|r._crypto_secretbox_macbytes();a.length!==p&&f(s,\"invalid mac length\"),h=d(a),s.push(h),t=E(s,t,\"nonce\");var i,v=0|r._crypto_secretbox_noncebytes();t.length!==v&&f(s,\"invalid nonce length\"),i=d(t),s.push(i),_=E(s,_,\"key\");var m,x=0|r._crypto_secretbox_keybytes();_.length!==x&&f(s,\"invalid key length\"),m=d(_),s.push(m);var k=new u(0|o),S=k.address;if(s.push(S),!(0|r._crypto_secretbox_open_detached(S,c,h,o,0,i,m))){var T=y(k,n);return g(s),T}b(s,\"wrong secret key for the given ciphertext\")}function sr(e,a,t,_){var n=[];l(_),e=E(n,e,\"ciphertext\");var s,c=r._crypto_secretbox_macbytes(),o=e.length;o<c&&f(n,\"ciphertext is too short\"),s=d(e),n.push(s),a=E(n,a,\"nonce\");var h,p=0|r._crypto_secretbox_noncebytes();a.length!==p&&f(n,\"invalid nonce length\"),h=d(a),n.push(h),t=E(n,t,\"key\");var i,v=0|r._crypto_secretbox_keybytes();t.length!==v&&f(n,\"invalid key length\"),i=d(t),n.push(i);var m=new u(o-r._crypto_secretbox_macbytes()|0),x=m.address;if(n.push(x),!(0|r._crypto_secretbox_open_easy(x,s,o,0,h,i))){var k=y(m,_);return g(n),k}b(n,\"wrong secret key for the given ciphertext\")}function cr(e,a,t){var _=[];l(t),e=E(_,e,\"header\");var n,s=0|r._crypto_secretstream_xchacha20poly1305_headerbytes();e.length!==s&&f(_,\"invalid header length\"),n=d(e),_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_secretstream_xchacha20poly1305_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(52).address;if(!(0|r._crypto_secretstream_xchacha20poly1305_init_pull(h,n,c))){var p=h;return g(_),p}b(_,\"invalid usage\")}function or(e,a){var t=[];l(a),e=E(t,e,\"key\");var _,n=0|r._crypto_secretstream_xchacha20poly1305_keybytes();e.length!==n&&f(t,\"invalid key length\"),_=d(e),t.push(_);var s=new u(52).address,c=new u(0|r._crypto_secretstream_xchacha20poly1305_headerbytes()),o=c.address;if(t.push(o),!(0|r._crypto_secretstream_xchacha20poly1305_init_push(s,o,_))){var h={state:s,header:y(c,a)};return g(t),h}b(t,\"invalid usage\")}function hr(e){var a=[];l(e);var t=new u(0|r._crypto_secretstream_xchacha20poly1305_keybytes()),_=t.address;a.push(_),r._crypto_secretstream_xchacha20poly1305_keygen(_);var n=y(t,e);return g(a),n}function pr(e,a,t,_){var n=[];l(_),m(n,e,\"state_address\"),a=E(n,a,\"cipher\");var s,c=r._crypto_secretstream_xchacha20poly1305_abytes(),o=a.length;o<c&&f(n,\"cipher is too short\"),s=d(a),n.push(s);var h=null,p=0;null!=t&&(h=d(t=E(n,t,\"ad\")),p=t.length,n.push(h));var i=new u(o-r._crypto_secretstream_xchacha20poly1305_abytes()|0),b=i.address;n.push(b);var x,k=(x=v(1),n.push(x),(k=0===r._crypto_secretstream_xchacha20poly1305_pull(e,b,0,x,s,o,0,h,p)&&{tag:r.HEAPU8[x],message:i})&&{message:y(k.message,_),tag:k.tag});return g(n),k}function yr(e,a,t,_,n){var s=[];l(n),m(s,e,\"state_address\");var c=d(a=E(s,a,\"message_chunk\")),o=a.length;s.push(c);var h=null,p=0;null!=t&&(h=d(t=E(s,t,\"ad\")),p=t.length,s.push(h)),m(s,_,\"tag\"),(\"number\"!=typeof _||(0|_)!==_||_<0)&&f(s,\"tag must be an unsigned integer\");var i=new u(o+r._crypto_secretstream_xchacha20poly1305_abytes()|0),v=i.address;if(s.push(v),!(0|r._crypto_secretstream_xchacha20poly1305_push(e,v,0,c,o,0,h,p,0,_))){var x=y(i,n);return g(s),x}b(s,\"invalid usage\")}function ir(e,a){var t=[];return l(a),m(t,e,\"state_address\"),r._crypto_secretstream_xchacha20poly1305_rekey(e),g(t),!0}function lr(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_shorthash_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_shorthash_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_shorthash(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function ur(e){var a=[];l(e);var t=new u(0|r._crypto_shorthash_keybytes()),_=t.address;a.push(_),r._crypto_shorthash_keygen(_);var n=y(t,e);return g(a),n}function dr(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"key\");var c,o=0|r._crypto_shorthash_siphashx24_keybytes();a.length!==o&&f(_,\"invalid key length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_shorthash_siphashx24_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_shorthash_siphashx24(p,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function vr(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"privateKey\");var c,o=0|r._crypto_sign_secretkeybytes();a.length!==o&&f(_,\"invalid privateKey length\"),c=d(a),_.push(c);var h=new u(e.length+r._crypto_sign_bytes()|0),p=h.address;if(_.push(p),!(0|r._crypto_sign(p,null,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function gr(e,a,t){var _=[];l(t);var n=d(e=E(_,e,\"message\")),s=e.length;_.push(n),a=E(_,a,\"privateKey\");var c,o=0|r._crypto_sign_secretkeybytes();a.length!==o&&f(_,\"invalid privateKey length\"),c=d(a),_.push(c);var h=new u(0|r._crypto_sign_bytes()),p=h.address;if(_.push(p),!(0|r._crypto_sign_detached(p,null,n,s,0,c))){var i=y(h,t);return g(_),i}b(_,\"invalid usage\")}function br(e,a){var t=[];l(a),e=E(t,e,\"edPk\");var _,n=0|r._crypto_sign_publickeybytes();e.length!==n&&f(t,\"invalid edPk length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_scalarbytes()),c=s.address;if(t.push(c),!(0|r._crypto_sign_ed25519_pk_to_curve25519(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid key\")}function fr(e,a){var t=[];l(a),e=E(t,e,\"edSk\");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&f(t,\"invalid edSk length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_scalarmult_scalarbytes()),c=s.address;if(t.push(c),!(0|r._crypto_sign_ed25519_sk_to_curve25519(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid key\")}function mr(e,a){var t=[];l(a),e=E(t,e,\"privateKey\");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&f(t,\"invalid privateKey length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_sign_publickeybytes()),c=s.address;if(t.push(c),!(0|r._crypto_sign_ed25519_sk_to_pk(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid key\")}function Er(e,a){var t=[];l(a),e=E(t,e,\"privateKey\");var _,n=0|r._crypto_sign_secretkeybytes();e.length!==n&&f(t,\"invalid privateKey length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_sign_seedbytes()),c=s.address;if(t.push(c),!(0|r._crypto_sign_ed25519_sk_to_seed(c,_))){var o=y(s,a);return g(t),o}b(t,\"invalid key\")}function xr(e,a,t){var _=[];l(t),m(_,e,\"state_address\"),a=E(_,a,\"privateKey\");var n,s=0|r._crypto_sign_secretkeybytes();a.length!==s&&f(_,\"invalid privateKey length\"),n=d(a),_.push(n);var c=new u(0|r._crypto_sign_bytes()),o=c.address;if(_.push(o),!(0|r._crypto_sign_final_create(e,o,null,n))){var h=(r._free(e),y(c,t));return g(_),h}b(_,\"invalid usage\")}function kr(e,a,t,_){var n=[];l(_),m(n,e,\"state_address\"),a=E(n,a,\"signature\");var s,c=0|r._crypto_sign_bytes();a.length!==c&&f(n,\"invalid signature length\"),s=d(a),n.push(s),t=E(n,t,\"publicKey\");var o,h=0|r._crypto_sign_publickeybytes();t.length!==h&&f(n,\"invalid publicKey length\"),o=d(t),n.push(o);var p=!(0|r._crypto_sign_final_verify(e,s,o));return g(n),p}function Sr(e){var a=[];l(e);var t=new u(208).address;if(!(0|r._crypto_sign_init(t))){var _=t;return g(a),_}b(a,\"internal error\")}function Tr(e){var a=[];l(e);var t=new u(0|r._crypto_sign_publickeybytes()),_=t.address;a.push(_);var n=new u(0|r._crypto_sign_secretkeybytes()),s=n.address;if(a.push(s),!(0|r._crypto_sign_keypair(_,s))){var c={publicKey:y(t,e),privateKey:y(n,e),keyType:\"ed25519\"};return g(a),c}b(a,\"internal error\")}function wr(e,a,t){var _=[];l(t),e=E(_,e,\"signedMessage\");var n,s=r._crypto_sign_bytes(),c=e.length;c<s&&f(_,\"signedMessage is too short\"),n=d(e),_.push(n),a=E(_,a,\"publicKey\");var o,h=0|r._crypto_sign_publickeybytes();a.length!==h&&f(_,\"invalid publicKey length\"),o=d(a),_.push(o);var p=new u(c-r._crypto_sign_bytes()|0),i=p.address;if(_.push(i),!(0|r._crypto_sign_open(i,null,n,c,0,o))){var v=y(p,t);return g(_),v}b(_,\"incorrect signature for the given public key\")}function Yr(e,a){var t=[];l(a),e=E(t,e,\"seed\");var _,n=0|r._crypto_sign_seedbytes();e.length!==n&&f(t,\"invalid seed length\"),_=d(e),t.push(_);var s=new u(0|r._crypto_sign_publickeybytes()),c=s.address;t.push(c);var o=new u(0|r._crypto_sign_secretkeybytes()),h=o.address;if(t.push(h),!(0|r._crypto_sign_seed_keypair(c,h,_))){var p={publicKey:y(s,a),privateKey:y(o,a),keyType:\"ed25519\"};return g(t),p}b(t,\"invalid usage\")}function Br(e,a,t){var _=[];l(t),m(_,e,\"state_address\");var n=d(a=E(_,a,\"message_chunk\")),s=a.length;_.push(n),0|r._crypto_sign_update(e,n,s,0)&&b(_,\"invalid usage\"),g(_)}function Ar(e,a,t){var _=[];e=E(_,e,\"signature\");var n,s=0|r._crypto_sign_bytes();e.length!==s&&f(_,\"invalid signature length\"),n=d(e),_.push(n);var c=d(a=E(_,a,\"message\")),o=a.length;_.push(c),t=E(_,t,\"publicKey\");var h,p=0|r._crypto_sign_publickeybytes();t.length!==p&&f(_,\"invalid publicKey length\"),h=d(t),_.push(h);var y=!(0|r._crypto_sign_verify_detached(n,c,o,0,h));return g(_),y}function Mr(e,a,t,_){var n=[];l(_),m(n,e,\"outLength\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(n,\"outLength must be an unsigned integer\"),a=E(n,a,\"key\");var s,c=0|r._crypto_stream_chacha20_keybytes();a.length!==c&&f(n,\"invalid key length\"),s=d(a),n.push(s),t=E(n,t,\"nonce\");var o,h=0|r._crypto_stream_chacha20_noncebytes();t.length!==h&&f(n,\"invalid nonce length\"),o=d(t),n.push(o);var p=new u(0|e),i=p.address;n.push(i),r._crypto_stream_chacha20(i,e,0,o,s);var v=y(p,_);return g(n),v}function Ir(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"input_message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_stream_chacha20_ietf_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_stream_chacha20_ietf_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;if(n.push(m),0===r._crypto_stream_chacha20_ietf_xor(m,s,c,0,o,p)){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function Kr(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"input_message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_stream_chacha20_ietf_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),m(s,t,\"nonce_increment\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"nonce_increment must be an unsigned integer\"),_=E(s,_,\"key\");var i,v=0|r._crypto_stream_chacha20_ietf_keybytes();_.length!==v&&f(s,\"invalid key length\"),i=d(_),s.push(i);var x=new u(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_chacha20_ietf_xor_ic(k,c,o,0,h,t,i)){var S=y(x,n);return g(s),S}b(s,\"invalid usage\")}function Nr(e){var a=[];l(e);var t=new u(0|r._crypto_stream_chacha20_keybytes()),_=t.address;a.push(_),r._crypto_stream_chacha20_keygen(_);var n=y(t,e);return g(a),n}function Lr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"input_message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_stream_chacha20_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_stream_chacha20_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;if(n.push(m),0===r._crypto_stream_chacha20_xor(m,s,c,0,o,p)){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function Or(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"input_message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_stream_chacha20_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),m(s,t,\"nonce_increment\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"nonce_increment must be an unsigned integer\"),_=E(s,_,\"key\");var i,v=0|r._crypto_stream_chacha20_keybytes();_.length!==v&&f(s,\"invalid key length\"),i=d(_),s.push(i);var x=new u(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_chacha20_xor_ic(k,c,o,0,h,t,0,i)){var S=y(x,n);return g(s),S}b(s,\"invalid usage\")}function Ur(e){var a=[];l(e);var t=new u(0|r._crypto_stream_keybytes()),_=t.address;a.push(_),r._crypto_stream_keygen(_);var n=y(t,e);return g(a),n}function Cr(e){var a=[];l(e);var t=new u(0|r._crypto_stream_xchacha20_keybytes()),_=t.address;a.push(_),r._crypto_stream_xchacha20_keygen(_);var n=y(t,e);return g(a),n}function Pr(e,a,t,_){var n=[];l(_);var s=d(e=E(n,e,\"input_message\")),c=e.length;n.push(s),a=E(n,a,\"nonce\");var o,h=0|r._crypto_stream_xchacha20_noncebytes();a.length!==h&&f(n,\"invalid nonce length\"),o=d(a),n.push(o),t=E(n,t,\"key\");var p,i=0|r._crypto_stream_xchacha20_keybytes();t.length!==i&&f(n,\"invalid key length\"),p=d(t),n.push(p);var v=new u(0|c),m=v.address;if(n.push(m),0===r._crypto_stream_xchacha20_xor(m,s,c,0,o,p)){var x=y(v,_);return g(n),x}b(n,\"invalid usage\")}function Rr(e,a,t,_,n){var s=[];l(n);var c=d(e=E(s,e,\"input_message\")),o=e.length;s.push(c),a=E(s,a,\"nonce\");var h,p=0|r._crypto_stream_xchacha20_noncebytes();a.length!==p&&f(s,\"invalid nonce length\"),h=d(a),s.push(h),m(s,t,\"nonce_increment\"),(\"number\"!=typeof t||(0|t)!==t||t<0)&&f(s,\"nonce_increment must be an unsigned integer\"),_=E(s,_,\"key\");var i,v=0|r._crypto_stream_xchacha20_keybytes();_.length!==v&&f(s,\"invalid key length\"),i=d(_),s.push(i);var x=new u(0|o),k=x.address;if(s.push(k),0===r._crypto_stream_xchacha20_xor_ic(k,c,o,0,h,t,0,i)){var S=y(x,n);return g(s),S}b(s,\"invalid usage\")}function Xr(e,a){var t=[];l(a),m(t,e,\"length\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(t,\"length must be an unsigned integer\");var _=new u(0|e),n=_.address;t.push(n),r._randombytes_buf(n,e);var s=y(_,a);return g(t),s}function Gr(e,a,t){var _=[];l(t),m(_,e,\"length\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(_,\"length must be an unsigned integer\"),a=E(_,a,\"seed\");var n,s=0|r._randombytes_seedbytes();a.length!==s&&f(_,\"invalid seed length\"),n=d(a),_.push(n);var c=new u(0|e),o=c.address;_.push(o),r._randombytes_buf_deterministic(o,e,n);var h=y(c,t);return g(_),h}function Dr(e){l(e),r._randombytes_close()}function Fr(e){l(e);var a=r._randombytes_random()>>>0;return g([]),a}function Vr(e,a){var t=[];l(a);for(var _=r._malloc(24),n=0;n<6;n++)r.setValue(_+4*n,r.Runtime.addFunction(e[[\"implementation_name\",\"random\",\"stir\",\"uniform\",\"buf\",\"close\"][n]]),\"i32\");0|r._randombytes_set_implementation(_)&&b(t,\"unsupported implementation\"),g(t)}function Hr(e){l(e),r._randombytes_stir()}function Wr(e,a){var t=[];l(a),m(t,e,\"upper_bound\"),(\"number\"!=typeof e||(0|e)!==e||e<0)&&f(t,\"upper_bound must be an unsigned integer\");var _=r._randombytes_uniform(e)>>>0;return g(t),_}function qr(){var e=r._sodium_version_string(),a=r.UTF8ToString(e);return g([]),a}return u.prototype.to_Uint8Array=function(){var e=new Uint8Array(this.length);return e.set(r.HEAPU8.subarray(this.address,this.address+this.length)),e},e.add=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can added\");var r=e.length,t=0,_=0;if(a.length!=e.length)throw new TypeError(\"Arguments must have the same length\");for(_=0;_<r;_++)t>>=8,t+=e[_]+a[_],e[_]=255&t},e.base64_variants=o,e.compare=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==a.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var r=0,t=1,_=e.length;_-- >0;)r|=a[_]-e[_]>>8&t,t&=(a[_]^e[_])-1>>8;return r+r+t-1},e.from_base64=function(e,a){a=h(a);var t,_=[],n=new u(3*(e=E(_,e,\"input\")).length/4),s=d(e),c=v(4),o=v(4);return _.push(s),_.push(n.address),_.push(n.result_bin_len_p),_.push(n.b64_end_p),0!==r._sodium_base642bin(n.address,n.length,s,e.length,0,c,o,a)&&b(_,\"invalid input\"),r.getValue(o,\"i32\")-s!==e.length&&b(_,\"incomplete input\"),n.length=r.getValue(c,\"i32\"),t=n.to_Uint8Array(),g(_),t},e.from_hex=function(e){var a,t=[],_=new u((e=E(t,e,\"input\")).length/2),n=d(e),s=v(4);return t.push(n),t.push(_.address),t.push(_.hex_end_p),0!==r._sodium_hex2bin(_.address,_.length,n,e.length,0,0,s)&&b(t,\"invalid input\"),r.getValue(s,\"i32\")-n!==e.length&&b(t,\"incomplete input\"),a=_.to_Uint8Array(),g(t),a},e.from_string=n,e.increment=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be incremented\");for(var a=256,r=0,t=e.length;r<t;r++)a>>=8,a+=e[r],e[r]=255&a},e.is_zero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be checked\");for(var a=0,r=0,t=e.length;r<t;r++)a|=e[r];return 0===a},e.libsodium=a,e.memcmp=function(e,a){if(!(e instanceof Uint8Array&&a instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be compared\");if(e.length!==a.length)throw new TypeError(\"Only instances of identical length can be compared\");for(var r=0,t=0,_=e.length;t<_;t++)r|=e[t]^a[t];return 0===r},e.memzero=function(e){if(!(e instanceof Uint8Array))throw new TypeError(\"Only Uint8Array instances can be wiped\");for(var a=0,r=e.length;a<r;a++)e[a]=0},e.output_formats=function(){return[\"uint8array\",\"text\",\"hex\",\"base64\"]},e.pad=function(e,a){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((a|=0)<=0)throw new Error(\"block size must be > 0\");var t,_=[],n=v(4),s=1,c=0,o=0|e.length,h=new u(o+a);_.push(n),_.push(h.address);for(var p=h.address,y=h.address+o+a;p<y;p++)r.HEAPU8[p]=e[c],c+=s=1&~((65535&((o-=s)>>>48|o>>>32|o>>>16|o))-1>>16);return 0!==r._sodium_pad(n,h.address,e.length,a,h.length)&&b(_,\"internal error\"),h.length=r.getValue(n,\"i32\"),t=h.to_Uint8Array(),g(_),t},e.unpad=function(e,a){if(!(e instanceof Uint8Array))throw new TypeError(\"buffer must be a Uint8Array\");if((a|=0)<=0)throw new Error(\"block size must be > 0\");var t=[],_=d(e),n=v(4);return t.push(_),t.push(n),0!==r._sodium_unpad(n,_,e.length,a)&&b(t,\"unsupported/invalid padding\"),e=(e=new Uint8Array(e)).subarray(0,r.getValue(n,\"i32\")),g(t),e},e.ready=_,e.symbols=function(){return Object.keys(e).sort()},e.to_base64=p,e.to_hex=c,e.to_string=s,e}var r=\"object\"==typeof e.sodium&&\"function\"==typeof e.sodium.onload?e.sodium.onload:null; true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports,__webpack_require__(/*! libsodium-sumo */ \"./node_modules/libsodium-sumo/dist/modules-sumo/libsodium-sumo.js\")], __WEBPACK_AMD_DEFINE_FACTORY__ = (a),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):0,r&&e.sodium.ready.then((function(){r(e.sodium)}))}(this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/libsodium-wrappers-sumo/dist/modules-sumo/libsodium-wrappers.js?");

/***/ }),

/***/ "./node_modules/lodash/_DataView.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_DataView.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_DataView.js?");

/***/ }),

/***/ "./node_modules/lodash/_Hash.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/_Hash.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var hashClear = __webpack_require__(/*! ./_hashClear */ \"./node_modules/lodash/_hashClear.js\"),\n    hashDelete = __webpack_require__(/*! ./_hashDelete */ \"./node_modules/lodash/_hashDelete.js\"),\n    hashGet = __webpack_require__(/*! ./_hashGet */ \"./node_modules/lodash/_hashGet.js\"),\n    hashHas = __webpack_require__(/*! ./_hashHas */ \"./node_modules/lodash/_hashHas.js\"),\n    hashSet = __webpack_require__(/*! ./_hashSet */ \"./node_modules/lodash/_hashSet.js\");\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Hash.js?");

/***/ }),

/***/ "./node_modules/lodash/_ListCache.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_ListCache.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var listCacheClear = __webpack_require__(/*! ./_listCacheClear */ \"./node_modules/lodash/_listCacheClear.js\"),\n    listCacheDelete = __webpack_require__(/*! ./_listCacheDelete */ \"./node_modules/lodash/_listCacheDelete.js\"),\n    listCacheGet = __webpack_require__(/*! ./_listCacheGet */ \"./node_modules/lodash/_listCacheGet.js\"),\n    listCacheHas = __webpack_require__(/*! ./_listCacheHas */ \"./node_modules/lodash/_listCacheHas.js\"),\n    listCacheSet = __webpack_require__(/*! ./_listCacheSet */ \"./node_modules/lodash/_listCacheSet.js\");\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_ListCache.js?");

/***/ }),

/***/ "./node_modules/lodash/_Map.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/_Map.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Map.js?");

/***/ }),

/***/ "./node_modules/lodash/_MapCache.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_MapCache.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var mapCacheClear = __webpack_require__(/*! ./_mapCacheClear */ \"./node_modules/lodash/_mapCacheClear.js\"),\n    mapCacheDelete = __webpack_require__(/*! ./_mapCacheDelete */ \"./node_modules/lodash/_mapCacheDelete.js\"),\n    mapCacheGet = __webpack_require__(/*! ./_mapCacheGet */ \"./node_modules/lodash/_mapCacheGet.js\"),\n    mapCacheHas = __webpack_require__(/*! ./_mapCacheHas */ \"./node_modules/lodash/_mapCacheHas.js\"),\n    mapCacheSet = __webpack_require__(/*! ./_mapCacheSet */ \"./node_modules/lodash/_mapCacheSet.js\");\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_MapCache.js?");

/***/ }),

/***/ "./node_modules/lodash/_Promise.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_Promise.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Promise.js?");

/***/ }),

/***/ "./node_modules/lodash/_Set.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/_Set.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Set.js?");

/***/ }),

/***/ "./node_modules/lodash/_SetCache.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_SetCache.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\"),\n    setCacheAdd = __webpack_require__(/*! ./_setCacheAdd */ \"./node_modules/lodash/_setCacheAdd.js\"),\n    setCacheHas = __webpack_require__(/*! ./_setCacheHas */ \"./node_modules/lodash/_setCacheHas.js\");\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_SetCache.js?");

/***/ }),

/***/ "./node_modules/lodash/_Stack.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/_Stack.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    stackClear = __webpack_require__(/*! ./_stackClear */ \"./node_modules/lodash/_stackClear.js\"),\n    stackDelete = __webpack_require__(/*! ./_stackDelete */ \"./node_modules/lodash/_stackDelete.js\"),\n    stackGet = __webpack_require__(/*! ./_stackGet */ \"./node_modules/lodash/_stackGet.js\"),\n    stackHas = __webpack_require__(/*! ./_stackHas */ \"./node_modules/lodash/_stackHas.js\"),\n    stackSet = __webpack_require__(/*! ./_stackSet */ \"./node_modules/lodash/_stackSet.js\");\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Stack.js?");

/***/ }),

/***/ "./node_modules/lodash/_Symbol.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/_Symbol.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Symbol.js?");

/***/ }),

/***/ "./node_modules/lodash/_Uint8Array.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_Uint8Array.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_Uint8Array.js?");

/***/ }),

/***/ "./node_modules/lodash/_WeakMap.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_WeakMap.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\"),\n    root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_WeakMap.js?");

/***/ }),

/***/ "./node_modules/lodash/_apply.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/_apply.js ***!
  \***************************************/
/***/ ((module) => {

eval("/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_apply.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayAggregator.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_arrayAggregator.js ***!
  \*************************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    var value = array[index];\n    setter(accumulator, value, iteratee(value), array);\n  }\n  return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayAggregator.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayEach.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arrayEach.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nmodule.exports = arrayEach;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayEach.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayFilter.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_arrayFilter.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayFilter;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayFilter.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayIncludes.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_arrayIncludes.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIndexOf = __webpack_require__(/*! ./_baseIndexOf */ \"./node_modules/lodash/_baseIndexOf.js\");\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n  var length = array == null ? 0 : array.length;\n  return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayIncludes.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayIncludesWith.js":
/*!***************************************************!*\
  !*** ./node_modules/lodash/_arrayIncludesWith.js ***!
  \***************************************************/
/***/ ((module) => {

eval("/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (comparator(value, array[index])) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arrayIncludesWith;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayIncludesWith.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayLikeKeys.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_arrayLikeKeys.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseTimes = __webpack_require__(/*! ./_baseTimes */ \"./node_modules/lodash/_baseTimes.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = arrayLikeKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayLikeKeys.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayMap.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_arrayMap.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nmodule.exports = arrayMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayMap.js?");

/***/ }),

/***/ "./node_modules/lodash/_arrayPush.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arrayPush.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nmodule.exports = arrayPush;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arrayPush.js?");

/***/ }),

/***/ "./node_modules/lodash/_arraySome.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_arraySome.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nmodule.exports = arraySome;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_arraySome.js?");

/***/ }),

/***/ "./node_modules/lodash/_assignMergeValue.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_assignMergeValue.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignMergeValue;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_assignMergeValue.js?");

/***/ }),

/***/ "./node_modules/lodash/_assignValue.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_assignValue.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignValue;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_assignValue.js?");

/***/ }),

/***/ "./node_modules/lodash/_assocIndexOf.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_assocIndexOf.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\");\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = assocIndexOf;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_assocIndexOf.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseAggregator.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_baseAggregator.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\");\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n  baseEach(collection, function(value, key, collection) {\n    setter(accumulator, value, iteratee(value), collection);\n  });\n  return accumulator;\n}\n\nmodule.exports = baseAggregator;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseAggregator.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseAssignValue.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseAssignValue.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\");\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nmodule.exports = baseAssignValue;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseAssignValue.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseCreate.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseCreate.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nmodule.exports = baseCreate;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseCreate.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseDifference.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_baseDifference.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./node_modules/lodash/_arrayIncludes.js\"),\n    arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ \"./node_modules/lodash/_arrayIncludesWith.js\"),\n    arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      isCommon = true,\n      length = array.length,\n      result = [],\n      valuesLength = values.length;\n\n  if (!length) {\n    return result;\n  }\n  if (iteratee) {\n    values = arrayMap(values, baseUnary(iteratee));\n  }\n  if (comparator) {\n    includes = arrayIncludesWith;\n    isCommon = false;\n  }\n  else if (values.length >= LARGE_ARRAY_SIZE) {\n    includes = cacheHas;\n    isCommon = false;\n    values = new SetCache(values);\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee == null ? value : iteratee(value);\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var valuesIndex = valuesLength;\n      while (valuesIndex--) {\n        if (values[valuesIndex] === computed) {\n          continue outer;\n        }\n      }\n      result.push(value);\n    }\n    else if (!includes(values, computed, comparator)) {\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseDifference;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseDifference.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseEach.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseEach.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseForOwn = __webpack_require__(/*! ./_baseForOwn */ \"./node_modules/lodash/_baseForOwn.js\"),\n    createBaseEach = __webpack_require__(/*! ./_createBaseEach */ \"./node_modules/lodash/_createBaseEach.js\");\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseEach.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseExtremum.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseExtremum.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n  var index = -1,\n      length = array.length;\n\n  while (++index < length) {\n    var value = array[index],\n        current = iteratee(value);\n\n    if (current != null && (computed === undefined\n          ? (current === current && !isSymbol(current))\n          : comparator(current, computed)\n        )) {\n      var computed = current,\n          result = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseExtremum;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseExtremum.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseFindIndex.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_baseFindIndex.js ***!
  \***********************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n  var length = array.length,\n      index = fromIndex + (fromRight ? 1 : -1);\n\n  while ((fromRight ? index-- : ++index < length)) {\n    if (predicate(array[index], index, array)) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = baseFindIndex;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseFindIndex.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseFlatten.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseFlatten.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n    isFlattenable = __webpack_require__(/*! ./_isFlattenable */ \"./node_modules/lodash/_isFlattenable.js\");\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n  var index = -1,\n      length = array.length;\n\n  predicate || (predicate = isFlattenable);\n  result || (result = []);\n\n  while (++index < length) {\n    var value = array[index];\n    if (depth > 0 && predicate(value)) {\n      if (depth > 1) {\n        // Recursively flatten arrays (susceptible to call stack limits).\n        baseFlatten(value, depth - 1, predicate, isStrict, result);\n      } else {\n        arrayPush(result, value);\n      }\n    } else if (!isStrict) {\n      result[result.length] = value;\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseFlatten;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseFlatten.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseFor.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseFor.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var createBaseFor = __webpack_require__(/*! ./_createBaseFor */ \"./node_modules/lodash/_createBaseFor.js\");\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseFor.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseForOwn.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseForOwn.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseFor = __webpack_require__(/*! ./_baseFor */ \"./node_modules/lodash/_baseFor.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseForOwn.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseGet.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseGet.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseGetAllKeys.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_baseGetAllKeys.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayPush = __webpack_require__(/*! ./_arrayPush */ \"./node_modules/lodash/_arrayPush.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseGetAllKeys.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseGetTag.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseGetTag.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    getRawTag = __webpack_require__(/*! ./_getRawTag */ \"./node_modules/lodash/_getRawTag.js\"),\n    objectToString = __webpack_require__(/*! ./_objectToString */ \"./node_modules/lodash/_objectToString.js\");\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseGetTag.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseHasIn.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseHasIn.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseHasIn.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIndexOf.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseIndexOf.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseFindIndex = __webpack_require__(/*! ./_baseFindIndex */ \"./node_modules/lodash/_baseFindIndex.js\"),\n    baseIsNaN = __webpack_require__(/*! ./_baseIsNaN */ \"./node_modules/lodash/_baseIsNaN.js\"),\n    strictIndexOf = __webpack_require__(/*! ./_strictIndexOf */ \"./node_modules/lodash/_strictIndexOf.js\");\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n  return value === value\n    ? strictIndexOf(array, value, fromIndex)\n    : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIndexOf.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsArguments.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseIsArguments.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsArguments.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsEqual.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseIsEqual.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsEqualDeep = __webpack_require__(/*! ./_baseIsEqualDeep */ \"./node_modules/lodash/_baseIsEqualDeep.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsEqual.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsEqualDeep.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseIsEqualDeep.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./node_modules/lodash/_equalArrays.js\"),\n    equalByTag = __webpack_require__(/*! ./_equalByTag */ \"./node_modules/lodash/_equalByTag.js\"),\n    equalObjects = __webpack_require__(/*! ./_equalObjects */ \"./node_modules/lodash/_equalObjects.js\"),\n    getTag = __webpack_require__(/*! ./_getTag */ \"./node_modules/lodash/_getTag.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsEqualDeep.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsMatch.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseIsMatch.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./node_modules/lodash/_baseIsEqual.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nmodule.exports = baseIsMatch;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsMatch.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsNaN.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseIsNaN.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n  return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsNaN.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsNative.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseIsNative.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isMasked = __webpack_require__(/*! ./_isMasked */ \"./node_modules/lodash/_isMasked.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsNative.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIsTypedArray.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_baseIsTypedArray.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIsTypedArray.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseIteratee.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseIteratee.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseMatches = __webpack_require__(/*! ./_baseMatches */ \"./node_modules/lodash/_baseMatches.js\"),\n    baseMatchesProperty = __webpack_require__(/*! ./_baseMatchesProperty */ \"./node_modules/lodash/_baseMatchesProperty.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    property = __webpack_require__(/*! ./property */ \"./node_modules/lodash/property.js\");\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nmodule.exports = baseIteratee;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseIteratee.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseKeys.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseKeys.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n    nativeKeys = __webpack_require__(/*! ./_nativeKeys */ \"./node_modules/lodash/_nativeKeys.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseKeys.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseKeysIn.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseKeysIn.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\"),\n    nativeKeysIn = __webpack_require__(/*! ./_nativeKeysIn */ \"./node_modules/lodash/_nativeKeysIn.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseKeysIn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseKeysIn.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseLt.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/_baseLt.js ***!
  \****************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n *  else `false`.\n */\nfunction baseLt(value, other) {\n  return value < other;\n}\n\nmodule.exports = baseLt;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseLt.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseMap.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseMap.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseEach = __webpack_require__(/*! ./_baseEach */ \"./node_modules/lodash/_baseEach.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nmodule.exports = baseMap;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseMap.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseMatches.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseMatches.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsMatch = __webpack_require__(/*! ./_baseIsMatch */ \"./node_modules/lodash/_baseIsMatch.js\"),\n    getMatchData = __webpack_require__(/*! ./_getMatchData */ \"./node_modules/lodash/_getMatchData.js\"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./node_modules/lodash/_matchesStrictComparable.js\");\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nmodule.exports = baseMatches;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseMatches.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseMatchesProperty.js":
/*!*****************************************************!*\
  !*** ./node_modules/lodash/_baseMatchesProperty.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./node_modules/lodash/_baseIsEqual.js\"),\n    get = __webpack_require__(/*! ./get */ \"./node_modules/lodash/get.js\"),\n    hasIn = __webpack_require__(/*! ./hasIn */ \"./node_modules/lodash/hasIn.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./node_modules/lodash/_isStrictComparable.js\"),\n    matchesStrictComparable = __webpack_require__(/*! ./_matchesStrictComparable */ \"./node_modules/lodash/_matchesStrictComparable.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nmodule.exports = baseMatchesProperty;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseMatchesProperty.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseMerge.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseMerge.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Stack = __webpack_require__(/*! ./_Stack */ \"./node_modules/lodash/_Stack.js\"),\n    assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ \"./node_modules/lodash/_assignMergeValue.js\"),\n    baseFor = __webpack_require__(/*! ./_baseFor */ \"./node_modules/lodash/_baseFor.js\"),\n    baseMergeDeep = __webpack_require__(/*! ./_baseMergeDeep */ \"./node_modules/lodash/_baseMergeDeep.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\"),\n    safeGet = __webpack_require__(/*! ./_safeGet */ \"./node_modules/lodash/_safeGet.js\");\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\nmodule.exports = baseMerge;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseMerge.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseMergeDeep.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_baseMergeDeep.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assignMergeValue = __webpack_require__(/*! ./_assignMergeValue */ \"./node_modules/lodash/_assignMergeValue.js\"),\n    cloneBuffer = __webpack_require__(/*! ./_cloneBuffer */ \"./node_modules/lodash/_cloneBuffer.js\"),\n    cloneTypedArray = __webpack_require__(/*! ./_cloneTypedArray */ \"./node_modules/lodash/_cloneTypedArray.js\"),\n    copyArray = __webpack_require__(/*! ./_copyArray */ \"./node_modules/lodash/_copyArray.js\"),\n    initCloneObject = __webpack_require__(/*! ./_initCloneObject */ \"./node_modules/lodash/_initCloneObject.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ \"./node_modules/lodash/isArrayLikeObject.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isPlainObject = __webpack_require__(/*! ./isPlainObject */ \"./node_modules/lodash/isPlainObject.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\"),\n    safeGet = __webpack_require__(/*! ./_safeGet */ \"./node_modules/lodash/_safeGet.js\"),\n    toPlainObject = __webpack_require__(/*! ./toPlainObject */ \"./node_modules/lodash/toPlainObject.js\");\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseMergeDeep.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseOrderBy.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_baseOrderBy.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    baseMap = __webpack_require__(/*! ./_baseMap */ \"./node_modules/lodash/_baseMap.js\"),\n    baseSortBy = __webpack_require__(/*! ./_baseSortBy */ \"./node_modules/lodash/_baseSortBy.js\"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n    compareMultiple = __webpack_require__(/*! ./_compareMultiple */ \"./node_modules/lodash/_compareMultiple.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n  if (iteratees.length) {\n    iteratees = arrayMap(iteratees, function(iteratee) {\n      if (isArray(iteratee)) {\n        return function(value) {\n          return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n        }\n      }\n      return iteratee;\n    });\n  } else {\n    iteratees = [identity];\n  }\n\n  var index = -1;\n  iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n  var result = baseMap(collection, function(value, key, collection) {\n    var criteria = arrayMap(iteratees, function(iteratee) {\n      return iteratee(value);\n    });\n    return { 'criteria': criteria, 'index': ++index, 'value': value };\n  });\n\n  return baseSortBy(result, function(object, other) {\n    return compareMultiple(object, other, orders);\n  });\n}\n\nmodule.exports = baseOrderBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseOrderBy.js?");

/***/ }),

/***/ "./node_modules/lodash/_basePick.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_basePick.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var basePickBy = __webpack_require__(/*! ./_basePickBy */ \"./node_modules/lodash/_basePickBy.js\"),\n    hasIn = __webpack_require__(/*! ./hasIn */ \"./node_modules/lodash/hasIn.js\");\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n  return basePickBy(object, paths, function(value, path) {\n    return hasIn(object, path);\n  });\n}\n\nmodule.exports = basePick;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_basePick.js?");

/***/ }),

/***/ "./node_modules/lodash/_basePickBy.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_basePickBy.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\"),\n    baseSet = __webpack_require__(/*! ./_baseSet */ \"./node_modules/lodash/_baseSet.js\"),\n    castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\");\n\n/**\n * The base implementation of  `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n  var index = -1,\n      length = paths.length,\n      result = {};\n\n  while (++index < length) {\n    var path = paths[index],\n        value = baseGet(object, path);\n\n    if (predicate(value, path)) {\n      baseSet(result, castPath(path, object), value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = basePickBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_basePickBy.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseProperty.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseProperty.js ***!
  \**********************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nmodule.exports = baseProperty;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseProperty.js?");

/***/ }),

/***/ "./node_modules/lodash/_basePropertyDeep.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_basePropertyDeep.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\");\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nmodule.exports = basePropertyDeep;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_basePropertyDeep.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseRest.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseRest.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\"),\n    overRest = __webpack_require__(/*! ./_overRest */ \"./node_modules/lodash/_overRest.js\"),\n    setToString = __webpack_require__(/*! ./_setToString */ \"./node_modules/lodash/_setToString.js\");\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseRest.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseSet.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseSet.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n  if (!isObject(object)) {\n    return object;\n  }\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      lastIndex = length - 1,\n      nested = object;\n\n  while (nested != null && ++index < length) {\n    var key = toKey(path[index]),\n        newValue = value;\n\n    if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n      return object;\n    }\n\n    if (index != lastIndex) {\n      var objValue = nested[key];\n      newValue = customizer ? customizer(objValue, key, nested) : undefined;\n      if (newValue === undefined) {\n        newValue = isObject(objValue)\n          ? objValue\n          : (isIndex(path[index + 1]) ? [] : {});\n      }\n    }\n    assignValue(nested, key, newValue);\n    nested = nested[key];\n  }\n  return object;\n}\n\nmodule.exports = baseSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseSetToString.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_baseSetToString.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var constant = __webpack_require__(/*! ./constant */ \"./node_modules/lodash/constant.js\"),\n    defineProperty = __webpack_require__(/*! ./_defineProperty */ \"./node_modules/lodash/_defineProperty.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nmodule.exports = baseSetToString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseSetToString.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseSortBy.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_baseSortBy.js ***!
  \********************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n  var length = array.length;\n\n  array.sort(comparer);\n  while (length--) {\n    array[length] = array[length].value;\n  }\n  return array;\n}\n\nmodule.exports = baseSortBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseSortBy.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseSum.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_baseSum.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n  var result,\n      index = -1,\n      length = array.length;\n\n  while (++index < length) {\n    var current = iteratee(array[index]);\n    if (current !== undefined) {\n      result = result === undefined ? current : (result + current);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseSum;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseSum.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseTimes.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseTimes.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nmodule.exports = baseTimes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseTimes.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseToString.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_baseToString.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    arrayMap = __webpack_require__(/*! ./_arrayMap */ \"./node_modules/lodash/_arrayMap.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseToString.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseUnary.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_baseUnary.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nmodule.exports = baseUnary;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseUnary.js?");

/***/ }),

/***/ "./node_modules/lodash/_baseUniq.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_baseUniq.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arrayIncludes = __webpack_require__(/*! ./_arrayIncludes */ \"./node_modules/lodash/_arrayIncludes.js\"),\n    arrayIncludesWith = __webpack_require__(/*! ./_arrayIncludesWith */ \"./node_modules/lodash/_arrayIncludesWith.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\"),\n    createSet = __webpack_require__(/*! ./_createSet */ \"./node_modules/lodash/_createSet.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n  var index = -1,\n      includes = arrayIncludes,\n      length = array.length,\n      isCommon = true,\n      result = [],\n      seen = result;\n\n  if (comparator) {\n    isCommon = false;\n    includes = arrayIncludesWith;\n  }\n  else if (length >= LARGE_ARRAY_SIZE) {\n    var set = iteratee ? null : createSet(array);\n    if (set) {\n      return setToArray(set);\n    }\n    isCommon = false;\n    includes = cacheHas;\n    seen = new SetCache;\n  }\n  else {\n    seen = iteratee ? [] : result;\n  }\n  outer:\n  while (++index < length) {\n    var value = array[index],\n        computed = iteratee ? iteratee(value) : value;\n\n    value = (comparator || value !== 0) ? value : 0;\n    if (isCommon && computed === computed) {\n      var seenIndex = seen.length;\n      while (seenIndex--) {\n        if (seen[seenIndex] === computed) {\n          continue outer;\n        }\n      }\n      if (iteratee) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n    else if (!includes(seen, computed, comparator)) {\n      if (seen !== result) {\n        seen.push(computed);\n      }\n      result.push(value);\n    }\n  }\n  return result;\n}\n\nmodule.exports = baseUniq;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_baseUniq.js?");

/***/ }),

/***/ "./node_modules/lodash/_cacheHas.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_cacheHas.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_cacheHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_castPath.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_castPath.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    stringToPath = __webpack_require__(/*! ./_stringToPath */ \"./node_modules/lodash/_stringToPath.js\"),\n    toString = __webpack_require__(/*! ./toString */ \"./node_modules/lodash/toString.js\");\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_castPath.js?");

/***/ }),

/***/ "./node_modules/lodash/_cloneArrayBuffer.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_cloneArrayBuffer.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./node_modules/lodash/_Uint8Array.js\");\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_cloneArrayBuffer.js?");

/***/ }),

/***/ "./node_modules/lodash/_cloneBuffer.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_cloneBuffer.js ***!
  \*********************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nmodule.exports = cloneBuffer;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_cloneBuffer.js?");

/***/ }),

/***/ "./node_modules/lodash/_cloneTypedArray.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_cloneTypedArray.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var cloneArrayBuffer = __webpack_require__(/*! ./_cloneArrayBuffer */ \"./node_modules/lodash/_cloneArrayBuffer.js\");\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_cloneTypedArray.js?");

/***/ }),

/***/ "./node_modules/lodash/_compareAscending.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_compareAscending.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n  if (value !== other) {\n    var valIsDefined = value !== undefined,\n        valIsNull = value === null,\n        valIsReflexive = value === value,\n        valIsSymbol = isSymbol(value);\n\n    var othIsDefined = other !== undefined,\n        othIsNull = other === null,\n        othIsReflexive = other === other,\n        othIsSymbol = isSymbol(other);\n\n    if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n        (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n        (valIsNull && othIsDefined && othIsReflexive) ||\n        (!valIsDefined && othIsReflexive) ||\n        !valIsReflexive) {\n      return 1;\n    }\n    if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n        (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n        (othIsNull && valIsDefined && valIsReflexive) ||\n        (!othIsDefined && valIsReflexive) ||\n        !othIsReflexive) {\n      return -1;\n    }\n  }\n  return 0;\n}\n\nmodule.exports = compareAscending;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_compareAscending.js?");

/***/ }),

/***/ "./node_modules/lodash/_compareMultiple.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_compareMultiple.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var compareAscending = __webpack_require__(/*! ./_compareAscending */ \"./node_modules/lodash/_compareAscending.js\");\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n  var index = -1,\n      objCriteria = object.criteria,\n      othCriteria = other.criteria,\n      length = objCriteria.length,\n      ordersLength = orders.length;\n\n  while (++index < length) {\n    var result = compareAscending(objCriteria[index], othCriteria[index]);\n    if (result) {\n      if (index >= ordersLength) {\n        return result;\n      }\n      var order = orders[index];\n      return result * (order == 'desc' ? -1 : 1);\n    }\n  }\n  // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n  // that causes it, under certain circumstances, to provide the same value for\n  // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n  // for more details.\n  //\n  // This also ensures a stable sort in V8 and other engines.\n  // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n  return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_compareMultiple.js?");

/***/ }),

/***/ "./node_modules/lodash/_copyArray.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_copyArray.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nmodule.exports = copyArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_copyArray.js?");

/***/ }),

/***/ "./node_modules/lodash/_copyObject.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_copyObject.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assignValue = __webpack_require__(/*! ./_assignValue */ \"./node_modules/lodash/_assignValue.js\"),\n    baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\");\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nmodule.exports = copyObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_copyObject.js?");

/***/ }),

/***/ "./node_modules/lodash/_coreJsData.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_coreJsData.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\");\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_coreJsData.js?");

/***/ }),

/***/ "./node_modules/lodash/_createAggregator.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/_createAggregator.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayAggregator = __webpack_require__(/*! ./_arrayAggregator */ \"./node_modules/lodash/_arrayAggregator.js\"),\n    baseAggregator = __webpack_require__(/*! ./_baseAggregator */ \"./node_modules/lodash/_baseAggregator.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n  return function(collection, iteratee) {\n    var func = isArray(collection) ? arrayAggregator : baseAggregator,\n        accumulator = initializer ? initializer() : {};\n\n    return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n  };\n}\n\nmodule.exports = createAggregator;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_createAggregator.js?");

/***/ }),

/***/ "./node_modules/lodash/_createAssigner.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_createAssigner.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseRest = __webpack_require__(/*! ./_baseRest */ \"./node_modules/lodash/_baseRest.js\"),\n    isIterateeCall = __webpack_require__(/*! ./_isIterateeCall */ \"./node_modules/lodash/_isIterateeCall.js\");\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_createAssigner.js?");

/***/ }),

/***/ "./node_modules/lodash/_createBaseEach.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_createBaseEach.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nmodule.exports = createBaseEach;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_createBaseEach.js?");

/***/ }),

/***/ "./node_modules/lodash/_createBaseFor.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_createBaseFor.js ***!
  \***********************************************/
/***/ ((module) => {

eval("/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nmodule.exports = createBaseFor;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_createBaseFor.js?");

/***/ }),

/***/ "./node_modules/lodash/_createSet.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_createSet.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n    noop = __webpack_require__(/*! ./noop */ \"./node_modules/lodash/noop.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n  return new Set(values);\n};\n\nmodule.exports = createSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_createSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_defineProperty.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_defineProperty.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_defineProperty.js?");

/***/ }),

/***/ "./node_modules/lodash/_equalArrays.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_equalArrays.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var SetCache = __webpack_require__(/*! ./_SetCache */ \"./node_modules/lodash/_SetCache.js\"),\n    arraySome = __webpack_require__(/*! ./_arraySome */ \"./node_modules/lodash/_arraySome.js\"),\n    cacheHas = __webpack_require__(/*! ./_cacheHas */ \"./node_modules/lodash/_cacheHas.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalArrays;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_equalArrays.js?");

/***/ }),

/***/ "./node_modules/lodash/_equalByTag.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_equalByTag.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    Uint8Array = __webpack_require__(/*! ./_Uint8Array */ \"./node_modules/lodash/_Uint8Array.js\"),\n    eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\"),\n    equalArrays = __webpack_require__(/*! ./_equalArrays */ \"./node_modules/lodash/_equalArrays.js\"),\n    mapToArray = __webpack_require__(/*! ./_mapToArray */ \"./node_modules/lodash/_mapToArray.js\"),\n    setToArray = __webpack_require__(/*! ./_setToArray */ \"./node_modules/lodash/_setToArray.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nmodule.exports = equalByTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_equalByTag.js?");

/***/ }),

/***/ "./node_modules/lodash/_equalObjects.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_equalObjects.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getAllKeys = __webpack_require__(/*! ./_getAllKeys */ \"./node_modules/lodash/_getAllKeys.js\");\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nmodule.exports = equalObjects;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_equalObjects.js?");

/***/ }),

/***/ "./node_modules/lodash/_flatRest.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_flatRest.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var flatten = __webpack_require__(/*! ./flatten */ \"./node_modules/lodash/flatten.js\"),\n    overRest = __webpack_require__(/*! ./_overRest */ \"./node_modules/lodash/_overRest.js\"),\n    setToString = __webpack_require__(/*! ./_setToString */ \"./node_modules/lodash/_setToString.js\");\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n  return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_flatRest.js?");

/***/ }),

/***/ "./node_modules/lodash/_freeGlobal.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_freeGlobal.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g;\n\nmodule.exports = freeGlobal;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_freeGlobal.js?");

/***/ }),

/***/ "./node_modules/lodash/_getAllKeys.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_getAllKeys.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetAllKeys = __webpack_require__(/*! ./_baseGetAllKeys */ \"./node_modules/lodash/_baseGetAllKeys.js\"),\n    getSymbols = __webpack_require__(/*! ./_getSymbols */ \"./node_modules/lodash/_getSymbols.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getAllKeys.js?");

/***/ }),

/***/ "./node_modules/lodash/_getMapData.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_getMapData.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isKeyable = __webpack_require__(/*! ./_isKeyable */ \"./node_modules/lodash/_isKeyable.js\");\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nmodule.exports = getMapData;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getMapData.js?");

/***/ }),

/***/ "./node_modules/lodash/_getMatchData.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getMatchData.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isStrictComparable = __webpack_require__(/*! ./_isStrictComparable */ \"./node_modules/lodash/_isStrictComparable.js\"),\n    keys = __webpack_require__(/*! ./keys */ \"./node_modules/lodash/keys.js\");\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nmodule.exports = getMatchData;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getMatchData.js?");

/***/ }),

/***/ "./node_modules/lodash/_getNative.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_getNative.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsNative = __webpack_require__(/*! ./_baseIsNative */ \"./node_modules/lodash/_baseIsNative.js\"),\n    getValue = __webpack_require__(/*! ./_getValue */ \"./node_modules/lodash/_getValue.js\");\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getNative.js?");

/***/ }),

/***/ "./node_modules/lodash/_getPrototype.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_getPrototype.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getPrototype.js?");

/***/ }),

/***/ "./node_modules/lodash/_getRawTag.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_getRawTag.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nmodule.exports = getRawTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getRawTag.js?");

/***/ }),

/***/ "./node_modules/lodash/_getSymbols.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_getSymbols.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayFilter = __webpack_require__(/*! ./_arrayFilter */ \"./node_modules/lodash/_arrayFilter.js\"),\n    stubArray = __webpack_require__(/*! ./stubArray */ \"./node_modules/lodash/stubArray.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nmodule.exports = getSymbols;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getSymbols.js?");

/***/ }),

/***/ "./node_modules/lodash/_getTag.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/_getTag.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var DataView = __webpack_require__(/*! ./_DataView */ \"./node_modules/lodash/_DataView.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n    Promise = __webpack_require__(/*! ./_Promise */ \"./node_modules/lodash/_Promise.js\"),\n    Set = __webpack_require__(/*! ./_Set */ \"./node_modules/lodash/_Set.js\"),\n    WeakMap = __webpack_require__(/*! ./_WeakMap */ \"./node_modules/lodash/_WeakMap.js\"),\n    baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    toSource = __webpack_require__(/*! ./_toSource */ \"./node_modules/lodash/_toSource.js\");\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nmodule.exports = getTag;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getTag.js?");

/***/ }),

/***/ "./node_modules/lodash/_getValue.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_getValue.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_getValue.js?");

/***/ }),

/***/ "./node_modules/lodash/_hasPath.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hasPath.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var castPath = __webpack_require__(/*! ./_castPath */ \"./node_modules/lodash/_castPath.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hasPath.js?");

/***/ }),

/***/ "./node_modules/lodash/_hashClear.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_hashClear.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nmodule.exports = hashClear;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hashClear.js?");

/***/ }),

/***/ "./node_modules/lodash/_hashDelete.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_hashDelete.js ***!
  \********************************************/
/***/ ((module) => {

eval("/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = hashDelete;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hashDelete.js?");

/***/ }),

/***/ "./node_modules/lodash/_hashGet.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashGet.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hashGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_hashHas.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashHas.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hashHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_hashSet.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_hashSet.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var nativeCreate = __webpack_require__(/*! ./_nativeCreate */ \"./node_modules/lodash/_nativeCreate.js\");\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nmodule.exports = hashSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_hashSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_initCloneObject.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_initCloneObject.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n    isPrototype = __webpack_require__(/*! ./_isPrototype */ \"./node_modules/lodash/_isPrototype.js\");\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nmodule.exports = initCloneObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_initCloneObject.js?");

/***/ }),

/***/ "./node_modules/lodash/_isFlattenable.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_isFlattenable.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Symbol = __webpack_require__(/*! ./_Symbol */ \"./node_modules/lodash/_Symbol.js\"),\n    isArguments = __webpack_require__(/*! ./isArguments */ \"./node_modules/lodash/isArguments.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n  return isArray(value) || isArguments(value) ||\n    !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isFlattenable.js?");

/***/ }),

/***/ "./node_modules/lodash/_isIndex.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_isIndex.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isIndex.js?");

/***/ }),

/***/ "./node_modules/lodash/_isIterateeCall.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_isIterateeCall.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var eq = __webpack_require__(/*! ./eq */ \"./node_modules/lodash/eq.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isIndex = __webpack_require__(/*! ./_isIndex */ \"./node_modules/lodash/_isIndex.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isIterateeCall.js?");

/***/ }),

/***/ "./node_modules/lodash/_isKey.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/_isKey.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isKey.js?");

/***/ }),

/***/ "./node_modules/lodash/_isKeyable.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/_isKeyable.js ***!
  \*******************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nmodule.exports = isKeyable;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isKeyable.js?");

/***/ }),

/***/ "./node_modules/lodash/_isMasked.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_isMasked.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var coreJsData = __webpack_require__(/*! ./_coreJsData */ \"./node_modules/lodash/_coreJsData.js\");\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isMasked.js?");

/***/ }),

/***/ "./node_modules/lodash/_isPrototype.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_isPrototype.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nmodule.exports = isPrototype;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isPrototype.js?");

/***/ }),

/***/ "./node_modules/lodash/_isStrictComparable.js":
/*!****************************************************!*\
  !*** ./node_modules/lodash/_isStrictComparable.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_isStrictComparable.js?");

/***/ }),

/***/ "./node_modules/lodash/_listCacheClear.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_listCacheClear.js ***!
  \************************************************/
/***/ ((module) => {

eval("/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_listCacheClear.js?");

/***/ }),

/***/ "./node_modules/lodash/_listCacheDelete.js":
/*!*************************************************!*\
  !*** ./node_modules/lodash/_listCacheDelete.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nmodule.exports = listCacheDelete;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_listCacheDelete.js?");

/***/ }),

/***/ "./node_modules/lodash/_listCacheGet.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheGet.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_listCacheGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_listCacheHas.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheHas.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_listCacheHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_listCacheSet.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_listCacheSet.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var assocIndexOf = __webpack_require__(/*! ./_assocIndexOf */ \"./node_modules/lodash/_assocIndexOf.js\");\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nmodule.exports = listCacheSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_listCacheSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapCacheClear.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_mapCacheClear.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Hash = __webpack_require__(/*! ./_Hash */ \"./node_modules/lodash/_Hash.js\"),\n    ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\");\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nmodule.exports = mapCacheClear;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapCacheClear.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapCacheDelete.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_mapCacheDelete.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nmodule.exports = mapCacheDelete;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapCacheDelete.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapCacheGet.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheGet.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapCacheGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapCacheHas.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheHas.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapCacheHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapCacheSet.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_mapCacheSet.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getMapData = __webpack_require__(/*! ./_getMapData */ \"./node_modules/lodash/_getMapData.js\");\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nmodule.exports = mapCacheSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapCacheSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_mapToArray.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_mapToArray.js ***!
  \********************************************/
/***/ ((module) => {

eval("/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nmodule.exports = mapToArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_mapToArray.js?");

/***/ }),

/***/ "./node_modules/lodash/_matchesStrictComparable.js":
/*!*********************************************************!*\
  !*** ./node_modules/lodash/_matchesStrictComparable.js ***!
  \*********************************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nmodule.exports = matchesStrictComparable;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_matchesStrictComparable.js?");

/***/ }),

/***/ "./node_modules/lodash/_memoizeCapped.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_memoizeCapped.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var memoize = __webpack_require__(/*! ./memoize */ \"./node_modules/lodash/memoize.js\");\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nmodule.exports = memoizeCapped;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_memoizeCapped.js?");

/***/ }),

/***/ "./node_modules/lodash/_nativeCreate.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_nativeCreate.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var getNative = __webpack_require__(/*! ./_getNative */ \"./node_modules/lodash/_getNative.js\");\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_nativeCreate.js?");

/***/ }),

/***/ "./node_modules/lodash/_nativeKeys.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_nativeKeys.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var overArg = __webpack_require__(/*! ./_overArg */ \"./node_modules/lodash/_overArg.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_nativeKeys.js?");

/***/ }),

/***/ "./node_modules/lodash/_nativeKeysIn.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_nativeKeysIn.js ***!
  \**********************************************/
/***/ ((module) => {

eval("/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nmodule.exports = nativeKeysIn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_nativeKeysIn.js?");

/***/ }),

/***/ "./node_modules/lodash/_nodeUtil.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_nodeUtil.js ***!
  \******************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_nodeUtil.js?");

/***/ }),

/***/ "./node_modules/lodash/_objectToString.js":
/*!************************************************!*\
  !*** ./node_modules/lodash/_objectToString.js ***!
  \************************************************/
/***/ ((module) => {

eval("/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_objectToString.js?");

/***/ }),

/***/ "./node_modules/lodash/_overArg.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_overArg.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nmodule.exports = overArg;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_overArg.js?");

/***/ }),

/***/ "./node_modules/lodash/_overRest.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_overRest.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var apply = __webpack_require__(/*! ./_apply */ \"./node_modules/lodash/_apply.js\");\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nmodule.exports = overRest;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_overRest.js?");

/***/ }),

/***/ "./node_modules/lodash/_root.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/_root.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var freeGlobal = __webpack_require__(/*! ./_freeGlobal */ \"./node_modules/lodash/_freeGlobal.js\");\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_root.js?");

/***/ }),

/***/ "./node_modules/lodash/_safeGet.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/_safeGet.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\nmodule.exports = safeGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_safeGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_setCacheAdd.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_setCacheAdd.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nmodule.exports = setCacheAdd;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_setCacheAdd.js?");

/***/ }),

/***/ "./node_modules/lodash/_setCacheHas.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_setCacheHas.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_setCacheHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_setToArray.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_setToArray.js ***!
  \********************************************/
/***/ ((module) => {

eval("/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nmodule.exports = setToArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_setToArray.js?");

/***/ }),

/***/ "./node_modules/lodash/_setToString.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_setToString.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseSetToString = __webpack_require__(/*! ./_baseSetToString */ \"./node_modules/lodash/_baseSetToString.js\"),\n    shortOut = __webpack_require__(/*! ./_shortOut */ \"./node_modules/lodash/_shortOut.js\");\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_setToString.js?");

/***/ }),

/***/ "./node_modules/lodash/_shortOut.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_shortOut.js ***!
  \******************************************/
/***/ ((module) => {

eval("/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nmodule.exports = shortOut;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_shortOut.js?");

/***/ }),

/***/ "./node_modules/lodash/_stackClear.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/_stackClear.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\");\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nmodule.exports = stackClear;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stackClear.js?");

/***/ }),

/***/ "./node_modules/lodash/_stackDelete.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/_stackDelete.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nmodule.exports = stackDelete;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stackDelete.js?");

/***/ }),

/***/ "./node_modules/lodash/_stackGet.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackGet.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stackGet.js?");

/***/ }),

/***/ "./node_modules/lodash/_stackHas.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackHas.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stackHas.js?");

/***/ }),

/***/ "./node_modules/lodash/_stackSet.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_stackSet.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var ListCache = __webpack_require__(/*! ./_ListCache */ \"./node_modules/lodash/_ListCache.js\"),\n    Map = __webpack_require__(/*! ./_Map */ \"./node_modules/lodash/_Map.js\"),\n    MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nmodule.exports = stackSet;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stackSet.js?");

/***/ }),

/***/ "./node_modules/lodash/_strictIndexOf.js":
/*!***********************************************!*\
  !*** ./node_modules/lodash/_strictIndexOf.js ***!
  \***********************************************/
/***/ ((module) => {

eval("/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n  var index = fromIndex - 1,\n      length = array.length;\n\n  while (++index < length) {\n    if (array[index] === value) {\n      return index;\n    }\n  }\n  return -1;\n}\n\nmodule.exports = strictIndexOf;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_strictIndexOf.js?");

/***/ }),

/***/ "./node_modules/lodash/_stringToPath.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/_stringToPath.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var memoizeCapped = __webpack_require__(/*! ./_memoizeCapped */ \"./node_modules/lodash/_memoizeCapped.js\");\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nmodule.exports = stringToPath;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_stringToPath.js?");

/***/ }),

/***/ "./node_modules/lodash/_toKey.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/_toKey.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isSymbol = __webpack_require__(/*! ./isSymbol */ \"./node_modules/lodash/isSymbol.js\");\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_toKey.js?");

/***/ }),

/***/ "./node_modules/lodash/_toSource.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/_toSource.js ***!
  \******************************************/
/***/ ((module) => {

eval("/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nmodule.exports = toSource;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/_toSource.js?");

/***/ }),

/***/ "./node_modules/lodash/constant.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/constant.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nmodule.exports = constant;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/constant.js?");

/***/ }),

/***/ "./node_modules/lodash/difference.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/difference.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseDifference = __webpack_require__(/*! ./_baseDifference */ \"./node_modules/lodash/_baseDifference.js\"),\n    baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"./node_modules/lodash/_baseFlatten.js\"),\n    baseRest = __webpack_require__(/*! ./_baseRest */ \"./node_modules/lodash/_baseRest.js\"),\n    isArrayLikeObject = __webpack_require__(/*! ./isArrayLikeObject */ \"./node_modules/lodash/isArrayLikeObject.js\");\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n  return isArrayLikeObject(array)\n    ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n    : [];\n});\n\nmodule.exports = difference;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/difference.js?");

/***/ }),

/***/ "./node_modules/lodash/eq.js":
/*!***********************************!*\
  !*** ./node_modules/lodash/eq.js ***!
  \***********************************/
/***/ ((module) => {

eval("/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/eq.js?");

/***/ }),

/***/ "./node_modules/lodash/flatten.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/flatten.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseFlatten = __webpack_require__(/*! ./_baseFlatten */ \"./node_modules/lodash/_baseFlatten.js\");\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/flatten.js?");

/***/ }),

/***/ "./node_modules/lodash/get.js":
/*!************************************!*\
  !*** ./node_modules/lodash/get.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGet = __webpack_require__(/*! ./_baseGet */ \"./node_modules/lodash/_baseGet.js\");\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/get.js?");

/***/ }),

/***/ "./node_modules/lodash/groupBy.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/groupBy.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseAssignValue = __webpack_require__(/*! ./_baseAssignValue */ \"./node_modules/lodash/_baseAssignValue.js\"),\n    createAggregator = __webpack_require__(/*! ./_createAggregator */ \"./node_modules/lodash/_createAggregator.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n  if (hasOwnProperty.call(result, key)) {\n    result[key].push(value);\n  } else {\n    baseAssignValue(result, key, [value]);\n  }\n});\n\nmodule.exports = groupBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/groupBy.js?");

/***/ }),

/***/ "./node_modules/lodash/hasIn.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/hasIn.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseHasIn = __webpack_require__(/*! ./_baseHasIn */ \"./node_modules/lodash/_baseHasIn.js\"),\n    hasPath = __webpack_require__(/*! ./_hasPath */ \"./node_modules/lodash/_hasPath.js\");\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/hasIn.js?");

/***/ }),

/***/ "./node_modules/lodash/identity.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/identity.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nmodule.exports = identity;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/identity.js?");

/***/ }),

/***/ "./node_modules/lodash/isArguments.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/isArguments.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsArguments = __webpack_require__(/*! ./_baseIsArguments */ \"./node_modules/lodash/_baseIsArguments.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isArguments.js?");

/***/ }),

/***/ "./node_modules/lodash/isArray.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/isArray.js ***!
  \****************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isArray.js?");

/***/ }),

/***/ "./node_modules/lodash/isArrayLike.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/isArrayLike.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isLength = __webpack_require__(/*! ./isLength */ \"./node_modules/lodash/isLength.js\");\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isArrayLike.js?");

/***/ }),

/***/ "./node_modules/lodash/isArrayLikeObject.js":
/*!**************************************************!*\
  !*** ./node_modules/lodash/isArrayLikeObject.js ***!
  \**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isArrayLikeObject.js?");

/***/ }),

/***/ "./node_modules/lodash/isBuffer.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/isBuffer.js ***!
  \*****************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\nvar root = __webpack_require__(/*! ./_root */ \"./node_modules/lodash/_root.js\"),\n    stubFalse = __webpack_require__(/*! ./stubFalse */ \"./node_modules/lodash/stubFalse.js\");\n\n/** Detect free variable `exports`. */\nvar freeExports =  true && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && \"object\" == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isBuffer.js?");

/***/ }),

/***/ "./node_modules/lodash/isEqual.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/isEqual.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsEqual = __webpack_require__(/*! ./_baseIsEqual */ \"./node_modules/lodash/_baseIsEqual.js\");\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isEqual.js?");

/***/ }),

/***/ "./node_modules/lodash/isFunction.js":
/*!*******************************************!*\
  !*** ./node_modules/lodash/isFunction.js ***!
  \*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\");\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isFunction.js?");

/***/ }),

/***/ "./node_modules/lodash/isLength.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/isLength.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isLength.js?");

/***/ }),

/***/ "./node_modules/lodash/isObject.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/isObject.js ***!
  \*****************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isObject.js?");

/***/ }),

/***/ "./node_modules/lodash/isObjectLike.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/isObjectLike.js ***!
  \*********************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isObjectLike.js?");

/***/ }),

/***/ "./node_modules/lodash/isPlainObject.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/isPlainObject.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isPlainObject.js?");

/***/ }),

/***/ "./node_modules/lodash/isSymbol.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/isSymbol.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseGetTag = __webpack_require__(/*! ./_baseGetTag */ \"./node_modules/lodash/_baseGetTag.js\"),\n    isObjectLike = __webpack_require__(/*! ./isObjectLike */ \"./node_modules/lodash/isObjectLike.js\");\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isSymbol.js?");

/***/ }),

/***/ "./node_modules/lodash/isTypedArray.js":
/*!*********************************************!*\
  !*** ./node_modules/lodash/isTypedArray.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseIsTypedArray = __webpack_require__(/*! ./_baseIsTypedArray */ \"./node_modules/lodash/_baseIsTypedArray.js\"),\n    baseUnary = __webpack_require__(/*! ./_baseUnary */ \"./node_modules/lodash/_baseUnary.js\"),\n    nodeUtil = __webpack_require__(/*! ./_nodeUtil */ \"./node_modules/lodash/_nodeUtil.js\");\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isTypedArray.js?");

/***/ }),

/***/ "./node_modules/lodash/isUndefined.js":
/*!********************************************!*\
  !*** ./node_modules/lodash/isUndefined.js ***!
  \********************************************/
/***/ ((module) => {

eval("/**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n  return value === undefined;\n}\n\nmodule.exports = isUndefined;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/isUndefined.js?");

/***/ }),

/***/ "./node_modules/lodash/keys.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/keys.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n    baseKeys = __webpack_require__(/*! ./_baseKeys */ \"./node_modules/lodash/_baseKeys.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/keys.js?");

/***/ }),

/***/ "./node_modules/lodash/keysIn.js":
/*!***************************************!*\
  !*** ./node_modules/lodash/keysIn.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayLikeKeys = __webpack_require__(/*! ./_arrayLikeKeys */ \"./node_modules/lodash/_arrayLikeKeys.js\"),\n    baseKeysIn = __webpack_require__(/*! ./_baseKeysIn */ \"./node_modules/lodash/_baseKeysIn.js\"),\n    isArrayLike = __webpack_require__(/*! ./isArrayLike */ \"./node_modules/lodash/isArrayLike.js\");\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/keysIn.js?");

/***/ }),

/***/ "./node_modules/lodash/last.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/last.js ***!
  \*************************************/
/***/ ((module) => {

eval("/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n  var length = array == null ? 0 : array.length;\n  return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/last.js?");

/***/ }),

/***/ "./node_modules/lodash/memoize.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/memoize.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var MapCache = __webpack_require__(/*! ./_MapCache */ \"./node_modules/lodash/_MapCache.js\");\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/memoize.js?");

/***/ }),

/***/ "./node_modules/lodash/merge.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/merge.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseMerge = __webpack_require__(/*! ./_baseMerge */ \"./node_modules/lodash/_baseMerge.js\"),\n    createAssigner = __webpack_require__(/*! ./_createAssigner */ \"./node_modules/lodash/_createAssigner.js\");\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\nmodule.exports = merge;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/merge.js?");

/***/ }),

/***/ "./node_modules/lodash/minBy.js":
/*!**************************************!*\
  !*** ./node_modules/lodash/minBy.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseExtremum = __webpack_require__(/*! ./_baseExtremum */ \"./node_modules/lodash/_baseExtremum.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    baseLt = __webpack_require__(/*! ./_baseLt */ \"./node_modules/lodash/_baseLt.js\");\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n  return (array && array.length)\n    ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n    : undefined;\n}\n\nmodule.exports = minBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/minBy.js?");

/***/ }),

/***/ "./node_modules/lodash/noop.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/noop.js ***!
  \*************************************/
/***/ ((module) => {

eval("/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n  // No operation performed.\n}\n\nmodule.exports = noop;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/noop.js?");

/***/ }),

/***/ "./node_modules/lodash/orderBy.js":
/*!****************************************!*\
  !*** ./node_modules/lodash/orderBy.js ***!
  \****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseOrderBy = __webpack_require__(/*! ./_baseOrderBy */ \"./node_modules/lodash/_baseOrderBy.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\");\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n *  The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n *   { 'user': 'fred',   'age': 48 },\n *   { 'user': 'barney', 'age': 34 },\n *   { 'user': 'fred',   'age': 40 },\n *   { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n  if (collection == null) {\n    return [];\n  }\n  if (!isArray(iteratees)) {\n    iteratees = iteratees == null ? [] : [iteratees];\n  }\n  orders = guard ? undefined : orders;\n  if (!isArray(orders)) {\n    orders = orders == null ? [] : [orders];\n  }\n  return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/orderBy.js?");

/***/ }),

/***/ "./node_modules/lodash/pick.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/pick.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var basePick = __webpack_require__(/*! ./_basePick */ \"./node_modules/lodash/_basePick.js\"),\n    flatRest = __webpack_require__(/*! ./_flatRest */ \"./node_modules/lodash/_flatRest.js\");\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n  return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/pick.js?");

/***/ }),

/***/ "./node_modules/lodash/property.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/property.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseProperty = __webpack_require__(/*! ./_baseProperty */ \"./node_modules/lodash/_baseProperty.js\"),\n    basePropertyDeep = __webpack_require__(/*! ./_basePropertyDeep */ \"./node_modules/lodash/_basePropertyDeep.js\"),\n    isKey = __webpack_require__(/*! ./_isKey */ \"./node_modules/lodash/_isKey.js\"),\n    toKey = __webpack_require__(/*! ./_toKey */ \"./node_modules/lodash/_toKey.js\");\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/property.js?");

/***/ }),

/***/ "./node_modules/lodash/stubArray.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/stubArray.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nmodule.exports = stubArray;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/stubArray.js?");

/***/ }),

/***/ "./node_modules/lodash/stubFalse.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/stubFalse.js ***!
  \******************************************/
/***/ ((module) => {

eval("/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nmodule.exports = stubFalse;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/stubFalse.js?");

/***/ }),

/***/ "./node_modules/lodash/sum.js":
/*!************************************!*\
  !*** ./node_modules/lodash/sum.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseSum = __webpack_require__(/*! ./_baseSum */ \"./node_modules/lodash/_baseSum.js\"),\n    identity = __webpack_require__(/*! ./identity */ \"./node_modules/lodash/identity.js\");\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n  return (array && array.length)\n    ? baseSum(array, identity)\n    : 0;\n}\n\nmodule.exports = sum;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/sum.js?");

/***/ }),

/***/ "./node_modules/lodash/toPlainObject.js":
/*!**********************************************!*\
  !*** ./node_modules/lodash/toPlainObject.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var copyObject = __webpack_require__(/*! ./_copyObject */ \"./node_modules/lodash/_copyObject.js\"),\n    keysIn = __webpack_require__(/*! ./keysIn */ \"./node_modules/lodash/keysIn.js\");\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/toPlainObject.js?");

/***/ }),

/***/ "./node_modules/lodash/toString.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/toString.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseToString = __webpack_require__(/*! ./_baseToString */ \"./node_modules/lodash/_baseToString.js\");\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/toString.js?");

/***/ }),

/***/ "./node_modules/lodash/transform.js":
/*!******************************************!*\
  !*** ./node_modules/lodash/transform.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var arrayEach = __webpack_require__(/*! ./_arrayEach */ \"./node_modules/lodash/_arrayEach.js\"),\n    baseCreate = __webpack_require__(/*! ./_baseCreate */ \"./node_modules/lodash/_baseCreate.js\"),\n    baseForOwn = __webpack_require__(/*! ./_baseForOwn */ \"./node_modules/lodash/_baseForOwn.js\"),\n    baseIteratee = __webpack_require__(/*! ./_baseIteratee */ \"./node_modules/lodash/_baseIteratee.js\"),\n    getPrototype = __webpack_require__(/*! ./_getPrototype */ \"./node_modules/lodash/_getPrototype.js\"),\n    isArray = __webpack_require__(/*! ./isArray */ \"./node_modules/lodash/isArray.js\"),\n    isBuffer = __webpack_require__(/*! ./isBuffer */ \"./node_modules/lodash/isBuffer.js\"),\n    isFunction = __webpack_require__(/*! ./isFunction */ \"./node_modules/lodash/isFunction.js\"),\n    isObject = __webpack_require__(/*! ./isObject */ \"./node_modules/lodash/isObject.js\"),\n    isTypedArray = __webpack_require__(/*! ./isTypedArray */ \"./node_modules/lodash/isTypedArray.js\");\n\n/**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n *   result.push(n *= n);\n *   return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n *   (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\nfunction transform(object, iteratee, accumulator) {\n  var isArr = isArray(object),\n      isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n  iteratee = baseIteratee(iteratee, 4);\n  if (accumulator == null) {\n    var Ctor = object && object.constructor;\n    if (isArrLike) {\n      accumulator = isArr ? new Ctor : [];\n    }\n    else if (isObject(object)) {\n      accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n    }\n    else {\n      accumulator = {};\n    }\n  }\n  (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n    return iteratee(accumulator, value, index, object);\n  });\n  return accumulator;\n}\n\nmodule.exports = transform;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/transform.js?");

/***/ }),

/***/ "./node_modules/lodash/uniq.js":
/*!*************************************!*\
  !*** ./node_modules/lodash/uniq.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseUniq = __webpack_require__(/*! ./_baseUniq */ \"./node_modules/lodash/_baseUniq.js\");\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n  return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/uniq.js?");

/***/ }),

/***/ "./node_modules/lodash/uniqWith.js":
/*!*****************************************!*\
  !*** ./node_modules/lodash/uniqWith.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var baseUniq = __webpack_require__(/*! ./_baseUniq */ \"./node_modules/lodash/_baseUniq.js\");\n\n/**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\nfunction uniqWith(array, comparator) {\n  comparator = typeof comparator == 'function' ? comparator : undefined;\n  return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n}\n\nmodule.exports = uniqWith;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/lodash/uniqWith.js?");

/***/ }),

/***/ "./node_modules/md5.js/index.js":
/*!**************************************!*\
  !*** ./node_modules/md5.js/index.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n  HashBase.call(this, 64)\n\n  // state\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n  var M = ARRAY16\n  for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n  var a = this._a\n  var b = this._b\n  var c = this._c\n  var d = this._d\n\n  a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n  d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n  c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n  b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n  a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n  d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n  c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n  b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n  a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n  d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n  c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n  b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n  a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n  d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n  c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n  b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n  a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n  d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n  c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n  b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n  a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n  d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n  c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n  b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n  a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n  d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n  c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n  b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n  a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n  d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n  c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n  b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n  a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n  d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n  c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n  b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n  a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n  d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n  c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n  b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n  a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n  d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n  c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n  b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n  a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n  d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n  c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n  b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n  a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n  d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n  c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n  b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n  a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n  d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n  c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n  b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n  a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n  d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n  c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n  b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n  a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n  d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n  c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n  b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n  this._a = (this._a + a) | 0\n  this._b = (this._b + b) | 0\n  this._c = (this._c + c) | 0\n  this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n  // create padding and handle blocks\n  this._block[this._blockOffset++] = 0x80\n  if (this._blockOffset > 56) {\n    this._block.fill(0, this._blockOffset, 64)\n    this._update()\n    this._blockOffset = 0\n  }\n\n  this._block.fill(0, this._blockOffset, 56)\n  this._block.writeUInt32LE(this._length[0], 56)\n  this._block.writeUInt32LE(this._length[1], 60)\n  this._update()\n\n  // produce result\n  var buffer = Buffer.allocUnsafe(16)\n  buffer.writeInt32LE(this._a, 0)\n  buffer.writeInt32LE(this._b, 4)\n  buffer.writeInt32LE(this._c, 8)\n  buffer.writeInt32LE(this._d, 12)\n  return buffer\n}\n\nfunction rotl (x, n) {\n  return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n  return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n  return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n  return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n  return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/md5.js/index.js?");

/***/ }),

/***/ "./node_modules/miller-rabin/lib/mr.js":
/*!*********************************************!*\
  !*** ./node_modules/miller-rabin/lib/mr.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var bn = __webpack_require__(/*! bn.js */ \"./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js\");\nvar brorand = __webpack_require__(/*! brorand */ \"./node_modules/brorand/index.js\");\n\nfunction MillerRabin(rand) {\n  this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n  return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n  var len = n.bitLength();\n  var min_bytes = Math.ceil(len / 8);\n\n  // Generage random bytes until a number less than n is found.\n  // This ensures that 0..n-1 have an equal probability of being selected.\n  do\n    var a = new bn(this.rand.generate(min_bytes));\n  while (a.cmp(n) >= 0);\n\n  return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n  // Generate a random number greater than or equal to start and less than stop.\n  var size = stop.sub(start);\n  return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  var prime = true;\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n    if (cb)\n      cb(a);\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return false;\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s)\n      return false;\n  }\n\n  return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n  var len = n.bitLength();\n  var red = bn.mont(n);\n  var rone = new bn(1).toRed(red);\n\n  if (!k)\n    k = Math.max(1, (len / 48) | 0);\n\n  // Find d and s, (n - 1) = (2 ^ s) * d;\n  var n1 = n.subn(1);\n  for (var s = 0; !n1.testn(s); s++) {}\n  var d = n.shrn(s);\n\n  var rn1 = n1.toRed(red);\n\n  for (; k > 0; k--) {\n    var a = this._randrange(new bn(2), n1);\n\n    var g = n.gcd(a);\n    if (g.cmpn(1) !== 0)\n      return g;\n\n    var x = a.toRed(red).redPow(d);\n    if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n      continue;\n\n    for (var i = 1; i < s; i++) {\n      x = x.redSqr();\n\n      if (x.cmp(rone) === 0)\n        return x.fromRed().subn(1).gcd(n);\n      if (x.cmp(rn1) === 0)\n        break;\n    }\n\n    if (i === s) {\n      x = x.redSqr();\n      return x.fromRed().subn(1).gcd(n);\n    }\n  }\n\n  return false;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/miller-rabin/lib/mr.js?");

/***/ }),

/***/ "./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js":
/*!****************************************************************!*\
  !*** ./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js ***!
  \****************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?0aec\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/miller-rabin/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/minimalistic-assert/index.js":
/*!***************************************************!*\
  !*** ./node_modules/minimalistic-assert/index.js ***!
  \***************************************************/
/***/ ((module) => {

eval("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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/minimalistic-assert/index.js?");

/***/ }),

/***/ "./node_modules/minimalistic-crypto-utils/lib/utils.js":
/*!*************************************************************!*\
  !*** ./node_modules/minimalistic-crypto-utils/lib/utils.js ***!
  \*************************************************************/
/***/ ((__unused_webpack_module, exports) => {

"use strict";
eval("\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n  if (Array.isArray(msg))\n    return msg.slice();\n  if (!msg)\n    return [];\n  var res = [];\n  if (typeof msg !== 'string') {\n    for (var i = 0; i < msg.length; i++)\n      res[i] = msg[i] | 0;\n    return res;\n  }\n  if (enc === 'hex') {\n    msg = msg.replace(/[^a-z0-9]+/ig, '');\n    if (msg.length % 2 !== 0)\n      msg = '0' + msg;\n    for (var i = 0; i < msg.length; i += 2)\n      res.push(parseInt(msg[i] + msg[i + 1], 16));\n  } else {\n    for (var i = 0; i < msg.length; i++) {\n      var c = msg.charCodeAt(i);\n      var hi = c >> 8;\n      var lo = c & 0xff;\n      if (hi)\n        res.push(hi, lo);\n      else\n        res.push(lo);\n    }\n  }\n  return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n  if (word.length === 1)\n    return '0' + word;\n  else\n    return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n  var res = '';\n  for (var i = 0; i < msg.length; i++)\n    res += zero2(msg[i].toString(16));\n  return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n  if (enc === 'hex')\n    return toHex(arr);\n  else\n    return arr;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/minimalistic-crypto-utils/lib/utils.js?");

/***/ }),

/***/ "./node_modules/nanoassert/index.js":
/*!******************************************!*\
  !*** ./node_modules/nanoassert/index.js ***!
  \******************************************/
/***/ ((module) => {

eval("module.exports = assert\n\nclass AssertionError extends Error {}\nAssertionError.prototype.name = 'AssertionError'\n\n/**\n * Minimal assert function\n * @param  {any} t Value to check if falsy\n * @param  {string=} m Optional assertion error message\n * @throws {AssertionError}\n */\nfunction assert (t, m) {\n  if (!t) {\n    var err = new AssertionError(m)\n    if (Error.captureStackTrace) Error.captureStackTrace(err, assert)\n    throw err\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/nanoassert/index.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/aesid.json":
/*!********************************************!*\
  !*** ./node_modules/parse-asn1/aesid.json ***!
  \********************************************/
/***/ ((module) => {

"use strict";
eval("module.exports = /*#__PURE__*/JSON.parse('{\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}');\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/parse-asn1/aesid.json?");

/***/ }),

/***/ "./node_modules/parse-asn1/asn1.js":
/*!*****************************************!*\
  !*** ./node_modules/parse-asn1/asn1.js ***!
  \*****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n\n\n\nvar asn1 = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nexports.certificate = __webpack_require__(/*! ./certificate */ \"./node_modules/parse-asn1/certificate.js\");\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int'](),\n\t\tthis.key('privateExponent')['int'](),\n\t\tthis.key('prime1')['int'](),\n\t\tthis.key('prime2')['int'](),\n\t\tthis.key('exponent1')['int'](),\n\t\tthis.key('exponent2')['int'](),\n\t\tthis.key('coefficient')['int']()\n\t);\n});\nexports.RSAPrivateKey = RSAPrivateKey;\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('modulus')['int'](),\n\t\tthis.key('publicExponent')['int']()\n\t);\n});\nexports.RSAPublicKey = RSAPublicKey;\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('none').null_().optional(),\n\t\tthis.key('curve').objid().optional(),\n\t\tthis.key('params').seq().obj(\n\t\t\tthis.key('p')['int'](),\n\t\t\tthis.key('q')['int'](),\n\t\t\tthis.key('g')['int']()\n\t\t).optional()\n\t);\n});\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\nexports.PublicKey = PublicKey;\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\nexports.PrivateKey = PrivateKeyInfo;\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').seq().obj(\n\t\t\tthis.key('id').objid(),\n\t\t\tthis.key('decrypt').seq().obj(\n\t\t\t\tthis.key('kde').seq().obj(\n\t\t\t\t\tthis.key('id').objid(),\n\t\t\t\t\tthis.key('kdeparams').seq().obj(\n\t\t\t\t\t\tthis.key('salt').octstr(),\n\t\t\t\t\t\tthis.key('iters')['int']()\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tthis.key('cipher').seq().obj(\n\t\t\t\t\tthis.key('algo').objid(),\n\t\t\t\t\tthis.key('iv').octstr()\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t\tthis.key('subjectPrivateKey').octstr()\n\t);\n});\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo;\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('p')['int'](),\n\t\tthis.key('q')['int'](),\n\t\tthis.key('g')['int'](),\n\t\tthis.key('pub_key')['int'](),\n\t\tthis.key('priv_key')['int']()\n\t);\n});\nexports.DSAPrivateKey = DSAPrivateKey;\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n\tthis['int']();\n});\n\nvar ECParameters = asn1.define('ECParameters', function () {\n\tthis.choice({\n\t\tnamedCurve: this.objid()\n\t});\n});\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n\tthis.seq().obj(\n\t\tthis.key('version')['int'](),\n\t\tthis.key('privateKey').octstr(),\n\t\tthis.key('parameters').optional().explicit(0).use(ECParameters),\n\t\tthis.key('publicKey').optional().explicit(1).bitstr()\n\t);\n});\nexports.ECPrivateKey = ECPrivateKey;\n\nexports.signature = asn1.define('signature', function () {\n\tthis.seq().obj(\n\t\tthis.key('r')['int'](),\n\t\tthis.key('s')['int']()\n\t);\n});\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/parse-asn1/asn1.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/certificate.js":
/*!************************************************!*\
  !*** ./node_modules/parse-asn1/certificate.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n\n\nvar asn = __webpack_require__(/*! asn1.js */ \"./node_modules/asn1.js/lib/asn1.js\");\n\nvar Time = asn.define('Time', function () {\n\tthis.choice({\n\t\tutcTime: this.utctime(),\n\t\tgeneralTime: this.gentime()\n\t});\n});\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n\tthis.seq().obj(\n\t\tthis.key('type').objid(),\n\t\tthis.key('value').any()\n\t);\n});\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').objid(),\n\t\tthis.key('parameters').optional(),\n\t\tthis.key('curve').objid().optional()\n\t);\n});\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n\tthis.seq().obj(\n\t\tthis.key('algorithm').use(AlgorithmIdentifier),\n\t\tthis.key('subjectPublicKey').bitstr()\n\t);\n});\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n\tthis.setof(AttributeTypeValue);\n});\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n\tthis.seqof(RelativeDistinguishedName);\n});\n\nvar Name = asn.define('Name', function () {\n\tthis.choice({\n\t\trdnSequence: this.use(RDNSequence)\n\t});\n});\n\nvar Validity = asn.define('Validity', function () {\n\tthis.seq().obj(\n\t\tthis.key('notBefore').use(Time),\n\t\tthis.key('notAfter').use(Time)\n\t);\n});\n\nvar Extension = asn.define('Extension', function () {\n\tthis.seq().obj(\n\t\tthis.key('extnID').objid(),\n\t\tthis.key('critical').bool().def(false),\n\t\tthis.key('extnValue').octstr()\n\t);\n});\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('version').explicit(0)['int']().optional(),\n\t\tthis.key('serialNumber')['int'](),\n\t\tthis.key('signature').use(AlgorithmIdentifier),\n\t\tthis.key('issuer').use(Name),\n\t\tthis.key('validity').use(Validity),\n\t\tthis.key('subject').use(Name),\n\t\tthis.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n\t\tthis.key('issuerUniqueID').implicit(1).bitstr().optional(),\n\t\tthis.key('subjectUniqueID').implicit(2).bitstr().optional(),\n\t\tthis.key('extensions').explicit(3).seqof(Extension).optional()\n\t);\n});\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n\tthis.seq().obj(\n\t\tthis.key('tbsCertificate').use(TBSCertificate),\n\t\tthis.key('signatureAlgorithm').use(AlgorithmIdentifier),\n\t\tthis.key('signatureValue').bitstr()\n\t);\n});\n\nmodule.exports = X509Certificate;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/parse-asn1/certificate.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/fixProc.js":
/*!********************************************!*\
  !*** ./node_modules/parse-asn1/fixProc.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\n// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m;\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m;\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m;\nvar evp = __webpack_require__(/*! evp_bytestokey */ \"./node_modules/evp_bytestokey/index.js\");\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\nmodule.exports = function (okey, password) {\n\tvar key = okey.toString();\n\tvar match = key.match(findProc);\n\tvar decrypted;\n\tif (!match) {\n\t\tvar match2 = key.match(fullRegex);\n\t\tdecrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64');\n\t} else {\n\t\tvar suite = 'aes' + match[1];\n\t\tvar iv = Buffer.from(match[2], 'hex');\n\t\tvar cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64');\n\t\tvar cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key;\n\t\tvar out = [];\n\t\tvar cipher = ciphers.createDecipheriv(suite, cipherKey, iv);\n\t\tout.push(cipher.update(cipherText));\n\t\tout.push(cipher['final']());\n\t\tdecrypted = Buffer.concat(out);\n\t}\n\tvar tag = key.match(startRegex)[1];\n\treturn {\n\t\ttag: tag,\n\t\tdata: decrypted\n\t};\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/parse-asn1/fixProc.js?");

/***/ }),

/***/ "./node_modules/parse-asn1/index.js":
/*!******************************************!*\
  !*** ./node_modules/parse-asn1/index.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar asn1 = __webpack_require__(/*! ./asn1 */ \"./node_modules/parse-asn1/asn1.js\");\nvar aesid = __webpack_require__(/*! ./aesid.json */ \"./node_modules/parse-asn1/aesid.json\");\nvar fixProc = __webpack_require__(/*! ./fixProc */ \"./node_modules/parse-asn1/fixProc.js\");\nvar ciphers = __webpack_require__(/*! browserify-aes */ \"./node_modules/browserify-aes/browser.js\");\nvar compat = __webpack_require__(/*! pbkdf2 */ \"./node_modules/pbkdf2/browser.js\");\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\n\nfunction decrypt(data, password) {\n\tvar salt = data.algorithm.decrypt.kde.kdeparams.salt;\n\tvar iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10);\n\tvar algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')];\n\tvar iv = data.algorithm.decrypt.cipher.iv;\n\tvar cipherText = data.subjectPrivateKey;\n\tvar keylen = parseInt(algo.split('-')[1], 10) / 8;\n\tvar key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1');\n\tvar cipher = ciphers.createDecipheriv(algo, key, iv);\n\tvar out = [];\n\tout.push(cipher.update(cipherText));\n\tout.push(cipher['final']());\n\treturn Buffer.concat(out);\n}\n\nfunction parseKeys(buffer) {\n\tvar password;\n\tif (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n\t\tpassword = buffer.passphrase;\n\t\tbuffer = buffer.key;\n\t}\n\tif (typeof buffer === 'string') {\n\t\tbuffer = Buffer.from(buffer);\n\t}\n\n\tvar stripped = fixProc(buffer, password);\n\n\tvar type = stripped.tag;\n\tvar data = stripped.data;\n\tvar subtype, ndata;\n\tswitch (type) {\n\t\tcase 'CERTIFICATE':\n\t\t\tndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo;\n\t\t\t// falls through\n\t\tcase 'PUBLIC KEY':\n\t\t\tif (!ndata) {\n\t\t\t\tndata = asn1.PublicKey.decode(data, 'der');\n\t\t\t}\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\tndata.subjectPrivateKey = ndata.subjectPublicKey;\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'ec',\n\t\t\t\t\t\tdata: ndata\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tdata: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'ENCRYPTED PRIVATE KEY':\n\t\t\tdata = asn1.EncryptedPrivateKey.decode(data, 'der');\n\t\t\tdata = decrypt(data, password);\n\t\t\t// falls through\n\t\tcase 'PRIVATE KEY':\n\t\t\tndata = asn1.PrivateKey.decode(data, 'der');\n\t\t\tsubtype = ndata.algorithm.algorithm.join('.');\n\t\t\tswitch (subtype) {\n\t\t\t\tcase '1.2.840.113549.1.1.1':\n\t\t\t\t\treturn asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\tcase '1.2.840.10045.2.1':\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcurve: ndata.algorithm.curve,\n\t\t\t\t\t\tprivateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n\t\t\t\t\t};\n\t\t\t\tcase '1.2.840.10040.4.1':\n\t\t\t\t\tndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der');\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: 'dsa',\n\t\t\t\t\t\tparams: ndata.algorithm.params\n\t\t\t\t\t};\n\t\t\t\tdefault: throw new Error('unknown key id ' + subtype);\n\t\t\t}\n\t\t\t// throw new Error('unknown key type ' + type)\n\t\tcase 'RSA PUBLIC KEY':\n\t\t\treturn asn1.RSAPublicKey.decode(data, 'der');\n\t\tcase 'RSA PRIVATE KEY':\n\t\t\treturn asn1.RSAPrivateKey.decode(data, 'der');\n\t\tcase 'DSA PRIVATE KEY':\n\t\t\treturn {\n\t\t\t\ttype: 'dsa',\n\t\t\t\tparams: asn1.DSAPrivateKey.decode(data, 'der')\n\t\t\t};\n\t\tcase 'EC PRIVATE KEY':\n\t\t\tdata = asn1.ECPrivateKey.decode(data, 'der');\n\t\t\treturn {\n\t\t\t\tcurve: data.parameters.value,\n\t\t\t\tprivateKey: data.privateKey\n\t\t\t};\n\t\tdefault: throw new Error('unknown key type ' + type);\n\t}\n}\nparseKeys.signature = asn1.signature;\n\nmodule.exports = parseKeys;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/parse-asn1/index.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/browser.js":
/*!****************************************!*\
  !*** ./node_modules/pbkdf2/browser.js ***!
  \****************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("exports.pbkdf2 = __webpack_require__(/*! ./lib/async */ \"./node_modules/pbkdf2/lib/async.js\")\nexports.pbkdf2Sync = __webpack_require__(/*! ./lib/sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\")\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/browser.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/async.js":
/*!******************************************!*\
  !*** ./node_modules/pbkdf2/lib/async.js ***!
  \******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\")\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\")\nvar sync = __webpack_require__(/*! ./sync */ \"./node_modules/pbkdf2/lib/sync-browser.js\")\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\")\n\nvar ZERO_BUF\nvar subtle = __webpack_require__.g.crypto && __webpack_require__.g.crypto.subtle\nvar toBrowser = {\n  sha: 'SHA-1',\n  'sha-1': 'SHA-1',\n  sha1: 'SHA-1',\n  sha256: 'SHA-256',\n  'sha-256': 'SHA-256',\n  sha384: 'SHA-384',\n  'sha-384': 'SHA-384',\n  'sha-512': 'SHA-512',\n  sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n  if (__webpack_require__.g.process && !__webpack_require__.g.process.browser) {\n    return Promise.resolve(false)\n  }\n  if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n    return Promise.resolve(false)\n  }\n  if (checks[algo] !== undefined) {\n    return checks[algo]\n  }\n  ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n  var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n    .then(function () {\n      return true\n    }).catch(function () {\n      return false\n    })\n  checks[algo] = prom\n  return prom\n}\nvar nextTick\nfunction getNextTick () {\n  if (nextTick) {\n    return nextTick\n  }\n  if (__webpack_require__.g.process && __webpack_require__.g.process.nextTick) {\n    nextTick = __webpack_require__.g.process.nextTick\n  } else if (__webpack_require__.g.queueMicrotask) {\n    nextTick = __webpack_require__.g.queueMicrotask\n  } else if (__webpack_require__.g.setImmediate) {\n    nextTick = __webpack_require__.g.setImmediate\n  } else {\n    nextTick = __webpack_require__.g.setTimeout\n  }\n  return nextTick\n}\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n  return subtle.importKey(\n    'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n  ).then(function (key) {\n    return subtle.deriveBits({\n      name: 'PBKDF2',\n      salt: salt,\n      iterations: iterations,\n      hash: {\n        name: algo\n      }\n    }, key, length << 3)\n  }).then(function (res) {\n    return Buffer.from(res)\n  })\n}\n\nfunction resolvePromise (promise, callback) {\n  promise.then(function (out) {\n    getNextTick()(function () {\n      callback(null, out)\n    })\n  }, function (e) {\n    getNextTick()(function () {\n      callback(e)\n    })\n  })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n  if (typeof digest === 'function') {\n    callback = digest\n    digest = undefined\n  }\n\n  digest = digest || 'sha1'\n  var algo = toBrowser[digest.toLowerCase()]\n\n  if (!algo || typeof __webpack_require__.g.Promise !== 'function') {\n    getNextTick()(function () {\n      var out\n      try {\n        out = sync(password, salt, iterations, keylen, digest)\n      } catch (e) {\n        return callback(e)\n      }\n      callback(null, out)\n    })\n    return\n  }\n\n  checkParameters(iterations, keylen)\n  password = toBuffer(password, defaultEncoding, 'Password')\n  salt = toBuffer(salt, defaultEncoding, 'Salt')\n  if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n  resolvePromise(checkNative(algo).then(function (resp) {\n    if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n    return sync(password, salt, iterations, keylen, digest)\n  }), callback)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/lib/async.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/default-encoding.js":
/*!*****************************************************!*\
  !*** ./node_modules/pbkdf2/lib/default-encoding.js ***!
  \*****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\nvar defaultEncoding\n/* istanbul ignore next */\nif (__webpack_require__.g.process && __webpack_require__.g.process.browser) {\n  defaultEncoding = 'utf-8'\n} else if (__webpack_require__.g.process && __webpack_require__.g.process.version) {\n  var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n  defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n  defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/lib/default-encoding.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/precondition.js":
/*!*************************************************!*\
  !*** ./node_modules/pbkdf2/lib/precondition.js ***!
  \*************************************************/
/***/ ((module) => {

eval("var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n  if (typeof iterations !== 'number') {\n    throw new TypeError('Iterations not a number')\n  }\n\n  if (iterations < 0) {\n    throw new TypeError('Bad iterations')\n  }\n\n  if (typeof keylen !== 'number') {\n    throw new TypeError('Key length not a number')\n  }\n\n  if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n    throw new TypeError('Bad key length')\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/lib/precondition.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/sync-browser.js":
/*!*************************************************!*\
  !*** ./node_modules/pbkdf2/lib/sync-browser.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var md5 = __webpack_require__(/*! create-hash/md5 */ \"./node_modules/create-hash/md5.js\")\nvar RIPEMD160 = __webpack_require__(/*! ripemd160 */ \"./node_modules/ripemd160/index.js\")\nvar sha = __webpack_require__(/*! sha.js */ \"./node_modules/sha.js/index.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar checkParameters = __webpack_require__(/*! ./precondition */ \"./node_modules/pbkdf2/lib/precondition.js\")\nvar defaultEncoding = __webpack_require__(/*! ./default-encoding */ \"./node_modules/pbkdf2/lib/default-encoding.js\")\nvar toBuffer = __webpack_require__(/*! ./to-buffer */ \"./node_modules/pbkdf2/lib/to-buffer.js\")\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n  md5: 16,\n  sha1: 20,\n  sha224: 28,\n  sha256: 32,\n  sha384: 48,\n  sha512: 64,\n  rmd160: 20,\n  ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n  var hash = getDigest(alg)\n  var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n  if (key.length > blocksize) {\n    key = hash(key)\n  } else if (key.length < blocksize) {\n    key = Buffer.concat([key, ZEROS], blocksize)\n  }\n\n  var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n  var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n  for (var i = 0; i < blocksize; i++) {\n    ipad[i] = key[i] ^ 0x36\n    opad[i] = key[i] ^ 0x5C\n  }\n\n  var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n  ipad.copy(ipad1, 0, 0, blocksize)\n  this.ipad1 = ipad1\n  this.ipad2 = ipad\n  this.opad = opad\n  this.alg = alg\n  this.blocksize = blocksize\n  this.hash = hash\n  this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n  data.copy(ipad, this.blocksize)\n  var h = this.hash(ipad)\n  h.copy(this.opad, this.blocksize)\n  return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n  function shaFunc (data) {\n    return sha(alg).update(data).digest()\n  }\n  function rmd160Func (data) {\n    return new RIPEMD160().update(data).digest()\n  }\n\n  if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n  if (alg === 'md5') return md5\n  return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n  checkParameters(iterations, keylen)\n  password = toBuffer(password, defaultEncoding, 'Password')\n  salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n  digest = digest || 'sha1'\n\n  var hmac = new Hmac(digest, password, salt.length)\n\n  var DK = Buffer.allocUnsafe(keylen)\n  var block1 = Buffer.allocUnsafe(salt.length + 4)\n  salt.copy(block1, 0, 0, salt.length)\n\n  var destPos = 0\n  var hLen = sizes[digest]\n  var l = Math.ceil(keylen / hLen)\n\n  for (var i = 1; i <= l; i++) {\n    block1.writeUInt32BE(i, salt.length)\n\n    var T = hmac.run(block1, hmac.ipad1)\n    var U = T\n\n    for (var j = 1; j < iterations; j++) {\n      U = hmac.run(U, hmac.ipad2)\n      for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n    }\n\n    T.copy(DK, destPos)\n    destPos += hLen\n  }\n\n  return DK\n}\n\nmodule.exports = pbkdf2\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/lib/sync-browser.js?");

/***/ }),

/***/ "./node_modules/pbkdf2/lib/to-buffer.js":
/*!**********************************************!*\
  !*** ./node_modules/pbkdf2/lib/to-buffer.js ***!
  \**********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nmodule.exports = function (thing, encoding, name) {\n  if (Buffer.isBuffer(thing)) {\n    return thing\n  } else if (typeof thing === 'string') {\n    return Buffer.from(thing, encoding)\n  } else if (ArrayBuffer.isView(thing)) {\n    return Buffer.from(thing.buffer)\n  } else {\n    throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n  }\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/pbkdf2/lib/to-buffer.js?");

/***/ }),

/***/ "./node_modules/process-nextick-args/index.js":
/*!****************************************************!*\
  !*** ./node_modules/process-nextick-args/index.js ***!
  \****************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\nif (typeof process === 'undefined' ||\n    !process.version ||\n    process.version.indexOf('v0.') === 0 ||\n    process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n  module.exports = { nextTick: nextTick };\n} else {\n  module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('\"callback\" argument must be a function');\n  }\n  var len = arguments.length;\n  var args, i;\n  switch (len) {\n  case 0:\n  case 1:\n    return process.nextTick(fn);\n  case 2:\n    return process.nextTick(function afterTickOne() {\n      fn.call(null, arg1);\n    });\n  case 3:\n    return process.nextTick(function afterTickTwo() {\n      fn.call(null, arg1, arg2);\n    });\n  case 4:\n    return process.nextTick(function afterTickThree() {\n      fn.call(null, arg1, arg2, arg3);\n    });\n  default:\n    args = new Array(len - 1);\n    i = 0;\n    while (i < args.length) {\n      args[i++] = arguments[i];\n    }\n    return process.nextTick(function afterTick() {\n      fn.apply(null, args);\n    });\n  }\n}\n\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/process-nextick-args/index.js?");

/***/ }),

/***/ "./node_modules/process/browser.js":
/*!*****************************************!*\
  !*** ./node_modules/process/browser.js ***!
  \*****************************************/
/***/ ((module) => {

eval("// 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\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/process/browser.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/browser.js":
/*!************************************************!*\
  !*** ./node_modules/public-encrypt/browser.js ***!
  \************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("exports.publicEncrypt = __webpack_require__(/*! ./publicEncrypt */ \"./node_modules/public-encrypt/publicEncrypt.js\")\nexports.privateDecrypt = __webpack_require__(/*! ./privateDecrypt */ \"./node_modules/public-encrypt/privateDecrypt.js\")\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n  return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n  return exports.privateDecrypt(key, buf, true)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/browser.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/mgf.js":
/*!********************************************!*\
  !*** ./node_modules/public-encrypt/mgf.js ***!
  \********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nmodule.exports = function (seed, len) {\n  var t = Buffer.alloc(0)\n  var i = 0\n  var c\n  while (t.length < len) {\n    c = i2ops(i++)\n    t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n  }\n  return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n  var out = Buffer.allocUnsafe(4)\n  out.writeUInt32BE(c, 0)\n  return out\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/mgf.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js":
/*!******************************************************************!*\
  !*** ./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js ***!
  \******************************************************************/
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {

eval("/* module decorator */ module = __webpack_require__.nmd(module);\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 = (__webpack_require__(/*! buffer */ \"?fbf1\").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 ? '<BN-R: ' : '<BN: ') + this.toString(16) + '>';\n  };\n\n  /*\n\n  var zeros = [];\n  var groupSizes = [];\n  var groupBases = [];\n\n  var s = '';\n  var i = -1;\n  while (++i < BN.wordSize) {\n    zeros[i] = s;\n    s += '0';\n  }\n  groupSizes[0] = 0;\n  groupSizes[1] = 0;\n  groupBases[0] = 0;\n  groupBases[1] = 0;\n  var base = 2 - 1;\n  while (++base < 36 + 1) {\n    var groupSize = 0;\n    var groupBase = 1;\n    while (groupBase < (1 << BN.wordSize) / base) {\n      groupBase *= base;\n      groupSize += 1;\n    }\n    groupSizes[base] = groupSize;\n    groupBases[base] = groupBase;\n  }\n\n  */\n\n  var zeros = [\n    '',\n    '0',\n    '00',\n    '000',\n    '0000',\n    '00000',\n    '000000',\n    '0000000',\n    '00000000',\n    '000000000',\n    '0000000000',\n    '00000000000',\n    '000000000000',\n    '0000000000000',\n    '00000000000000',\n    '000000000000000',\n    '0000000000000000',\n    '00000000000000000',\n    '000000000000000000',\n    '0000000000000000000',\n    '00000000000000000000',\n    '000000000000000000000',\n    '0000000000000000000000',\n    '00000000000000000000000',\n    '000000000000000000000000',\n    '0000000000000000000000000'\n  ];\n\n  var groupSizes = [\n    0, 0,\n    25, 16, 12, 11, 10, 9, 8,\n    8, 7, 7, 7, 7, 6, 6,\n    6, 6, 6, 6, 6, 5, 5,\n    5, 5, 5, 5, 5, 5, 5,\n    5, 5, 5, 5, 5, 5, 5\n  ];\n\n  var groupBases = [\n    0, 0,\n    33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n    43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n    16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n    6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n    24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n  ];\n\n  BN.prototype.toString = function toString (base, padding) {\n    base = base || 10;\n    padding = padding | 0 || 1;\n\n    var out;\n    if (base === 16 || base === 'hex') {\n      out = '';\n      var off = 0;\n      var carry = 0;\n      for (var i = 0; i < this.length; i++) {\n        var w = this.words[i];\n        var word = (((w << off) | carry) & 0xffffff).toString(16);\n        carry = (w >>> (24 - off)) & 0xffffff;\n        off += 2;\n        if (off >= 26) {\n          off -= 26;\n          i--;\n        }\n        if (carry !== 0 || i !== this.length - 1) {\n          out = zeros[6 - word.length] + word + out;\n        } else {\n          out = word + out;\n        }\n      }\n      if (carry !== 0) {\n        out = carry.toString(16) + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    if (base === (base | 0) && base >= 2 && base <= 36) {\n      // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n      var groupSize = groupSizes[base];\n      // var groupBase = Math.pow(base, groupSize);\n      var groupBase = groupBases[base];\n      out = '';\n      var c = this.clone();\n      c.negative = 0;\n      while (!c.isZero()) {\n        var r = c.modn(groupBase).toString(base);\n        c = c.idivn(groupBase);\n\n        if (!c.isZero()) {\n          out = zeros[groupSize - r.length] + r + out;\n        } else {\n          out = r + out;\n        }\n      }\n      if (this.isZero()) {\n        out = '0' + out;\n      }\n      while (out.length % padding !== 0) {\n        out = '0' + out;\n      }\n      if (this.negative !== 0) {\n        out = '-' + out;\n      }\n      return out;\n    }\n\n    assert(false, 'Base should be between 2 and 36');\n  };\n\n  BN.prototype.toNumber = function toNumber () {\n    var ret = this.words[0];\n    if (this.length === 2) {\n      ret += this.words[1] * 0x4000000;\n    } else if (this.length === 3 && this.words[2] === 0x01) {\n      // NOTE: at this stage it is known that the top bit is set\n      ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n    } else if (this.length > 2) {\n      assert(false, 'Number can only safely store up to 53 bits');\n    }\n    return (this.negative !== 0) ? -ret : ret;\n  };\n\n  BN.prototype.toJSON = function toJSON () {\n    return this.toString(16);\n  };\n\n  BN.prototype.toBuffer = function toBuffer (endian, length) {\n    assert(typeof Buffer !== 'undefined');\n    return this.toArrayLike(Buffer, endian, length);\n  };\n\n  BN.prototype.toArray = function toArray (endian, length) {\n    return this.toArrayLike(Array, endian, length);\n  };\n\n  BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n    var byteLength = this.byteLength();\n    var reqLength = length || Math.max(1, byteLength);\n    assert(byteLength <= reqLength, 'byte array longer than desired length');\n    assert(reqLength > 0, 'Requested array length <= 0');\n\n    this.strip();\n    var littleEndian = endian === 'le';\n    var res = new ArrayType(reqLength);\n\n    var b, i;\n    var q = this.clone();\n    if (!littleEndian) {\n      // Assume big-endian\n      for (i = 0; i < reqLength - byteLength; i++) {\n        res[i] = 0;\n      }\n\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[reqLength - i - 1] = b;\n      }\n    } else {\n      for (i = 0; !q.isZero(); i++) {\n        b = q.andln(0xff);\n        q.iushrn(8);\n\n        res[i] = b;\n      }\n\n      for (; i < reqLength; i++) {\n        res[i] = 0;\n      }\n    }\n\n    return res;\n  };\n\n  if (Math.clz32) {\n    BN.prototype._countBits = function _countBits (w) {\n      return 32 - Math.clz32(w);\n    };\n  } else {\n    BN.prototype._countBits = function _countBits (w) {\n      var t = w;\n      var r = 0;\n      if (t >= 0x1000) {\n        r += 13;\n        t >>>= 13;\n      }\n      if (t >= 0x40) {\n        r += 7;\n        t >>>= 7;\n      }\n      if (t >= 0x8) {\n        r += 4;\n        t >>>= 4;\n      }\n      if (t >= 0x02) {\n        r += 2;\n        t >>>= 2;\n      }\n      return r + t;\n    };\n  }\n\n  BN.prototype._zeroBits = function _zeroBits (w) {\n    // Short-cut\n    if (w === 0) return 26;\n\n    var t = w;\n    var r = 0;\n    if ((t & 0x1fff) === 0) {\n      r += 13;\n      t >>>= 13;\n    }\n    if ((t & 0x7f) === 0) {\n      r += 7;\n      t >>>= 7;\n    }\n    if ((t & 0xf) === 0) {\n      r += 4;\n      t >>>= 4;\n    }\n    if ((t & 0x3) === 0) {\n      r += 2;\n      t >>>= 2;\n    }\n    if ((t & 0x1) === 0) {\n      r++;\n    }\n    return r;\n  };\n\n  // Return number of used bits in a BN\n  BN.prototype.bitLength = function bitLength () {\n    var w = this.words[this.length - 1];\n    var hi = this._countBits(w);\n    return (this.length - 1) * 26 + hi;\n  };\n\n  function toBitArray (num) {\n    var w = new Array(num.bitLength());\n\n    for (var bit = 0; bit < w.length; bit++) {\n      var off = (bit / 26) | 0;\n      var wbit = bit % 26;\n\n      w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n    }\n\n    return w;\n  }\n\n  // Number of trailing zero bits\n  BN.prototype.zeroBits = function zeroBits () {\n    if (this.isZero()) return 0;\n\n    var r = 0;\n    for (var i = 0; i < this.length; i++) {\n      var b = this._zeroBits(this.words[i]);\n      r += b;\n      if (b !== 26) break;\n    }\n    return r;\n  };\n\n  BN.prototype.byteLength = function byteLength () {\n    return Math.ceil(this.bitLength() / 8);\n  };\n\n  BN.prototype.toTwos = function toTwos (width) {\n    if (this.negative !== 0) {\n      return this.abs().inotn(width).iaddn(1);\n    }\n    return this.clone();\n  };\n\n  BN.prototype.fromTwos = function fromTwos (width) {\n    if (this.testn(width - 1)) {\n      return this.notn(width).iaddn(1).ineg();\n    }\n    return this.clone();\n  };\n\n  BN.prototype.isNeg = function isNeg () {\n    return this.negative !== 0;\n  };\n\n  // Return negative clone of `this`\n  BN.prototype.neg = function neg () {\n    return this.clone().ineg();\n  };\n\n  BN.prototype.ineg = function ineg () {\n    if (!this.isZero()) {\n      this.negative ^= 1;\n    }\n\n    return this;\n  };\n\n  // Or `num` with `this` in-place\n  BN.prototype.iuor = function iuor (num) {\n    while (this.length < num.length) {\n      this.words[this.length++] = 0;\n    }\n\n    for (var i = 0; i < num.length; i++) {\n      this.words[i] = this.words[i] | num.words[i];\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ior = function ior (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuor(num);\n  };\n\n  // Or `num` with `this`\n  BN.prototype.or = function or (num) {\n    if (this.length > num.length) return this.clone().ior(num);\n    return num.clone().ior(this);\n  };\n\n  BN.prototype.uor = function uor (num) {\n    if (this.length > num.length) return this.clone().iuor(num);\n    return num.clone().iuor(this);\n  };\n\n  // And `num` with `this` in-place\n  BN.prototype.iuand = function iuand (num) {\n    // b = min-length(num, this)\n    var b;\n    if (this.length > num.length) {\n      b = num;\n    } else {\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = this.words[i] & num.words[i];\n    }\n\n    this.length = b.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.iand = function iand (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuand(num);\n  };\n\n  // And `num` with `this`\n  BN.prototype.and = function and (num) {\n    if (this.length > num.length) return this.clone().iand(num);\n    return num.clone().iand(this);\n  };\n\n  BN.prototype.uand = function uand (num) {\n    if (this.length > num.length) return this.clone().iuand(num);\n    return num.clone().iuand(this);\n  };\n\n  // Xor `num` with `this` in-place\n  BN.prototype.iuxor = function iuxor (num) {\n    // a.length > b.length\n    var a;\n    var b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    for (var i = 0; i < b.length; i++) {\n      this.words[i] = a.words[i] ^ b.words[i];\n    }\n\n    if (this !== a) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = a.length;\n\n    return this.strip();\n  };\n\n  BN.prototype.ixor = function ixor (num) {\n    assert((this.negative | num.negative) === 0);\n    return this.iuxor(num);\n  };\n\n  // Xor `num` with `this`\n  BN.prototype.xor = function xor (num) {\n    if (this.length > num.length) return this.clone().ixor(num);\n    return num.clone().ixor(this);\n  };\n\n  BN.prototype.uxor = function uxor (num) {\n    if (this.length > num.length) return this.clone().iuxor(num);\n    return num.clone().iuxor(this);\n  };\n\n  // Not ``this`` with ``width`` bitwidth\n  BN.prototype.inotn = function inotn (width) {\n    assert(typeof width === 'number' && width >= 0);\n\n    var bytesNeeded = Math.ceil(width / 26) | 0;\n    var bitsLeft = width % 26;\n\n    // Extend the buffer with leading zeroes\n    this._expand(bytesNeeded);\n\n    if (bitsLeft > 0) {\n      bytesNeeded--;\n    }\n\n    // Handle complete words\n    for (var i = 0; i < bytesNeeded; i++) {\n      this.words[i] = ~this.words[i] & 0x3ffffff;\n    }\n\n    // Handle the residue\n    if (bitsLeft > 0) {\n      this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n    }\n\n    // And remove leading zeroes\n    return this.strip();\n  };\n\n  BN.prototype.notn = function notn (width) {\n    return this.clone().inotn(width);\n  };\n\n  // Set `bit` of `this`\n  BN.prototype.setn = function setn (bit, val) {\n    assert(typeof bit === 'number' && bit >= 0);\n\n    var off = (bit / 26) | 0;\n    var wbit = bit % 26;\n\n    this._expand(off + 1);\n\n    if (val) {\n      this.words[off] = this.words[off] | (1 << wbit);\n    } else {\n      this.words[off] = this.words[off] & ~(1 << wbit);\n    }\n\n    return this.strip();\n  };\n\n  // Add `num` to `this` in-place\n  BN.prototype.iadd = function iadd (num) {\n    var r;\n\n    // negative + positive\n    if (this.negative !== 0 && num.negative === 0) {\n      this.negative = 0;\n      r = this.isub(num);\n      this.negative ^= 1;\n      return this._normSign();\n\n    // positive + negative\n    } else if (this.negative === 0 && num.negative !== 0) {\n      num.negative = 0;\n      r = this.isub(num);\n      num.negative = 1;\n      return r._normSign();\n    }\n\n    // a.length > b.length\n    var a, b;\n    if (this.length > num.length) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      this.words[i] = r & 0x3ffffff;\n      carry = r >>> 26;\n    }\n\n    this.length = a.length;\n    if (carry !== 0) {\n      this.words[this.length] = carry;\n      this.length++;\n    // Copy the rest of the words\n    } else if (a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    return this;\n  };\n\n  // Add `num` to `this`\n  BN.prototype.add = function add (num) {\n    var res;\n    if (num.negative !== 0 && this.negative === 0) {\n      num.negative = 0;\n      res = this.sub(num);\n      num.negative ^= 1;\n      return res;\n    } else if (num.negative === 0 && this.negative !== 0) {\n      this.negative = 0;\n      res = num.sub(this);\n      this.negative = 1;\n      return res;\n    }\n\n    if (this.length > num.length) return this.clone().iadd(num);\n\n    return num.clone().iadd(this);\n  };\n\n  // Subtract `num` from `this` in-place\n  BN.prototype.isub = function isub (num) {\n    // this - (-num) = this + num\n    if (num.negative !== 0) {\n      num.negative = 0;\n      var r = this.iadd(num);\n      num.negative = 1;\n      return r._normSign();\n\n    // -this - num = -(this + num)\n    } else if (this.negative !== 0) {\n      this.negative = 0;\n      this.iadd(num);\n      this.negative = 1;\n      return this._normSign();\n    }\n\n    // At this point both numbers are positive\n    var cmp = this.cmp(num);\n\n    // Optimization - zeroify\n    if (cmp === 0) {\n      this.negative = 0;\n      this.length = 1;\n      this.words[0] = 0;\n      return this;\n    }\n\n    // a > b\n    var a, b;\n    if (cmp > 0) {\n      a = this;\n      b = num;\n    } else {\n      a = num;\n      b = this;\n    }\n\n    var carry = 0;\n    for (var i = 0; i < b.length; i++) {\n      r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n    for (; carry !== 0 && i < a.length; i++) {\n      r = (a.words[i] | 0) + carry;\n      carry = r >> 26;\n      this.words[i] = r & 0x3ffffff;\n    }\n\n    // Copy rest of the words\n    if (carry === 0 && i < a.length && a !== this) {\n      for (; i < a.length; i++) {\n        this.words[i] = a.words[i];\n      }\n    }\n\n    this.length = Math.max(this.length, i);\n\n    if (a !== this) {\n      this.negative = 1;\n    }\n\n    return this.strip();\n  };\n\n  // Subtract `num` from `this`\n  BN.prototype.sub = function sub (num) {\n    return this.clone().isub(num);\n  };\n\n  function smallMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    var len = (self.length + num.length) | 0;\n    out.length = len;\n    len = (len - 1) | 0;\n\n    // Peel one iteration (compiler can't do it, because of code complexity)\n    var a = self.words[0] | 0;\n    var b = num.words[0] | 0;\n    var r = a * b;\n\n    var lo = r & 0x3ffffff;\n    var carry = (r / 0x4000000) | 0;\n    out.words[0] = lo;\n\n    for (var k = 1; k < len; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = carry >>> 26;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = (k - j) | 0;\n        a = self.words[i] | 0;\n        b = num.words[j] | 0;\n        r = a * b + rword;\n        ncarry += (r / 0x4000000) | 0;\n        rword = r & 0x3ffffff;\n      }\n      out.words[k] = rword | 0;\n      carry = ncarry | 0;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry | 0;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  // TODO(indutny): it may be reasonable to omit it for users who don't need\n  // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n  // multiplication (like elliptic secp256k1).\n  var comb10MulTo = function comb10MulTo (self, num, out) {\n    var a = self.words;\n    var b = num.words;\n    var o = out.words;\n    var c = 0;\n    var lo;\n    var mid;\n    var hi;\n    var a0 = a[0] | 0;\n    var al0 = a0 & 0x1fff;\n    var ah0 = a0 >>> 13;\n    var a1 = a[1] | 0;\n    var al1 = a1 & 0x1fff;\n    var ah1 = a1 >>> 13;\n    var a2 = a[2] | 0;\n    var al2 = a2 & 0x1fff;\n    var ah2 = a2 >>> 13;\n    var a3 = a[3] | 0;\n    var al3 = a3 & 0x1fff;\n    var ah3 = a3 >>> 13;\n    var a4 = a[4] | 0;\n    var al4 = a4 & 0x1fff;\n    var ah4 = a4 >>> 13;\n    var a5 = a[5] | 0;\n    var al5 = a5 & 0x1fff;\n    var ah5 = a5 >>> 13;\n    var a6 = a[6] | 0;\n    var al6 = a6 & 0x1fff;\n    var ah6 = a6 >>> 13;\n    var a7 = a[7] | 0;\n    var al7 = a7 & 0x1fff;\n    var ah7 = a7 >>> 13;\n    var a8 = a[8] | 0;\n    var al8 = a8 & 0x1fff;\n    var ah8 = a8 >>> 13;\n    var a9 = a[9] | 0;\n    var al9 = a9 & 0x1fff;\n    var ah9 = a9 >>> 13;\n    var b0 = b[0] | 0;\n    var bl0 = b0 & 0x1fff;\n    var bh0 = b0 >>> 13;\n    var b1 = b[1] | 0;\n    var bl1 = b1 & 0x1fff;\n    var bh1 = b1 >>> 13;\n    var b2 = b[2] | 0;\n    var bl2 = b2 & 0x1fff;\n    var bh2 = b2 >>> 13;\n    var b3 = b[3] | 0;\n    var bl3 = b3 & 0x1fff;\n    var bh3 = b3 >>> 13;\n    var b4 = b[4] | 0;\n    var bl4 = b4 & 0x1fff;\n    var bh4 = b4 >>> 13;\n    var b5 = b[5] | 0;\n    var bl5 = b5 & 0x1fff;\n    var bh5 = b5 >>> 13;\n    var b6 = b[6] | 0;\n    var bl6 = b6 & 0x1fff;\n    var bh6 = b6 >>> 13;\n    var b7 = b[7] | 0;\n    var bl7 = b7 & 0x1fff;\n    var bh7 = b7 >>> 13;\n    var b8 = b[8] | 0;\n    var bl8 = b8 & 0x1fff;\n    var bh8 = b8 >>> 13;\n    var b9 = b[9] | 0;\n    var bl9 = b9 & 0x1fff;\n    var bh9 = b9 >>> 13;\n\n    out.negative = self.negative ^ num.negative;\n    out.length = 19;\n    /* k = 0 */\n    lo = Math.imul(al0, bl0);\n    mid = Math.imul(al0, bh0);\n    mid = (mid + Math.imul(ah0, bl0)) | 0;\n    hi = Math.imul(ah0, bh0);\n    var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n    w0 &= 0x3ffffff;\n    /* k = 1 */\n    lo = Math.imul(al1, bl0);\n    mid = Math.imul(al1, bh0);\n    mid = (mid + Math.imul(ah1, bl0)) | 0;\n    hi = Math.imul(ah1, bh0);\n    lo = (lo + Math.imul(al0, bl1)) | 0;\n    mid = (mid + Math.imul(al0, bh1)) | 0;\n    mid = (mid + Math.imul(ah0, bl1)) | 0;\n    hi = (hi + Math.imul(ah0, bh1)) | 0;\n    var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n    w1 &= 0x3ffffff;\n    /* k = 2 */\n    lo = Math.imul(al2, bl0);\n    mid = Math.imul(al2, bh0);\n    mid = (mid + Math.imul(ah2, bl0)) | 0;\n    hi = Math.imul(ah2, bh0);\n    lo = (lo + Math.imul(al1, bl1)) | 0;\n    mid = (mid + Math.imul(al1, bh1)) | 0;\n    mid = (mid + Math.imul(ah1, bl1)) | 0;\n    hi = (hi + Math.imul(ah1, bh1)) | 0;\n    lo = (lo + Math.imul(al0, bl2)) | 0;\n    mid = (mid + Math.imul(al0, bh2)) | 0;\n    mid = (mid + Math.imul(ah0, bl2)) | 0;\n    hi = (hi + Math.imul(ah0, bh2)) | 0;\n    var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n    w2 &= 0x3ffffff;\n    /* k = 3 */\n    lo = Math.imul(al3, bl0);\n    mid = Math.imul(al3, bh0);\n    mid = (mid + Math.imul(ah3, bl0)) | 0;\n    hi = Math.imul(ah3, bh0);\n    lo = (lo + Math.imul(al2, bl1)) | 0;\n    mid = (mid + Math.imul(al2, bh1)) | 0;\n    mid = (mid + Math.imul(ah2, bl1)) | 0;\n    hi = (hi + Math.imul(ah2, bh1)) | 0;\n    lo = (lo + Math.imul(al1, bl2)) | 0;\n    mid = (mid + Math.imul(al1, bh2)) | 0;\n    mid = (mid + Math.imul(ah1, bl2)) | 0;\n    hi = (hi + Math.imul(ah1, bh2)) | 0;\n    lo = (lo + Math.imul(al0, bl3)) | 0;\n    mid = (mid + Math.imul(al0, bh3)) | 0;\n    mid = (mid + Math.imul(ah0, bl3)) | 0;\n    hi = (hi + Math.imul(ah0, bh3)) | 0;\n    var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n    w3 &= 0x3ffffff;\n    /* k = 4 */\n    lo = Math.imul(al4, bl0);\n    mid = Math.imul(al4, bh0);\n    mid = (mid + Math.imul(ah4, bl0)) | 0;\n    hi = Math.imul(ah4, bh0);\n    lo = (lo + Math.imul(al3, bl1)) | 0;\n    mid = (mid + Math.imul(al3, bh1)) | 0;\n    mid = (mid + Math.imul(ah3, bl1)) | 0;\n    hi = (hi + Math.imul(ah3, bh1)) | 0;\n    lo = (lo + Math.imul(al2, bl2)) | 0;\n    mid = (mid + Math.imul(al2, bh2)) | 0;\n    mid = (mid + Math.imul(ah2, bl2)) | 0;\n    hi = (hi + Math.imul(ah2, bh2)) | 0;\n    lo = (lo + Math.imul(al1, bl3)) | 0;\n    mid = (mid + Math.imul(al1, bh3)) | 0;\n    mid = (mid + Math.imul(ah1, bl3)) | 0;\n    hi = (hi + Math.imul(ah1, bh3)) | 0;\n    lo = (lo + Math.imul(al0, bl4)) | 0;\n    mid = (mid + Math.imul(al0, bh4)) | 0;\n    mid = (mid + Math.imul(ah0, bl4)) | 0;\n    hi = (hi + Math.imul(ah0, bh4)) | 0;\n    var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n    w4 &= 0x3ffffff;\n    /* k = 5 */\n    lo = Math.imul(al5, bl0);\n    mid = Math.imul(al5, bh0);\n    mid = (mid + Math.imul(ah5, bl0)) | 0;\n    hi = Math.imul(ah5, bh0);\n    lo = (lo + Math.imul(al4, bl1)) | 0;\n    mid = (mid + Math.imul(al4, bh1)) | 0;\n    mid = (mid + Math.imul(ah4, bl1)) | 0;\n    hi = (hi + Math.imul(ah4, bh1)) | 0;\n    lo = (lo + Math.imul(al3, bl2)) | 0;\n    mid = (mid + Math.imul(al3, bh2)) | 0;\n    mid = (mid + Math.imul(ah3, bl2)) | 0;\n    hi = (hi + Math.imul(ah3, bh2)) | 0;\n    lo = (lo + Math.imul(al2, bl3)) | 0;\n    mid = (mid + Math.imul(al2, bh3)) | 0;\n    mid = (mid + Math.imul(ah2, bl3)) | 0;\n    hi = (hi + Math.imul(ah2, bh3)) | 0;\n    lo = (lo + Math.imul(al1, bl4)) | 0;\n    mid = (mid + Math.imul(al1, bh4)) | 0;\n    mid = (mid + Math.imul(ah1, bl4)) | 0;\n    hi = (hi + Math.imul(ah1, bh4)) | 0;\n    lo = (lo + Math.imul(al0, bl5)) | 0;\n    mid = (mid + Math.imul(al0, bh5)) | 0;\n    mid = (mid + Math.imul(ah0, bl5)) | 0;\n    hi = (hi + Math.imul(ah0, bh5)) | 0;\n    var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n    w5 &= 0x3ffffff;\n    /* k = 6 */\n    lo = Math.imul(al6, bl0);\n    mid = Math.imul(al6, bh0);\n    mid = (mid + Math.imul(ah6, bl0)) | 0;\n    hi = Math.imul(ah6, bh0);\n    lo = (lo + Math.imul(al5, bl1)) | 0;\n    mid = (mid + Math.imul(al5, bh1)) | 0;\n    mid = (mid + Math.imul(ah5, bl1)) | 0;\n    hi = (hi + Math.imul(ah5, bh1)) | 0;\n    lo = (lo + Math.imul(al4, bl2)) | 0;\n    mid = (mid + Math.imul(al4, bh2)) | 0;\n    mid = (mid + Math.imul(ah4, bl2)) | 0;\n    hi = (hi + Math.imul(ah4, bh2)) | 0;\n    lo = (lo + Math.imul(al3, bl3)) | 0;\n    mid = (mid + Math.imul(al3, bh3)) | 0;\n    mid = (mid + Math.imul(ah3, bl3)) | 0;\n    hi = (hi + Math.imul(ah3, bh3)) | 0;\n    lo = (lo + Math.imul(al2, bl4)) | 0;\n    mid = (mid + Math.imul(al2, bh4)) | 0;\n    mid = (mid + Math.imul(ah2, bl4)) | 0;\n    hi = (hi + Math.imul(ah2, bh4)) | 0;\n    lo = (lo + Math.imul(al1, bl5)) | 0;\n    mid = (mid + Math.imul(al1, bh5)) | 0;\n    mid = (mid + Math.imul(ah1, bl5)) | 0;\n    hi = (hi + Math.imul(ah1, bh5)) | 0;\n    lo = (lo + Math.imul(al0, bl6)) | 0;\n    mid = (mid + Math.imul(al0, bh6)) | 0;\n    mid = (mid + Math.imul(ah0, bl6)) | 0;\n    hi = (hi + Math.imul(ah0, bh6)) | 0;\n    var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n    w6 &= 0x3ffffff;\n    /* k = 7 */\n    lo = Math.imul(al7, bl0);\n    mid = Math.imul(al7, bh0);\n    mid = (mid + Math.imul(ah7, bl0)) | 0;\n    hi = Math.imul(ah7, bh0);\n    lo = (lo + Math.imul(al6, bl1)) | 0;\n    mid = (mid + Math.imul(al6, bh1)) | 0;\n    mid = (mid + Math.imul(ah6, bl1)) | 0;\n    hi = (hi + Math.imul(ah6, bh1)) | 0;\n    lo = (lo + Math.imul(al5, bl2)) | 0;\n    mid = (mid + Math.imul(al5, bh2)) | 0;\n    mid = (mid + Math.imul(ah5, bl2)) | 0;\n    hi = (hi + Math.imul(ah5, bh2)) | 0;\n    lo = (lo + Math.imul(al4, bl3)) | 0;\n    mid = (mid + Math.imul(al4, bh3)) | 0;\n    mid = (mid + Math.imul(ah4, bl3)) | 0;\n    hi = (hi + Math.imul(ah4, bh3)) | 0;\n    lo = (lo + Math.imul(al3, bl4)) | 0;\n    mid = (mid + Math.imul(al3, bh4)) | 0;\n    mid = (mid + Math.imul(ah3, bl4)) | 0;\n    hi = (hi + Math.imul(ah3, bh4)) | 0;\n    lo = (lo + Math.imul(al2, bl5)) | 0;\n    mid = (mid + Math.imul(al2, bh5)) | 0;\n    mid = (mid + Math.imul(ah2, bl5)) | 0;\n    hi = (hi + Math.imul(ah2, bh5)) | 0;\n    lo = (lo + Math.imul(al1, bl6)) | 0;\n    mid = (mid + Math.imul(al1, bh6)) | 0;\n    mid = (mid + Math.imul(ah1, bl6)) | 0;\n    hi = (hi + Math.imul(ah1, bh6)) | 0;\n    lo = (lo + Math.imul(al0, bl7)) | 0;\n    mid = (mid + Math.imul(al0, bh7)) | 0;\n    mid = (mid + Math.imul(ah0, bl7)) | 0;\n    hi = (hi + Math.imul(ah0, bh7)) | 0;\n    var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n    w7 &= 0x3ffffff;\n    /* k = 8 */\n    lo = Math.imul(al8, bl0);\n    mid = Math.imul(al8, bh0);\n    mid = (mid + Math.imul(ah8, bl0)) | 0;\n    hi = Math.imul(ah8, bh0);\n    lo = (lo + Math.imul(al7, bl1)) | 0;\n    mid = (mid + Math.imul(al7, bh1)) | 0;\n    mid = (mid + Math.imul(ah7, bl1)) | 0;\n    hi = (hi + Math.imul(ah7, bh1)) | 0;\n    lo = (lo + Math.imul(al6, bl2)) | 0;\n    mid = (mid + Math.imul(al6, bh2)) | 0;\n    mid = (mid + Math.imul(ah6, bl2)) | 0;\n    hi = (hi + Math.imul(ah6, bh2)) | 0;\n    lo = (lo + Math.imul(al5, bl3)) | 0;\n    mid = (mid + Math.imul(al5, bh3)) | 0;\n    mid = (mid + Math.imul(ah5, bl3)) | 0;\n    hi = (hi + Math.imul(ah5, bh3)) | 0;\n    lo = (lo + Math.imul(al4, bl4)) | 0;\n    mid = (mid + Math.imul(al4, bh4)) | 0;\n    mid = (mid + Math.imul(ah4, bl4)) | 0;\n    hi = (hi + Math.imul(ah4, bh4)) | 0;\n    lo = (lo + Math.imul(al3, bl5)) | 0;\n    mid = (mid + Math.imul(al3, bh5)) | 0;\n    mid = (mid + Math.imul(ah3, bl5)) | 0;\n    hi = (hi + Math.imul(ah3, bh5)) | 0;\n    lo = (lo + Math.imul(al2, bl6)) | 0;\n    mid = (mid + Math.imul(al2, bh6)) | 0;\n    mid = (mid + Math.imul(ah2, bl6)) | 0;\n    hi = (hi + Math.imul(ah2, bh6)) | 0;\n    lo = (lo + Math.imul(al1, bl7)) | 0;\n    mid = (mid + Math.imul(al1, bh7)) | 0;\n    mid = (mid + Math.imul(ah1, bl7)) | 0;\n    hi = (hi + Math.imul(ah1, bh7)) | 0;\n    lo = (lo + Math.imul(al0, bl8)) | 0;\n    mid = (mid + Math.imul(al0, bh8)) | 0;\n    mid = (mid + Math.imul(ah0, bl8)) | 0;\n    hi = (hi + Math.imul(ah0, bh8)) | 0;\n    var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n    w8 &= 0x3ffffff;\n    /* k = 9 */\n    lo = Math.imul(al9, bl0);\n    mid = Math.imul(al9, bh0);\n    mid = (mid + Math.imul(ah9, bl0)) | 0;\n    hi = Math.imul(ah9, bh0);\n    lo = (lo + Math.imul(al8, bl1)) | 0;\n    mid = (mid + Math.imul(al8, bh1)) | 0;\n    mid = (mid + Math.imul(ah8, bl1)) | 0;\n    hi = (hi + Math.imul(ah8, bh1)) | 0;\n    lo = (lo + Math.imul(al7, bl2)) | 0;\n    mid = (mid + Math.imul(al7, bh2)) | 0;\n    mid = (mid + Math.imul(ah7, bl2)) | 0;\n    hi = (hi + Math.imul(ah7, bh2)) | 0;\n    lo = (lo + Math.imul(al6, bl3)) | 0;\n    mid = (mid + Math.imul(al6, bh3)) | 0;\n    mid = (mid + Math.imul(ah6, bl3)) | 0;\n    hi = (hi + Math.imul(ah6, bh3)) | 0;\n    lo = (lo + Math.imul(al5, bl4)) | 0;\n    mid = (mid + Math.imul(al5, bh4)) | 0;\n    mid = (mid + Math.imul(ah5, bl4)) | 0;\n    hi = (hi + Math.imul(ah5, bh4)) | 0;\n    lo = (lo + Math.imul(al4, bl5)) | 0;\n    mid = (mid + Math.imul(al4, bh5)) | 0;\n    mid = (mid + Math.imul(ah4, bl5)) | 0;\n    hi = (hi + Math.imul(ah4, bh5)) | 0;\n    lo = (lo + Math.imul(al3, bl6)) | 0;\n    mid = (mid + Math.imul(al3, bh6)) | 0;\n    mid = (mid + Math.imul(ah3, bl6)) | 0;\n    hi = (hi + Math.imul(ah3, bh6)) | 0;\n    lo = (lo + Math.imul(al2, bl7)) | 0;\n    mid = (mid + Math.imul(al2, bh7)) | 0;\n    mid = (mid + Math.imul(ah2, bl7)) | 0;\n    hi = (hi + Math.imul(ah2, bh7)) | 0;\n    lo = (lo + Math.imul(al1, bl8)) | 0;\n    mid = (mid + Math.imul(al1, bh8)) | 0;\n    mid = (mid + Math.imul(ah1, bl8)) | 0;\n    hi = (hi + Math.imul(ah1, bh8)) | 0;\n    lo = (lo + Math.imul(al0, bl9)) | 0;\n    mid = (mid + Math.imul(al0, bh9)) | 0;\n    mid = (mid + Math.imul(ah0, bl9)) | 0;\n    hi = (hi + Math.imul(ah0, bh9)) | 0;\n    var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n    w9 &= 0x3ffffff;\n    /* k = 10 */\n    lo = Math.imul(al9, bl1);\n    mid = Math.imul(al9, bh1);\n    mid = (mid + Math.imul(ah9, bl1)) | 0;\n    hi = Math.imul(ah9, bh1);\n    lo = (lo + Math.imul(al8, bl2)) | 0;\n    mid = (mid + Math.imul(al8, bh2)) | 0;\n    mid = (mid + Math.imul(ah8, bl2)) | 0;\n    hi = (hi + Math.imul(ah8, bh2)) | 0;\n    lo = (lo + Math.imul(al7, bl3)) | 0;\n    mid = (mid + Math.imul(al7, bh3)) | 0;\n    mid = (mid + Math.imul(ah7, bl3)) | 0;\n    hi = (hi + Math.imul(ah7, bh3)) | 0;\n    lo = (lo + Math.imul(al6, bl4)) | 0;\n    mid = (mid + Math.imul(al6, bh4)) | 0;\n    mid = (mid + Math.imul(ah6, bl4)) | 0;\n    hi = (hi + Math.imul(ah6, bh4)) | 0;\n    lo = (lo + Math.imul(al5, bl5)) | 0;\n    mid = (mid + Math.imul(al5, bh5)) | 0;\n    mid = (mid + Math.imul(ah5, bl5)) | 0;\n    hi = (hi + Math.imul(ah5, bh5)) | 0;\n    lo = (lo + Math.imul(al4, bl6)) | 0;\n    mid = (mid + Math.imul(al4, bh6)) | 0;\n    mid = (mid + Math.imul(ah4, bl6)) | 0;\n    hi = (hi + Math.imul(ah4, bh6)) | 0;\n    lo = (lo + Math.imul(al3, bl7)) | 0;\n    mid = (mid + Math.imul(al3, bh7)) | 0;\n    mid = (mid + Math.imul(ah3, bl7)) | 0;\n    hi = (hi + Math.imul(ah3, bh7)) | 0;\n    lo = (lo + Math.imul(al2, bl8)) | 0;\n    mid = (mid + Math.imul(al2, bh8)) | 0;\n    mid = (mid + Math.imul(ah2, bl8)) | 0;\n    hi = (hi + Math.imul(ah2, bh8)) | 0;\n    lo = (lo + Math.imul(al1, bl9)) | 0;\n    mid = (mid + Math.imul(al1, bh9)) | 0;\n    mid = (mid + Math.imul(ah1, bl9)) | 0;\n    hi = (hi + Math.imul(ah1, bh9)) | 0;\n    var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n    w10 &= 0x3ffffff;\n    /* k = 11 */\n    lo = Math.imul(al9, bl2);\n    mid = Math.imul(al9, bh2);\n    mid = (mid + Math.imul(ah9, bl2)) | 0;\n    hi = Math.imul(ah9, bh2);\n    lo = (lo + Math.imul(al8, bl3)) | 0;\n    mid = (mid + Math.imul(al8, bh3)) | 0;\n    mid = (mid + Math.imul(ah8, bl3)) | 0;\n    hi = (hi + Math.imul(ah8, bh3)) | 0;\n    lo = (lo + Math.imul(al7, bl4)) | 0;\n    mid = (mid + Math.imul(al7, bh4)) | 0;\n    mid = (mid + Math.imul(ah7, bl4)) | 0;\n    hi = (hi + Math.imul(ah7, bh4)) | 0;\n    lo = (lo + Math.imul(al6, bl5)) | 0;\n    mid = (mid + Math.imul(al6, bh5)) | 0;\n    mid = (mid + Math.imul(ah6, bl5)) | 0;\n    hi = (hi + Math.imul(ah6, bh5)) | 0;\n    lo = (lo + Math.imul(al5, bl6)) | 0;\n    mid = (mid + Math.imul(al5, bh6)) | 0;\n    mid = (mid + Math.imul(ah5, bl6)) | 0;\n    hi = (hi + Math.imul(ah5, bh6)) | 0;\n    lo = (lo + Math.imul(al4, bl7)) | 0;\n    mid = (mid + Math.imul(al4, bh7)) | 0;\n    mid = (mid + Math.imul(ah4, bl7)) | 0;\n    hi = (hi + Math.imul(ah4, bh7)) | 0;\n    lo = (lo + Math.imul(al3, bl8)) | 0;\n    mid = (mid + Math.imul(al3, bh8)) | 0;\n    mid = (mid + Math.imul(ah3, bl8)) | 0;\n    hi = (hi + Math.imul(ah3, bh8)) | 0;\n    lo = (lo + Math.imul(al2, bl9)) | 0;\n    mid = (mid + Math.imul(al2, bh9)) | 0;\n    mid = (mid + Math.imul(ah2, bl9)) | 0;\n    hi = (hi + Math.imul(ah2, bh9)) | 0;\n    var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n    w11 &= 0x3ffffff;\n    /* k = 12 */\n    lo = Math.imul(al9, bl3);\n    mid = Math.imul(al9, bh3);\n    mid = (mid + Math.imul(ah9, bl3)) | 0;\n    hi = Math.imul(ah9, bh3);\n    lo = (lo + Math.imul(al8, bl4)) | 0;\n    mid = (mid + Math.imul(al8, bh4)) | 0;\n    mid = (mid + Math.imul(ah8, bl4)) | 0;\n    hi = (hi + Math.imul(ah8, bh4)) | 0;\n    lo = (lo + Math.imul(al7, bl5)) | 0;\n    mid = (mid + Math.imul(al7, bh5)) | 0;\n    mid = (mid + Math.imul(ah7, bl5)) | 0;\n    hi = (hi + Math.imul(ah7, bh5)) | 0;\n    lo = (lo + Math.imul(al6, bl6)) | 0;\n    mid = (mid + Math.imul(al6, bh6)) | 0;\n    mid = (mid + Math.imul(ah6, bl6)) | 0;\n    hi = (hi + Math.imul(ah6, bh6)) | 0;\n    lo = (lo + Math.imul(al5, bl7)) | 0;\n    mid = (mid + Math.imul(al5, bh7)) | 0;\n    mid = (mid + Math.imul(ah5, bl7)) | 0;\n    hi = (hi + Math.imul(ah5, bh7)) | 0;\n    lo = (lo + Math.imul(al4, bl8)) | 0;\n    mid = (mid + Math.imul(al4, bh8)) | 0;\n    mid = (mid + Math.imul(ah4, bl8)) | 0;\n    hi = (hi + Math.imul(ah4, bh8)) | 0;\n    lo = (lo + Math.imul(al3, bl9)) | 0;\n    mid = (mid + Math.imul(al3, bh9)) | 0;\n    mid = (mid + Math.imul(ah3, bl9)) | 0;\n    hi = (hi + Math.imul(ah3, bh9)) | 0;\n    var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n    w12 &= 0x3ffffff;\n    /* k = 13 */\n    lo = Math.imul(al9, bl4);\n    mid = Math.imul(al9, bh4);\n    mid = (mid + Math.imul(ah9, bl4)) | 0;\n    hi = Math.imul(ah9, bh4);\n    lo = (lo + Math.imul(al8, bl5)) | 0;\n    mid = (mid + Math.imul(al8, bh5)) | 0;\n    mid = (mid + Math.imul(ah8, bl5)) | 0;\n    hi = (hi + Math.imul(ah8, bh5)) | 0;\n    lo = (lo + Math.imul(al7, bl6)) | 0;\n    mid = (mid + Math.imul(al7, bh6)) | 0;\n    mid = (mid + Math.imul(ah7, bl6)) | 0;\n    hi = (hi + Math.imul(ah7, bh6)) | 0;\n    lo = (lo + Math.imul(al6, bl7)) | 0;\n    mid = (mid + Math.imul(al6, bh7)) | 0;\n    mid = (mid + Math.imul(ah6, bl7)) | 0;\n    hi = (hi + Math.imul(ah6, bh7)) | 0;\n    lo = (lo + Math.imul(al5, bl8)) | 0;\n    mid = (mid + Math.imul(al5, bh8)) | 0;\n    mid = (mid + Math.imul(ah5, bl8)) | 0;\n    hi = (hi + Math.imul(ah5, bh8)) | 0;\n    lo = (lo + Math.imul(al4, bl9)) | 0;\n    mid = (mid + Math.imul(al4, bh9)) | 0;\n    mid = (mid + Math.imul(ah4, bl9)) | 0;\n    hi = (hi + Math.imul(ah4, bh9)) | 0;\n    var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n    w13 &= 0x3ffffff;\n    /* k = 14 */\n    lo = Math.imul(al9, bl5);\n    mid = Math.imul(al9, bh5);\n    mid = (mid + Math.imul(ah9, bl5)) | 0;\n    hi = Math.imul(ah9, bh5);\n    lo = (lo + Math.imul(al8, bl6)) | 0;\n    mid = (mid + Math.imul(al8, bh6)) | 0;\n    mid = (mid + Math.imul(ah8, bl6)) | 0;\n    hi = (hi + Math.imul(ah8, bh6)) | 0;\n    lo = (lo + Math.imul(al7, bl7)) | 0;\n    mid = (mid + Math.imul(al7, bh7)) | 0;\n    mid = (mid + Math.imul(ah7, bl7)) | 0;\n    hi = (hi + Math.imul(ah7, bh7)) | 0;\n    lo = (lo + Math.imul(al6, bl8)) | 0;\n    mid = (mid + Math.imul(al6, bh8)) | 0;\n    mid = (mid + Math.imul(ah6, bl8)) | 0;\n    hi = (hi + Math.imul(ah6, bh8)) | 0;\n    lo = (lo + Math.imul(al5, bl9)) | 0;\n    mid = (mid + Math.imul(al5, bh9)) | 0;\n    mid = (mid + Math.imul(ah5, bl9)) | 0;\n    hi = (hi + Math.imul(ah5, bh9)) | 0;\n    var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n    w14 &= 0x3ffffff;\n    /* k = 15 */\n    lo = Math.imul(al9, bl6);\n    mid = Math.imul(al9, bh6);\n    mid = (mid + Math.imul(ah9, bl6)) | 0;\n    hi = Math.imul(ah9, bh6);\n    lo = (lo + Math.imul(al8, bl7)) | 0;\n    mid = (mid + Math.imul(al8, bh7)) | 0;\n    mid = (mid + Math.imul(ah8, bl7)) | 0;\n    hi = (hi + Math.imul(ah8, bh7)) | 0;\n    lo = (lo + Math.imul(al7, bl8)) | 0;\n    mid = (mid + Math.imul(al7, bh8)) | 0;\n    mid = (mid + Math.imul(ah7, bl8)) | 0;\n    hi = (hi + Math.imul(ah7, bh8)) | 0;\n    lo = (lo + Math.imul(al6, bl9)) | 0;\n    mid = (mid + Math.imul(al6, bh9)) | 0;\n    mid = (mid + Math.imul(ah6, bl9)) | 0;\n    hi = (hi + Math.imul(ah6, bh9)) | 0;\n    var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n    w15 &= 0x3ffffff;\n    /* k = 16 */\n    lo = Math.imul(al9, bl7);\n    mid = Math.imul(al9, bh7);\n    mid = (mid + Math.imul(ah9, bl7)) | 0;\n    hi = Math.imul(ah9, bh7);\n    lo = (lo + Math.imul(al8, bl8)) | 0;\n    mid = (mid + Math.imul(al8, bh8)) | 0;\n    mid = (mid + Math.imul(ah8, bl8)) | 0;\n    hi = (hi + Math.imul(ah8, bh8)) | 0;\n    lo = (lo + Math.imul(al7, bl9)) | 0;\n    mid = (mid + Math.imul(al7, bh9)) | 0;\n    mid = (mid + Math.imul(ah7, bl9)) | 0;\n    hi = (hi + Math.imul(ah7, bh9)) | 0;\n    var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n    w16 &= 0x3ffffff;\n    /* k = 17 */\n    lo = Math.imul(al9, bl8);\n    mid = Math.imul(al9, bh8);\n    mid = (mid + Math.imul(ah9, bl8)) | 0;\n    hi = Math.imul(ah9, bh8);\n    lo = (lo + Math.imul(al8, bl9)) | 0;\n    mid = (mid + Math.imul(al8, bh9)) | 0;\n    mid = (mid + Math.imul(ah8, bl9)) | 0;\n    hi = (hi + Math.imul(ah8, bh9)) | 0;\n    var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n    w17 &= 0x3ffffff;\n    /* k = 18 */\n    lo = Math.imul(al9, bl9);\n    mid = Math.imul(al9, bh9);\n    mid = (mid + Math.imul(ah9, bl9)) | 0;\n    hi = Math.imul(ah9, bh9);\n    var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n    c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n    w18 &= 0x3ffffff;\n    o[0] = w0;\n    o[1] = w1;\n    o[2] = w2;\n    o[3] = w3;\n    o[4] = w4;\n    o[5] = w5;\n    o[6] = w6;\n    o[7] = w7;\n    o[8] = w8;\n    o[9] = w9;\n    o[10] = w10;\n    o[11] = w11;\n    o[12] = w12;\n    o[13] = w13;\n    o[14] = w14;\n    o[15] = w15;\n    o[16] = w16;\n    o[17] = w17;\n    o[18] = w18;\n    if (c !== 0) {\n      o[19] = c;\n      out.length++;\n    }\n    return out;\n  };\n\n  // Polyfill comb\n  if (!Math.imul) {\n    comb10MulTo = smallMulTo;\n  }\n\n  function bigMulTo (self, num, out) {\n    out.negative = num.negative ^ self.negative;\n    out.length = self.length + num.length;\n\n    var carry = 0;\n    var hncarry = 0;\n    for (var k = 0; k < out.length - 1; k++) {\n      // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n      // note that ncarry could be >= 0x3ffffff\n      var ncarry = hncarry;\n      hncarry = 0;\n      var rword = carry & 0x3ffffff;\n      var maxJ = Math.min(k, num.length - 1);\n      for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n        var i = k - j;\n        var a = self.words[i] | 0;\n        var b = num.words[j] | 0;\n        var r = a * b;\n\n        var lo = r & 0x3ffffff;\n        ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n        lo = (lo + rword) | 0;\n        rword = lo & 0x3ffffff;\n        ncarry = (ncarry + (lo >>> 26)) | 0;\n\n        hncarry += ncarry >>> 26;\n        ncarry &= 0x3ffffff;\n      }\n      out.words[k] = rword;\n      carry = ncarry;\n      ncarry = hncarry;\n    }\n    if (carry !== 0) {\n      out.words[k] = carry;\n    } else {\n      out.length--;\n    }\n\n    return out.strip();\n  }\n\n  function jumboMulTo (self, num, out) {\n    var fftm = new FFTM();\n    return fftm.mulp(self, num, out);\n  }\n\n  BN.prototype.mulTo = function mulTo (num, out) {\n    var res;\n    var len = this.length + num.length;\n    if (this.length === 10 && num.length === 10) {\n      res = comb10MulTo(this, num, out);\n    } else if (len < 63) {\n      res = smallMulTo(this, num, out);\n    } else if (len < 1024) {\n      res = bigMulTo(this, num, out);\n    } else {\n      res = jumboMulTo(this, num, out);\n    }\n\n    return res;\n  };\n\n  // Cooley-Tukey algorithm for FFT\n  // slightly revisited to rely on looping instead of recursion\n\n  function FFTM (x, y) {\n    this.x = x;\n    this.y = y;\n  }\n\n  FFTM.prototype.makeRBT = function makeRBT (N) {\n    var t = new Array(N);\n    var l = BN.prototype._countBits(N) - 1;\n    for (var i = 0; i < N; i++) {\n      t[i] = this.revBin(i, l, N);\n    }\n\n    return t;\n  };\n\n  // Returns binary-reversed representation of `x`\n  FFTM.prototype.revBin = function revBin (x, l, N) {\n    if (x === 0 || x === N - 1) return x;\n\n    var rb = 0;\n    for (var i = 0; i < l; i++) {\n      rb |= (x & 1) << (l - i - 1);\n      x >>= 1;\n    }\n\n    return rb;\n  };\n\n  // Performs \"tweedling\" phase, therefore 'emulating'\n  // behaviour of the recursive algorithm\n  FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n    for (var i = 0; i < N; i++) {\n      rtws[i] = rws[rbt[i]];\n      itws[i] = iws[rbt[i]];\n    }\n  };\n\n  FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n    this.permute(rbt, rws, iws, rtws, itws, N);\n\n    for (var s = 1; s < N; s <<= 1) {\n      var l = s << 1;\n\n      var rtwdf = Math.cos(2 * Math.PI / l);\n      var itwdf = Math.sin(2 * Math.PI / l);\n\n      for (var p = 0; p < N; p += l) {\n        var rtwdf_ = rtwdf;\n        var itwdf_ = itwdf;\n\n        for (var j = 0; j < s; j++) {\n          var re = rtws[p + j];\n          var ie = itws[p + j];\n\n          var ro = rtws[p + j + s];\n          var io = itws[p + j + s];\n\n          var rx = rtwdf_ * ro - itwdf_ * io;\n\n          io = rtwdf_ * io + itwdf_ * ro;\n          ro = rx;\n\n          rtws[p + j] = re + ro;\n          itws[p + j] = ie + io;\n\n          rtws[p + j + s] = re - ro;\n          itws[p + j + s] = ie - io;\n\n          /* jshint maxdepth : false */\n          if (j !== l) {\n            rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n            itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n            rtwdf_ = rx;\n          }\n        }\n      }\n    }\n  };\n\n  FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n    var N = Math.max(m, n) | 1;\n    var odd = N & 1;\n    var i = 0;\n    for (N = N / 2 | 0; N; N = N >>> 1) {\n      i++;\n    }\n\n    return 1 << i + 1 + odd;\n  };\n\n  FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n    if (N <= 1) return;\n\n    for (var i = 0; i < N / 2; i++) {\n      var t = rws[i];\n\n      rws[i] = rws[N - i - 1];\n      rws[N - i - 1] = t;\n\n      t = iws[i];\n\n      iws[i] = -iws[N - i - 1];\n      iws[N - i - 1] = -t;\n    }\n  };\n\n  FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n    var carry = 0;\n    for (var i = 0; i < N / 2; i++) {\n      var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n        Math.round(ws[2 * i] / N) +\n        carry;\n\n      ws[i] = w & 0x3ffffff;\n\n      if (w < 0x4000000) {\n        carry = 0;\n      } else {\n        carry = w / 0x4000000 | 0;\n      }\n    }\n\n    return ws;\n  };\n\n  FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n    var carry = 0;\n    for (var i = 0; i < len; i++) {\n      carry = carry + (ws[i] | 0);\n\n      rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n      rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n    }\n\n    // Pad with zeroes\n    for (i = 2 * len; i < N; ++i) {\n      rws[i] = 0;\n    }\n\n    assert(carry === 0);\n    assert((carry & ~0x1fff) === 0);\n  };\n\n  FFTM.prototype.stub = function stub (N) {\n    var ph = new Array(N);\n    for (var i = 0; i < N; i++) {\n      ph[i] = 0;\n    }\n\n    return ph;\n  };\n\n  FFTM.prototype.mulp = function mulp (x, y, out) {\n    var N = 2 * this.guessLen13b(x.length, y.length);\n\n    var rbt = this.makeRBT(N);\n\n    var _ = this.stub(N);\n\n    var rws = new Array(N);\n    var rwst = new Array(N);\n    var iwst = new Array(N);\n\n    var nrws = new Array(N);\n    var nrwst = new Array(N);\n    var niwst = new Array(N);\n\n    var rmws = out.words;\n    rmws.length = N;\n\n    this.convert13b(x.words, x.length, rws, N);\n    this.convert13b(y.words, y.length, nrws, N);\n\n    this.transform(rws, _, rwst, iwst, N, rbt);\n    this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n    for (var i = 0; i < N; i++) {\n      var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n      iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n      rwst[i] = rx;\n    }\n\n    this.conjugate(rwst, iwst, N);\n    this.transform(rwst, iwst, rmws, _, N, rbt);\n    this.conjugate(rmws, _, N);\n    this.normalize13b(rmws, N);\n\n    out.negative = x.negative ^ y.negative;\n    out.length = x.length + y.length;\n    return out.strip();\n  };\n\n  // Multiply `this` by `num`\n  BN.prototype.mul = function mul (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return this.mulTo(num, out);\n  };\n\n  // Multiply employing FFT\n  BN.prototype.mulf = function mulf (num) {\n    var out = new BN(null);\n    out.words = new Array(this.length + num.length);\n    return jumboMulTo(this, num, out);\n  };\n\n  // In-place Multiplication\n  BN.prototype.imul = function imul (num) {\n    return this.clone().mulTo(num, this);\n  };\n\n  BN.prototype.imuln = function imuln (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n\n    // Carry\n    var carry = 0;\n    for (var i = 0; i < this.length; i++) {\n      var w = (this.words[i] | 0) * num;\n      var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n      carry >>= 26;\n      carry += (w / 0x4000000) | 0;\n      // NOTE: lo is 27bit maximum\n      carry += lo >>> 26;\n      this.words[i] = lo & 0x3ffffff;\n    }\n\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n\n    return this;\n  };\n\n  BN.prototype.muln = function muln (num) {\n    return this.clone().imuln(num);\n  };\n\n  // `this` * `this`\n  BN.prototype.sqr = function sqr () {\n    return this.mul(this);\n  };\n\n  // `this` * `this` in-place\n  BN.prototype.isqr = function isqr () {\n    return this.imul(this.clone());\n  };\n\n  // Math.pow(`this`, `num`)\n  BN.prototype.pow = function pow (num) {\n    var w = toBitArray(num);\n    if (w.length === 0) return new BN(1);\n\n    // Skip leading zeroes\n    var res = this;\n    for (var i = 0; i < w.length; i++, res = res.sqr()) {\n      if (w[i] !== 0) break;\n    }\n\n    if (++i < w.length) {\n      for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n        if (w[i] === 0) continue;\n\n        res = res.mul(q);\n      }\n    }\n\n    return res;\n  };\n\n  // Shift-left in-place\n  BN.prototype.iushln = function iushln (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n    var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n    var i;\n\n    if (r !== 0) {\n      var carry = 0;\n\n      for (i = 0; i < this.length; i++) {\n        var newCarry = this.words[i] & carryMask;\n        var c = ((this.words[i] | 0) - newCarry) << r;\n        this.words[i] = c | carry;\n        carry = newCarry >>> (26 - r);\n      }\n\n      if (carry) {\n        this.words[i] = carry;\n        this.length++;\n      }\n    }\n\n    if (s !== 0) {\n      for (i = this.length - 1; i >= 0; i--) {\n        this.words[i + s] = this.words[i];\n      }\n\n      for (i = 0; i < s; i++) {\n        this.words[i] = 0;\n      }\n\n      this.length += s;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishln = function ishln (bits) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushln(bits);\n  };\n\n  // Shift-right in-place\n  // NOTE: `hint` is a lowest bit before trailing zeroes\n  // NOTE: if `extended` is present - it will be filled with destroyed bits\n  BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var h;\n    if (hint) {\n      h = (hint - (hint % 26)) / 26;\n    } else {\n      h = 0;\n    }\n\n    var r = bits % 26;\n    var s = Math.min((bits - r) / 26, this.length);\n    var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n    var maskedWords = extended;\n\n    h -= s;\n    h = Math.max(0, h);\n\n    // Extended mode, copy masked part\n    if (maskedWords) {\n      for (var i = 0; i < s; i++) {\n        maskedWords.words[i] = this.words[i];\n      }\n      maskedWords.length = s;\n    }\n\n    if (s === 0) {\n      // No-op, we should not move anything at all\n    } else if (this.length > s) {\n      this.length -= s;\n      for (i = 0; i < this.length; i++) {\n        this.words[i] = this.words[i + s];\n      }\n    } else {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    var carry = 0;\n    for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n      var word = this.words[i] | 0;\n      this.words[i] = (carry << (26 - r)) | (word >>> r);\n      carry = word & mask;\n    }\n\n    // Push carried bits as a mask\n    if (maskedWords && carry !== 0) {\n      maskedWords.words[maskedWords.length++] = carry;\n    }\n\n    if (this.length === 0) {\n      this.words[0] = 0;\n      this.length = 1;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n    // TODO(indutny): implement me\n    assert(this.negative === 0);\n    return this.iushrn(bits, hint, extended);\n  };\n\n  // Shift-left\n  BN.prototype.shln = function shln (bits) {\n    return this.clone().ishln(bits);\n  };\n\n  BN.prototype.ushln = function ushln (bits) {\n    return this.clone().iushln(bits);\n  };\n\n  // Shift-right\n  BN.prototype.shrn = function shrn (bits) {\n    return this.clone().ishrn(bits);\n  };\n\n  BN.prototype.ushrn = function ushrn (bits) {\n    return this.clone().iushrn(bits);\n  };\n\n  // Test if n bit is set\n  BN.prototype.testn = function testn (bit) {\n    assert(typeof bit === 'number' && bit >= 0);\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) return false;\n\n    // Check bit and return\n    var w = this.words[s];\n\n    return !!(w & q);\n  };\n\n  // Return only lowers bits of number (in-place)\n  BN.prototype.imaskn = function imaskn (bits) {\n    assert(typeof bits === 'number' && bits >= 0);\n    var r = bits % 26;\n    var s = (bits - r) / 26;\n\n    assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n    if (this.length <= s) {\n      return this;\n    }\n\n    if (r !== 0) {\n      s++;\n    }\n    this.length = Math.min(s, this.length);\n\n    if (r !== 0) {\n      var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n      this.words[this.length - 1] &= mask;\n    }\n\n    return this.strip();\n  };\n\n  // Return only lowers bits of number\n  BN.prototype.maskn = function maskn (bits) {\n    return this.clone().imaskn(bits);\n  };\n\n  // Add plain number `num` to `this`\n  BN.prototype.iaddn = function iaddn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.isubn(-num);\n\n    // Possible sign change\n    if (this.negative !== 0) {\n      if (this.length === 1 && (this.words[0] | 0) < num) {\n        this.words[0] = num - (this.words[0] | 0);\n        this.negative = 0;\n        return this;\n      }\n\n      this.negative = 0;\n      this.isubn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    // Add without checks\n    return this._iaddn(num);\n  };\n\n  BN.prototype._iaddn = function _iaddn (num) {\n    this.words[0] += num;\n\n    // Carry\n    for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n      this.words[i] -= 0x4000000;\n      if (i === this.length - 1) {\n        this.words[i + 1] = 1;\n      } else {\n        this.words[i + 1]++;\n      }\n    }\n    this.length = Math.max(this.length, i + 1);\n\n    return this;\n  };\n\n  // Subtract plain number `num` from `this`\n  BN.prototype.isubn = function isubn (num) {\n    assert(typeof num === 'number');\n    assert(num < 0x4000000);\n    if (num < 0) return this.iaddn(-num);\n\n    if (this.negative !== 0) {\n      this.negative = 0;\n      this.iaddn(num);\n      this.negative = 1;\n      return this;\n    }\n\n    this.words[0] -= num;\n\n    if (this.length === 1 && this.words[0] < 0) {\n      this.words[0] = -this.words[0];\n      this.negative = 1;\n    } else {\n      // Carry\n      for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n        this.words[i] += 0x4000000;\n        this.words[i + 1] -= 1;\n      }\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.addn = function addn (num) {\n    return this.clone().iaddn(num);\n  };\n\n  BN.prototype.subn = function subn (num) {\n    return this.clone().isubn(num);\n  };\n\n  BN.prototype.iabs = function iabs () {\n    this.negative = 0;\n\n    return this;\n  };\n\n  BN.prototype.abs = function abs () {\n    return this.clone().iabs();\n  };\n\n  BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n    var len = num.length + shift;\n    var i;\n\n    this._expand(len);\n\n    var w;\n    var carry = 0;\n    for (i = 0; i < num.length; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      var right = (num.words[i] | 0) * mul;\n      w -= right & 0x3ffffff;\n      carry = (w >> 26) - ((right / 0x4000000) | 0);\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n    for (; i < this.length - shift; i++) {\n      w = (this.words[i + shift] | 0) + carry;\n      carry = w >> 26;\n      this.words[i + shift] = w & 0x3ffffff;\n    }\n\n    if (carry === 0) return this.strip();\n\n    // Subtraction overflow\n    assert(carry === -1);\n    carry = 0;\n    for (i = 0; i < this.length; i++) {\n      w = -(this.words[i] | 0) + carry;\n      carry = w >> 26;\n      this.words[i] = w & 0x3ffffff;\n    }\n    this.negative = 1;\n\n    return this.strip();\n  };\n\n  BN.prototype._wordDiv = function _wordDiv (num, mode) {\n    var shift = this.length - num.length;\n\n    var a = this.clone();\n    var b = num;\n\n    // Normalize\n    var bhi = b.words[b.length - 1] | 0;\n    var bhiBits = this._countBits(bhi);\n    shift = 26 - bhiBits;\n    if (shift !== 0) {\n      b = b.ushln(shift);\n      a.iushln(shift);\n      bhi = b.words[b.length - 1] | 0;\n    }\n\n    // Initialize quotient\n    var m = a.length - b.length;\n    var q;\n\n    if (mode !== 'mod') {\n      q = new BN(null);\n      q.length = m + 1;\n      q.words = new Array(q.length);\n      for (var i = 0; i < q.length; i++) {\n        q.words[i] = 0;\n      }\n    }\n\n    var diff = a.clone()._ishlnsubmul(b, 1, m);\n    if (diff.negative === 0) {\n      a = diff;\n      if (q) {\n        q.words[m] = 1;\n      }\n    }\n\n    for (var j = m - 1; j >= 0; j--) {\n      var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n        (a.words[b.length + j - 1] | 0);\n\n      // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n      // (0x7ffffff)\n      qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n      a._ishlnsubmul(b, qj, j);\n      while (a.negative !== 0) {\n        qj--;\n        a.negative = 0;\n        a._ishlnsubmul(b, 1, j);\n        if (!a.isZero()) {\n          a.negative ^= 1;\n        }\n      }\n      if (q) {\n        q.words[j] = qj;\n      }\n    }\n    if (q) {\n      q.strip();\n    }\n    a.strip();\n\n    // Denormalize\n    if (mode !== 'div' && shift !== 0) {\n      a.iushrn(shift);\n    }\n\n    return {\n      div: q || null,\n      mod: a\n    };\n  };\n\n  // NOTE: 1) `mode` can be set to `mod` to request mod only,\n  //       to `div` to request div only, or be absent to\n  //       request both div & mod\n  //       2) `positive` is true if unsigned mod is requested\n  BN.prototype.divmod = function divmod (num, mode, positive) {\n    assert(!num.isZero());\n\n    if (this.isZero()) {\n      return {\n        div: new BN(0),\n        mod: new BN(0)\n      };\n    }\n\n    var div, mod, res;\n    if (this.negative !== 0 && num.negative === 0) {\n      res = this.neg().divmod(num, mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.iadd(num);\n        }\n      }\n\n      return {\n        div: div,\n        mod: mod\n      };\n    }\n\n    if (this.negative === 0 && num.negative !== 0) {\n      res = this.divmod(num.neg(), mode);\n\n      if (mode !== 'mod') {\n        div = res.div.neg();\n      }\n\n      return {\n        div: div,\n        mod: res.mod\n      };\n    }\n\n    if ((this.negative & num.negative) !== 0) {\n      res = this.neg().divmod(num.neg(), mode);\n\n      if (mode !== 'div') {\n        mod = res.mod.neg();\n        if (positive && mod.negative !== 0) {\n          mod.isub(num);\n        }\n      }\n\n      return {\n        div: res.div,\n        mod: mod\n      };\n    }\n\n    // Both numbers are positive at this point\n\n    // Strip both numbers to approximate shift value\n    if (num.length > this.length || this.cmp(num) < 0) {\n      return {\n        div: new BN(0),\n        mod: this\n      };\n    }\n\n    // Very short reduction\n    if (num.length === 1) {\n      if (mode === 'div') {\n        return {\n          div: this.divn(num.words[0]),\n          mod: null\n        };\n      }\n\n      if (mode === 'mod') {\n        return {\n          div: null,\n          mod: new BN(this.modn(num.words[0]))\n        };\n      }\n\n      return {\n        div: this.divn(num.words[0]),\n        mod: new BN(this.modn(num.words[0]))\n      };\n    }\n\n    return this._wordDiv(num, mode);\n  };\n\n  // Find `this` / `num`\n  BN.prototype.div = function div (num) {\n    return this.divmod(num, 'div', false).div;\n  };\n\n  // Find `this` % `num`\n  BN.prototype.mod = function mod (num) {\n    return this.divmod(num, 'mod', false).mod;\n  };\n\n  BN.prototype.umod = function umod (num) {\n    return this.divmod(num, 'mod', true).mod;\n  };\n\n  // Find Round(`this` / `num`)\n  BN.prototype.divRound = function divRound (num) {\n    var dm = this.divmod(num);\n\n    // Fast case - exact division\n    if (dm.mod.isZero()) return dm.div;\n\n    var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n    var half = num.ushrn(1);\n    var r2 = num.andln(1);\n    var cmp = mod.cmp(half);\n\n    // Round down\n    if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n    // Round up\n    return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n  };\n\n  BN.prototype.modn = function modn (num) {\n    assert(num <= 0x3ffffff);\n    var p = (1 << 26) % num;\n\n    var acc = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      acc = (p * acc + (this.words[i] | 0)) % num;\n    }\n\n    return acc;\n  };\n\n  // In-place division by number\n  BN.prototype.idivn = function idivn (num) {\n    assert(num <= 0x3ffffff);\n\n    var carry = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var w = (this.words[i] | 0) + carry * 0x4000000;\n      this.words[i] = (w / num) | 0;\n      carry = w % num;\n    }\n\n    return this.strip();\n  };\n\n  BN.prototype.divn = function divn (num) {\n    return this.clone().idivn(num);\n  };\n\n  BN.prototype.egcd = function egcd (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var x = this;\n    var y = p.clone();\n\n    if (x.negative !== 0) {\n      x = x.umod(p);\n    } else {\n      x = x.clone();\n    }\n\n    // A * x + B * y = x\n    var A = new BN(1);\n    var B = new BN(0);\n\n    // C * x + D * y = y\n    var C = new BN(0);\n    var D = new BN(1);\n\n    var g = 0;\n\n    while (x.isEven() && y.isEven()) {\n      x.iushrn(1);\n      y.iushrn(1);\n      ++g;\n    }\n\n    var yp = y.clone();\n    var xp = x.clone();\n\n    while (!x.isZero()) {\n      for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        x.iushrn(i);\n        while (i-- > 0) {\n          if (A.isOdd() || B.isOdd()) {\n            A.iadd(yp);\n            B.isub(xp);\n          }\n\n          A.iushrn(1);\n          B.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        y.iushrn(j);\n        while (j-- > 0) {\n          if (C.isOdd() || D.isOdd()) {\n            C.iadd(yp);\n            D.isub(xp);\n          }\n\n          C.iushrn(1);\n          D.iushrn(1);\n        }\n      }\n\n      if (x.cmp(y) >= 0) {\n        x.isub(y);\n        A.isub(C);\n        B.isub(D);\n      } else {\n        y.isub(x);\n        C.isub(A);\n        D.isub(B);\n      }\n    }\n\n    return {\n      a: C,\n      b: D,\n      gcd: y.iushln(g)\n    };\n  };\n\n  // This is reduced incarnation of the binary EEA\n  // above, designated to invert members of the\n  // _prime_ fields F(p) at a maximal speed\n  BN.prototype._invmp = function _invmp (p) {\n    assert(p.negative === 0);\n    assert(!p.isZero());\n\n    var a = this;\n    var b = p.clone();\n\n    if (a.negative !== 0) {\n      a = a.umod(p);\n    } else {\n      a = a.clone();\n    }\n\n    var x1 = new BN(1);\n    var x2 = new BN(0);\n\n    var delta = b.clone();\n\n    while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n      for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n      if (i > 0) {\n        a.iushrn(i);\n        while (i-- > 0) {\n          if (x1.isOdd()) {\n            x1.iadd(delta);\n          }\n\n          x1.iushrn(1);\n        }\n      }\n\n      for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n      if (j > 0) {\n        b.iushrn(j);\n        while (j-- > 0) {\n          if (x2.isOdd()) {\n            x2.iadd(delta);\n          }\n\n          x2.iushrn(1);\n        }\n      }\n\n      if (a.cmp(b) >= 0) {\n        a.isub(b);\n        x1.isub(x2);\n      } else {\n        b.isub(a);\n        x2.isub(x1);\n      }\n    }\n\n    var res;\n    if (a.cmpn(1) === 0) {\n      res = x1;\n    } else {\n      res = x2;\n    }\n\n    if (res.cmpn(0) < 0) {\n      res.iadd(p);\n    }\n\n    return res;\n  };\n\n  BN.prototype.gcd = function gcd (num) {\n    if (this.isZero()) return num.abs();\n    if (num.isZero()) return this.abs();\n\n    var a = this.clone();\n    var b = num.clone();\n    a.negative = 0;\n    b.negative = 0;\n\n    // Remove common factor of two\n    for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n      a.iushrn(1);\n      b.iushrn(1);\n    }\n\n    do {\n      while (a.isEven()) {\n        a.iushrn(1);\n      }\n      while (b.isEven()) {\n        b.iushrn(1);\n      }\n\n      var r = a.cmp(b);\n      if (r < 0) {\n        // Swap `a` and `b` to make `a` always bigger than `b`\n        var t = a;\n        a = b;\n        b = t;\n      } else if (r === 0 || b.cmpn(1) === 0) {\n        break;\n      }\n\n      a.isub(b);\n    } while (true);\n\n    return b.iushln(shift);\n  };\n\n  // Invert number in the field F(num)\n  BN.prototype.invm = function invm (num) {\n    return this.egcd(num).a.umod(num);\n  };\n\n  BN.prototype.isEven = function isEven () {\n    return (this.words[0] & 1) === 0;\n  };\n\n  BN.prototype.isOdd = function isOdd () {\n    return (this.words[0] & 1) === 1;\n  };\n\n  // And first word and num\n  BN.prototype.andln = function andln (num) {\n    return this.words[0] & num;\n  };\n\n  // Increment at the bit position in-line\n  BN.prototype.bincn = function bincn (bit) {\n    assert(typeof bit === 'number');\n    var r = bit % 26;\n    var s = (bit - r) / 26;\n    var q = 1 << r;\n\n    // Fast case: bit is much higher than all existing words\n    if (this.length <= s) {\n      this._expand(s + 1);\n      this.words[s] |= q;\n      return this;\n    }\n\n    // Add bit and propagate, if needed\n    var carry = q;\n    for (var i = s; carry !== 0 && i < this.length; i++) {\n      var w = this.words[i] | 0;\n      w += carry;\n      carry = w >>> 26;\n      w &= 0x3ffffff;\n      this.words[i] = w;\n    }\n    if (carry !== 0) {\n      this.words[i] = carry;\n      this.length++;\n    }\n    return this;\n  };\n\n  BN.prototype.isZero = function isZero () {\n    return this.length === 1 && this.words[0] === 0;\n  };\n\n  BN.prototype.cmpn = function cmpn (num) {\n    var negative = num < 0;\n\n    if (this.negative !== 0 && !negative) return -1;\n    if (this.negative === 0 && negative) return 1;\n\n    this.strip();\n\n    var res;\n    if (this.length > 1) {\n      res = 1;\n    } else {\n      if (negative) {\n        num = -num;\n      }\n\n      assert(num <= 0x3ffffff, 'Number is too big');\n\n      var w = this.words[0] | 0;\n      res = w === num ? 0 : w < num ? -1 : 1;\n    }\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Compare two numbers and return:\n  // 1 - if `this` > `num`\n  // 0 - if `this` == `num`\n  // -1 - if `this` < `num`\n  BN.prototype.cmp = function cmp (num) {\n    if (this.negative !== 0 && num.negative === 0) return -1;\n    if (this.negative === 0 && num.negative !== 0) return 1;\n\n    var res = this.ucmp(num);\n    if (this.negative !== 0) return -res | 0;\n    return res;\n  };\n\n  // Unsigned comparison\n  BN.prototype.ucmp = function ucmp (num) {\n    // At this point both numbers have the same sign\n    if (this.length > num.length) return 1;\n    if (this.length < num.length) return -1;\n\n    var res = 0;\n    for (var i = this.length - 1; i >= 0; i--) {\n      var a = this.words[i] | 0;\n      var b = num.words[i] | 0;\n\n      if (a === b) continue;\n      if (a < b) {\n        res = -1;\n      } else if (a > b) {\n        res = 1;\n      }\n      break;\n    }\n    return res;\n  };\n\n  BN.prototype.gtn = function gtn (num) {\n    return this.cmpn(num) === 1;\n  };\n\n  BN.prototype.gt = function gt (num) {\n    return this.cmp(num) === 1;\n  };\n\n  BN.prototype.gten = function gten (num) {\n    return this.cmpn(num) >= 0;\n  };\n\n  BN.prototype.gte = function gte (num) {\n    return this.cmp(num) >= 0;\n  };\n\n  BN.prototype.ltn = function ltn (num) {\n    return this.cmpn(num) === -1;\n  };\n\n  BN.prototype.lt = function lt (num) {\n    return this.cmp(num) === -1;\n  };\n\n  BN.prototype.lten = function lten (num) {\n    return this.cmpn(num) <= 0;\n  };\n\n  BN.prototype.lte = function lte (num) {\n    return this.cmp(num) <= 0;\n  };\n\n  BN.prototype.eqn = function eqn (num) {\n    return this.cmpn(num) === 0;\n  };\n\n  BN.prototype.eq = function eq (num) {\n    return this.cmp(num) === 0;\n  };\n\n  //\n  // A reduce context, could be using montgomery or something better, depending\n  // on the `m` itself.\n  //\n  BN.red = function red (num) {\n    return new Red(num);\n  };\n\n  BN.prototype.toRed = function toRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    assert(this.negative === 0, 'red works only with positives');\n    return ctx.convertTo(this)._forceRed(ctx);\n  };\n\n  BN.prototype.fromRed = function fromRed () {\n    assert(this.red, 'fromRed works only with numbers in reduction context');\n    return this.red.convertFrom(this);\n  };\n\n  BN.prototype._forceRed = function _forceRed (ctx) {\n    this.red = ctx;\n    return this;\n  };\n\n  BN.prototype.forceRed = function forceRed (ctx) {\n    assert(!this.red, 'Already a number in reduction context');\n    return this._forceRed(ctx);\n  };\n\n  BN.prototype.redAdd = function redAdd (num) {\n    assert(this.red, 'redAdd works only with red numbers');\n    return this.red.add(this, num);\n  };\n\n  BN.prototype.redIAdd = function redIAdd (num) {\n    assert(this.red, 'redIAdd works only with red numbers');\n    return this.red.iadd(this, num);\n  };\n\n  BN.prototype.redSub = function redSub (num) {\n    assert(this.red, 'redSub works only with red numbers');\n    return this.red.sub(this, num);\n  };\n\n  BN.prototype.redISub = function redISub (num) {\n    assert(this.red, 'redISub works only with red numbers');\n    return this.red.isub(this, num);\n  };\n\n  BN.prototype.redShl = function redShl (num) {\n    assert(this.red, 'redShl works only with red numbers');\n    return this.red.shl(this, num);\n  };\n\n  BN.prototype.redMul = function redMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.mul(this, num);\n  };\n\n  BN.prototype.redIMul = function redIMul (num) {\n    assert(this.red, 'redMul works only with red numbers');\n    this.red._verify2(this, num);\n    return this.red.imul(this, num);\n  };\n\n  BN.prototype.redSqr = function redSqr () {\n    assert(this.red, 'redSqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqr(this);\n  };\n\n  BN.prototype.redISqr = function redISqr () {\n    assert(this.red, 'redISqr works only with red numbers');\n    this.red._verify1(this);\n    return this.red.isqr(this);\n  };\n\n  // Square root over p\n  BN.prototype.redSqrt = function redSqrt () {\n    assert(this.red, 'redSqrt works only with red numbers');\n    this.red._verify1(this);\n    return this.red.sqrt(this);\n  };\n\n  BN.prototype.redInvm = function redInvm () {\n    assert(this.red, 'redInvm works only with red numbers');\n    this.red._verify1(this);\n    return this.red.invm(this);\n  };\n\n  // Return negative clone of `this` % `red modulo`\n  BN.prototype.redNeg = function redNeg () {\n    assert(this.red, 'redNeg works only with red numbers');\n    this.red._verify1(this);\n    return this.red.neg(this);\n  };\n\n  BN.prototype.redPow = function redPow (num) {\n    assert(this.red && !num.red, 'redPow(normalNum)');\n    this.red._verify1(this);\n    return this.red.pow(this, num);\n  };\n\n  // Prime numbers with efficient reduction\n  var primes = {\n    k256: null,\n    p224: null,\n    p192: null,\n    p25519: null\n  };\n\n  // Pseudo-Mersenne prime\n  function MPrime (name, p) {\n    // P = 2 ^ N - K\n    this.name = name;\n    this.p = new BN(p, 16);\n    this.n = this.p.bitLength();\n    this.k = new BN(1).iushln(this.n).isub(this.p);\n\n    this.tmp = this._tmp();\n  }\n\n  MPrime.prototype._tmp = function _tmp () {\n    var tmp = new BN(null);\n    tmp.words = new Array(Math.ceil(this.n / 13));\n    return tmp;\n  };\n\n  MPrime.prototype.ireduce = function ireduce (num) {\n    // Assumes that `num` is less than `P^2`\n    // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n    var r = num;\n    var rlen;\n\n    do {\n      this.split(r, this.tmp);\n      r = this.imulK(r);\n      r = r.iadd(this.tmp);\n      rlen = r.bitLength();\n    } while (rlen > this.n);\n\n    var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n    if (cmp === 0) {\n      r.words[0] = 0;\n      r.length = 1;\n    } else if (cmp > 0) {\n      r.isub(this.p);\n    } else {\n      if (r.strip !== undefined) {\n        // r is BN v4 instance\n        r.strip();\n      } else {\n        // r is BN v5 instance\n        r._strip();\n      }\n    }\n\n    return r;\n  };\n\n  MPrime.prototype.split = function split (input, out) {\n    input.iushrn(this.n, 0, out);\n  };\n\n  MPrime.prototype.imulK = function imulK (num) {\n    return num.imul(this.k);\n  };\n\n  function K256 () {\n    MPrime.call(\n      this,\n      'k256',\n      'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n  }\n  inherits(K256, MPrime);\n\n  K256.prototype.split = function split (input, output) {\n    // 256 = 9 * 26 + 22\n    var mask = 0x3fffff;\n\n    var outLen = Math.min(input.length, 9);\n    for (var i = 0; i < outLen; i++) {\n      output.words[i] = input.words[i];\n    }\n    output.length = outLen;\n\n    if (input.length <= 9) {\n      input.words[0] = 0;\n      input.length = 1;\n      return;\n    }\n\n    // Shift by 9 limbs\n    var prev = input.words[9];\n    output.words[output.length++] = prev & mask;\n\n    for (i = 10; i < input.length; i++) {\n      var next = input.words[i] | 0;\n      input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n      prev = next;\n    }\n    prev >>>= 22;\n    input.words[i - 10] = prev;\n    if (prev === 0 && input.length > 10) {\n      input.length -= 10;\n    } else {\n      input.length -= 9;\n    }\n  };\n\n  K256.prototype.imulK = function imulK (num) {\n    // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n    num.words[num.length] = 0;\n    num.words[num.length + 1] = 0;\n    num.length += 2;\n\n    // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n    var lo = 0;\n    for (var i = 0; i < num.length; i++) {\n      var w = num.words[i] | 0;\n      lo += w * 0x3d1;\n      num.words[i] = lo & 0x3ffffff;\n      lo = w * 0x40 + ((lo / 0x4000000) | 0);\n    }\n\n    // Fast length reduction\n    if (num.words[num.length - 1] === 0) {\n      num.length--;\n      if (num.words[num.length - 1] === 0) {\n        num.length--;\n      }\n    }\n    return num;\n  };\n\n  function P224 () {\n    MPrime.call(\n      this,\n      'p224',\n      'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n  }\n  inherits(P224, MPrime);\n\n  function P192 () {\n    MPrime.call(\n      this,\n      'p192',\n      'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n  }\n  inherits(P192, MPrime);\n\n  function P25519 () {\n    // 2 ^ 255 - 19\n    MPrime.call(\n      this,\n      '25519',\n      '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n  }\n  inherits(P25519, MPrime);\n\n  P25519.prototype.imulK = function imulK (num) {\n    // K = 0x13\n    var carry = 0;\n    for (var i = 0; i < num.length; i++) {\n      var hi = (num.words[i] | 0) * 0x13 + carry;\n      var lo = hi & 0x3ffffff;\n      hi >>>= 26;\n\n      num.words[i] = lo;\n      carry = hi;\n    }\n    if (carry !== 0) {\n      num.words[num.length++] = carry;\n    }\n    return num;\n  };\n\n  // Exported mostly for testing purposes, use plain name instead\n  BN._prime = function prime (name) {\n    // Cached version of prime\n    if (primes[name]) return primes[name];\n\n    var prime;\n    if (name === 'k256') {\n      prime = new K256();\n    } else if (name === 'p224') {\n      prime = new P224();\n    } else if (name === 'p192') {\n      prime = new P192();\n    } else if (name === 'p25519') {\n      prime = new P25519();\n    } else {\n      throw new Error('Unknown prime ' + name);\n    }\n    primes[name] = prime;\n\n    return prime;\n  };\n\n  //\n  // Base reduction engine\n  //\n  function Red (m) {\n    if (typeof m === 'string') {\n      var prime = BN._prime(m);\n      this.m = prime.p;\n      this.prime = prime;\n    } else {\n      assert(m.gtn(1), 'modulus must be greater than 1');\n      this.m = m;\n      this.prime = null;\n    }\n  }\n\n  Red.prototype._verify1 = function _verify1 (a) {\n    assert(a.negative === 0, 'red works only with positives');\n    assert(a.red, 'red works only with red numbers');\n  };\n\n  Red.prototype._verify2 = function _verify2 (a, b) {\n    assert((a.negative | b.negative) === 0, 'red works only with positives');\n    assert(a.red && a.red === b.red,\n      'red works only with red numbers');\n  };\n\n  Red.prototype.imod = function imod (a) {\n    if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n    return a.umod(this.m)._forceRed(this);\n  };\n\n  Red.prototype.neg = function neg (a) {\n    if (a.isZero()) {\n      return a.clone();\n    }\n\n    return this.m.sub(a)._forceRed(this);\n  };\n\n  Red.prototype.add = function add (a, b) {\n    this._verify2(a, b);\n\n    var res = a.add(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.iadd = function iadd (a, b) {\n    this._verify2(a, b);\n\n    var res = a.iadd(b);\n    if (res.cmp(this.m) >= 0) {\n      res.isub(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.sub = function sub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.sub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res._forceRed(this);\n  };\n\n  Red.prototype.isub = function isub (a, b) {\n    this._verify2(a, b);\n\n    var res = a.isub(b);\n    if (res.cmpn(0) < 0) {\n      res.iadd(this.m);\n    }\n    return res;\n  };\n\n  Red.prototype.shl = function shl (a, num) {\n    this._verify1(a);\n    return this.imod(a.ushln(num));\n  };\n\n  Red.prototype.imul = function imul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.imul(b));\n  };\n\n  Red.prototype.mul = function mul (a, b) {\n    this._verify2(a, b);\n    return this.imod(a.mul(b));\n  };\n\n  Red.prototype.isqr = function isqr (a) {\n    return this.imul(a, a.clone());\n  };\n\n  Red.prototype.sqr = function sqr (a) {\n    return this.mul(a, a);\n  };\n\n  Red.prototype.sqrt = function sqrt (a) {\n    if (a.isZero()) return a.clone();\n\n    var mod3 = this.m.andln(3);\n    assert(mod3 % 2 === 1);\n\n    // Fast case\n    if (mod3 === 3) {\n      var pow = this.m.add(new BN(1)).iushrn(2);\n      return this.pow(a, pow);\n    }\n\n    // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n    //\n    // Find Q and S, that Q * 2 ^ S = (P - 1)\n    var q = this.m.subn(1);\n    var s = 0;\n    while (!q.isZero() && q.andln(1) === 0) {\n      s++;\n      q.iushrn(1);\n    }\n    assert(!q.isZero());\n\n    var one = new BN(1).toRed(this);\n    var nOne = one.redNeg();\n\n    // Find quadratic non-residue\n    // NOTE: Max is such because of generalized Riemann hypothesis.\n    var lpow = this.m.subn(1).iushrn(1);\n    var z = this.m.bitLength();\n    z = new BN(2 * z * z).toRed(this);\n\n    while (this.pow(z, lpow).cmp(nOne) !== 0) {\n      z.redIAdd(nOne);\n    }\n\n    var c = this.pow(z, q);\n    var r = this.pow(a, q.addn(1).iushrn(1));\n    var t = this.pow(a, q);\n    var m = s;\n    while (t.cmp(one) !== 0) {\n      var tmp = t;\n      for (var i = 0; tmp.cmp(one) !== 0; i++) {\n        tmp = tmp.redSqr();\n      }\n      assert(i < m);\n      var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n      r = r.redMul(b);\n      c = b.redSqr();\n      t = t.redMul(c);\n      m = i;\n    }\n\n    return r;\n  };\n\n  Red.prototype.invm = function invm (a) {\n    var inv = a._invmp(this.m);\n    if (inv.negative !== 0) {\n      inv.negative = 0;\n      return this.imod(inv).redNeg();\n    } else {\n      return this.imod(inv);\n    }\n  };\n\n  Red.prototype.pow = function pow (a, num) {\n    if (num.isZero()) return new BN(1).toRed(this);\n    if (num.cmpn(1) === 0) return a.clone();\n\n    var windowSize = 4;\n    var wnd = new Array(1 << windowSize);\n    wnd[0] = new BN(1).toRed(this);\n    wnd[1] = a;\n    for (var i = 2; i < wnd.length; i++) {\n      wnd[i] = this.mul(wnd[i - 1], a);\n    }\n\n    var res = wnd[0];\n    var current = 0;\n    var currentLen = 0;\n    var start = num.bitLength() % 26;\n    if (start === 0) {\n      start = 26;\n    }\n\n    for (i = num.length - 1; i >= 0; i--) {\n      var word = num.words[i];\n      for (var j = start - 1; j >= 0; j--) {\n        var bit = (word >> j) & 1;\n        if (res !== wnd[0]) {\n          res = this.sqr(res);\n        }\n\n        if (bit === 0 && current === 0) {\n          currentLen = 0;\n          continue;\n        }\n\n        current <<= 1;\n        current |= bit;\n        currentLen++;\n        if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n        res = this.mul(res, wnd[current]);\n        currentLen = 0;\n        current = 0;\n      }\n      start = 26;\n    }\n\n    return res;\n  };\n\n  Red.prototype.convertTo = function convertTo (num) {\n    var r = num.umod(this.m);\n\n    return r === num ? r.clone() : r;\n  };\n\n  Red.prototype.convertFrom = function convertFrom (num) {\n    var res = num.clone();\n    res.red = null;\n    return res;\n  };\n\n  //\n  // Montgomery method engine\n  //\n\n  BN.mont = function mont (num) {\n    return new Mont(num);\n  };\n\n  function Mont (m) {\n    Red.call(this, m);\n\n    this.shift = this.m.bitLength();\n    if (this.shift % 26 !== 0) {\n      this.shift += 26 - (this.shift % 26);\n    }\n\n    this.r = new BN(1).iushln(this.shift);\n    this.r2 = this.imod(this.r.sqr());\n    this.rinv = this.r._invmp(this.m);\n\n    this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n    this.minv = this.minv.umod(this.r);\n    this.minv = this.r.sub(this.minv);\n  }\n  inherits(Mont, Red);\n\n  Mont.prototype.convertTo = function convertTo (num) {\n    return this.imod(num.ushln(this.shift));\n  };\n\n  Mont.prototype.convertFrom = function convertFrom (num) {\n    var r = this.imod(num.mul(this.rinv));\n    r.red = null;\n    return r;\n  };\n\n  Mont.prototype.imul = function imul (a, b) {\n    if (a.isZero() || b.isZero()) {\n      a.words[0] = 0;\n      a.length = 1;\n      return a;\n    }\n\n    var t = a.imul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.mul = function mul (a, b) {\n    if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n    var t = a.mul(b);\n    var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n    var u = t.isub(c).iushrn(this.shift);\n    var res = u;\n    if (u.cmp(this.m) >= 0) {\n      res = u.isub(this.m);\n    } else if (u.cmpn(0) < 0) {\n      res = u.iadd(this.m);\n    }\n\n    return res._forceRed(this);\n  };\n\n  Mont.prototype.invm = function invm (a) {\n    // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n    var res = this.imod(a._invmp(this.m).mul(this.r2));\n    return res._forceRed(this);\n  };\n})( false || module, this);\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/privateDecrypt.js":
/*!*******************************************************!*\
  !*** ./node_modules/public-encrypt/privateDecrypt.js ***!
  \*******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\")\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\")\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\")\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\")\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\")\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\")\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n  var padding\n  if (privateKey.padding) {\n    padding = privateKey.padding\n  } else if (reverse) {\n    padding = 1\n  } else {\n    padding = 4\n  }\n\n  var key = parseKeys(privateKey)\n  var k = key.modulus.byteLength()\n  if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n    throw new Error('decryption error')\n  }\n  var msg\n  if (reverse) {\n    msg = withPublic(new BN(enc), key)\n  } else {\n    msg = crt(enc, key)\n  }\n  var zBuffer = Buffer.alloc(k - msg.length)\n  msg = Buffer.concat([zBuffer, msg], k)\n  if (padding === 4) {\n    return oaep(key, msg)\n  } else if (padding === 1) {\n    return pkcs1(key, msg, reverse)\n  } else if (padding === 3) {\n    return msg\n  } else {\n    throw new Error('unknown padding')\n  }\n}\n\nfunction oaep (key, msg) {\n  var k = key.modulus.byteLength()\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n  var hLen = iHash.length\n  if (msg[0] !== 0) {\n    throw new Error('decryption error')\n  }\n  var maskedSeed = msg.slice(1, hLen + 1)\n  var maskedDb = msg.slice(hLen + 1)\n  var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n  var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n  if (compare(iHash, db.slice(0, hLen))) {\n    throw new Error('decryption error')\n  }\n  var i = hLen\n  while (db[i] === 0) {\n    i++\n  }\n  if (db[i++] !== 1) {\n    throw new Error('decryption error')\n  }\n  return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n  var p1 = msg.slice(0, 2)\n  var i = 2\n  var status = 0\n  while (msg[i++] !== 0) {\n    if (i >= msg.length) {\n      status++\n      break\n    }\n  }\n  var ps = msg.slice(2, i - 1)\n\n  if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n    status++\n  }\n  if (ps.length < 8) {\n    status++\n  }\n  if (status) {\n    throw new Error('decryption error')\n  }\n  return msg.slice(i)\n}\nfunction compare (a, b) {\n  a = Buffer.from(a)\n  b = Buffer.from(b)\n  var dif = 0\n  var len = a.length\n  if (a.length !== b.length) {\n    dif++\n    len = Math.min(a.length, b.length)\n  }\n  var i = -1\n  while (++i < len) {\n    dif += (a[i] ^ b[i])\n  }\n  return dif\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/privateDecrypt.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/publicEncrypt.js":
/*!******************************************************!*\
  !*** ./node_modules/public-encrypt/publicEncrypt.js ***!
  \******************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var parseKeys = __webpack_require__(/*! parse-asn1 */ \"./node_modules/parse-asn1/index.js\")\nvar randomBytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\")\nvar createHash = __webpack_require__(/*! create-hash */ \"./node_modules/create-hash/browser.js\")\nvar mgf = __webpack_require__(/*! ./mgf */ \"./node_modules/public-encrypt/mgf.js\")\nvar xor = __webpack_require__(/*! ./xor */ \"./node_modules/public-encrypt/xor.js\")\nvar BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\")\nvar withPublic = __webpack_require__(/*! ./withPublic */ \"./node_modules/public-encrypt/withPublic.js\")\nvar crt = __webpack_require__(/*! browserify-rsa */ \"./node_modules/browserify-rsa/index.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n  var padding\n  if (publicKey.padding) {\n    padding = publicKey.padding\n  } else if (reverse) {\n    padding = 1\n  } else {\n    padding = 4\n  }\n  var key = parseKeys(publicKey)\n  var paddedMsg\n  if (padding === 4) {\n    paddedMsg = oaep(key, msg)\n  } else if (padding === 1) {\n    paddedMsg = pkcs1(key, msg, reverse)\n  } else if (padding === 3) {\n    paddedMsg = new BN(msg)\n    if (paddedMsg.cmp(key.modulus) >= 0) {\n      throw new Error('data too long for modulus')\n    }\n  } else {\n    throw new Error('unknown padding')\n  }\n  if (reverse) {\n    return crt(paddedMsg, key)\n  } else {\n    return withPublic(paddedMsg, key)\n  }\n}\n\nfunction oaep (key, msg) {\n  var k = key.modulus.byteLength()\n  var mLen = msg.length\n  var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n  var hLen = iHash.length\n  var hLen2 = 2 * hLen\n  if (mLen > k - hLen2 - 2) {\n    throw new Error('message too long')\n  }\n  var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n  var dblen = k - hLen - 1\n  var seed = randomBytes(hLen)\n  var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n  var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n  return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n  var mLen = msg.length\n  var k = key.modulus.byteLength()\n  if (mLen > k - 11) {\n    throw new Error('message too long')\n  }\n  var ps\n  if (reverse) {\n    ps = Buffer.alloc(k - mLen - 3, 0xff)\n  } else {\n    ps = nonZero(k - mLen - 3)\n  }\n  return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n  var out = Buffer.allocUnsafe(len)\n  var i = 0\n  var cache = randomBytes(len * 2)\n  var cur = 0\n  var num\n  while (i < len) {\n    if (cur === cache.length) {\n      cache = randomBytes(len * 2)\n      cur = 0\n    }\n    num = cache[cur++]\n    if (num) {\n      out[i++] = num\n    }\n  }\n  return out\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/publicEncrypt.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/withPublic.js":
/*!***************************************************!*\
  !*** ./node_modules/public-encrypt/withPublic.js ***!
  \***************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var BN = __webpack_require__(/*! bn.js */ \"./node_modules/public-encrypt/node_modules/bn.js/lib/bn.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nfunction withPublic (paddedMsg, key) {\n  return Buffer.from(paddedMsg\n    .toRed(BN.mont(key.modulus))\n    .redPow(new BN(key.publicExponent))\n    .fromRed()\n    .toArray())\n}\n\nmodule.exports = withPublic\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/withPublic.js?");

/***/ }),

/***/ "./node_modules/public-encrypt/xor.js":
/*!********************************************!*\
  !*** ./node_modules/public-encrypt/xor.js ***!
  \********************************************/
/***/ ((module) => {

eval("module.exports = function xor (a, b) {\n  var len = a.length\n  var i = -1\n  while (++i < len) {\n    a[i] ^= b[i]\n  }\n  return a\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/public-encrypt/xor.js?");

/***/ }),

/***/ "./node_modules/randombytes/browser.js":
/*!*********************************************!*\
  !*** ./node_modules/randombytes/browser.js ***!
  \*********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n  throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\nvar crypto = __webpack_require__.g.crypto || __webpack_require__.g.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n  module.exports = randomBytes\n} else {\n  module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n  // phantomjs needs to throw\n  if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n  var bytes = Buffer.allocUnsafe(size)\n\n  if (size > 0) {  // getRandomValues fails on IE if size == 0\n    if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n      // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n      for (var generated = 0; generated < size; generated += MAX_BYTES) {\n        // buffer.slice automatically checks if the end is past the end of\n        // the buffer so we don't have to here\n        crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n      }\n    } else {\n      crypto.getRandomValues(bytes)\n    }\n  }\n\n  if (typeof cb === 'function') {\n    return process.nextTick(function () {\n      cb(null, bytes)\n    })\n  }\n\n  return bytes\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/randombytes/browser.js?");

/***/ }),

/***/ "./node_modules/randomfill/browser.js":
/*!********************************************!*\
  !*** ./node_modules/randomfill/browser.js ***!
  \********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\nfunction oldBrowser () {\n  throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\")\nvar randombytes = __webpack_require__(/*! randombytes */ \"./node_modules/randombytes/browser.js\")\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = __webpack_require__.g.crypto || __webpack_require__.g.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n  if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n    throw new TypeError('offset must be a number')\n  }\n\n  if (offset > kMaxUint32 || offset < 0) {\n    throw new TypeError('offset must be a uint32')\n  }\n\n  if (offset > kBufferMaxLength || offset > length) {\n    throw new RangeError('offset out of range')\n  }\n}\n\nfunction assertSize (size, offset, length) {\n  if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n    throw new TypeError('size must be a number')\n  }\n\n  if (size > kMaxUint32 || size < 0) {\n    throw new TypeError('size must be a uint32')\n  }\n\n  if (size + offset > length || size > kBufferMaxLength) {\n    throw new RangeError('buffer too small')\n  }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n  exports.randomFill = randomFill\n  exports.randomFillSync = randomFillSync\n} else {\n  exports.randomFill = oldBrowser\n  exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n  if (!Buffer.isBuffer(buf) && !(buf instanceof __webpack_require__.g.Uint8Array)) {\n    throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n  }\n\n  if (typeof offset === 'function') {\n    cb = offset\n    offset = 0\n    size = buf.length\n  } else if (typeof size === 'function') {\n    cb = size\n    size = buf.length - offset\n  } else if (typeof cb !== 'function') {\n    throw new TypeError('\"cb\" argument must be a function')\n  }\n  assertOffset(offset, buf.length)\n  assertSize(size, offset, buf.length)\n  return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n  if (process.browser) {\n    var ourBuf = buf.buffer\n    var uint = new Uint8Array(ourBuf, offset, size)\n    crypto.getRandomValues(uint)\n    if (cb) {\n      process.nextTick(function () {\n        cb(null, buf)\n      })\n      return\n    }\n    return buf\n  }\n  if (cb) {\n    randombytes(size, function (err, bytes) {\n      if (err) {\n        return cb(err)\n      }\n      bytes.copy(buf, offset)\n      cb(null, buf)\n    })\n    return\n  }\n  var bytes = randombytes(size)\n  bytes.copy(buf, offset)\n  return buf\n}\nfunction randomFillSync (buf, offset, size) {\n  if (typeof offset === 'undefined') {\n    offset = 0\n  }\n  if (!Buffer.isBuffer(buf) && !(buf instanceof __webpack_require__.g.Uint8Array)) {\n    throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n  }\n\n  assertOffset(offset, buf.length)\n\n  if (size === undefined) size = buf.length - offset\n\n  assertSize(size, offset, buf.length)\n\n  return actualFill(buf, offset, size)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/randomfill/browser.js?");

/***/ }),

/***/ "./node_modules/ripemd160/index.js":
/*!*****************************************!*\
  !*** ./node_modules/ripemd160/index.js ***!
  \*****************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer)\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar HashBase = __webpack_require__(/*! hash-base */ \"./node_modules/hash-base/index.js\")\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n  0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n  7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n  3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n  1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n  4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n  5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n  6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n  15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n  8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n  12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n  11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n  7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n  11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n  11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n  9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n  8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n  9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n  9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n  15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n  8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n  HashBase.call(this, 64)\n\n  // state\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n  this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n  var words = ARRAY16\n  for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n  var al = this._a | 0\n  var bl = this._b | 0\n  var cl = this._c | 0\n  var dl = this._d | 0\n  var el = this._e | 0\n\n  var ar = this._a | 0\n  var br = this._b | 0\n  var cr = this._c | 0\n  var dr = this._d | 0\n  var er = this._e | 0\n\n  // computation\n  for (var i = 0; i < 80; i += 1) {\n    var tl\n    var tr\n    if (i < 16) {\n      tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n      tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n    } else if (i < 32) {\n      tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n      tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n    } else if (i < 48) {\n      tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n      tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n    } else if (i < 64) {\n      tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n      tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n    } else { // if (i<80) {\n      tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n      tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n    }\n\n    al = el\n    el = dl\n    dl = rotl(cl, 10)\n    cl = bl\n    bl = tl\n\n    ar = er\n    er = dr\n    dr = rotl(cr, 10)\n    cr = br\n    br = tr\n  }\n\n  // update state\n  var t = (this._b + cl + dr) | 0\n  this._b = (this._c + dl + er) | 0\n  this._c = (this._d + el + ar) | 0\n  this._d = (this._e + al + br) | 0\n  this._e = (this._a + bl + cr) | 0\n  this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n  // create padding and handle blocks\n  this._block[this._blockOffset++] = 0x80\n  if (this._blockOffset > 56) {\n    this._block.fill(0, this._blockOffset, 64)\n    this._update()\n    this._blockOffset = 0\n  }\n\n  this._block.fill(0, this._blockOffset, 56)\n  this._block.writeUInt32LE(this._length[0], 56)\n  this._block.writeUInt32LE(this._length[1], 60)\n  this._update()\n\n  // produce result\n  var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n  buffer.writeInt32LE(this._a, 0)\n  buffer.writeInt32LE(this._b, 4)\n  buffer.writeInt32LE(this._c, 8)\n  buffer.writeInt32LE(this._d, 12)\n  buffer.writeInt32LE(this._e, 16)\n  return buffer\n}\n\nfunction rotl (x, n) {\n  return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n  return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n  return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n  return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n  return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n  return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/ripemd160/index.js?");

/***/ }),

/***/ "./node_modules/safe-buffer/index.js":
/*!*******************************************!*\
  !*** ./node_modules/safe-buffer/index.js ***!
  \*******************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh <https://feross.org/opensource> */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n  for (var key in src) {\n    dst[key] = src[key]\n  }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n  module.exports = buffer\n} else {\n  // Copy properties from require('buffer')\n  copyProps(buffer, exports)\n  exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n  if (typeof arg === 'number') {\n    throw new TypeError('Argument must not be a number')\n  }\n  return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  var buf = Buffer(size)\n  if (fill !== undefined) {\n    if (typeof encoding === 'string') {\n      buf.fill(fill, encoding)\n    } else {\n      buf.fill(fill)\n    }\n  } else {\n    buf.fill(0)\n  }\n  return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n  if (typeof size !== 'number') {\n    throw new TypeError('Argument must be a number')\n  }\n  return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/safe-buffer/index.js?");

/***/ }),

/***/ "./node_modules/serialize-error/index.js":
/*!***********************************************!*\
  !*** ./node_modules/serialize-error/index.js ***!
  \***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")[\"Buffer\"];\n\n\nclass NonError extends Error {\n\tconstructor(message) {\n\t\tsuper(NonError._prepareSuperMessage(message));\n\t\tObject.defineProperty(this, 'name', {\n\t\t\tvalue: 'NonError',\n\t\t\tconfigurable: true,\n\t\t\twritable: true\n\t\t});\n\n\t\tif (Error.captureStackTrace) {\n\t\t\tError.captureStackTrace(this, NonError);\n\t\t}\n\t}\n\n\tstatic _prepareSuperMessage(message) {\n\t\ttry {\n\t\t\treturn JSON.stringify(message);\n\t\t} catch {\n\t\t\treturn String(message);\n\t\t}\n\t}\n}\n\nconst commonProperties = [\n\t{property: 'name', enumerable: false},\n\t{property: 'message', enumerable: false},\n\t{property: 'stack', enumerable: false},\n\t{property: 'code', enumerable: true}\n];\n\nconst isCalled = Symbol('.toJSON called');\n\nconst toJSON = from => {\n\tfrom[isCalled] = true;\n\tconst json = from.toJSON();\n\tdelete from[isCalled];\n\treturn json;\n};\n\nconst destroyCircular = ({\n\tfrom,\n\tseen,\n\tto_,\n\tforceEnumerable,\n\tmaxDepth,\n\tdepth\n}) => {\n\tconst to = to_ || (Array.isArray(from) ? [] : {});\n\n\tseen.push(from);\n\n\tif (depth >= maxDepth) {\n\t\treturn to;\n\t}\n\n\tif (typeof from.toJSON === 'function' && from[isCalled] !== true) {\n\t\treturn toJSON(from);\n\t}\n\n\tfor (const [key, value] of Object.entries(from)) {\n\t\tif (typeof Buffer === 'function' && Buffer.isBuffer(value)) {\n\t\t\tto[key] = '[object Buffer]';\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (typeof value === 'function') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!value || typeof value !== 'object') {\n\t\t\tto[key] = value;\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!seen.includes(from[key])) {\n\t\t\tdepth++;\n\n\t\t\tto[key] = destroyCircular({\n\t\t\t\tfrom: from[key],\n\t\t\t\tseen: seen.slice(),\n\t\t\t\tforceEnumerable,\n\t\t\t\tmaxDepth,\n\t\t\t\tdepth\n\t\t\t});\n\t\t\tcontinue;\n\t\t}\n\n\t\tto[key] = '[Circular]';\n\t}\n\n\tfor (const {property, enumerable} of commonProperties) {\n\t\tif (typeof from[property] === 'string') {\n\t\t\tObject.defineProperty(to, property, {\n\t\t\t\tvalue: from[property],\n\t\t\t\tenumerable: forceEnumerable ? true : enumerable,\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t}\n\n\treturn to;\n};\n\nconst serializeError = (value, options = {}) => {\n\tconst {maxDepth = Number.POSITIVE_INFINITY} = options;\n\n\tif (typeof value === 'object' && value !== null) {\n\t\treturn destroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tforceEnumerable: true,\n\t\t\tmaxDepth,\n\t\t\tdepth: 0\n\t\t});\n\t}\n\n\t// People sometimes throw things besides Error objects…\n\tif (typeof value === 'function') {\n\t\t// `JSON.stringify()` discards functions. We do too, unless a function is thrown directly.\n\t\treturn `[Function: ${(value.name || 'anonymous')}]`;\n\t}\n\n\treturn value;\n};\n\nconst deserializeError = (value, options = {}) => {\n\tconst {maxDepth = Number.POSITIVE_INFINITY} = options;\n\n\tif (value instanceof Error) {\n\t\treturn value;\n\t}\n\n\tif (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n\t\tconst newError = new Error(); // eslint-disable-line unicorn/error-message\n\t\tdestroyCircular({\n\t\t\tfrom: value,\n\t\t\tseen: [],\n\t\t\tto_: newError,\n\t\t\tmaxDepth,\n\t\t\tdepth: 0\n\t\t});\n\t\treturn newError;\n\t}\n\n\treturn new NonError(value);\n};\n\nmodule.exports = {\n\tserializeError,\n\tdeserializeError\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/serialize-error/index.js?");

/***/ }),

/***/ "./node_modules/sha.js/hash.js":
/*!*************************************!*\
  !*** ./node_modules/sha.js/hash.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n  this._block = Buffer.alloc(blockSize)\n  this._finalSize = finalSize\n  this._blockSize = blockSize\n  this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n  if (typeof data === 'string') {\n    enc = enc || 'utf8'\n    data = Buffer.from(data, enc)\n  }\n\n  var block = this._block\n  var blockSize = this._blockSize\n  var length = data.length\n  var accum = this._len\n\n  for (var offset = 0; offset < length;) {\n    var assigned = accum % blockSize\n    var remainder = Math.min(length - offset, blockSize - assigned)\n\n    for (var i = 0; i < remainder; i++) {\n      block[assigned + i] = data[offset + i]\n    }\n\n    accum += remainder\n    offset += remainder\n\n    if ((accum % blockSize) === 0) {\n      this._update(block)\n    }\n  }\n\n  this._len += length\n  return this\n}\n\nHash.prototype.digest = function (enc) {\n  var rem = this._len % this._blockSize\n\n  this._block[rem] = 0x80\n\n  // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n  // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n  this._block.fill(0, rem + 1)\n\n  if (rem >= this._finalSize) {\n    this._update(this._block)\n    this._block.fill(0)\n  }\n\n  var bits = this._len * 8\n\n  // uint32\n  if (bits <= 0xffffffff) {\n    this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n  // uint64\n  } else {\n    var lowBits = (bits & 0xffffffff) >>> 0\n    var highBits = (bits - lowBits) / 0x100000000\n\n    this._block.writeUInt32BE(highBits, this._blockSize - 8)\n    this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n  }\n\n  this._update(this._block)\n  var hash = this._hash()\n\n  return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n  throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/hash.js?");

/***/ }),

/***/ "./node_modules/sha.js/index.js":
/*!**************************************!*\
  !*** ./node_modules/sha.js/index.js ***!
  \**************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var exports = module.exports = function SHA (algorithm) {\n  algorithm = algorithm.toLowerCase()\n\n  var Algorithm = exports[algorithm]\n  if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n  return new Algorithm()\n}\n\nexports.sha = __webpack_require__(/*! ./sha */ \"./node_modules/sha.js/sha.js\")\nexports.sha1 = __webpack_require__(/*! ./sha1 */ \"./node_modules/sha.js/sha1.js\")\nexports.sha224 = __webpack_require__(/*! ./sha224 */ \"./node_modules/sha.js/sha224.js\")\nexports.sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\")\nexports.sha384 = __webpack_require__(/*! ./sha384 */ \"./node_modules/sha.js/sha384.js\")\nexports.sha512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\")\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/index.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha.js":
/*!************************************!*\
  !*** ./node_modules/sha.js/sha.js ***!
  \************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar K = [\n  0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n  this._e = 0xc3d2e1f0\n\n  return this\n}\n\nfunction rotl5 (num) {\n  return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n  return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n  if (s === 0) return (b & c) | ((~b) & d)\n  if (s === 2) return (b & c) | (b & d) | (c & d)\n  return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20)\n    var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n    e = d\n    d = c\n    c = rotl30(b)\n    b = a\n    a = t\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20)\n\n  H.writeInt32BE(this._a | 0, 0)\n  H.writeInt32BE(this._b | 0, 4)\n  H.writeInt32BE(this._c | 0, 8)\n  H.writeInt32BE(this._d | 0, 12)\n  H.writeInt32BE(this._e | 0, 16)\n\n  return H\n}\n\nmodule.exports = Sha\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha1.js":
/*!*************************************!*\
  !*** ./node_modules/sha.js/sha1.js ***!
  \*************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar K = [\n  0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n  this._a = 0x67452301\n  this._b = 0xefcdab89\n  this._c = 0x98badcfe\n  this._d = 0x10325476\n  this._e = 0xc3d2e1f0\n\n  return this\n}\n\nfunction rotl1 (num) {\n  return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n  return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n  return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n  if (s === 0) return (b & c) | ((~b) & d)\n  if (s === 2) return (b & c) | (b & d) | (c & d)\n  return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n  for (var j = 0; j < 80; ++j) {\n    var s = ~~(j / 20)\n    var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n    e = d\n    d = c\n    c = rotl30(b)\n    b = a\n    a = t\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(20)\n\n  H.writeInt32BE(this._a | 0, 0)\n  H.writeInt32BE(this._b | 0, 4)\n  H.writeInt32BE(this._c | 0, 8)\n  H.writeInt32BE(this._d | 0, 12)\n  H.writeInt32BE(this._e | 0, 16)\n\n  return H\n}\n\nmodule.exports = Sha1\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha1.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha224.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha224.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Sha256 = __webpack_require__(/*! ./sha256 */ \"./node_modules/sha.js/sha256.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n  this.init()\n\n  this._w = W // new Array(64)\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n  this._a = 0xc1059ed8\n  this._b = 0x367cd507\n  this._c = 0x3070dd17\n  this._d = 0xf70e5939\n  this._e = 0xffc00b31\n  this._f = 0x68581511\n  this._g = 0x64f98fa7\n  this._h = 0xbefa4fa4\n\n  return this\n}\n\nSha224.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(28)\n\n  H.writeInt32BE(this._a, 0)\n  H.writeInt32BE(this._b, 4)\n  H.writeInt32BE(this._c, 8)\n  H.writeInt32BE(this._d, 12)\n  H.writeInt32BE(this._e, 16)\n  H.writeInt32BE(this._f, 20)\n  H.writeInt32BE(this._g, 24)\n\n  return H\n}\n\nmodule.exports = Sha224\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha224.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha256.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha256.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar K = [\n  0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n  0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n  0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n  0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n  0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n  0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n  0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n  0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n  0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n  0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n  0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n  0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n  0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n  0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n  0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n  0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n  this.init()\n\n  this._w = W // new Array(64)\n\n  Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n  this._a = 0x6a09e667\n  this._b = 0xbb67ae85\n  this._c = 0x3c6ef372\n  this._d = 0xa54ff53a\n  this._e = 0x510e527f\n  this._f = 0x9b05688c\n  this._g = 0x1f83d9ab\n  this._h = 0x5be0cd19\n\n  return this\n}\n\nfunction ch (x, y, z) {\n  return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n  return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n  return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n  return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n  return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n  return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n  var W = this._w\n\n  var a = this._a | 0\n  var b = this._b | 0\n  var c = this._c | 0\n  var d = this._d | 0\n  var e = this._e | 0\n  var f = this._f | 0\n  var g = this._g | 0\n  var h = this._h | 0\n\n  for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n  for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n  for (var j = 0; j < 64; ++j) {\n    var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n    var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n    h = g\n    g = f\n    f = e\n    e = (d + T1) | 0\n    d = c\n    c = b\n    b = a\n    a = (T1 + T2) | 0\n  }\n\n  this._a = (a + this._a) | 0\n  this._b = (b + this._b) | 0\n  this._c = (c + this._c) | 0\n  this._d = (d + this._d) | 0\n  this._e = (e + this._e) | 0\n  this._f = (f + this._f) | 0\n  this._g = (g + this._g) | 0\n  this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(32)\n\n  H.writeInt32BE(this._a, 0)\n  H.writeInt32BE(this._b, 4)\n  H.writeInt32BE(this._c, 8)\n  H.writeInt32BE(this._d, 12)\n  H.writeInt32BE(this._e, 16)\n  H.writeInt32BE(this._f, 20)\n  H.writeInt32BE(this._g, 24)\n  H.writeInt32BE(this._h, 28)\n\n  return H\n}\n\nmodule.exports = Sha256\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha256.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha384.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha384.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar SHA512 = __webpack_require__(/*! ./sha512 */ \"./node_modules/sha.js/sha512.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n  this._ah = 0xcbbb9d5d\n  this._bh = 0x629a292a\n  this._ch = 0x9159015a\n  this._dh = 0x152fecd8\n  this._eh = 0x67332667\n  this._fh = 0x8eb44a87\n  this._gh = 0xdb0c2e0d\n  this._hh = 0x47b5481d\n\n  this._al = 0xc1059ed8\n  this._bl = 0x367cd507\n  this._cl = 0x3070dd17\n  this._dl = 0xf70e5939\n  this._el = 0xffc00b31\n  this._fl = 0x68581511\n  this._gl = 0x64f98fa7\n  this._hl = 0xbefa4fa4\n\n  return this\n}\n\nSha384.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(48)\n\n  function writeInt64BE (h, l, offset) {\n    H.writeInt32BE(h, offset)\n    H.writeInt32BE(l, offset + 4)\n  }\n\n  writeInt64BE(this._ah, this._al, 0)\n  writeInt64BE(this._bh, this._bl, 8)\n  writeInt64BE(this._ch, this._cl, 16)\n  writeInt64BE(this._dh, this._dl, 24)\n  writeInt64BE(this._eh, this._el, 32)\n  writeInt64BE(this._fh, this._fl, 40)\n\n  return H\n}\n\nmodule.exports = Sha384\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha384.js?");

/***/ }),

/***/ "./node_modules/sha.js/sha512.js":
/*!***************************************!*\
  !*** ./node_modules/sha.js/sha512.js ***!
  \***************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("var inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")\nvar Hash = __webpack_require__(/*! ./hash */ \"./node_modules/sha.js/hash.js\")\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer)\n\nvar K = [\n  0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n  0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n  0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n  0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n  0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n  0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n  0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n  0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n  0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n  0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n  0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n  0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n  0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n  0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n  0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n  0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n  0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n  0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n  0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n  0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n  0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n  0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n  0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n  0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n  0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n  0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n  0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n  0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n  0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n  0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n  0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n  0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n  0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n  0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n  0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n  0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n  0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n  0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n  0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n  0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n  this.init()\n  this._w = W\n\n  Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n  this._ah = 0x6a09e667\n  this._bh = 0xbb67ae85\n  this._ch = 0x3c6ef372\n  this._dh = 0xa54ff53a\n  this._eh = 0x510e527f\n  this._fh = 0x9b05688c\n  this._gh = 0x1f83d9ab\n  this._hh = 0x5be0cd19\n\n  this._al = 0xf3bcc908\n  this._bl = 0x84caa73b\n  this._cl = 0xfe94f82b\n  this._dl = 0x5f1d36f1\n  this._el = 0xade682d1\n  this._fl = 0x2b3e6c1f\n  this._gl = 0xfb41bd6b\n  this._hl = 0x137e2179\n\n  return this\n}\n\nfunction Ch (x, y, z) {\n  return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n  return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n  return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n  return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n  return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n  return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n  return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n  var W = this._w\n\n  var ah = this._ah | 0\n  var bh = this._bh | 0\n  var ch = this._ch | 0\n  var dh = this._dh | 0\n  var eh = this._eh | 0\n  var fh = this._fh | 0\n  var gh = this._gh | 0\n  var hh = this._hh | 0\n\n  var al = this._al | 0\n  var bl = this._bl | 0\n  var cl = this._cl | 0\n  var dl = this._dl | 0\n  var el = this._el | 0\n  var fl = this._fl | 0\n  var gl = this._gl | 0\n  var hl = this._hl | 0\n\n  for (var i = 0; i < 32; i += 2) {\n    W[i] = M.readInt32BE(i * 4)\n    W[i + 1] = M.readInt32BE(i * 4 + 4)\n  }\n  for (; i < 160; i += 2) {\n    var xh = W[i - 15 * 2]\n    var xl = W[i - 15 * 2 + 1]\n    var gamma0 = Gamma0(xh, xl)\n    var gamma0l = Gamma0l(xl, xh)\n\n    xh = W[i - 2 * 2]\n    xl = W[i - 2 * 2 + 1]\n    var gamma1 = Gamma1(xh, xl)\n    var gamma1l = Gamma1l(xl, xh)\n\n    // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n    var Wi7h = W[i - 7 * 2]\n    var Wi7l = W[i - 7 * 2 + 1]\n\n    var Wi16h = W[i - 16 * 2]\n    var Wi16l = W[i - 16 * 2 + 1]\n\n    var Wil = (gamma0l + Wi7l) | 0\n    var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n    Wil = (Wil + gamma1l) | 0\n    Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n    Wil = (Wil + Wi16l) | 0\n    Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n    W[i] = Wih\n    W[i + 1] = Wil\n  }\n\n  for (var j = 0; j < 160; j += 2) {\n    Wih = W[j]\n    Wil = W[j + 1]\n\n    var majh = maj(ah, bh, ch)\n    var majl = maj(al, bl, cl)\n\n    var sigma0h = sigma0(ah, al)\n    var sigma0l = sigma0(al, ah)\n    var sigma1h = sigma1(eh, el)\n    var sigma1l = sigma1(el, eh)\n\n    // t1 = h + sigma1 + ch + K[j] + W[j]\n    var Kih = K[j]\n    var Kil = K[j + 1]\n\n    var chh = Ch(eh, fh, gh)\n    var chl = Ch(el, fl, gl)\n\n    var t1l = (hl + sigma1l) | 0\n    var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n    t1l = (t1l + chl) | 0\n    t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n    t1l = (t1l + Kil) | 0\n    t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n    t1l = (t1l + Wil) | 0\n    t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n    // t2 = sigma0 + maj\n    var t2l = (sigma0l + majl) | 0\n    var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n    hh = gh\n    hl = gl\n    gh = fh\n    gl = fl\n    fh = eh\n    fl = el\n    el = (dl + t1l) | 0\n    eh = (dh + t1h + getCarry(el, dl)) | 0\n    dh = ch\n    dl = cl\n    ch = bh\n    cl = bl\n    bh = ah\n    bl = al\n    al = (t1l + t2l) | 0\n    ah = (t1h + t2h + getCarry(al, t1l)) | 0\n  }\n\n  this._al = (this._al + al) | 0\n  this._bl = (this._bl + bl) | 0\n  this._cl = (this._cl + cl) | 0\n  this._dl = (this._dl + dl) | 0\n  this._el = (this._el + el) | 0\n  this._fl = (this._fl + fl) | 0\n  this._gl = (this._gl + gl) | 0\n  this._hl = (this._hl + hl) | 0\n\n  this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n  this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n  this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n  this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n  this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n  this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n  this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n  this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n  var H = Buffer.allocUnsafe(64)\n\n  function writeInt64BE (h, l, offset) {\n    H.writeInt32BE(h, offset)\n    H.writeInt32BE(l, offset + 4)\n  }\n\n  writeInt64BE(this._ah, this._al, 0)\n  writeInt64BE(this._bh, this._bl, 8)\n  writeInt64BE(this._ch, this._cl, 16)\n  writeInt64BE(this._dh, this._dl, 24)\n  writeInt64BE(this._eh, this._el, 32)\n  writeInt64BE(this._fh, this._fl, 40)\n  writeInt64BE(this._gh, this._gl, 48)\n  writeInt64BE(this._hh, this._hl, 56)\n\n  return H\n}\n\nmodule.exports = Sha512\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sha.js/sha512.js?");

/***/ }),

/***/ "./node_modules/sprintf-js/src/sprintf.js":
/*!************************************************!*\
  !*** ./node_modules/sprintf-js/src/sprintf.js ***!
  \************************************************/
/***/ ((module, exports, __webpack_require__) => {

eval("var __WEBPACK_AMD_DEFINE_RESULT__;/* global window, exports, define */\n\n!function() {\n    'use strict'\n\n    var re = {\n        not_string: /[^s]/,\n        not_bool: /[^t]/,\n        not_type: /[^T]/,\n        not_primitive: /[^v]/,\n        number: /[diefg]/,\n        numeric_arg: /[bcdiefguxX]/,\n        json: /[j]/,\n        not_json: /[^j]/,\n        text: /^[^\\x25]+/,\n        modulo: /^\\x25{2}/,\n        placeholder: /^\\x25(?:([1-9]\\d*)\\$|\\(([^)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-gijostTuvxX])/,\n        key: /^([a-z_][a-z_\\d]*)/i,\n        key_access: /^\\.([a-z_][a-z_\\d]*)/i,\n        index_access: /^\\[(\\d+)\\]/,\n        sign: /^[+-]/\n    }\n\n    function sprintf(key) {\n        // `arguments` is not an array, but should be fine for this call\n        return sprintf_format(sprintf_parse(key), arguments)\n    }\n\n    function vsprintf(fmt, argv) {\n        return sprintf.apply(null, [fmt].concat(argv || []))\n    }\n\n    function sprintf_format(parse_tree, argv) {\n        var cursor = 1, tree_length = parse_tree.length, arg, output = '', i, k, ph, pad, pad_character, pad_length, is_positive, sign\n        for (i = 0; i < tree_length; i++) {\n            if (typeof parse_tree[i] === 'string') {\n                output += parse_tree[i]\n            }\n            else if (typeof parse_tree[i] === 'object') {\n                ph = parse_tree[i] // convenience purposes only\n                if (ph.keys) { // keyword argument\n                    arg = argv[cursor]\n                    for (k = 0; k < ph.keys.length; k++) {\n                        if (arg == undefined) {\n                            throw new Error(sprintf('[sprintf] Cannot access property \"%s\" of undefined value \"%s\"', ph.keys[k], ph.keys[k-1]))\n                        }\n                        arg = arg[ph.keys[k]]\n                    }\n                }\n                else if (ph.param_no) { // positional argument (explicit)\n                    arg = argv[ph.param_no]\n                }\n                else { // positional argument (implicit)\n                    arg = argv[cursor++]\n                }\n\n                if (re.not_type.test(ph.type) && re.not_primitive.test(ph.type) && arg instanceof Function) {\n                    arg = arg()\n                }\n\n                if (re.numeric_arg.test(ph.type) && (typeof arg !== 'number' && isNaN(arg))) {\n                    throw new TypeError(sprintf('[sprintf] expecting number but found %T', arg))\n                }\n\n                if (re.number.test(ph.type)) {\n                    is_positive = arg >= 0\n                }\n\n                switch (ph.type) {\n                    case 'b':\n                        arg = parseInt(arg, 10).toString(2)\n                        break\n                    case 'c':\n                        arg = String.fromCharCode(parseInt(arg, 10))\n                        break\n                    case 'd':\n                    case 'i':\n                        arg = parseInt(arg, 10)\n                        break\n                    case 'j':\n                        arg = JSON.stringify(arg, null, ph.width ? parseInt(ph.width) : 0)\n                        break\n                    case 'e':\n                        arg = ph.precision ? parseFloat(arg).toExponential(ph.precision) : parseFloat(arg).toExponential()\n                        break\n                    case 'f':\n                        arg = ph.precision ? parseFloat(arg).toFixed(ph.precision) : parseFloat(arg)\n                        break\n                    case 'g':\n                        arg = ph.precision ? String(Number(arg.toPrecision(ph.precision))) : parseFloat(arg)\n                        break\n                    case 'o':\n                        arg = (parseInt(arg, 10) >>> 0).toString(8)\n                        break\n                    case 's':\n                        arg = String(arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 't':\n                        arg = String(!!arg)\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'T':\n                        arg = Object.prototype.toString.call(arg).slice(8, -1).toLowerCase()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'u':\n                        arg = parseInt(arg, 10) >>> 0\n                        break\n                    case 'v':\n                        arg = arg.valueOf()\n                        arg = (ph.precision ? arg.substring(0, ph.precision) : arg)\n                        break\n                    case 'x':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16)\n                        break\n                    case 'X':\n                        arg = (parseInt(arg, 10) >>> 0).toString(16).toUpperCase()\n                        break\n                }\n                if (re.json.test(ph.type)) {\n                    output += arg\n                }\n                else {\n                    if (re.number.test(ph.type) && (!is_positive || ph.sign)) {\n                        sign = is_positive ? '+' : '-'\n                        arg = arg.toString().replace(re.sign, '')\n                    }\n                    else {\n                        sign = ''\n                    }\n                    pad_character = ph.pad_char ? ph.pad_char === '0' ? '0' : ph.pad_char.charAt(1) : ' '\n                    pad_length = ph.width - (sign + arg).length\n                    pad = ph.width ? (pad_length > 0 ? pad_character.repeat(pad_length) : '') : ''\n                    output += ph.align ? sign + arg + pad : (pad_character === '0' ? sign + pad + arg : pad + sign + arg)\n                }\n            }\n        }\n        return output\n    }\n\n    var sprintf_cache = Object.create(null)\n\n    function sprintf_parse(fmt) {\n        if (sprintf_cache[fmt]) {\n            return sprintf_cache[fmt]\n        }\n\n        var _fmt = fmt, match, parse_tree = [], arg_names = 0\n        while (_fmt) {\n            if ((match = re.text.exec(_fmt)) !== null) {\n                parse_tree.push(match[0])\n            }\n            else if ((match = re.modulo.exec(_fmt)) !== null) {\n                parse_tree.push('%')\n            }\n            else if ((match = re.placeholder.exec(_fmt)) !== null) {\n                if (match[2]) {\n                    arg_names |= 1\n                    var field_list = [], replacement_field = match[2], field_match = []\n                    if ((field_match = re.key.exec(replacement_field)) !== null) {\n                        field_list.push(field_match[1])\n                        while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n                            if ((field_match = re.key_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else if ((field_match = re.index_access.exec(replacement_field)) !== null) {\n                                field_list.push(field_match[1])\n                            }\n                            else {\n                                throw new SyntaxError('[sprintf] failed to parse named argument key')\n                            }\n                        }\n                    }\n                    else {\n                        throw new SyntaxError('[sprintf] failed to parse named argument key')\n                    }\n                    match[2] = field_list\n                }\n                else {\n                    arg_names |= 2\n                }\n                if (arg_names === 3) {\n                    throw new Error('[sprintf] mixing positional and named placeholders is not (yet) supported')\n                }\n\n                parse_tree.push(\n                    {\n                        placeholder: match[0],\n                        param_no:    match[1],\n                        keys:        match[2],\n                        sign:        match[3],\n                        pad_char:    match[4],\n                        align:       match[5],\n                        width:       match[6],\n                        precision:   match[7],\n                        type:        match[8]\n                    }\n                )\n            }\n            else {\n                throw new SyntaxError('[sprintf] unexpected placeholder')\n            }\n            _fmt = _fmt.substring(match[0].length)\n        }\n        return sprintf_cache[fmt] = parse_tree\n    }\n\n    /**\n     * export to either browser or node.js\n     */\n    /* eslint-disable quote-props */\n    if (true) {\n        exports.sprintf = sprintf\n        exports.vsprintf = vsprintf\n    }\n    if (typeof window !== 'undefined') {\n        window['sprintf'] = sprintf\n        window['vsprintf'] = vsprintf\n\n        if (true) {\n            !(__WEBPACK_AMD_DEFINE_RESULT__ = (function() {\n                return {\n                    'sprintf': sprintf,\n                    'vsprintf': vsprintf\n                }\n            }).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n        }\n    }\n    /* eslint-enable quote-props */\n}(); // eslint-disable-line\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/sprintf-js/src/sprintf.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/index.js":
/*!*************************************************!*\
  !*** ./node_modules/stream-browserify/index.js ***!
  \*************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nmodule.exports = Stream;\n\nvar EE = (__webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter);\nvar inherits = __webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\");\n\ninherits(Stream, EE);\nStream.Readable = __webpack_require__(/*! readable-stream/lib/_stream_readable.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\");\nStream.Writable = __webpack_require__(/*! readable-stream/lib/_stream_writable.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\");\nStream.Duplex = __webpack_require__(/*! readable-stream/lib/_stream_duplex.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\nStream.Transform = __webpack_require__(/*! readable-stream/lib/_stream_transform.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\");\nStream.PassThrough = __webpack_require__(/*! readable-stream/lib/_stream_passthrough.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js\");\nStream.finished = __webpack_require__(/*! readable-stream/lib/internal/streams/end-of-stream.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nStream.pipeline = __webpack_require__(/*! readable-stream/lib/internal/streams/pipeline.js */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js\")\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams.  Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n  EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n  var source = this;\n\n  function ondata(chunk) {\n    if (dest.writable) {\n      if (false === dest.write(chunk) && source.pause) {\n        source.pause();\n      }\n    }\n  }\n\n  source.on('data', ondata);\n\n  function ondrain() {\n    if (source.readable && source.resume) {\n      source.resume();\n    }\n  }\n\n  dest.on('drain', ondrain);\n\n  // If the 'end' option is not supplied, dest.end() will be called when\n  // source gets the 'end' or 'close' events.  Only dest.end() once.\n  if (!dest._isStdio && (!options || options.end !== false)) {\n    source.on('end', onend);\n    source.on('close', onclose);\n  }\n\n  var didOnEnd = false;\n  function onend() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n\n    dest.end();\n  }\n\n\n  function onclose() {\n    if (didOnEnd) return;\n    didOnEnd = true;\n\n    if (typeof dest.destroy === 'function') dest.destroy();\n  }\n\n  // don't leave dangling pipes when there are errors.\n  function onerror(er) {\n    cleanup();\n    if (EE.listenerCount(this, 'error') === 0) {\n      throw er; // Unhandled stream error in pipe.\n    }\n  }\n\n  source.on('error', onerror);\n  dest.on('error', onerror);\n\n  // remove all the event listeners that were added.\n  function cleanup() {\n    source.removeListener('data', ondata);\n    dest.removeListener('drain', ondrain);\n\n    source.removeListener('end', onend);\n    source.removeListener('close', onclose);\n\n    source.removeListener('error', onerror);\n    dest.removeListener('error', onerror);\n\n    source.removeListener('end', cleanup);\n    source.removeListener('close', cleanup);\n\n    dest.removeListener('close', cleanup);\n  }\n\n  source.on('end', cleanup);\n  source.on('close', cleanup);\n\n  dest.on('close', cleanup);\n\n  dest.emit('pipe', source);\n\n  // Allow for unix-like usage: A.pipe(B).pipe(C)\n  return dest;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/index.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js":
/*!***************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js ***!
  \***************************************************************************************/
/***/ ((module) => {

"use strict";
eval("\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js":
/*!*******************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js ***!
  \*******************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n\n\n/*<replacement>*/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n};\n/*</replacement>*/\n\nmodule.exports = Duplex;\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js\");\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js\");\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n  self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js":
/*!************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js ***!
  \************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nmodule.exports = PassThrough;\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js\");\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\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\n\nmodule.exports = Readable;\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n\n/*<replacement>*/\nvar EE = (__webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter);\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\nvar OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/*<replacement>*/\nvar debugUtil = __webpack_require__(/*! util */ \"?19e6\");\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/*</replacement>*/\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\"),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = (__webpack_require__(/*! ../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes),\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'end' (and potentially 'finish')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \"./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder);\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\nfunction Readable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex);\n\n  // legacy\n  this.readable = true;\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n  Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n  return er;\n}\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = (__webpack_require__(/*! string_decoder/ */ \"./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js\").StringDecoder);\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder;\n  // If setEncoding(null), decoder.encoding equals utf8\n  this._readableState.encoding = this._readableState.decoder.encoding;\n\n  // Iterate over current buffer to convert already stored Buffers:\n  var p = this._readableState.buffer.head;\n  var content = '';\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n  this._readableState.buffer.clear();\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  }\n\n  // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n  return dest;\n};\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n      hasUnpiped: false\n    });\n    return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0;\n\n    // Try start flowing on next tick if stream isn't explicitly paused\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true;\n\n    // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n  state.paused = false;\n  return this;\n};\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n  if (!state.reading) {\n    stream.read(0);\n  }\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  this._readableState.paused = true;\n  return this;\n};\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n  return this;\n};\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n    }\n    return createReadableStreamAsyncIterator(this);\n  };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length);\n\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n    }\n    return from(Readable, iterable, opts);\n  };\n}\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js":
/*!**********************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js ***!
  \**********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\n\nmodule.exports = Transform;\nvar _require$codes = (__webpack_require__(/*! ../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes),\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n  var _this = this;\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js":
/*!*********************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js ***!
  \*********************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\n\nmodule.exports = Writable;\n\n/* <replacement> */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/* </replacement> */\n\n/*<replacement>*/\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n\n/*<replacement>*/\nvar internalUtil = {\n  deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/*</replacement>*/\n\n/*<replacement>*/\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/*</replacement>*/\n\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\nvar OurUint8Array = (typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js\");\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js\"),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = (__webpack_require__(/*! ../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes),\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'finish' (and potentially 'end')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\nfunction Writable(options) {\n  Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js\");\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex);\n\n  // legacy.\n  this.writable = true;\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END();\n  // TODO: defer error events consistently everywhere, not just the cb\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n  return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n  return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n  return need;\n}\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js":
/*!************************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js ***!
  \************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n  if (resolve !== null) {\n    var data = iter[kStream].read();\n    // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n  next: function next() {\n    var _this = this;\n    // if we have detected an error in the meanwhile\n    // reject straight away\n    var error = this[kError];\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    }\n\n    // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n    var lastPromise = this[kLastPromise];\n    var promise;\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n      promise = new Promise(this[kHandlePromise]);\n    }\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this;\n  // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject];\n      // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n      iterator[kError] = err;\n      return;\n    }\n    var resolve = iterator[kLastResolve];\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js":
/*!*********************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js ***!
  \*********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\"),\n  Buffer = _require.Buffer;\nvar _require2 = __webpack_require__(/*! util */ \"?3e83\"),\n  inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n      while (p = p.next) ret += s + p.data;\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes or characters from the buffered data.\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    }\n\n    // Consumes a specified amount of characters from the buffered data.\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes from the buffered data.\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Make sure the linked list only shows the minimal necessary information.\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n  return BufferList;\n}();\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js":
/*!*****************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js ***!
  \*****************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("/* provided dependency */ var process = __webpack_require__(/*! process */ \"./node_modules/process/browser.js\");\n\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n  return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js":
/*!***********************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***!
  \***********************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = (__webpack_require__(/*! ../../../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes).ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    callback.apply(this, args);\n  };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n  var writableEnded = stream._writableState && stream._writableState.finished;\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n  var onclose = function onclose() {\n    var err;\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\nmodule.exports = eos;\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js":
/*!**********************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js ***!
  \**********************************************************************************************************/
/***/ ((module) => {

eval("module.exports = function () {\n  throw new Error('Readable.from is not available in the browser')\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js":
/*!******************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js ***!
  \******************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\n\nvar eos;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\nvar _require$codes = (__webpack_require__(/*! ../../../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes),\n  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true;\n\n    // request.destroy just do .end - .abort is what we want\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\nfunction call(fn) {\n  fn();\n}\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\nmodule.exports = pipeline;\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js":
/*!***************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js ***!
  \***************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

"use strict";
eval("\n\nvar ERR_INVALID_OPT_VALUE = (__webpack_require__(/*! ../../../errors */ \"./node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js\").codes).ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n    return Math.floor(hwm);\n  }\n\n  // Default value\n  return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js":
/*!************************************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js ***!
  \************************************************************************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js?");

/***/ }),

/***/ "./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js":
/*!******************************************************************************************!*\
  !*** ./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js ***!
  \******************************************************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

"use strict";
eval("// 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\n\n/*<replacement>*/\n\nvar Buffer = (__webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer);\n/*</replacement>*/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n  encoding = '' + encoding;\n  switch (encoding && encoding.toLowerCase()) {\n    case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n      return true;\n    default:\n      return false;\n  }\n};\n\nfunction _normalizeEncoding(enc) {\n  if (!enc) return 'utf8';\n  var retried;\n  while (true) {\n    switch (enc) {\n      case 'utf8':\n      case 'utf-8':\n        return 'utf8';\n      case 'ucs2':\n      case 'ucs-2':\n      case 'utf16le':\n      case 'utf-16le':\n        return 'utf16le';\n      case 'latin1':\n      case 'binary':\n        return 'latin1';\n      case 'base64':\n      case 'ascii':\n      case 'hex':\n        return enc;\n      default:\n        if (retried) return; // undefined\n        enc = ('' + enc).toLowerCase();\n        retried = true;\n    }\n  }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n  var nenc = _normalizeEncoding(enc);\n  if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n  return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n  this.encoding = normalizeEncoding(encoding);\n  var nb;\n  switch (this.encoding) {\n    case 'utf16le':\n      this.text = utf16Text;\n      this.end = utf16End;\n      nb = 4;\n      break;\n    case 'utf8':\n      this.fillLast = utf8FillLast;\n      nb = 4;\n      break;\n    case 'base64':\n      this.text = base64Text;\n      this.end = base64End;\n      nb = 3;\n      break;\n    default:\n      this.write = simpleWrite;\n      this.end = simpleEnd;\n      return;\n  }\n  this.lastNeed = 0;\n  this.lastTotal = 0;\n  this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n  if (buf.length === 0) return '';\n  var r;\n  var i;\n  if (this.lastNeed) {\n    r = this.fillLast(buf);\n    if (r === undefined) return '';\n    i = this.lastNeed;\n    this.lastNeed = 0;\n  } else {\n    i = 0;\n  }\n  if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n  return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n  this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n  if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n  return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n  var j = buf.length - 1;\n  if (j < i) return 0;\n  var nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 1;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) self.lastNeed = nb - 2;\n    return nb;\n  }\n  if (--j < i || nb === -2) return 0;\n  nb = utf8CheckByte(buf[j]);\n  if (nb >= 0) {\n    if (nb > 0) {\n      if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n    }\n    return nb;\n  }\n  return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n  if ((buf[0] & 0xC0) !== 0x80) {\n    self.lastNeed = 0;\n    return '\\ufffd';\n  }\n  if (self.lastNeed > 1 && buf.length > 1) {\n    if ((buf[1] & 0xC0) !== 0x80) {\n      self.lastNeed = 1;\n      return '\\ufffd';\n    }\n    if (self.lastNeed > 2 && buf.length > 2) {\n      if ((buf[2] & 0xC0) !== 0x80) {\n        self.lastNeed = 2;\n        return '\\ufffd';\n      }\n    }\n  }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n  var p = this.lastTotal - this.lastNeed;\n  var r = utf8CheckExtraBytes(this, buf, p);\n  if (r !== undefined) return r;\n  if (this.lastNeed <= buf.length) {\n    buf.copy(this.lastChar, p, 0, this.lastNeed);\n    return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n  }\n  buf.copy(this.lastChar, p, 0, buf.length);\n  this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n  var total = utf8CheckIncomplete(this, buf, i);\n  if (!this.lastNeed) return buf.toString('utf8', i);\n  this.lastTotal = total;\n  var end = buf.length - (total - this.lastNeed);\n  buf.copy(this.lastChar, 0, end);\n  return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + '\\ufffd';\n  return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n  if ((buf.length - i) % 2 === 0) {\n    var r = buf.toString('utf16le', i);\n    if (r) {\n      var c = r.charCodeAt(r.length - 1);\n      if (c >= 0xD800 && c <= 0xDBFF) {\n        this.lastNeed = 2;\n        this.lastTotal = 4;\n        this.lastChar[0] = buf[buf.length - 2];\n        this.lastChar[1] = buf[buf.length - 1];\n        return r.slice(0, -1);\n      }\n    }\n    return r;\n  }\n  this.lastNeed = 1;\n  this.lastTotal = 2;\n  this.lastChar[0] = buf[buf.length - 1];\n  return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) {\n    var end = this.lastTotal - this.lastNeed;\n    return r + this.lastChar.toString('utf16le', 0, end);\n  }\n  return r;\n}\n\nfunction base64Text(buf, i) {\n  var n = (buf.length - i) % 3;\n  if (n === 0) return buf.toString('base64', i);\n  this.lastNeed = 3 - n;\n  this.lastTotal = 3;\n  if (n === 1) {\n    this.lastChar[0] = buf[buf.length - 1];\n  } else {\n    this.lastChar[0] = buf[buf.length - 2];\n    this.lastChar[1] = buf[buf.length - 1];\n  }\n  return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n  var r = buf && buf.length ? this.write(buf) : '';\n  if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n  return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n  return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n  return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/stream-browserify/node_modules/string_decoder/lib/string_decoder.js?");

/***/ }),

/***/ "./node_modules/string_decoder/index.js":
/*!**********************************************!*\
  !*** ./node_modules/string_decoder/index.js ***!
  \**********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar Buffer = (__webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer);\n\nvar isBufferEncoding = Buffer.isEncoding\n  || function(encoding) {\n       switch (encoding && encoding.toLowerCase()) {\n         case 'hex': case 'utf8': case 'utf-8': case 'ascii': case 'binary': case 'base64': case 'ucs2': case 'ucs-2': case 'utf16le': case 'utf-16le': case 'raw': return true;\n         default: return false;\n       }\n     }\n\n\nfunction assertEncoding(encoding) {\n  if (encoding && !isBufferEncoding(encoding)) {\n    throw new Error('Unknown encoding: ' + encoding);\n  }\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters. CESU-8 is handled as part of the UTF-8 encoding.\n//\n// @TODO Handling all encodings inside a single object makes it very difficult\n// to reason about this code, so it should be split up in the future.\n// @TODO There should be a utf8-strict encoding that rejects invalid UTF-8 code\n// points as used by CESU-8.\nvar StringDecoder = exports.StringDecoder = function(encoding) {\n  this.encoding = (encoding || 'utf8').toLowerCase().replace(/[-_]/, '');\n  assertEncoding(encoding);\n  switch (this.encoding) {\n    case 'utf8':\n      // CESU-8 represents each of Surrogate Pair by 3-bytes\n      this.surrogateSize = 3;\n      break;\n    case 'ucs2':\n    case 'utf16le':\n      // UTF-16 represents each of Surrogate Pair by 2-bytes\n      this.surrogateSize = 2;\n      this.detectIncompleteChar = utf16DetectIncompleteChar;\n      break;\n    case 'base64':\n      // Base-64 stores 3 bytes in 4 chars, and pads the remainder.\n      this.surrogateSize = 3;\n      this.detectIncompleteChar = base64DetectIncompleteChar;\n      break;\n    default:\n      this.write = passThroughWrite;\n      return;\n  }\n\n  // Enough space to store all bytes of a single character. UTF-8 needs 4\n  // bytes, but CESU-8 may require up to 6 (3 bytes per surrogate).\n  this.charBuffer = new Buffer(6);\n  // Number of bytes received for the current incomplete multi-byte character.\n  this.charReceived = 0;\n  // Number of bytes expected for the current incomplete multi-byte character.\n  this.charLength = 0;\n};\n\n\n// write decodes the given buffer and returns it as JS string that is\n// guaranteed to not contain any partial multi-byte characters. Any partial\n// character found at the end of the buffer is buffered up, and will be\n// returned when calling write again with the remaining bytes.\n//\n// Note: Converting a Buffer containing an orphan surrogate to a String\n// currently works, but converting a String to a Buffer (via `new Buffer`, or\n// Buffer#write) will replace incomplete surrogates with the unicode\n// replacement character. See https://codereview.chromium.org/121173009/ .\nStringDecoder.prototype.write = function(buffer) {\n  var charStr = '';\n  // if our last write ended with an incomplete multibyte character\n  while (this.charLength) {\n    // determine how many remaining bytes this buffer has to offer for this char\n    var available = (buffer.length >= this.charLength - this.charReceived) ?\n        this.charLength - this.charReceived :\n        buffer.length;\n\n    // add the new bytes to the char buffer\n    buffer.copy(this.charBuffer, this.charReceived, 0, available);\n    this.charReceived += available;\n\n    if (this.charReceived < this.charLength) {\n      // still not enough chars in this buffer? wait for more ...\n      return '';\n    }\n\n    // remove bytes belonging to the current character from the buffer\n    buffer = buffer.slice(available, buffer.length);\n\n    // get the character that was split\n    charStr = this.charBuffer.slice(0, this.charLength).toString(this.encoding);\n\n    // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n    var charCode = charStr.charCodeAt(charStr.length - 1);\n    if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n      this.charLength += this.surrogateSize;\n      charStr = '';\n      continue;\n    }\n    this.charReceived = this.charLength = 0;\n\n    // if there are no more bytes in this buffer, just emit our char\n    if (buffer.length === 0) {\n      return charStr;\n    }\n    break;\n  }\n\n  // determine and set charLength / charReceived\n  this.detectIncompleteChar(buffer);\n\n  var end = buffer.length;\n  if (this.charLength) {\n    // buffer the incomplete character bytes we got\n    buffer.copy(this.charBuffer, 0, buffer.length - this.charReceived, end);\n    end -= this.charReceived;\n  }\n\n  charStr += buffer.toString(this.encoding, 0, end);\n\n  var end = charStr.length - 1;\n  var charCode = charStr.charCodeAt(end);\n  // CESU-8: lead surrogate (D800-DBFF) is also the incomplete character\n  if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n    var size = this.surrogateSize;\n    this.charLength += size;\n    this.charReceived += size;\n    this.charBuffer.copy(this.charBuffer, size, 0, size);\n    buffer.copy(this.charBuffer, 0, 0, size);\n    return charStr.substring(0, end);\n  }\n\n  // or just emit the charStr\n  return charStr;\n};\n\n// detectIncompleteChar determines if there is an incomplete UTF-8 character at\n// the end of the given buffer. If so, it sets this.charLength to the byte\n// length that character, and sets this.charReceived to the number of bytes\n// that are available for this character.\nStringDecoder.prototype.detectIncompleteChar = function(buffer) {\n  // determine how many bytes we have to check at the end of this buffer\n  var i = (buffer.length >= 3) ? 3 : buffer.length;\n\n  // Figure out if one of the last i bytes of our buffer announces an\n  // incomplete char.\n  for (; i > 0; i--) {\n    var c = buffer[buffer.length - i];\n\n    // See http://en.wikipedia.org/wiki/UTF-8#Description\n\n    // 110XXXXX\n    if (i == 1 && c >> 5 == 0x06) {\n      this.charLength = 2;\n      break;\n    }\n\n    // 1110XXXX\n    if (i <= 2 && c >> 4 == 0x0E) {\n      this.charLength = 3;\n      break;\n    }\n\n    // 11110XXX\n    if (i <= 3 && c >> 3 == 0x1E) {\n      this.charLength = 4;\n      break;\n    }\n  }\n  this.charReceived = i;\n};\n\nStringDecoder.prototype.end = function(buffer) {\n  var res = '';\n  if (buffer && buffer.length)\n    res = this.write(buffer);\n\n  if (this.charReceived) {\n    var cr = this.charReceived;\n    var buf = this.charBuffer;\n    var enc = this.encoding;\n    res += buf.slice(0, cr).toString(enc);\n  }\n\n  return res;\n};\n\nfunction passThroughWrite(buffer) {\n  return buffer.toString(this.encoding);\n}\n\nfunction utf16DetectIncompleteChar(buffer) {\n  this.charReceived = buffer.length % 2;\n  this.charLength = this.charReceived ? 2 : 0;\n}\n\nfunction base64DetectIncompleteChar(buffer) {\n  this.charReceived = buffer.length % 3;\n  this.charLength = this.charReceived ? 3 : 0;\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/string_decoder/index.js?");

/***/ }),

/***/ "./node_modules/util-deprecate/browser.js":
/*!************************************************!*\
  !*** ./node_modules/util-deprecate/browser.js ***!
  \************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {

eval("\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n  if (config('noDeprecation')) {\n    return fn;\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (config('throwDeprecation')) {\n        throw new Error(msg);\n      } else if (config('traceDeprecation')) {\n        console.trace(msg);\n      } else {\n        console.warn(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n  // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n  try {\n    if (!__webpack_require__.g.localStorage) return false;\n  } catch (_) {\n    return false;\n  }\n  var val = __webpack_require__.g.localStorage[name];\n  if (null == val) return false;\n  return String(val).toLowerCase() === 'true';\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/util-deprecate/browser.js?");

/***/ }),

/***/ "./node_modules/vm-browserify/index.js":
/*!*********************************************!*\
  !*** ./node_modules/vm-browserify/index.js ***!
  \*********************************************/
/***/ ((__unused_webpack_module, exports) => {

eval("var indexOf = function (xs, item) {\n    if (xs.indexOf) return xs.indexOf(item);\n    else for (var i = 0; i < xs.length; i++) {\n        if (xs[i] === item) return i;\n    }\n    return -1;\n};\nvar Object_keys = function (obj) {\n    if (Object.keys) return Object.keys(obj)\n    else {\n        var res = [];\n        for (var key in obj) res.push(key)\n        return res;\n    }\n};\n\nvar forEach = function (xs, fn) {\n    if (xs.forEach) return xs.forEach(fn)\n    else for (var i = 0; i < xs.length; i++) {\n        fn(xs[i], i, xs);\n    }\n};\n\nvar defineProp = (function() {\n    try {\n        Object.defineProperty({}, '_', {});\n        return function(obj, name, value) {\n            Object.defineProperty(obj, name, {\n                writable: true,\n                enumerable: false,\n                configurable: true,\n                value: value\n            })\n        };\n    } catch(e) {\n        return function(obj, name, value) {\n            obj[name] = value;\n        };\n    }\n}());\n\nvar globals = ['Array', 'Boolean', 'Date', 'Error', 'EvalError', 'Function',\n'Infinity', 'JSON', 'Math', 'NaN', 'Number', 'Object', 'RangeError',\n'ReferenceError', 'RegExp', 'String', 'SyntaxError', 'TypeError', 'URIError',\n'decodeURI', 'decodeURIComponent', 'encodeURI', 'encodeURIComponent', 'escape',\n'eval', 'isFinite', 'isNaN', 'parseFloat', 'parseInt', 'undefined', 'unescape'];\n\nfunction Context() {}\nContext.prototype = {};\n\nvar Script = exports.Script = function NodeScript (code) {\n    if (!(this instanceof Script)) return new Script(code);\n    this.code = code;\n};\n\nScript.prototype.runInContext = function (context) {\n    if (!(context instanceof Context)) {\n        throw new TypeError(\"needs a 'context' argument.\");\n    }\n    \n    var iframe = document.createElement('iframe');\n    if (!iframe.style) iframe.style = {};\n    iframe.style.display = 'none';\n    \n    document.body.appendChild(iframe);\n    \n    var win = iframe.contentWindow;\n    var wEval = win.eval, wExecScript = win.execScript;\n\n    if (!wEval && wExecScript) {\n        // win.eval() magically appears when this is called in IE:\n        wExecScript.call(win, 'null');\n        wEval = win.eval;\n    }\n    \n    forEach(Object_keys(context), function (key) {\n        win[key] = context[key];\n    });\n    forEach(globals, function (key) {\n        if (context[key]) {\n            win[key] = context[key];\n        }\n    });\n    \n    var winKeys = Object_keys(win);\n\n    var res = wEval.call(win, this.code);\n    \n    forEach(Object_keys(win), function (key) {\n        // Avoid copying circular objects like `top` and `window` by only\n        // updating existing context properties or new properties in the `win`\n        // that was only introduced after the eval.\n        if (key in context || indexOf(winKeys, key) === -1) {\n            context[key] = win[key];\n        }\n    });\n\n    forEach(globals, function (key) {\n        if (!(key in context)) {\n            defineProp(context, key, win[key]);\n        }\n    });\n    \n    document.body.removeChild(iframe);\n    \n    return res;\n};\n\nScript.prototype.runInThisContext = function () {\n    return eval(this.code); // maybe...\n};\n\nScript.prototype.runInNewContext = function (context) {\n    var ctx = Script.createContext(context);\n    var res = this.runInContext(ctx);\n\n    if (context) {\n        forEach(Object_keys(ctx), function (key) {\n            context[key] = ctx[key];\n        });\n    }\n\n    return res;\n};\n\nforEach(Object_keys(Script.prototype), function (name) {\n    exports[name] = Script[name] = function (code) {\n        var s = Script(code);\n        return s[name].apply(s, [].slice.call(arguments, 1));\n    };\n});\n\nexports.isContext = function (context) {\n    return context instanceof Context;\n};\n\nexports.createScript = function (code) {\n    return exports.Script(code);\n};\n\nexports.createContext = Script.createContext = function (context) {\n    var copy = new Context();\n    if(typeof context === 'object') {\n        forEach(Object_keys(context), function (key) {\n            copy[key] = context[key];\n        });\n    }\n    return copy;\n};\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./node_modules/vm-browserify/index.js?");

/***/ }),

/***/ "./src/js/ConnectWallet.js":
/*!*********************************!*\
  !*** ./src/js/ConnectWallet.js ***!
  \*********************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ ConnectWallet)\n/* harmony export */ });\n/* harmony import */ var _Wallets__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Wallets */ \"./src/js/Wallets.js\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/element */ \"@wordpress/element\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _Spinner__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Spinner */ \"./src/js/Spinner.js\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./events */ \"./src/js/events.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_Wallets__WEBPACK_IMPORTED_MODULE_0__]);\n_Wallets__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n\n\n\n\nfunction ConnectWallet() {\n  var _useState = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n    _useState2 = _slicedToArray(_useState, 2),\n    open = _useState2[0],\n    setOpen = _useState2[1];\n  var _useState3 = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(false),\n    _useState4 = _slicedToArray(_useState3, 2),\n    loading = _useState4[0],\n    setLoading = _useState4[1];\n  var _useState5 = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useState)(null),\n    _useState6 = _slicedToArray(_useState5, 2),\n    wallet = _useState6[0],\n    setwallet = _useState6[1];\n  function toggle() {\n    setOpen(!open);\n  }\n  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {\n    (0,_events__WEBPACK_IMPORTED_MODULE_3__.subscribe)('wallet-loading', function (eventData) {\n      return setLoading(eventData.detail);\n    });\n    (0,_events__WEBPACK_IMPORTED_MODULE_3__.subscribe)('wallet-data', function (eventData) {\n      return setwallet(eventData.detail);\n    });\n    if (loading) {\n      setOpen(false);\n    }\n    return function () {\n      (0,_events__WEBPACK_IMPORTED_MODULE_3__.unsubscribe)('wallet-loading', function () {\n        return setIsOpen(false);\n      });\n      (0,_events__WEBPACK_IMPORTED_MODULE_3__.unsubscribe)('wallet-error');\n      (0,_events__WEBPACK_IMPORTED_MODULE_3__.unsubscribe)('wallet-data', function () {\n        return setIsOpen(null);\n      });\n    };\n  }, [loading]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"flex flex-col gap-y-3\"\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"gap-x-1.5 flex flex-col\"\n  }, /*#__PURE__*/React.createElement(\"p\", {\n    className: \" font-semibold text-gray-900\"\n  }, \"Connect you preferred wallet extension, and sign the transaction on checkout\", ' '), /*#__PURE__*/React.createElement(\"div\", null, /*#__PURE__*/React.createElement(\"button\", {\n    type: \"button\",\n    onClick: function onClick() {\n      return toggle();\n    },\n    className: \"flex flex-row focus:outline-none  justify-center  rounded-md shadow bg-white px-3 py-2 text-sm font-semibold text-gray-900  ring-1 ring-inset focus:ring-gray-300 hover:bg-gray-50\"\n  }, loading && /*#__PURE__*/React.createElement(_Spinner__WEBPACK_IMPORTED_MODULE_2__[\"default\"], null), /*#__PURE__*/React.createElement(\"span\", {\n    className: \"flex items-center gap-2 tracking-wide\"\n  }, wallet !== null && wallet !== void 0 && wallet.userBalance ? /*#__PURE__*/React.createElement(\"span\", {\n    className: \"text-sm\"\n  }, \"\".concat(wallet === null || wallet === void 0 ? void 0 : wallet.walletName, \" connected\")) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"text-sm\"\n  }, \"Connect Wallet\"), /*#__PURE__*/React.createElement(\"span\", {\n    className: \"text-slate-100\",\n    \"aria-hidden\": \"true\"\n  }, \"\\u2193\"))))), open && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"relative\"\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"absolute z-40 w-48 mt-3 overflow-visible bg-white rounded-md shadow\"\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"flex flex-col items-center gap-2 py-1 divide-y divide-slate-800 divide-opacity-40\",\n    role: \"none\"\n  }, /*#__PURE__*/React.createElement(_Wallets__WEBPACK_IMPORTED_MODULE_0__[\"default\"], null))))), wallet && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"flex flex-col border border-gray-300 rounded-md shadow p-3 gap-y-2 max-w-xs bg-white\"\n  }, /*#__PURE__*/React.createElement(\"div\", {\n    className: \"flex fexl-row justify-between items-center\"\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"font-bold text-sm\"\n  }, ' ', \"SubTotal In Ada\"), /*#__PURE__*/React.createElement(\"span\", {\n    className: \"italic text-gray-500\"\n  }, parseFloat(wallet === null || wallet === void 0 ? void 0 : wallet.amountToPay.toFixed(2)), ' ', \"\\u20B3\")), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"border-b border-gray-300\"\n  }), /*#__PURE__*/React.createElement(\"div\", {\n    className: \"flex fexl-row justify-between items-center\"\n  }, /*#__PURE__*/React.createElement(\"span\", {\n    className: \"font-bold text-sm\"\n  }, \"Your Wallet Balance\"), /*#__PURE__*/React.createElement(\"span\", {\n    className: \"italic text-gray-500\"\n  }, parseFloat((wallet.userBalance / 1000000).toFixed(2)), ' ', \"\\u20B3\")))));\n}\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/ConnectWallet.js?");

/***/ }),

/***/ "./src/js/Spinner.js":
/*!***************************!*\
  !*** ./src/js/Spinner.js ***!
  \***************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Spinner)\n/* harmony export */ });\nfunction Spinner() {\n  return /*#__PURE__*/React.createElement(\"span\", {\n    className: \"flex items-center justify-center w-4 p-1 bg-white rounded-full bg-opacity-90\"\n  }, /*#__PURE__*/React.createElement(\"svg\", {\n    className: \"relative w-3 h-3 border-t-2 border-b-2 rounded-full animate-spin border-primary-600\",\n    viewBox: \"0 0 24 24\"\n  }));\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/Spinner.js?");

/***/ }),

/***/ "./src/js/WalletList.js":
/*!******************************!*\
  !*** ./src/js/WalletList.js ***!
  \******************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   AvailableWallets: () => (/* binding */ AvailableWallets)\n/* harmony export */ });\n/* harmony import */ var _meshsdk_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @meshsdk/core */ \"./node_modules/@meshsdk/core/dist/index.js\");\n\nvar AvailableWallets = await _meshsdk_core__WEBPACK_IMPORTED_MODULE_0__.BrowserWallet.getAvailableWallets();\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } }, 1);\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/WalletList.js?");

/***/ }),

/***/ "./src/js/WalletService.js":
/*!*********************************!*\
  !*** ./src/js/WalletService.js ***!
  \*********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ WalletService)\n/* harmony export */ });\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./events */ \"./src/js/events.js\");\n/* harmony import */ var buffer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n/* harmony import */ var _meshsdk_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @meshsdk/core */ \"./node_modules/@meshsdk/core/dist/index.js\");\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\"); }\nfunction _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }\nfunction _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", { writable: !1 }), e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n\n\n\nvar WalletService = /*#__PURE__*/function () {\n  function WalletService() {\n    _classCallCheck(this, WalletService);\n    _defineProperty(this, \"api\", void 0);\n    _defineProperty(this, \"lucid\", void 0);\n    _defineProperty(this, \"blockfrostUrl\", void 0);\n    _defineProperty(this, \"wallet\", void 0);\n    _defineProperty(this, \"networkId\", void 0);\n  }\n  return _createClass(WalletService, [{\n    key: \"connectWallet\",\n    value: function () {\n      var _connectWallet = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(wallet) {\n        var userBalance, amountToPay, rawTx;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              (0,_events__WEBPACK_IMPORTED_MODULE_0__.publish)('wallet-loading', true);\n              _context.prev = 1;\n              _context.next = 4;\n              return _meshsdk_core__WEBPACK_IMPORTED_MODULE_2__.BrowserWallet.enable(wallet);\n            case 4:\n              this.wallet = _context.sent;\n              _context.next = 7;\n              return this.getNetworkId();\n            case 7:\n              _context.next = 9;\n              return this.wallet.getBalance();\n            case 9:\n              userBalance = _context.sent.filter(function (bal) {\n                return bal['unit'] == 'lovelace';\n              })[0]['quantity'];\n              //in ada\n              amountToPay = parseInt(ADAPAYFWC_cart_data.cart_totals.subtotal) / parseFloat(ADAPAYFWC_cart_data.usd_ada_rate);\n              if (!(amountToPay * 1000000 > userBalance)) {\n                _context.next = 13;\n                break;\n              }\n              throw new Error('Insufficient funds in wallet.');\n            case 13:\n              _context.next = 15;\n              return this.payToStore(ADAPAYFWC_cart_data.storeAddress, Math.floor(amountToPay) * 1000000);\n            case 15:\n              rawTx = _context.sent.toString();\n              (0,_events__WEBPACK_IMPORTED_MODULE_0__.publish)('wallet-data', {\n                walletName: wallet,\n                amountToPay: amountToPay,\n                rawTx: rawTx,\n                userBalance: userBalance\n              });\n              (0,_events__WEBPACK_IMPORTED_MODULE_0__.publish)('wallet-loading', false);\n              _context.next = 25;\n              break;\n            case 20:\n              _context.prev = 20;\n              _context.t0 = _context[\"catch\"](1);\n              (0,_events__WEBPACK_IMPORTED_MODULE_0__.publish)('wallet-error', _context.t0.message);\n              (0,_events__WEBPACK_IMPORTED_MODULE_0__.publish)('wallet-loading', false);\n              return _context.abrupt(\"return\", _context.t0.message);\n            case 25:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee, this, [[1, 20]]);\n      }));\n      function connectWallet(_x) {\n        return _connectWallet.apply(this, arguments);\n      }\n      return connectWallet;\n    }()\n  }, {\n    key: \"payToStore\",\n    value: function () {\n      var _payToStore = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(storeAddress, amount) {\n        return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n          while (1) switch (_context2.prev = _context2.next) {\n            case 0:\n              return _context2.abrupt(\"return\", new _meshsdk_core__WEBPACK_IMPORTED_MODULE_2__.Transaction({\n                initiator: this.wallet\n              }).sendLovelace(storeAddress, amount.toString()).build());\n            case 1:\n            case \"end\":\n              return _context2.stop();\n          }\n        }, _callee2, this);\n      }));\n      function payToStore(_x2, _x3) {\n        return _payToStore.apply(this, arguments);\n      }\n      return payToStore;\n    }()\n  }, {\n    key: \"signTx\",\n    value: function () {\n      var _signTx = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rawTx, wallet) {\n        var signedTx, txHash;\n        return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n          while (1) switch (_context3.prev = _context3.next) {\n            case 0:\n              if (this.wallet) {\n                _context3.next = 4;\n                break;\n              }\n              _context3.next = 3;\n              return _meshsdk_core__WEBPACK_IMPORTED_MODULE_2__.BrowserWallet.enable(wallet);\n            case 3:\n              this.wallet = _context3.sent;\n            case 4:\n              _context3.next = 6;\n              return this.wallet.signTx(rawTx);\n            case 6:\n              signedTx = _context3.sent;\n              _context3.next = 9;\n              return this.wallet.submitTx(signedTx);\n            case 9:\n              txHash = _context3.sent;\n              return _context3.abrupt(\"return\", txHash);\n            case 11:\n            case \"end\":\n              return _context3.stop();\n          }\n        }, _callee3, this);\n      }));\n      function signTx(_x4, _x5) {\n        return _signTx.apply(this, arguments);\n      }\n      return signTx;\n    }()\n  }, {\n    key: \"getNetworkId\",\n    value: function () {\n      var _getNetworkId = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {\n        var walletNetwork, appNetwork;\n        return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n          while (1) switch (_context4.prev = _context4.next) {\n            case 0:\n              _context4.next = 2;\n              return this.wallet.getNetworkId();\n            case 2:\n              walletNetwork = _context4.sent;\n              appNetwork = parseInt(ADAPAYFWC_cart_data.network_id);\n              _context4.t0 = appNetwork;\n              _context4.next = _context4.t0 === 0 ? 7 : _context4.t0 === 1 ? 10 : 13;\n              break;\n            case 7:\n              if (!(walletNetwork !== appNetwork)) {\n                _context4.next = 9;\n                break;\n              }\n              throw new Error('Preview wallet needed');\n            case 9:\n              return _context4.abrupt(\"return\", 'preview');\n            case 10:\n              if (!(walletNetwork !== appNetwork)) {\n                _context4.next = 12;\n                break;\n              }\n              throw new Error('Mainnet wallet needed');\n            case 12:\n              return _context4.abrupt(\"return\", 'mainnet');\n            case 13:\n              throw new Error('Invalid network');\n            case 14:\n            case \"end\":\n              return _context4.stop();\n          }\n        }, _callee4, this);\n      }));\n      function getNetworkId() {\n        return _getNetworkId.apply(this, arguments);\n      }\n      return getNetworkId;\n    }()\n  }]);\n}();\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/WalletService.js?");

/***/ }),

/***/ "./src/js/Wallets.js":
/*!***************************!*\
  !*** ./src/js/Wallets.js ***!
  \***************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   \"default\": () => (/* binding */ Wallets)\n/* harmony export */ });\n/* harmony import */ var _WalletList__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./WalletList */ \"./src/js/WalletList.js\");\n/* harmony import */ var _WalletService__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./WalletService */ \"./src/js/WalletService.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_WalletList__WEBPACK_IMPORTED_MODULE_0__]);\n_WalletList__WEBPACK_IMPORTED_MODULE_0__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\n\n\nvar wc = new _WalletService__WEBPACK_IMPORTED_MODULE_1__[\"default\"]();\nfunction Wallets() {\n  var handleClick = function handleClick(walletName) {\n    wc.connectWallet(walletName);\n  };\n  var wallets = _WalletList__WEBPACK_IMPORTED_MODULE_0__.AvailableWallets.map(function (wallet) {\n    return /*#__PURE__*/React.createElement(\"span\", {\n      onClick: function onClick() {\n        return handleClick(wallet.name);\n      },\n      className: \"flex w-full items-center justify-center gap-2 px-4 py-2 text-xl no-underline text-gray-700 cursor-pointer\",\n      role: \"menuitem\",\n      tabIndex: \"-1\",\n      key: wallet.name\n    }, /*#__PURE__*/React.createElement(\"img\", {\n      alt: wallet.name,\n      className: \"w-6 h-auto\",\n      src: wallet.icon\n    }), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"span\", null, wallet.name)));\n  });\n  return wallets;\n}\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/Wallets.js?");

/***/ }),

/***/ "./src/js/events.js":
/*!**************************!*\
  !*** ./src/js/events.js ***!
  \**************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   publish: () => (/* binding */ publish),\n/* harmony export */   subscribe: () => (/* binding */ subscribe),\n/* harmony export */   unsubscribe: () => (/* binding */ unsubscribe)\n/* harmony export */ });\n/**\n *\n * @param {string} eventName\n * @param {CallableFunction} listener\n * @param {Element} target\n */\nfunction subscribe(eventName, listener) {\n  var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n  target.addEventListener(eventName, function (event) {\n    listener(event);\n  });\n}\n\n/**\n *\n * @param {string} eventName\n * @param {CallableFunction} listener\n * @param {Element} target\n */\nfunction unsubscribe(eventName, listener) {\n  var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n  target.removeEventListener(eventName, listener);\n}\n\n/**\n *\n * @param {string} eventName\n * @param {{}|null} listener\n * @param {Element} target\n */\nfunction publish(eventName) {\n  var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var target = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : document;\n  var event = new CustomEvent(eventName, {\n    detail: data\n  });\n  target.dispatchEvent(event);\n}\n\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/events.js?");

/***/ }),

/***/ "./src/js/htmlEntities.js":
/*!********************************!*\
  !*** ./src/js/htmlEntities.js ***!
  \********************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */   decodeEntities: () => (/* binding */ decodeEntities)\n/* harmony export */ });\n/** @type {HTMLTextAreaElement} */\nvar _decodeTextArea;\n\n/**\n * Decodes the HTML entities from a given string.\n *\n * @param {string} html String that contain HTML entities.\n *\n * @example\n * ```js\n * import { decodeEntities } from '@wordpress/html-entities';\n *\n * const result = decodeEntities( '&aacute;' );\n * console.log( result ); // result will be \"á\"\n * ```\n *\n * @return {string} The decoded string.\n */\nfunction decodeEntities(html) {\n  // Not a string, or no entities to decode.\n  if ('string' !== typeof html || -1 === html.indexOf('&')) {\n    return html;\n  }\n\n  // Create a textarea for decoding entities, that we can reuse.\n  if (undefined === _decodeTextArea) {\n    if (document.implementation && document.implementation.createHTMLDocument) {\n      _decodeTextArea = document.implementation.createHTMLDocument('').createElement('textarea');\n    } else {\n      _decodeTextArea = document.createElement('textarea');\n    }\n  }\n  _decodeTextArea.innerHTML = html;\n  var decoded = _decodeTextArea.textContent;\n  _decodeTextArea.innerHTML = '';\n\n  /**\n   * Cast to string, HTMLTextAreaElement should always have `string` textContent.\n   *\n   * > The `textContent` property of the `Node` interface represents the text content of the\n   * > node and its descendants.\n   * >\n   * > Value: A string or `null`\n   * >\n   * > * If the node is a `document` or a Doctype, `textContent` returns `null`.\n   * > * If the node is a CDATA section, comment, processing instruction, or text node,\n   * >   textContent returns the text inside the node, i.e., the `Node.nodeValue`.\n   * > * For other node types, `textContent returns the concatenation of the textContent of\n   * >   every child node, excluding comments and processing instructions. (This is an empty\n   * >   string if the node has no children.)\n   *\n   * @see https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent\n   */\n  return /** @type {string} */decoded;\n}\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/htmlEntities.js?");

/***/ }),

/***/ "./src/js/index.js":
/*!*************************!*\
  !*** ./src/js/index.js ***!
  \*************************/
/***/ ((module, __webpack_exports__, __webpack_require__) => {

"use strict";
eval("__webpack_require__.a(module, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _htmlEntities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./htmlEntities */ \"./src/js/htmlEntities.js\");\n/* harmony import */ var _ConnectWallet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ConnectWallet */ \"./src/js/ConnectWallet.js\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @wordpress/element */ \"@wordpress/element\");\n/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! axios */ \"./node_modules/axios/lib/axios.js\");\n/* harmony import */ var _WalletService__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./WalletService */ \"./src/js/WalletService.js\");\n/* harmony import */ var _events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./events */ \"./src/js/events.js\");\nvar __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_ConnectWallet__WEBPACK_IMPORTED_MODULE_1__]);\n_ConnectWallet__WEBPACK_IMPORTED_MODULE_1__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _regeneratorRuntime() { \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = \"function\" == typeof Symbol ? Symbol : {}, a = i.iterator || \"@@iterator\", c = i.asyncIterator || \"@@asyncIterator\", u = i.toStringTag || \"@@toStringTag\"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, \"\"); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, \"_invoke\", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: \"normal\", arg: t.call(e, r) }; } catch (t) { return { type: \"throw\", arg: t }; } } e.wrap = wrap; var h = \"suspendedStart\", l = \"suspendedYield\", f = \"executing\", s = \"completed\", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { [\"next\", \"throw\", \"return\"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if (\"throw\" !== c.type) { var u = c.arg, h = u.value; return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) { invoke(\"next\", t, i, a); }, function (t) { invoke(\"throw\", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke(\"throw\", t, i, a); }); } a(c.arg); } var r; o(this, \"_invoke\", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error(\"Generator is already running\"); if (o === s) { if (\"throw\" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else \"return\" === n.method && n.abrupt(\"return\", n.arg); o = f; var p = tryCatch(e, r, n); if (\"normal\" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y; var i = tryCatch(o, e.iterator, r.arg); if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = \"normal\", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: \"root\" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || \"\" === e) { var r = e[a]; if (r) return r.call(e); if (\"function\" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + \" is not iterable\"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, \"constructor\", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) { var e = \"function\" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () { return this; }), define(g, \"toString\", function () { return \"[object Generator]\"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if (\"throw\" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if (\"root\" === i.tryLoc) return handle(\"end\"); if (i.tryLoc <= this.prev) { var c = n.call(i, \"catchLoc\"), u = n.call(i, \"finallyLoc\"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error(\"try statement without catch or finally\"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) { var i = o; break; } } i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if (\"throw\" === t.type) throw t.arg; return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, \"catch\": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if (\"throw\" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error(\"illegal catch attempt\"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, \"next\" === this.method && (this.arg = t), y; } }, e; }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nfunction _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }\nfunction _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.\"); }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(r) { if (Array.isArray(r)) return r; }\n\n\n\n\n\n\nvar registerPaymentMethod = window.wc?.wcBlocksRegistry?.registerPaymentMethod;\nvar getSetting = window.wc?.wcSettings?.getSetting;\nvar wc = new _WalletService__WEBPACK_IMPORTED_MODULE_3__[\"default\"]();\nvar settings = typeof getSetting === 'function' ? getSetting('ada_payment_data', {}) : {};\nvar label = (0,_htmlEntities__WEBPACK_IMPORTED_MODULE_0__.decodeEntities)(settings.title);\nvar AdaPayment = function AdaPayment(_ref) {\n  var _ADAPAYFWC_cart_data, _billing$currency;\n  var eventRegistration = _ref.eventRegistration,\n    emitResponse = _ref.emitResponse,\n    billing = _ref.billing,\n    components = _ref.components;\n  var onCheckoutValidation = eventRegistration.onCheckoutValidation,\n    onCheckoutSuccess = eventRegistration.onCheckoutSuccess;\n  var _useState = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(null),\n    _useState2 = _slicedToArray(_useState, 2),\n    wallet = _useState2[0],\n    setwallet = _useState2[1];\n  var _useState3 = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useState)(null),\n    _useState4 = _slicedToArray(_useState3, 2),\n    walletError = _useState4[0],\n    setWalletError = _useState4[1];\n  (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_2__.useEffect)(function () {\n    (0,_events__WEBPACK_IMPORTED_MODULE_4__.subscribe)('wallet-data', function (eventData) {\n      return setwallet(eventData.detail);\n    });\n    (0,_events__WEBPACK_IMPORTED_MODULE_4__.subscribe)('wallet-error', function (eventData) {\n      return setWalletError(eventData.detail);\n    });\n    var checkoutSuccess = onCheckoutSuccess(/*#__PURE__*/function () {\n      var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(checkoutProcessingData) {\n        var _checkoutProcessingDa;\n        var paymentDetails, redirectUrl, signedTx, statusUpdated;\n        return _regeneratorRuntime().wrap(function _callee$(_context) {\n          while (1) switch (_context.prev = _context.next) {\n            case 0:\n              paymentDetails = checkoutProcessingData === null || checkoutProcessingData === void 0 || (_checkoutProcessingDa = checkoutProcessingData.processingResponse) === null || _checkoutProcessingDa === void 0 ? void 0 : _checkoutProcessingDa.paymentDetails;\n              if (paymentDetails) {\n                _context.next = 3;\n                break;\n              }\n              return _context.abrupt(\"return\", {\n                type: emitResponse.responseTypes.ERROR,\n                errorMessage: 'Payment failed. Please try again.'\n              });\n            case 3:\n              redirectUrl = paymentDetails.redirect_url;\n              _context.next = 6;\n              return wc.signTx(wallet.rawTx, wallet.walletName);\n            case 6:\n              signedTx = _context.sent;\n              if (signedTx) {\n                _context.next = 9;\n                break;\n              }\n              return _context.abrupt(\"return\", {\n                type: emitResponse.responseTypes.ERROR,\n                errorMessage: 'Payment failed. Please try again.'\n              });\n            case 9:\n              _context.next = 11;\n              return completeOrder({\n                payedAmt: wallet.amountToPay,\n                txHash: signedTx,\n                order_id: checkoutProcessingData.orderId,\n                customer_id: checkoutProcessingData.customerId\n              });\n            case 11:\n              statusUpdated = _context.sent;\n              if (!(statusUpdated && redirectUrl)) {\n                _context.next = 16;\n                break;\n              }\n              window.location.href = redirectUrl;\n              _context.next = 17;\n              break;\n            case 16:\n              return _context.abrupt(\"return\", {\n                type: emitResponse.responseTypes.ERROR,\n                errorMessage: 'Error occured. Contact support'\n              });\n            case 17:\n              return _context.abrupt(\"return\", true);\n            case 18:\n            case \"end\":\n              return _context.stop();\n          }\n        }, _callee);\n      }));\n      return function (_x) {\n        return _ref2.apply(this, arguments);\n      };\n    }());\n    var validation = onCheckoutValidation(function () {\n      if (!wallet) {\n        return {\n          type: emitResponse.responseTypes.ERROR,\n          errorMessage: 'Connect  Wallet to checkout your order.'\n        };\n      } else {\n        return true;\n      }\n    });\n    return function () {\n      validation();\n      checkoutSuccess();\n      (0,_events__WEBPACK_IMPORTED_MODULE_4__.unsubscribe)('wallet-data', function () {\n        return null;\n      });\n    };\n  }, [wallet, emitResponse.responseTypes.ERROR, emitResponse.responseTypes.SUCCESS, onCheckoutSuccess, onCheckoutValidation]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, walletError && /*#__PURE__*/React.createElement(\"div\", {\n    className: \"px-3 py-1 bg-red-100 rounded-md gap-2 flex flex-row max-w-lg\"\n  }, /*#__PURE__*/React.createElement(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    className: \"bg-red-600 rounded-full\",\n    fill: \"white\",\n    viewBox: \"0 0 24 24\",\n    width: \"24\",\n    height: \"24\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z\"\n  })), /*#__PURE__*/React.createElement(\"p\", {\n    className: \"text-red-500 break-normal mb-0\"\n  }, walletError)), (_ADAPAYFWC_cart_data = ADAPAYFWC_cart_data) !== null && _ADAPAYFWC_cart_data !== void 0 && _ADAPAYFWC_cart_data.usd_ada_rate && (billing === null || billing === void 0 || (_billing$currency = billing.currency) === null || _billing$currency === void 0 ? void 0 : _billing$currency.code) != '' ? /*#__PURE__*/React.createElement(_ConnectWallet__WEBPACK_IMPORTED_MODULE_1__[\"default\"], null) : /*#__PURE__*/React.createElement(\"div\", {\n    className: \"px-3 py-2 bg-red-200 border-2 rounded-md shadow border-red-400 gap-2 flex flex-row max-w-lg\"\n  }, /*#__PURE__*/React.createElement(\"svg\", {\n    xmlns: \"http://www.w3.org/2000/svg\",\n    className: \"bg-red-600 rounded-full\",\n    fill: \"white\",\n    viewBox: \"0 0 24 24\",\n    width: \"24\",\n    height: \"24\",\n    \"aria-hidden\": \"true\",\n    focusable: \"false\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    d: \"M12 3.2c-4.8 0-8.8 3.9-8.8 8.8 0 4.8 3.9 8.8 8.8 8.8 4.8 0 8.8-3.9 8.8-8.8 0-4.8-4-8.8-8.8-8.8zm0 16c-4 0-7.2-3.3-7.2-7.2C4.8 8 8 4.8 12 4.8s7.2 3.3 7.2 7.2c0 4-3.2 7.2-7.2 7.2zM11 17h2v-6h-2v6zm0-8h2V7h-2v2z\"\n  })), /*#__PURE__*/React.createElement(\"p\", {\n    className: \"text-red-500 break-normal mb-0\"\n  }, \"Something went wrong. Please contact us to get assistance.\")));\n};\nvar Label = function Label(_ref3) {\n  var components = _ref3.components;\n  var PaymentMethodLabel = components.PaymentMethodLabel;\n  return /*#__PURE__*/React.createElement(PaymentMethodLabel, {\n    text: label\n  });\n};\ntypeof registerPaymentMethod === 'function' && registerPaymentMethod({\n  name: 'ada_payment',\n  label: /*#__PURE__*/React.createElement(Label, null),\n  content: /*#__PURE__*/React.createElement(AdaPayment, null),\n  edit: /*#__PURE__*/React.createElement(AdaPayment, null),\n  placeOrderButtonLabel: 'Sign purchase transaction',\n  canMakePayment: function canMakePayment() {\n    var _window$wc$wcSettings;\n    return ((_window$wc$wcSettings = window.wc.wcSettings) === null || _window$wc$wcSettings === void 0 || (_window$wc$wcSettings = _window$wc$wcSettings.CURRENCY) === null || _window$wc$wcSettings === void 0 ? void 0 : _window$wc$wcSettings.code) != '';\n  },\n  ariaLabel: label,\n  supports: {\n    features: settings.supports\n  }\n});\nfunction completeOrder(_x2) {\n  return _completeOrder.apply(this, arguments);\n}\nfunction _completeOrder() {\n  _completeOrder = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(order) {\n    var response;\n    return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n      while (1) switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.prev = 0;\n          _context2.next = 3;\n          return axios__WEBPACK_IMPORTED_MODULE_5__[\"default\"].post(\"\".concat(ADAPAYFWC_cart_data.api_endpoint, \"/complete-order\"), order, {\n            headers: {\n              'X-WP-Nonce': ADAPAYFWC_cart_data.nonce\n            }\n          });\n        case 3:\n          response = _context2.sent;\n          return _context2.abrupt(\"return\", response.data);\n        case 7:\n          _context2.prev = 7;\n          _context2.t0 = _context2[\"catch\"](0);\n          console.error('Error creating order:', _context2.t0);\n          return _context2.abrupt(\"return\", null);\n        case 11:\n        case \"end\":\n          return _context2.stop();\n      }\n    }, _callee2, null, [[0, 7]]);\n  }));\n  return _completeOrder.apply(this, arguments);\n}\n__webpack_async_result__();\n} catch(e) { __webpack_async_result__(e); } });\n\n//# sourceURL=webpack://woocommerce-ada-payments/./src/js/index.js?");

/***/ }),

/***/ "?0aec":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?0b9d":
/*!********************!*\
  !*** fs (ignored) ***!
  \********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/fs_(ignored)?");

/***/ }),

/***/ "?19e6":
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/util_(ignored)?");

/***/ }),

/***/ "?3e83":
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/util_(ignored)?");

/***/ }),

/***/ "?3fc0":
/*!************************!*\
  !*** crypto (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/crypto_(ignored)?");

/***/ }),

/***/ "?4068":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?593c":
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/util_(ignored)?");

/***/ }),

/***/ "?5b1a":
/*!**********************!*\
  !*** path (ignored) ***!
  \**********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/path_(ignored)?");

/***/ }),

/***/ "?7bec":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?8131":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?cad2":
/*!**********************!*\
  !*** util (ignored) ***!
  \**********************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/util_(ignored)?");

/***/ }),

/***/ "?d546":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?e7e4":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "?fbf1":
/*!************************!*\
  !*** buffer (ignored) ***!
  \************************/
/***/ (() => {

eval("/* (ignored) */\n\n//# sourceURL=webpack://woocommerce-ada-payments/buffer_(ignored)?");

/***/ }),

/***/ "@wordpress/element":
/*!*********************************!*\
  !*** external ["wp","element"] ***!
  \*********************************/
/***/ ((module) => {

"use strict";
module.exports = wp.element;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			loaded: false,
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Flag the module as loaded
/******/ 		module.loaded = true;
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/async module */
/******/ 	(() => {
/******/ 		var webpackQueues = typeof Symbol === "function" ? Symbol("webpack queues") : "__webpack_queues__";
/******/ 		var webpackExports = typeof Symbol === "function" ? Symbol("webpack exports") : "__webpack_exports__";
/******/ 		var webpackError = typeof Symbol === "function" ? Symbol("webpack error") : "__webpack_error__";
/******/ 		var resolveQueue = (queue) => {
/******/ 			if(queue && queue.d < 1) {
/******/ 				queue.d = 1;
/******/ 				queue.forEach((fn) => (fn.r--));
/******/ 				queue.forEach((fn) => (fn.r-- ? fn.r++ : fn()));
/******/ 			}
/******/ 		}
/******/ 		var wrapDeps = (deps) => (deps.map((dep) => {
/******/ 			if(dep !== null && typeof dep === "object") {
/******/ 				if(dep[webpackQueues]) return dep;
/******/ 				if(dep.then) {
/******/ 					var queue = [];
/******/ 					queue.d = 0;
/******/ 					dep.then((r) => {
/******/ 						obj[webpackExports] = r;
/******/ 						resolveQueue(queue);
/******/ 					}, (e) => {
/******/ 						obj[webpackError] = e;
/******/ 						resolveQueue(queue);
/******/ 					});
/******/ 					var obj = {};
/******/ 					obj[webpackQueues] = (fn) => (fn(queue));
/******/ 					return obj;
/******/ 				}
/******/ 			}
/******/ 			var ret = {};
/******/ 			ret[webpackQueues] = x => {};
/******/ 			ret[webpackExports] = dep;
/******/ 			return ret;
/******/ 		}));
/******/ 		__webpack_require__.a = (module, body, hasAwait) => {
/******/ 			var queue;
/******/ 			hasAwait && ((queue = []).d = -1);
/******/ 			var depQueues = new Set();
/******/ 			var exports = module.exports;
/******/ 			var currentDeps;
/******/ 			var outerResolve;
/******/ 			var reject;
/******/ 			var promise = new Promise((resolve, rej) => {
/******/ 				reject = rej;
/******/ 				outerResolve = resolve;
/******/ 			});
/******/ 			promise[webpackExports] = exports;
/******/ 			promise[webpackQueues] = (fn) => (queue && fn(queue), depQueues.forEach(fn), promise["catch"](x => {}));
/******/ 			module.exports = promise;
/******/ 			body((deps) => {
/******/ 				currentDeps = wrapDeps(deps);
/******/ 				var fn;
/******/ 				var getResult = () => (currentDeps.map((d) => {
/******/ 					if(d[webpackError]) throw d[webpackError];
/******/ 					return d[webpackExports];
/******/ 				}))
/******/ 				var promise = new Promise((resolve) => {
/******/ 					fn = () => (resolve(getResult));
/******/ 					fn.r = 0;
/******/ 					var fnQueue = (q) => (q !== queue && !depQueues.has(q) && (depQueues.add(q), q && !q.d && (fn.r++, q.push(fn))));
/******/ 					currentDeps.map((dep) => (dep[webpackQueues](fnQueue)));
/******/ 				});
/******/ 				return fn.r ? promise : getResult();
/******/ 			}, (err) => ((err ? reject(promise[webpackError] = err) : outerResolve(exports)), resolveQueue(queue)));
/******/ 			queue && queue.d < 0 && (queue.d = 0);
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/global */
/******/ 	(() => {
/******/ 		__webpack_require__.g = (function() {
/******/ 			if (typeof globalThis === 'object') return globalThis;
/******/ 			try {
/******/ 				return this || new Function('return this')();
/******/ 			} catch (e) {
/******/ 				if (typeof window === 'object') return window;
/******/ 			}
/******/ 		})();
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/node module decorator */
/******/ 	(() => {
/******/ 		__webpack_require__.nmd = (module) => {
/******/ 			module.paths = [];
/******/ 			if (!module.children) module.children = [];
/******/ 			return module;
/******/ 		};
/******/ 	})();
/******/ 	
/************************************************************************/
/******/ 	
/******/ 	// startup
/******/ 	// Load entry module and return exports
/******/ 	// This entry module can't be inlined because the eval devtool is used.
/******/ 	var __webpack_exports__ = __webpack_require__("./src/js/index.js");
/******/ 	
/******/ 	// Expose Mesh SDK globals for inline thank-you page scripts
/******/ 	try {
/******/ 		var mesh = __webpack_require__("./node_modules/@meshsdk/core/dist/index.js");
/******/ 		window.BrowserWallet = mesh.BrowserWallet;
/******/ 		window.MeshTxBuilder = mesh.MeshTxBuilder;
/******/ 		window.BlockfrostProvider = mesh.BlockfrostProvider;
/******/ 		window.MeshValue = mesh.MeshValue;
/******/ 		window.BigNum = mesh.BigNum;
/******/ 		window.Transaction = mesh.Transaction;
/******/ 		window.DEFAULT_PROTOCOL_PARAMETERS = mesh.DEFAULT_PROTOCOL_PARAMETERS;
/******/ 	} catch(e) { console.warn('Mesh SDK globals not available:', e); }
/******/ 	
/******/ })()
;